Kilka dni temu Google uruchomiło serwis Google Code Search. Usługa, przeznaczona dla programistów, umożliwia przeszukiwanie kodów źródłowych programów, których fragmenty zostały odnalezione w Sieci przez crawlery Google. W zamierzeniu wyszukiwarka miała wspomagać środowisko open-source, czyli programów, których kod źródłowy jest publicznie dostępny i może być dowolnie modyfikowany. Szybko jednak odkryto, że nową wyszukiwarkę można wykorzystać także do mniej zacnych celów. Można więc masowo poszukiwać znanych luk bezpieczeństwa, można także natknąć się na fragmenty programów, które nigdy nie powinny, wedle zamierzeń twórców, zostać upublicznione.

Wsród ujawnionych w ten sposób zasobów znaleziony został kod systemu operacyjnego Microsoft DOS 6.0, na bazie którego powstały między innymi systemy Windows 95 oraz Windows 98. Okazuje się, że jego twórcy w dość radosny sposób podeszli do pracy. Świadczą o tym chociażby niektóre komentarze w kodzie (czyli fragmenty pomijane przez kompilator, służące jedynie programistom). Oto ciekawsze fragmenty kodu MS DOS 6.0, znalezione przez użytkowników serwisu digg:

dev/smartdrv/rtywrt.asm:

; Shit! Fatal error on write-behind! Ask user what to do with
; sleazy popup.

handle_fatal_write_error:
mov al,wrt_unmapped_unit ; get drive code
call warning_pop_up

***

FDisk.c
/* P.S. – To whoever winds up maintaining this, I will */
/* apoligize in advance. I had just learned ‘C’ when */
/* writing this, so out of ignorance of the finer points*/
/* of the langauge I did a lot of things by brute force.*/
/* Hope this doesn’t mess you up too much – MT 5/20/86 */

***

; fuckin’ sixteen-bit machine ought
; to be able to handle a SIXTEEN-BIT
; DISPLACEMENT!!

; I have to use DOS call int 21h/5f02h because DOS call int 21h/4409h
; is not reliable under DOS versions 4.00 and 4.01. (IBM fuck-up).

; BIOS is fucking with us – give up

; Is this a Set PSP call (50h) ?
; Yes, jmp directly to function
else
; fucking jump out of range by *two* bytes!

* The path can be in about a million fucked up forms depending on the level of stupidity in the user.

; Enable interrupts at the start of
; the dispatch code. Otherwise interrupts
; remain disabled through a whole
; shitload of code which is not good.

; Now we’ve got to copy all of that shit into the cache

; Shit! read error. Better invalidate block & bomb!

; Shit! Fatal error on write-behind! Ask user what to do with
; sleazy popup.

; End of WIN386 2.xx compatibility bullshit

***

* Function will add the szSetupPath to the users path statement in the
* autoexec.bat file. The szSetupPath will be the first location in the
* path statement. The path can be in about a million fucked up forms
* depending on the level of stupidity in the user. Here are a few to
* think about. DOS will accept any of these.
*
* PATH=C:foo;C:foobar;…
* SET PATH=C:foo;C:foobar;…
* PATH C:foo;C:foobar;…
* PATH =C:foo;C:foobar;…
* PATH= C:foo;C:foobar;…
* PATH = C:foo;C:foobar;…

Jeżeli podobnie wyglądało tworzenie kolejnych systemów operacyjnych, wiadomo już, skąd tyle narzekań na popularne Windowsy… ;)