> Называется "все реализовано" Большая часть таких "проблем" называется "мы забили на стандарты - лишь бы работало под виндой" со стороны впаривателей железа.
Простейший пример:
смотрим в дамп DSDT (это часть ACPI, "интерфейс к железке") и должна, по идее, быть не особо зависимой от ОСи
(взял отсюда: http://blog.yjwong.name/fixing-display-backlight-hotkeys-on-.../)
If (CondRefOf (\_OSI, Local0))
{
If (_OSI ("Linux"))
{
Store (0x03E8, OSYS)
} If (_OSI ("Windows 2001"))
{
Store (0x07D1, OSYS)
}
If (_OSI ("Windows 2001 SP1"))
{
Store (0x07D1, OSYS)
}
If (_OSI ("Windows 2001 SP2"))
{
Store (0x07D2, OSYS)
}
и т.д - вплоть до:
If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
...
If (MCTH (_OS, "Microsoft Windows NT"))
{
Store (0x07D0, OSYS)
зацениваем поддержку всех версий форточки и cмотрим "вкусняшки"
Method (_Q0E, 0, NotSerialized) // _Qxx: EC Query
{
If (LLess (MSOS (), OSW8)) //если не восьмерочка, сделай так
{
SBRN ()
} If (LGreaterEqual (MSOS (), OSVT)) //виста или выше, сделай эдак
К сожалению, автор выложил только часть дампа, поэтому в качестве другого примера:
http://www.tonymacx86.com/dsdt-database.php - Laptops - HP
If (((OSYS > 0x07D0) && (OSYS < 0x07D6)))
{
Notify (PCI0, Arg1)
}
Else
{
Notify (IGPU, Arg1)
}
тут тоже - всякие форточки идентифицируются как 0x07D*, а линукс - 0x03E8, т.е. "всякие прочие".
ТТ.е. мы имеем не только "грязные хаки" для отдельных версий виндовс, но и код типа "если не винда ->fall_back_шоб_было_а_как_оно_работает_дело_десятое".
И это, смею вас уверить, для большинства железок "для домохозяйки" - норма.
И пока основная целевая аудитория использует виндовс, а пользователи "маргинальных ОСей" частенько предпочитают поныть на форумах о плохой поддержке железа пингвином (но при этом купить железку подешевле, не обращая внимания на качество) - вряд ли что-то изменится.