html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites

“По колено в идиотах”: путешествие в мир комментариев к Windows. #1


Я думаю, многие уже слышали из новостей про небольшой и забавный скандальчик в мире «больших разработчиков», который (конечно же) не обошелся без участия Microsoft. Один из активных разработчиков Linux Паоло Бонзини обнаружил двухсмысленное выражение в коде гипервизора HyperV, которое как оказалось впоследствии, был включёно в ядро Linux усилиями именно Microsoft. Новую константу 0xB16B00B5 для гостевой ОС Linux можно трактовать как слово «B16 B00B5», то есть как фривольное выражение «BIG BOOBS».

«Кто-то пытается пошутить, я полагаю?», — провокационно накручивает Linux-публику программер Паоло Бонзини.

Вокруг применения этого спорного словосочетания в качестве константы разгорелся острый конфликт, в который вмешались даже воинственные феминистки-разработчики из Red Hat, но, в конце концов, Microsoft принесла свои официальные извинения за этот инцидент:

«Мы благодарим сообщество за информацию по этому вопросу и приносим извинения за оскорбляющую строку. Мы отправили патч, который исправляет эту проблему, изменения вступят в силу со следующей версией ядра», — сказано в комментарии Microsoft.

На самом деле это пикантное недоразумение вызвало у меня достаточно смешанные чувства: во-первых, все эти словечки и трюки уже давно широко известны своим повальным применением, но никаких обид никому это как-то до сих пор не приносило. Во-вторых, ведь и в самом Linux полным полно ещё более странных выражений в качестве названий переменных и особенно в содержании комментариев к коду этой ОС. Да и в Microsoft подобные слова и даже откровенные ругательства, наравне с проклятием всего рода человеческого — не менее обычное дело для её исходных кодов.

Дабы в полной мере зафиксировать этот последний момент, я предлагаю совершить быстрый и стремительный набег на исходные коды ОС Windows. Предлагаю оценить общий стиль комментирования и «облико морале» в документировании кода Microsoft уже на её собственной «операционной» территории, прежде чем обвинять её якобы в «неприличных выходках» в стане её заклятого идеологического врага и конкурента — Linux.

На всякий случай предупреждаю: несмотря на то, что материал базируется на фактах (или том, что принято называть фактами), этот текст носит отчасти шутливый характер — автор статьи сам является активным и благодарным пользователем разных ОС от Microsoft, равно как и свободных ОС также (прежде всего FreeBSD). Поэтому написав этот текст я не преследовал цель кого-то как-то унизить (или напротив — возвеличить), ибо как уже было мною сказано, дела на обсуждаемом сегодня пикантном фронте в этих двух противостоящих лагерях, обстоят более-менее одинаково.

Цштвщцы Windows исходники шутка прикол программист комментарие комментирование прикол кода розыгрыш операционака big boobs переменные константы прикольные

Исходная точка: краткая история утечки

Но прежде чем начать препарацию уже малость задубевшего пациента, позвольте поспешно объяснить, возможно, немного офигевшему читателю, в чьи исходниках мы собственно собрались копаться. Речь идет о широко известной утечке исходного кода ОС Windows 2000 SP1 и NT4 SP6 произошедшей в начале 2004 года. А если говорить ещё точнее — тогда в сеть утекли фрагменты этих двух ОС, впрочем, достаточно большие, чтобы по ним составить своё мнение о специфике комментирования и именования переменных в исходниках этих лидирующих продуктов Microsoft.

И хотя сама MS ещё в те времена сразу опубликовала последнее китайское предупреждение, в котором говорится, что «софтверный гигант вправе инициировать судебное разбирательство против любого, кто попытается найти, загрузить, отправить по почте, опубликовать в интернете или применить в собственных целях исходники её операционных систем», мы рискнули на свой страх и риск заглянуть в этот запретный код буквально только одним глазком, ведомые одним лишь любопытством и при этом подчеркивая, что никаких коммерческих задач при этом не преследуя.

Данная утечка в своих разжатых 627 мегабайтах содержит 28782 файлов, аккуратно разложенных специально обученными людьми из Редмонда в 2132-х папках. Сам, до предела ядрёный кернел, покойно лежит в папке \win2k\private\ntos\ke\ и написан в основном на АСМ-е, и там также есть его версии для i386, alpha, apx64, ia64.

Кроме того, позже уже вполне легально и открыто были выложены исходники Windows Research Kernel (WRK), которые содержат исходные коды основной части ядра Windows (NTOS), в кои мы также не преминули заглянуть. Напоследок добавлю, что WRK включает в себя большую часть исходных кодов NTOS ядра из последней выпущенной версии Windows на тот момент — то есть это уже родные каждому Windows XP/Server 2003.

Ну, вот и всё краткое вступление, оглядевшись среди дивного разнообразия исходных файлов, приступим к их ковырянию.

«Мы все идиоты»

Итак, ругательные слова (например, такие, как «fucks», «shits» и сотни вхождений «craps» и т.д.) в комментариях кода Windows встречаются довольно часто. Не буду засорять статью подобными цитатами непотребств и проклятий из самых недр исходников этой ОС, попеременно взывающих в самый разный адрес. Приведу лишь одно, самое известное и забавное вхождение одного из этих слов, содержащееся в файле из системы дневной пересборки системы:

Цитата из файла: private\windows\media\avi\verinfo.16\verinfo.h: 
 *       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 *       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 * !!!!!!!IF YOU CHANGE TABS TO SPACES, YOU WILL BE KILLED!!!!!!!
 *       !!!!!!!!!!!!!!DOING SO FUCKS THE BUILD PROCESS!!!!!!!!!!!!!!!!
 *       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 *       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Знаю, я не один противник табуляций, тем более таких провокационно-ассиметричных, но makefile обычно ломается без всего этого. Там табуляция — по стандарту положена, поэтому проглотим «это» и продолжим.

Кроме проклятий и хитроумной системы сборки, в упомянутых исходниках встречается множество ссылок на неких «идиотов», и даже не побоюсь этого слова — «конченных придурков»: по комментариям понятно, что они чаще всего олицетворяют некие внешние силы по отношению к самой Microsoft, но встречаются и их внутренние разновидности — работающие в параллельных к данной команде разработчиков. Например, послания этого типа могут принимать такую форму (цитирую комментарии из файла private\ntos\rtl\heap.c , который, судя по его дате, последний раз редактировался аж в далеком 1989 году):

// The specific idiot in this case is Office95, which likes
// to free a random pointer when you start Word95 from a desktop
// shortcut.

Упоминаний об «идиотах вокруг нас» в исходниках так много, что я могу самозабвенно цитировать эти примеры до бесконечности, но я ограничусь лишь несколькими:

Цитата из файла: private\ntos\w32\ntuser\kernel\swp.c
// for idiots like MS-Access 2.0 who SetWindowPos( SWP_BOZO
//  and blow away themselves on the shell, then lets
//  just ignore their plea to be removed from the tray

Или:

Цитата из файла: private\shell\ext\ftp\ftpdrop.cpp:
//  We have to do this only because Exchange is a moron.

Как видим, придурки очень плотным внешним кольцом окружают разработчиков Microsoft, но что хуже, они уже затесались изнутри и в сам dev.team Windows 2000 — приведу ещё парочку примеров этого:

Цитата из файла: private\genx\shell\inc\prsht.w:
// we are such morons. Wiz97 underwent a redesign between IE4 and IE5
Цитата из файла: private\shell\shdoc401\unicpp\desktop.cpp: 
// We are morons. We changed the IDeskTray interface between IE4
Цитата из файла: private\shell\browseui\itbar.cpp:
// should be fixed in the apps themselves. Morons!

Забота о психическом здоровье коллег

Разработчики Windows 2000 очень трогательны в своём стремлении предупредить и обезопасить своих коллег по разработке от... собственной дури. Давайте посмотрим, какие удивительно информативные послания, полные боли и душевного страдания за несовершенство нашего мира они оставляют друг другу прямо в комментариях к своему же коду. Я насчитал всего около 4000 различных предупреждений и призывов быть осторожным, ещё совсем немного «БЫТЬ ОЧЕНЬ ОСТОРОЖНЫМ», и пару упоминаний-просьб быть по-возможности хотя бы снисходительным к автору откомментированного кода, и вот лишь некоторые примеры из них.

Цитата из файла: private\inet\mshtml\src\core\cdbase\baseprop.cxx:
// HACK! HACK! HACK! (MohanB) In order to fix #64710 at this very late
Цитата из файла: private\inet\mshtml\src\core\cdutil\genutil.cxx:
// HACK HACK HACK. REMOVE THIS ONCE MARLETT IS AROUND

Marlett конечно опасен, но есть вещи и поинтересней, например повсеместное использование нерукопожатного Goto внутрях Windows:

Цитата из файла: private\inet\mshtml\src\other\moniker\resprot.cxx:
// <HACK>
goto EndHack;
// </HACK>
Цитата из файла: private\inet\mshtml\src\site\layout\flowlyt.cxx:
// God, I hate this hack ...
Цитата из файла: private\inet\wininet\urlcache\cachecfg.cxx:
// Dumb hack for back compat. *sigh*
Цитата из файла: private\inet\wininet\urlcache\filemgr.cxx:
// ACHTUNG!!! this is a special hack for IBM antivirus software

Если позволит читатель, я не буду цитировать больше ничего из подсистемы inet , которая, безусловно, является рекордсменом на количество goto-хаков и ругательств в исходниках Windows 2000, я просто приведу фотографию разработчиков этой подсистемы именно для этой версии Windows 2000/IE 7:

Цштвщцы Windows исходники шутка прикол программист комментарие комментирование прикол кода розыгрыш операционака big boobs переменные константы прикольные

Поймите меня правильно: я не имею ничего против Индии, страны, которая демонстрирует уже на протяжении последних восьми лет один из самых быстрых в мире темпов роста зарплат в своей IT-сфере, просто глядя иногда на код, бывает очень полезным иметь возможность посмотреть напрямик в глаза человеку, его писавшего (что само по себе может отмести 80% потенциальных к нему вопросов). В силу этого я приветствую разработки подобно этой (или аналог оной для Windows).

Ну да, прогулявшись по внешним ссылкам, вернемся к другим примерам посланий о хаках в других местах Windows.

Цитата из файла: private\ispu\pkitrust\trustui\acuictl.cpp:
// HACK ALERT, believe it or not there is no way to get the height of the current
// HACK ON TOP OF HACK ALERT!
Цитата из файла: private\ntos\udfs\devctrl.c:
// Add the hack-o-ramma to fix formats.
Цитата из файла: private\shell\shdoc401\unicpp\sendto.cpp:
// Mondo hackitude-o-rama.
Цитата из файла: private\ntos\w32\ntcon\server\link.c:
// HUGE, HUGE hack-o-rama to get NTSD started on this process!

Хакодром имеет место быть во всех подсистемах Windows, если верить этим комментариям. Но вот выборочные примеры особенно пронзительных предупреждений:

Цитата из файла: private\shell\lib\util.cpp:
// TERRIBLE HORRIBLE NO GOOD VERY BAD & UGLY HACK
Цитата из файла: private\ntos\w32\ntuser\client\dlgmgr.c:
// HACK OF DEATH: no one survives here
Цитата из файла: private\ntos\w32\ntuser\client\nt6\user.h:
// The magnitude of this hack compares favorably with that of the national USA debt.

Там же замечательный библейский комментарий, который открывает упомянутый файл:

// Abandon all hope, ye who enter here.

А также такое описание к коду ошибки задокументированной там же, надо полагать вполне необходимой для всех Windows-систем:

// Impossible Happened

И текст вывода сообщения рядом гласит:

"Fatal error: Bad Magic"

Так вот откуда берутся известные своей неудобоваримостью ошибки Windows вроде этих:

Цштвщцы Windows исходники шутка прикол программист комментарие комментирование прикол кода розыгрыш операционака big boobs переменные константы прикольные

Интересно, что я не нашел никаких расистских упоминаний в исходниках, упоминаний Билла Гейтса или самой Windows. Правда, порой встречаются весьма странные, я бы даже сказал наркотические комментарии, вот как этот, например:

Цитата из файла: private\shell\ext\tweakui\genthunk.c:
//  CallProc32W is insane. It's a variadic function that uses
//  the pascal calling convention. (It probably makes more sense
//  when you're stoned.)

Окончание статьи надобно читать тута.

Читать дальше
Twitter
Одноклассники
Мой Мир

материал с blogerator.ru

3

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • pleshner
          • домен blogerator.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции