Matthew Garrett: Why Linux claims to be Windows
Section 5.7.2 of the ACPI specification provides for a method called _OSI. Platform firmware can query for various interfaces, which allow it to tweak its behaviour depending on the interfaces that the OS supports. Linux claims to support the following interfaces:- Windows 2000
- Windows 2001
- Windows 2001 SP1
- Windows 2001 SP2
- Windows 2001.1
- Windows 2001.1 SP1
- Windows 2006
The typical way in which this feature is used by a platform is by querying each of the interfaces in turn, starting with the most recent a firmware is aware of. After the first match, a value will be stashed somewhere and used elsewhere in the firmware when making certain decisions. An example of this may be only enabling certain devices (such as the HPET) if the OS claims to support Windows Vista.
As I mentioned, recent versions of Linux no longer claim to support the Linux interface. There's a couple of reasons for this. Firstly, some platforms break if they're told that they're running on Linux. It's usually an entirely untested codepath. Secondly, the whole point of the _OSI method is to provide the platform with information about the interface supported by an OS. "Linux" is too coarse grained - we make no guarantees that the interface between the OS and the platform will remain constant. "Linux 2.6.25" isn't all that much better, since distribution patches may alter the behaviour and BIOSes would become specific to a given kernel version. We could have something like "Linux ABI 1" and then bump that every time we altered the behaviour of the kernel in this respect, but this would become unwieldy fairly quickly (what would count as an ABI breaking change?)
So what kind of interface can we claim to provide? The sad truth of the matter is that most vendors will only test their code against Windows, and that as a result Windows provides the de-facto specification for OS/platform interaction. We could skip claiming to be Windows, but (in the best case) that means that the system will assume it's working with an OS that supports no advanced features. Rather than getting support for brightness changes being handled by the OS, we get stuck with SMM traps and unexpectedly missing time. If we want hardware to work to its full potential, we need to claim to be a recent version of Windows.
Does this mean the entire _OSI mechanism is useless? Not really. It's still useful for providing information about supported functionality. One example used in the spec is whether or not the OS implements the ACPI 3.0 thermal model. Another obvious (but unspecced) example might be whether or not the video opregion spec is implemented in the OS. _OSI strings which explicitly advertise the existence of advanced functionality are something that should be specified and encouraged. What they shouldn't be used for is as a way of advertising lacking functionality, which is effectively the only way that Linux can be usefully interpreted today. We don't want machines to automatically repost their video if they detect they're running Linux. It makes it harder to implement proper kernel-level graphics resume code. We don't want them to suddenly alter their keyboard behaviour, because that probably makes it harder to support older machines that don't have these workarounds.
Message to vendors: If we're not behaving in the same way as Windows does, let us know. We'll fix it. This has the benefit of fixing not only your latest and greatest platform, but also all the older ones that expected the same behaviour. Please don't try to work around our bugs in your BIOS - it just means that we need to special case you forever, and in the long run your hardware won't work as well as it would if we just fixed things properly.
when I woke up today (after sleeping in for the first time with my new
roll-top in front of my bedroom window) I was surprised & confused by a
couple of "congratulations!" messages in my irc away-log. it took
me a bit of time & coffee (& looking into my mailbox) to begin to
realize that my Debian account had indeed been created while I was asleep.
— in fact I guess I still haven't completely realized my new status as
Debian Developer.
*Ahem*... I'm soooo excited! After 884 days, I just
I am very happy that 19 contributors who were waiting for their accounts, sometimes for a very long time, became Debian Developers today. This is great news for them, and for the project as a whole. Many thanks to all people involved for making this possible, including Joerg Jaspert, Steve McIntyre and James Troup. And congratulations to (using their account names) kibi, plessy, gregoa, goneri, tincho, akumar, filipe, miriam and the others I haven’t had the chance to work with yet.
It also seems that the various pending issues (updating keys that expired, etc.) have been resolved, which is great news for several of our current DDs.
But this doesn’t solve the DAM problem on a permanent basis. Something interesting about today’s events is that the
I have never seem so many people at fisl. Seriously! All the rooms were crowded, all the time same as the expo and the user-group area. Our official counter were stopped at 6667 participants, but that is just because we ve taken the registration database off-line in order to process new registrations on-site. By the end of fisl all the numbers will be summed up, but I heard rumors of 7 thousand people! Awesome!
I spent this first day mostly in the
And, since I was not available in the morning, when the huge crowd was arriving, I took a picture of a picture taken by Marlon of this initial moments:
(It is not really clear in this picture, but beyond the red gates there were as many people as inside)

A bug was reported on 
The delays in granting accounts have other effects on Debian as a whole, besides possibly dissuading people from joining.
Habits control our choice sometimes more than we would like to admit…
New mobile phone
Since about two weeks ago I’ve a new mobile phone. The Nokia E51 will
replace my slowly dying Nokia 6130i.
I knew I needed a new mobile phone when my 6310i started to turn off
itself shortly after I turned it on. I needed up to about ten times
switching it on to make it stay on. Sometimes it already switched
itself off before I could enter the PIN. Looks like a loose contact,
but I never figured out where it is.
Although I know about Nokia’s behaviour in Germany, I still had to buy
a Nokia, because after using a 6130 (the GSM 1800 only clone of 6110
and 6150), a 6210i and the already mentioned 6130i over the last
decade, I got so used to how Nokia mobile phones are navigated and how
you type with Nokia phones (blank on 0, point and comma on 1, case
changing on #), everything else (especially those with blank on 0 and
case changing on *) would be worse than the half-dead mobile phone,
I’m currently using.
Spoilt for choice
So which Nokia? For a long time I refused to buy a mobile phone with a
camera or radio in it. But since the E70 was no more available (and is
said to have quite buggy software) and the E61 has been replaced with
the E61i, there are no more smartphones without a camera, at least not
from Nokia. But 

In mid-February, I started the lenny l10n NMU campaign, to tackle down
pending debconf l10n bug reports.
There have been a number of discussions on sane-devel in the past months revolving around the SANE2 standard (still in development) and/or extensions to the current SANE1 standard. SANE2 is an effort that has been “ongoing” (on and off, mostly off, unfortunately) for a number of years already.
This led to a number of questions being raised, most notably this one: do we need SANE2, or can we get away only with extensions to SANE1? Or should we just redesign the whole stack from the ground up?