Все мы были младенцами в дебрях Unix; курс создавался по ходу нашего обучения. Однако из него было ясно, что за Unix стоит своя особая философия. Это становилось понятно после первого же часа занятий. В остальное время объяснялись подробности.
Unix характерна тем, что она утверждает некоторые базовые ценности. Это цельная и красивая операционная система. Она избегает особых случаев. В Unix есть понятие процесса: процесс – это все, что что-нибудь делает. Простой пример. В Unix команда оболочки, которую вводят, чтобы войти в систему, не встроена в операционку, как в DOS. Это просто задание. Ничем не отличающееся от остальных. Просто это задание читает с клавиатуры и пишет на монитор. В Unix все, что что-то делает, – процесс. А еще там есть файлы.
Простота структуры Unix всегда поражала меня, как и большинство людей (ну по крайней мере – нас, хакеров). Почти все, что делается в Unix, выполняется с помощью шести базовых операций (называемых «системными вызовами», потому что они представляют из себя вызовы системы для выполнения тех или иных действий), А уж из этих шести базовых вызовов можно построить почти все на свете.
Одной из фундаментальных операций Unix является «операция порождения (fork)». Выполняя «fork», процесс создает свою точную копию. Таким образом вы получаете две идентичные копии. Порожденная копия чаще всего выполняет другой процесс – заменяет себя новой программой. Это вторая базовая операция. Оставшиеся четыре вызова – open (открыть), close (закрыть), read (читать) и write (писать) – предназначены для доступа к файлам. Эти шесть системных вызовов представляют собой простые операции, из которых и состоит Unix.
Конечно, есть еще куча других системных вызовов, которые осуществляют детализацию. Но если вы поняли шесть базовых – вы поняли Unix. Потому что одна из прелестей Unix в том, что для создания сложных вещей не нужны сложные интерфейсы. Любого уровня сложности можно достичь за счет сочетания простых вещей. Для решения сложной проблемы нужно лишь создать связи («каналы» в терминологии Unix) между простыми процессами.
Уродство, когда для любого действия у системы есть специальный интерфейс. В Unix – все наоборот. Она предоставляет строительные блоки, из которых можно создать что угодно. Вот что такое стройная архитектура.
То же самое с языками. В английском 26 букв, и с их помощью можно написать все. А в китайском для каждой мыслимой вещи – своя буква. В китайском вы сразу же получаете в свое распоряжение сложные вещи, которые можно комбинировать ограниченным образом. Это больше напоминает подход VMS: есть множество сложных вещей с интересным смыслом, которые можно использовать только одним способом. И в Windows то же самое.
В Unix, напротив, основная идея: «Чем меньше, тем красивее». Здесь есть небольшой набор простых базовых строительных блоков, из которых можно строить бесконечно сложные конструкции.
Именно так, кстати, обстоит дело и в физике. Эксперименты позволяют открыть фундаментальные законы, которые, как предполагается, крайне просты. Сложность мира возникает за счет множества удивительных взаимосвязей, которые можно вывести из этих простых законов, а не из внутренней сложности самих законов.
Простота Unix не возникла сама по себе. Unix со своей концепцией простых строительных блоков была кропотливо разработана Деннисом Ричи и Кеном Томпсоном в Bell Labs компании AT&T. Простоту вовсе не следует отождествлять с легкостью. Простота требует проектирования и хорошего вкуса.
Если вернуться к примеру с языками, то пиктографическое письмо – например, египетские или китайские иероглифы – обычно древнее и кажется «примитивнее», а подход, использующий строительные блоки, требует гораздо более абстрактного мышления. Точно так же и простоту Unix не следует путать с отсутствием изощренности – совсем наоборот.
Из этого вовсе не следует, что создание Unix было вызвано какими-то сложными причинами. Как часто бывает в компьютерной области, все началось с игр. Нужно было, чтобы кто-то захотел играть в компьютерные игры на PDP-11. Именно из этого выросла Unix – из персонального проекта Денниса и Кена, пожелавших играть в «Звездные войны». А поскольку этот проект никто не воспринимал всерьез, AT&T не занималась коммерческим применением Unix. AT&T была регулируемой монополией и все равно не могла, например, продавать компьютеры. Поэтому создатели Unix стали бесплатно предоставлять ее вместе с лицензиями на исходные тексты всем желающим, в особенности университетам. Они относились к этому просто.
В результате Unix получила широкое распространение в университетских кругах. К моменту произошедшего в 1984 году разделения (В 1984 году телефонная составляющая AT&T – Bell System – по решению суда была разбита на 7 региональных компаний Bell. – Прим. пер), когда AT&T получила наконец право заняться компьютерным бизнесом, университетские специалисты (в частности, сотрудники Калифорнийского университета в Беркли) уже в течение нескольких лет работали над усовершенствованием Unix под руководством таких корифеев, как Билл Джой и Маршал Кирк Маккусик. При этом многие не утруждались документированием своей деятельности.
Однако к началу 90-х Unix стала операционной системой номер один для всех суперкомпьютеров и серверов. Бизнес приобрел огромные масштабы. При этом, к несчастью, существовало великое множество конкурирующих версий этой системы. В основе одних лежала базовая разработка AT&T (так называемые варианты «System V»), которая была относительно контролируемой. Другие создавались на основе кода BSD (Berkeley Software Distribution), созданного в Калифорнийском университете в Беркли. А некоторые представляли из себя смесь обеих систем.
Одна из разработок на базе BSD заслуживает особого упоминания. Это проект 386BSD, выполненный Биллом Джолицем на основе кода BSD и распространявшийся через Интернет. Позднее он разделился и породил бесплатные BSD-версии: NetBSD, FreeBSD и OpenBSD. Он вызывал большой интерес в Unix-сообществе.
Поэтому AT&T внезапно спохватилась и подала в суд на Калифорнийский университет в Беркли. Исходный код принадлежал AT&T, но в дальнейшем большая часть работы была выполнена в Беркли. Руководители Калифорнийского университета утверждали, что университет имел право распространять или продавать за символическую плату свою версию Unix. Они продемонстрировали, что сотрудники университета проделали очень большую работу и фактически переписали все, что было предоставлено корпорацией AT&T. Судебный процесс закончился соглашением после того, как корпорация Novell купила Unix у AT&T. В основном из системы должны были быть исключены части, выпущенные AT&T.
Вся эта юридическая возня пошла на пользу новому отпрыску Unix, дав ему время возмужать и распространиться по миру. По существу она позволила Linux завоевать рынок. Но я забегаю вперед.
Раз уж я все равно отклонился, то хочу кое-что объяснить.
У Unix сложилась репутация магнита, притягивающего сдвинутых маргиналов компьютерного мира. Оспаривать эту репутацию не имеет смысла. Она справедлива.
Честно говоря, вокруг Unix действительно собралось много чокнутых. Я не имею в виду тех, кто рассылает угрожающие письма. Или тех, кто травит соседских собак. Просто люди с очень альтернативным образом жизни.
Вспомните: ведь Unix зародилась в конце 60-х – начале 70-х, когда я спал в бельевой корзинке в квартире бабушки с дедушкой. Ее создавали технари из поколения «дети – цветы». Идея свободы Unix в большей степени связана с духом той эпохи, чем с самой операционной системой. Это было время безудержного идеализма. Революция. Свобода от власти. Свободная любовь (с этим я пролетел – да и что бы я с ней делал?). И относительная открытость Unix, пусть и объяснявшаяся отсутствием на тот момент коммерческих интересов, привлекала к системе людей такого типа.
Впервые я столкнулся с этой стороной Unix году в 1991-м, когда Ларе Вирцениус затащил меня на собрание в Техническом университете Хельсинки (который, как всем известно, расположен не в самом Хельсинки, а по другую сторону границы – в Эспо. Они просто хотят ассоциироваться со знаменитым Хельсинки, хотя бы только по названию). Выступал Ричард Столман.
Ричард Столман – это бог свободного ПО. Он начал работать над альтернативой Unix в 1984 году, назвав ее системой GNU. GNU – это аббревиатура для «GNU is Not Unix», один из многих рекурсивных акронимов, в которых одна из букв обозначает сам акроним – типичная компьютерная шуточка, недоступная посторонним. С нами – хакерами – не соскучишься.
Еще важнее, что РМС (как он сам себя называет) написал Манифест свободного программного обеспечения и лицензию на бесплатное распространение ПО – Универсальную общественную лицензию (GPL). По существу именно он ввел понятие намеренного бесплатного распространения исходников в противовес их случайному распространению, которое первоначально имело место при разработке Unix.
Честно говоря, я не вникал во все эти социально-политические вопросы, которые были – и есть – так милы сердцу РМС. Я даже не очень-то знал о созданном им Фонде свободного ПО и его целях. Раз я почти ничего не помню из его выступления в 1991 году, похоже, оно не повлияло на мою жизнь. Я интересовался программированием, а не политикой – политики мне и дома хватало. Но Ларе был идеологом, а я потащился за ним.
Ричард был первым в моей жизни классическим длинноволосым бородатым хакером. У нас в Хельсинки таких мало.
Может, я и не проникся полностью, но что-то из его речи, видимо, запало мне в душу. В конце концов, я ведь использовал GPL для Linux. Ну вот – я снова забегаю вперед.
IV
Unix характерна тем, что она утверждает некоторые базовые ценности. Это цельная и красивая операционная система. Она избегает особых случаев. В Unix есть понятие процесса: процесс – это все, что что-нибудь делает. Простой пример. В Unix команда оболочки, которую вводят, чтобы войти в систему, не встроена в операционку, как в DOS. Это просто задание. Ничем не отличающееся от остальных. Просто это задание читает с клавиатуры и пишет на монитор. В Unix все, что что-то делает, – процесс. А еще там есть файлы.
Простота структуры Unix всегда поражала меня, как и большинство людей (ну по крайней мере – нас, хакеров). Почти все, что делается в Unix, выполняется с помощью шести базовых операций (называемых «системными вызовами», потому что они представляют из себя вызовы системы для выполнения тех или иных действий), А уж из этих шести базовых вызовов можно построить почти все на свете.
Одной из фундаментальных операций Unix является «операция порождения (fork)». Выполняя «fork», процесс создает свою точную копию. Таким образом вы получаете две идентичные копии. Порожденная копия чаще всего выполняет другой процесс – заменяет себя новой программой. Это вторая базовая операция. Оставшиеся четыре вызова – open (открыть), close (закрыть), read (читать) и write (писать) – предназначены для доступа к файлам. Эти шесть системных вызовов представляют собой простые операции, из которых и состоит Unix.
Конечно, есть еще куча других системных вызовов, которые осуществляют детализацию. Но если вы поняли шесть базовых – вы поняли Unix. Потому что одна из прелестей Unix в том, что для создания сложных вещей не нужны сложные интерфейсы. Любого уровня сложности можно достичь за счет сочетания простых вещей. Для решения сложной проблемы нужно лишь создать связи («каналы» в терминологии Unix) между простыми процессами.
Уродство, когда для любого действия у системы есть специальный интерфейс. В Unix – все наоборот. Она предоставляет строительные блоки, из которых можно создать что угодно. Вот что такое стройная архитектура.
То же самое с языками. В английском 26 букв, и с их помощью можно написать все. А в китайском для каждой мыслимой вещи – своя буква. В китайском вы сразу же получаете в свое распоряжение сложные вещи, которые можно комбинировать ограниченным образом. Это больше напоминает подход VMS: есть множество сложных вещей с интересным смыслом, которые можно использовать только одним способом. И в Windows то же самое.
В Unix, напротив, основная идея: «Чем меньше, тем красивее». Здесь есть небольшой набор простых базовых строительных блоков, из которых можно строить бесконечно сложные конструкции.
Именно так, кстати, обстоит дело и в физике. Эксперименты позволяют открыть фундаментальные законы, которые, как предполагается, крайне просты. Сложность мира возникает за счет множества удивительных взаимосвязей, которые можно вывести из этих простых законов, а не из внутренней сложности самих законов.
Простота Unix не возникла сама по себе. Unix со своей концепцией простых строительных блоков была кропотливо разработана Деннисом Ричи и Кеном Томпсоном в Bell Labs компании AT&T. Простоту вовсе не следует отождествлять с легкостью. Простота требует проектирования и хорошего вкуса.
Если вернуться к примеру с языками, то пиктографическое письмо – например, египетские или китайские иероглифы – обычно древнее и кажется «примитивнее», а подход, использующий строительные блоки, требует гораздо более абстрактного мышления. Точно так же и простоту Unix не следует путать с отсутствием изощренности – совсем наоборот.
Из этого вовсе не следует, что создание Unix было вызвано какими-то сложными причинами. Как часто бывает в компьютерной области, все началось с игр. Нужно было, чтобы кто-то захотел играть в компьютерные игры на PDP-11. Именно из этого выросла Unix – из персонального проекта Денниса и Кена, пожелавших играть в «Звездные войны». А поскольку этот проект никто не воспринимал всерьез, AT&T не занималась коммерческим применением Unix. AT&T была регулируемой монополией и все равно не могла, например, продавать компьютеры. Поэтому создатели Unix стали бесплатно предоставлять ее вместе с лицензиями на исходные тексты всем желающим, в особенности университетам. Они относились к этому просто.
В результате Unix получила широкое распространение в университетских кругах. К моменту произошедшего в 1984 году разделения (В 1984 году телефонная составляющая AT&T – Bell System – по решению суда была разбита на 7 региональных компаний Bell. – Прим. пер), когда AT&T получила наконец право заняться компьютерным бизнесом, университетские специалисты (в частности, сотрудники Калифорнийского университета в Беркли) уже в течение нескольких лет работали над усовершенствованием Unix под руководством таких корифеев, как Билл Джой и Маршал Кирк Маккусик. При этом многие не утруждались документированием своей деятельности.
Однако к началу 90-х Unix стала операционной системой номер один для всех суперкомпьютеров и серверов. Бизнес приобрел огромные масштабы. При этом, к несчастью, существовало великое множество конкурирующих версий этой системы. В основе одних лежала базовая разработка AT&T (так называемые варианты «System V»), которая была относительно контролируемой. Другие создавались на основе кода BSD (Berkeley Software Distribution), созданного в Калифорнийском университете в Беркли. А некоторые представляли из себя смесь обеих систем.
Одна из разработок на базе BSD заслуживает особого упоминания. Это проект 386BSD, выполненный Биллом Джолицем на основе кода BSD и распространявшийся через Интернет. Позднее он разделился и породил бесплатные BSD-версии: NetBSD, FreeBSD и OpenBSD. Он вызывал большой интерес в Unix-сообществе.
Поэтому AT&T внезапно спохватилась и подала в суд на Калифорнийский университет в Беркли. Исходный код принадлежал AT&T, но в дальнейшем большая часть работы была выполнена в Беркли. Руководители Калифорнийского университета утверждали, что университет имел право распространять или продавать за символическую плату свою версию Unix. Они продемонстрировали, что сотрудники университета проделали очень большую работу и фактически переписали все, что было предоставлено корпорацией AT&T. Судебный процесс закончился соглашением после того, как корпорация Novell купила Unix у AT&T. В основном из системы должны были быть исключены части, выпущенные AT&T.
Вся эта юридическая возня пошла на пользу новому отпрыску Unix, дав ему время возмужать и распространиться по миру. По существу она позволила Linux завоевать рынок. Но я забегаю вперед.
Раз уж я все равно отклонился, то хочу кое-что объяснить.
У Unix сложилась репутация магнита, притягивающего сдвинутых маргиналов компьютерного мира. Оспаривать эту репутацию не имеет смысла. Она справедлива.
Честно говоря, вокруг Unix действительно собралось много чокнутых. Я не имею в виду тех, кто рассылает угрожающие письма. Или тех, кто травит соседских собак. Просто люди с очень альтернативным образом жизни.
Вспомните: ведь Unix зародилась в конце 60-х – начале 70-х, когда я спал в бельевой корзинке в квартире бабушки с дедушкой. Ее создавали технари из поколения «дети – цветы». Идея свободы Unix в большей степени связана с духом той эпохи, чем с самой операционной системой. Это было время безудержного идеализма. Революция. Свобода от власти. Свободная любовь (с этим я пролетел – да и что бы я с ней делал?). И относительная открытость Unix, пусть и объяснявшаяся отсутствием на тот момент коммерческих интересов, привлекала к системе людей такого типа.
Впервые я столкнулся с этой стороной Unix году в 1991-м, когда Ларе Вирцениус затащил меня на собрание в Техническом университете Хельсинки (который, как всем известно, расположен не в самом Хельсинки, а по другую сторону границы – в Эспо. Они просто хотят ассоциироваться со знаменитым Хельсинки, хотя бы только по названию). Выступал Ричард Столман.
Ричард Столман – это бог свободного ПО. Он начал работать над альтернативой Unix в 1984 году, назвав ее системой GNU. GNU – это аббревиатура для «GNU is Not Unix», один из многих рекурсивных акронимов, в которых одна из букв обозначает сам акроним – типичная компьютерная шуточка, недоступная посторонним. С нами – хакерами – не соскучишься.
Еще важнее, что РМС (как он сам себя называет) написал Манифест свободного программного обеспечения и лицензию на бесплатное распространение ПО – Универсальную общественную лицензию (GPL). По существу именно он ввел понятие намеренного бесплатного распространения исходников в противовес их случайному распространению, которое первоначально имело место при разработке Unix.
Честно говоря, я не вникал во все эти социально-политические вопросы, которые были – и есть – так милы сердцу РМС. Я даже не очень-то знал о созданном им Фонде свободного ПО и его целях. Раз я почти ничего не помню из его выступления в 1991 году, похоже, оно не повлияло на мою жизнь. Я интересовался программированием, а не политикой – политики мне и дома хватало. Но Ларе был идеологом, а я потащился за ним.
Ричард был первым в моей жизни классическим длинноволосым бородатым хакером. У нас в Хельсинки таких мало.
Может, я и не проникся полностью, но что-то из его речи, видимо, запало мне в душу. В конце концов, я ведь использовал GPL для Linux. Ну вот – я снова забегаю вперед.
IV
2 января 1991 года. В этот день магазины впервые открылись после Рождества и моего двадцать первого дня рождения – двух главных дней моего финансового года.
Получив свои рождественские и «деньрожденные» деньги, я принял грандиозное экономическое решение купить компьютер за 18 тысяч марок, что составляло примерно три с половиной тысячи долларов. Такой суммы у меня и в помине не было, поэтому я хотел купить компьютер в кредит, заплатив исходно треть стоимости. Реально компьютер стоил 15 тысяч марок. Остальное набегало за три года в качестве процентов на кредит.
Я пришел в один из маленьких компьютерных магазинчиков семейного типа – папин-мамин, хотя в моем случае он был просто папин. Производитель меня особо не волновал, поэтому я выбрал безымянный серый блок. Мне показали прайс-лист и список типа «шведского стола»: какие имеются ЦП, жесткие диски, память. Мне нужна была мощность. Я хотел 4 мегабайта ОЗУ вместо двух и 33 мегагерца. Конечно, я мог бы обойтись 16, но нет, мне был нужен самый крутой вариант.
Ты говорил, что тебе нужно, и они все это собирали. Звучит дико в эру Интернета и курьерской доставки. Мне сказали прийти за ним через три дня, но эти три дня тянулись, как целая неделя. 5 января я попросил папу помочь привезти мою покупку домой.
У компьютера не было не только имени, но и каких-либо примечательных черт. Простой серый системный блок. Этот компьютер я выбрал не за внешний вид. Это была тоскливая на вид машина с четырнадцатидюймовым экраном, самая дешевая крутая модель, которую я смог найти. Говоря «крутая», я имею в виду, что такой мощный компьютер мало у кого был. Не то чтобы это была чисто функциональная страхолюдина, типа микроавтобуса «Вольво». Но суть в том, что мне нужна была надежная машина и чтобы дополнения к ней – которые мне неизбежно понадобятся – было легко купить.
На компьютере была установлена урезанная версия DOS. Я же хотел работать с Minix, разновидностью Unix, поэтому я сделал заказ и ждал почти месяц, пока моя покупка доберется до Финляндии. Учебник по Minix продавался в книжном магазине, но поскольку на саму операционку спрос был маленький, то ее надо было заказывать через тот же книжный. Она стоила 169 долларов, плюс налоги, плюс затраты на конвертацию, плюс всякое-разное. В то время я считал это грабежом. Честно говоря, и сейчас так считаю. Месяц ожидания прошел для меня, как шесть лет. Я мучился еще больше, чем когда месяцами копил деньги на компьютер.
Дело было в самый разгар зимы. Выбираясь из своей берлоги во внешний мир, я каждый раз рисковал, что меня столкнет в снег какая-нибудь старушка, которой бы лучше сидеть дома и варить щи или смотреть по телику хоккей и вязать, а не слоняться по Маннерхейминти. Весь тот месяц я играл в «Принца Персии» на новом компьютере. Или читал книжки, чтобы понять, как он работает.
Наконец, в пятницу днем Minix прибыла, и в тот же вечер я ее установил. Для этого пришлось вставить в компьютер поочередно шестнадцать дискет. Все выходные ушли на освоение новой системы. Я разобрался в ее достоинствах и – что важнее – в недостатках. Их я старался компенсировать, перенося домой те программы, к которым привык в университете. Примерно за месяц я обжился полностью.
Эндрю Таненбаум – тот амстердамский профессор, который написал Minix, – хотел, чтобы система оставалась учебным инструментом. Поэтому она была намеренно изуродована. Существовали заплатки – то есть усовершенствования к Minix, в том числе знаменитая заплатка австралийского хакера Брюса Эванса (это был царь и бог Minix 386). С его заплаткой Minix на 386-м становилась намного лучше. Я начал читать телеконференцию по Minix в онлайне еще до покупки нового компьютера, поэтому с самого начала знал, что хочу установить именно усовершенствованную версию Эванса. Но из-за лицензионных ограничений пришлось сначала купить исходную версию Minix, а потом изрядно повозиться, приделывая заплатки Эванса. Это было целое дело.
У меня возникло множество претензий к Minix. Хуже всего была эмуляция терминала, очень важная для меня программа, потому что именно ее я использовал для подключения к университетскому компьютеру. Я зависел от этой эмуляции каждый раз, когда связывался с университетским компьютером, чтобы поработать с мощной Unix-системой или просто выйти в онлайн.
Пришлось писать собственную программу эмуляции. Я peшил не подстраивать ее под Minix, а опираться прямо на аппаратный уровень. Разработка программы позволяла, кроме всего прочего, детально изучить работу 386-го. Как я уже сказал, в Хельсинки стояла зима. У меня был крутой компьютер. Важнее всего было разобраться, что эта машина может, и использовать эти возможности в свое удовольствие.
Поскольку я программировал на голом железе, мне пришлось начать с BIOS – самой первой программы из ПЗУ, с которой начинается загрузка. BIOS начинает считывать информацию либо с дискеты, либо с жесткого диска. Я поместил свою программу на дискету. BIOS считывает первый сектор дискеты и начинает его выполнять. Я впервые работал с PC, и мне надо было разобраться, как все это делается. Все происходит в так называемом «реальном режиме». Но для того чтобы воспользоваться всеми возможностями ЦП и его 32-разрядностью, нужно было войти в «защищенный режим». А для этого нужно задать кучу разных параметров.
Поэтому для построения программы эмуляции терминала таким путем нужно было знать, как работает ЦП. Отчасти именно поэтому я писал на ассемблере – хотел разобраться в ЦП. Еще нужно было знать, как писать на экран, как читать с клавиатуры, как читать с модема и писать на него. (Надеюсь, я еще не распугал тех своих читателей-неспециалистов, которые мужественно отказались перескочить на страницу 142.)
Я хотел иметь два независимых процесса. Один должен был читать информацию с модема и выдавать ее на экран. А другой – читать с клавиатуры и отправлять модему. Для этого я хотел использовать два двусторонних канала. Это называется переключением задач, и аппаратная часть 386-го его поддерживает. Я был в восторге от своего плана.
Моя первая тестовая программа использовала один процесс для выдачи на экран буквы А, а другой – для выдачи буквы В. (Звучит тоскливо – я знаю.) Я запрограммировал это так, чтобы каждую секунду писалось несколько букв. С помощью прерывания по таймеру я сделал так, что сначала экран заполнялся ААААААА. Потом неожиданно буквы сменялись на ВВВВВВВВВ. С практической точки зрения это было абсолютно бессмысленно, но зато становилось очевидно, что переключение работает. На это у меня ушел почти месяц, потому что во всем приходилось разбираться с нуля.
В конце концов я научился переключать процессы (АААААААА и ВВВВВВВ) так, чтобы один читал с модема и писал на экран, а другой – читал с клавиатуры и писал на модем. У меня появилась собственная программа эмуляции терминала.
Когда я хотел почитать новости, я вставлял дискету и перезагружал машину, чтобы с помощью своей программы прочесть новости с университетского компьютера. Если же я хотел внести усовершенствования в пакет эмуляции терминала, я загружал Minix и использовал ее для программирования.
Я был очень горд.
Моя сестра Сара была в курсе моих достижений. Я позвал ее, и она секунд пять посмотрела на мои АААААА и ВВВВВВ, потом сказала: «Хорошо», и ушла, оставшись совершенно равнодушной. Я понял, что это не впечатляет. Никому не объяснишь, что под внешней незатейливостью могут скрываться сложные глубинные процессы. Примерно так же глупо, как демонстрировать кусок дороги, который только что покрыл гудроном. Кажется, я похвастался своими успехами еще только одному человеку – Ларсу. Это был второй шведскоговорящий студент, который специализировался по компьютерным наукам и поступил в один год со мной.
Мне не было дела, стоит на дворе март или апрель, тает снег на Петерсгатан или нет. Большую часть времени я сидел в халате, лихорадочно приникнув к своему новому страховидному компьютеру в комнате с плотными черными шторами на окне, отгороженный от солнечного света и вообще от внешнего мира. Я с трудом наскребал деньги на ежемесячные платежи за свой ПК, которые были рассчитаны на три года. Я еще не знал, что платить мне осталось всего год. А через год я уже буду автором Linux, которую увидят не только Сара и Ларе, а куча разных людей. И Петер Энвин, с которым мы теперь вместе работаем в Transmeta, объявит в Интернете подписку для оплаты моего компьютера.
Все знали, что на Linux я ничего не зарабатываю. Все просто сказали: «А давайте скинемся Линусу на компьютер».
Это было классно.
У меня совершенно не было денег. Мне всегда казалось очень важным не требовать и не просить денег, но когда мне их просто дали… ну слов нет.
Вот так начиналась Linux. С превращения тестовой программы в пакет эмуляции терминала.
Журнал «Red Herring» посылает меня в Финляндию, чтобы я написал об Оулу, новом центре высоких технологий, где, несмотря на отпугивающее местоположение (несколько часов езды от Полярного круга), разместилась 141 начинающая компания. Прекрасная возможность встретиться в Хельсинки с родителями Линуса и сестрой Сарой.
Его отец Нильс (которого все зовут Пике) встречает меня в холле гостиницы «Сокос Ваакуна», напротив вокзала. Он подтянут, носит очки с толстыми стеклами и ленинскую бородку. Недавно у него закончился четырехлетний контракт с финской телерадиовещательной корпорацией, по которому он работал в Москве, и теперь он пишет книгу о России и размышляет, стоит ли принять приглашение на работу в Вашингтоне, который кажется ему неинтересным местом. За несколько месяцев до этого он получил престижную государственную премию в области журналистики, и эта награда, по словам его бывшей жены Анны, «значительно смягчила его».
Ранним вечером он везет меня на своем «Вольво-У40» на экскурсию по заснеженным «линусовским» местам, показывая внушительное здание начальной школы, где учились и отец, и сын, проезжая мимо квартиры бабушки с дедушкой, где Линус провел первые три месяца своей жизни, и мимо дома с видом на парк, где семья жила следующие семь лет. Один год из этих семи – Линусу тогда было пять – Нике провел в Москве: учился коммунизму. Потом он показывает мне бледно-желтое здание, где расположена квартира, в которую Линус с сестрой переехали после развода родителей – на первом этаже там теперь видеомагазин для взрослых вместо магазина электроники, который был во времена детства Линуса. И наконец, мы проезжаем мимо самого внушительного из зданий – пятиэтажного дома, в котором жили бабушка с дедушкой Линуса по материнской линии и где родилась Linux. Мать Линуса Анна по-прежнему живет там. Район напоминает верхнюю часть манхэттенского Ист-Сайда в декабре.
Нике весел, умен и полон самоиронии. У него много общих жестов с сыном – например, они одинаково обхватывают подбородок ладонью во время разговора. И улыбки у них похожие. В отличие от сына, он всю жизнь занимается спортом – социалистическая закалка. Он играет в баскетбол, бегает по восемь километров в день и полюбил по утрам плавать в ледяной озерной воде. В пятьдесят пять у него спортивная походка тридцатипятилетнего. Еще одно отличие от Линуса: у Нике, похоже, бурная личная жизнь.
Мы ужинаем в шумном ресторане в центре Хельсинки, и Нике рассказывает о трудностях, которые Линусу пришлось пережить как сыну суперактивного коммуниста, постоянно выступавшего с речами, а одно время даже занимавшего небольшой общественный пост. Он объясняет, что Линуса часто дразнили из-за радикализма его отца, а некоторым детям даже запрещали с ним играть. Поэтому, говорит Нике, его сын всегда стремился держаться подальше от левого движения, которое было фоном его детства. «Он не давал мне говорить на эти темы. Он выходил из комнаты, – рассказывает Нике. – Или же старался подчеркнуть, что придерживается противоположного мнения. Я знаю, Линуса дразнили в школе из-за меня. Он старался дать мне понять, что я не должен ставить его в такое сложное положение».
Нике привозит меня к себе домой, чтобы угостить пивом. Он живет к северу от делового центра в одном из домов, построенных в 20-е годы для рабочих. Мы поднимаемся по ступенькам в квартиру и снимаем обувь при входе. Жилище выдержано в стиле контркультуры конца 60-х с плетеными абажурами, настенными украшениями и третьего мира, домашними растениями. Мы сидим за кухонным столом, Нике разливает пиво, мы разговариваем о детях. «Не нужно думать, что именно мы делаем детей тем, что они есть», – говорит он, доставая мобильный, чтобы позвонить женщине, с которой живет. Нике замечает, что Линус только сейчас начинает читать исторические книги, которые он подсовывал сыну годами, а прочитать стихи собственного дедушки, вероятно, так и не удосужился. Я спрашиваю Нике, выражал ли он когда-нибудь интерес к программированию, просил ли Линуса объяснить азы. Он отвечает, что никогда этого не делал. Отцы и дети – разные личности, поясняет он. Лезть в увлечение Линуса так же недопустимо, как «посягать на его душу». Похоже, ему нравится быть отцом известного человека. В очерке, напечатанном о Нике после получения премии, приводится его рассказ о том, как – еще когда он забирал Линуса с детской площадки – дети, показывая на него пальцами, кричали: «Смотрите, вон отец Линуса!»
Сара Торвальдс приехала на поезде из маленького городка, расположенного к западу от Хельсинки, где названия улиц пишут сначала на шведском, а потом уже на финском, где у нее хватает денег на квартиру с ванной и сауной и где – к ее радости – на улицах звучит шведская, а не финская речь. Как она объясняет, она относится к меньшинству среди меньшинства: в юности она перешла в католицизм, в результате чего оказалась среди 10 процентов нелютеранского населения Финляндии и вынудила своего агностика отца на несколько недель отречься от нее.
Она сегодня приехала в Хельсинки учить детей катехизису в рамках финансируемой правительством программы. Мила, жизнерадостна и в свои двадцать девять искренностью и серьезностью напоминает деловую старшеклассницу. Светлая кожа – и круглое лицо делают ее смутно похожей на старшего брата, но очевидно, что она гораздо общительнее его: во время нашего разговора она все время перекидывается текстовыми сообщениями с друзьями, с которыми наметила встретиться в тот же день. Она с успехом руководит собственным бюро переводов.
Полдень, и Сара везет меня пообедать с матерью, останавливаясь по дороге в разных памятных ей с детства местах: Кошачий парк, начальная школа. «Мои родители были членами коммунистической партии, поэтому в детстве нам внушали, что Советский Союз – хорошая страна. Мы ездили в Москву, – рассказывает она. – Мне больше всего запомнился огромный магазин игрушек – в Хельсинки таких больших нет». Когда родители развелись, ей было шесть лет. «Помню, как нам сказали, что папа теперь всегда будет жить отдельно. Я тогда подумала – вот хорошо, ссоры кончатся. Вообще-то он подолгу жил в Москве, поэтому мы привыкли, что он уезжает», – говорит Сара. В десять она решила переехать к отцу, в город Эспоо, расположенный неподалеку от Хельсинки, а не жить с матерью и Линусом. «Не то чтобы я не хотела жить с мамой. Я просто не хотела жить с Линусом. После этого мы с ним ссорились только по выходным. А обычно мы ссорились все время. И только когда мы стали старше, мы постепенно стали меньше ссориться».
Мы заезжаем к Анне Торвальдс в ее квартиру на первом этаже, и она радостно встречает нас. Все зовут ее Микке. Она не дает мне снять обувь по финскому обычаю: «Что за глупости! Здесь все равно грязно. Хуже уже не будет». Она невысокая, темноволосая, схватывает все на лету. Через несколько секунд после нашего приезда звонит телефон. Агент по недвижимости хочет показать мне свободную квартиру неподалеку от Микке, чтобы я мог описать ее Линусу и передать ему материалы о ней на случай, если тот захочет купить эту квартиру, чтобы иметь собственное пристанище в Хельсинки. Мы входим в просторную квартиру, где агент – вылитая Аннет Бенине в «Красоте по-американски» – велит нам перед осмотром надеть на обувь синие тряпичные тапочки. Вскоре она нарочито бодрым тоном заявляет: «А вот эта комната – идеальное место для хранения старинных произведений искусства, которым опасен солнечный свет». Микке смотрит на меня заговорщически и ехидно говорит: «Какой изящный способ сообщить, что это темная комната!»
Получив свои рождественские и «деньрожденные» деньги, я принял грандиозное экономическое решение купить компьютер за 18 тысяч марок, что составляло примерно три с половиной тысячи долларов. Такой суммы у меня и в помине не было, поэтому я хотел купить компьютер в кредит, заплатив исходно треть стоимости. Реально компьютер стоил 15 тысяч марок. Остальное набегало за три года в качестве процентов на кредит.
Я пришел в один из маленьких компьютерных магазинчиков семейного типа – папин-мамин, хотя в моем случае он был просто папин. Производитель меня особо не волновал, поэтому я выбрал безымянный серый блок. Мне показали прайс-лист и список типа «шведского стола»: какие имеются ЦП, жесткие диски, память. Мне нужна была мощность. Я хотел 4 мегабайта ОЗУ вместо двух и 33 мегагерца. Конечно, я мог бы обойтись 16, но нет, мне был нужен самый крутой вариант.
Ты говорил, что тебе нужно, и они все это собирали. Звучит дико в эру Интернета и курьерской доставки. Мне сказали прийти за ним через три дня, но эти три дня тянулись, как целая неделя. 5 января я попросил папу помочь привезти мою покупку домой.
У компьютера не было не только имени, но и каких-либо примечательных черт. Простой серый системный блок. Этот компьютер я выбрал не за внешний вид. Это была тоскливая на вид машина с четырнадцатидюймовым экраном, самая дешевая крутая модель, которую я смог найти. Говоря «крутая», я имею в виду, что такой мощный компьютер мало у кого был. Не то чтобы это была чисто функциональная страхолюдина, типа микроавтобуса «Вольво». Но суть в том, что мне нужна была надежная машина и чтобы дополнения к ней – которые мне неизбежно понадобятся – было легко купить.
На компьютере была установлена урезанная версия DOS. Я же хотел работать с Minix, разновидностью Unix, поэтому я сделал заказ и ждал почти месяц, пока моя покупка доберется до Финляндии. Учебник по Minix продавался в книжном магазине, но поскольку на саму операционку спрос был маленький, то ее надо было заказывать через тот же книжный. Она стоила 169 долларов, плюс налоги, плюс затраты на конвертацию, плюс всякое-разное. В то время я считал это грабежом. Честно говоря, и сейчас так считаю. Месяц ожидания прошел для меня, как шесть лет. Я мучился еще больше, чем когда месяцами копил деньги на компьютер.
Дело было в самый разгар зимы. Выбираясь из своей берлоги во внешний мир, я каждый раз рисковал, что меня столкнет в снег какая-нибудь старушка, которой бы лучше сидеть дома и варить щи или смотреть по телику хоккей и вязать, а не слоняться по Маннерхейминти. Весь тот месяц я играл в «Принца Персии» на новом компьютере. Или читал книжки, чтобы понять, как он работает.
Наконец, в пятницу днем Minix прибыла, и в тот же вечер я ее установил. Для этого пришлось вставить в компьютер поочередно шестнадцать дискет. Все выходные ушли на освоение новой системы. Я разобрался в ее достоинствах и – что важнее – в недостатках. Их я старался компенсировать, перенося домой те программы, к которым привык в университете. Примерно за месяц я обжился полностью.
Эндрю Таненбаум – тот амстердамский профессор, который написал Minix, – хотел, чтобы система оставалась учебным инструментом. Поэтому она была намеренно изуродована. Существовали заплатки – то есть усовершенствования к Minix, в том числе знаменитая заплатка австралийского хакера Брюса Эванса (это был царь и бог Minix 386). С его заплаткой Minix на 386-м становилась намного лучше. Я начал читать телеконференцию по Minix в онлайне еще до покупки нового компьютера, поэтому с самого начала знал, что хочу установить именно усовершенствованную версию Эванса. Но из-за лицензионных ограничений пришлось сначала купить исходную версию Minix, а потом изрядно повозиться, приделывая заплатки Эванса. Это было целое дело.
У меня возникло множество претензий к Minix. Хуже всего была эмуляция терминала, очень важная для меня программа, потому что именно ее я использовал для подключения к университетскому компьютеру. Я зависел от этой эмуляции каждый раз, когда связывался с университетским компьютером, чтобы поработать с мощной Unix-системой или просто выйти в онлайн.
Пришлось писать собственную программу эмуляции. Я peшил не подстраивать ее под Minix, а опираться прямо на аппаратный уровень. Разработка программы позволяла, кроме всего прочего, детально изучить работу 386-го. Как я уже сказал, в Хельсинки стояла зима. У меня был крутой компьютер. Важнее всего было разобраться, что эта машина может, и использовать эти возможности в свое удовольствие.
Поскольку я программировал на голом железе, мне пришлось начать с BIOS – самой первой программы из ПЗУ, с которой начинается загрузка. BIOS начинает считывать информацию либо с дискеты, либо с жесткого диска. Я поместил свою программу на дискету. BIOS считывает первый сектор дискеты и начинает его выполнять. Я впервые работал с PC, и мне надо было разобраться, как все это делается. Все происходит в так называемом «реальном режиме». Но для того чтобы воспользоваться всеми возможностями ЦП и его 32-разрядностью, нужно было войти в «защищенный режим». А для этого нужно задать кучу разных параметров.
Поэтому для построения программы эмуляции терминала таким путем нужно было знать, как работает ЦП. Отчасти именно поэтому я писал на ассемблере – хотел разобраться в ЦП. Еще нужно было знать, как писать на экран, как читать с клавиатуры, как читать с модема и писать на него. (Надеюсь, я еще не распугал тех своих читателей-неспециалистов, которые мужественно отказались перескочить на страницу 142.)
Я хотел иметь два независимых процесса. Один должен был читать информацию с модема и выдавать ее на экран. А другой – читать с клавиатуры и отправлять модему. Для этого я хотел использовать два двусторонних канала. Это называется переключением задач, и аппаратная часть 386-го его поддерживает. Я был в восторге от своего плана.
Моя первая тестовая программа использовала один процесс для выдачи на экран буквы А, а другой – для выдачи буквы В. (Звучит тоскливо – я знаю.) Я запрограммировал это так, чтобы каждую секунду писалось несколько букв. С помощью прерывания по таймеру я сделал так, что сначала экран заполнялся ААААААА. Потом неожиданно буквы сменялись на ВВВВВВВВВ. С практической точки зрения это было абсолютно бессмысленно, но зато становилось очевидно, что переключение работает. На это у меня ушел почти месяц, потому что во всем приходилось разбираться с нуля.
В конце концов я научился переключать процессы (АААААААА и ВВВВВВВ) так, чтобы один читал с модема и писал на экран, а другой – читал с клавиатуры и писал на модем. У меня появилась собственная программа эмуляции терминала.
Когда я хотел почитать новости, я вставлял дискету и перезагружал машину, чтобы с помощью своей программы прочесть новости с университетского компьютера. Если же я хотел внести усовершенствования в пакет эмуляции терминала, я загружал Minix и использовал ее для программирования.
Я был очень горд.
Моя сестра Сара была в курсе моих достижений. Я позвал ее, и она секунд пять посмотрела на мои АААААА и ВВВВВВ, потом сказала: «Хорошо», и ушла, оставшись совершенно равнодушной. Я понял, что это не впечатляет. Никому не объяснишь, что под внешней незатейливостью могут скрываться сложные глубинные процессы. Примерно так же глупо, как демонстрировать кусок дороги, который только что покрыл гудроном. Кажется, я похвастался своими успехами еще только одному человеку – Ларсу. Это был второй шведскоговорящий студент, который специализировался по компьютерным наукам и поступил в один год со мной.
Мне не было дела, стоит на дворе март или апрель, тает снег на Петерсгатан или нет. Большую часть времени я сидел в халате, лихорадочно приникнув к своему новому страховидному компьютеру в комнате с плотными черными шторами на окне, отгороженный от солнечного света и вообще от внешнего мира. Я с трудом наскребал деньги на ежемесячные платежи за свой ПК, которые были рассчитаны на три года. Я еще не знал, что платить мне осталось всего год. А через год я уже буду автором Linux, которую увидят не только Сара и Ларе, а куча разных людей. И Петер Энвин, с которым мы теперь вместе работаем в Transmeta, объявит в Интернете подписку для оплаты моего компьютера.
Все знали, что на Linux я ничего не зарабатываю. Все просто сказали: «А давайте скинемся Линусу на компьютер».
Это было классно.
У меня совершенно не было денег. Мне всегда казалось очень важным не требовать и не просить денег, но когда мне их просто дали… ну слов нет.
Вот так начиналась Linux. С превращения тестовой программы в пакет эмуляции терминала.
Журнал «Red Herring» посылает меня в Финляндию, чтобы я написал об Оулу, новом центре высоких технологий, где, несмотря на отпугивающее местоположение (несколько часов езды от Полярного круга), разместилась 141 начинающая компания. Прекрасная возможность встретиться в Хельсинки с родителями Линуса и сестрой Сарой.
Его отец Нильс (которого все зовут Пике) встречает меня в холле гостиницы «Сокос Ваакуна», напротив вокзала. Он подтянут, носит очки с толстыми стеклами и ленинскую бородку. Недавно у него закончился четырехлетний контракт с финской телерадиовещательной корпорацией, по которому он работал в Москве, и теперь он пишет книгу о России и размышляет, стоит ли принять приглашение на работу в Вашингтоне, который кажется ему неинтересным местом. За несколько месяцев до этого он получил престижную государственную премию в области журналистики, и эта награда, по словам его бывшей жены Анны, «значительно смягчила его».
Ранним вечером он везет меня на своем «Вольво-У40» на экскурсию по заснеженным «линусовским» местам, показывая внушительное здание начальной школы, где учились и отец, и сын, проезжая мимо квартиры бабушки с дедушкой, где Линус провел первые три месяца своей жизни, и мимо дома с видом на парк, где семья жила следующие семь лет. Один год из этих семи – Линусу тогда было пять – Нике провел в Москве: учился коммунизму. Потом он показывает мне бледно-желтое здание, где расположена квартира, в которую Линус с сестрой переехали после развода родителей – на первом этаже там теперь видеомагазин для взрослых вместо магазина электроники, который был во времена детства Линуса. И наконец, мы проезжаем мимо самого внушительного из зданий – пятиэтажного дома, в котором жили бабушка с дедушкой Линуса по материнской линии и где родилась Linux. Мать Линуса Анна по-прежнему живет там. Район напоминает верхнюю часть манхэттенского Ист-Сайда в декабре.
Нике весел, умен и полон самоиронии. У него много общих жестов с сыном – например, они одинаково обхватывают подбородок ладонью во время разговора. И улыбки у них похожие. В отличие от сына, он всю жизнь занимается спортом – социалистическая закалка. Он играет в баскетбол, бегает по восемь километров в день и полюбил по утрам плавать в ледяной озерной воде. В пятьдесят пять у него спортивная походка тридцатипятилетнего. Еще одно отличие от Линуса: у Нике, похоже, бурная личная жизнь.
Мы ужинаем в шумном ресторане в центре Хельсинки, и Нике рассказывает о трудностях, которые Линусу пришлось пережить как сыну суперактивного коммуниста, постоянно выступавшего с речами, а одно время даже занимавшего небольшой общественный пост. Он объясняет, что Линуса часто дразнили из-за радикализма его отца, а некоторым детям даже запрещали с ним играть. Поэтому, говорит Нике, его сын всегда стремился держаться подальше от левого движения, которое было фоном его детства. «Он не давал мне говорить на эти темы. Он выходил из комнаты, – рассказывает Нике. – Или же старался подчеркнуть, что придерживается противоположного мнения. Я знаю, Линуса дразнили в школе из-за меня. Он старался дать мне понять, что я не должен ставить его в такое сложное положение».
Нике привозит меня к себе домой, чтобы угостить пивом. Он живет к северу от делового центра в одном из домов, построенных в 20-е годы для рабочих. Мы поднимаемся по ступенькам в квартиру и снимаем обувь при входе. Жилище выдержано в стиле контркультуры конца 60-х с плетеными абажурами, настенными украшениями и третьего мира, домашними растениями. Мы сидим за кухонным столом, Нике разливает пиво, мы разговариваем о детях. «Не нужно думать, что именно мы делаем детей тем, что они есть», – говорит он, доставая мобильный, чтобы позвонить женщине, с которой живет. Нике замечает, что Линус только сейчас начинает читать исторические книги, которые он подсовывал сыну годами, а прочитать стихи собственного дедушки, вероятно, так и не удосужился. Я спрашиваю Нике, выражал ли он когда-нибудь интерес к программированию, просил ли Линуса объяснить азы. Он отвечает, что никогда этого не делал. Отцы и дети – разные личности, поясняет он. Лезть в увлечение Линуса так же недопустимо, как «посягать на его душу». Похоже, ему нравится быть отцом известного человека. В очерке, напечатанном о Нике после получения премии, приводится его рассказ о том, как – еще когда он забирал Линуса с детской площадки – дети, показывая на него пальцами, кричали: «Смотрите, вон отец Линуса!»
Сара Торвальдс приехала на поезде из маленького городка, расположенного к западу от Хельсинки, где названия улиц пишут сначала на шведском, а потом уже на финском, где у нее хватает денег на квартиру с ванной и сауной и где – к ее радости – на улицах звучит шведская, а не финская речь. Как она объясняет, она относится к меньшинству среди меньшинства: в юности она перешла в католицизм, в результате чего оказалась среди 10 процентов нелютеранского населения Финляндии и вынудила своего агностика отца на несколько недель отречься от нее.
Она сегодня приехала в Хельсинки учить детей катехизису в рамках финансируемой правительством программы. Мила, жизнерадостна и в свои двадцать девять искренностью и серьезностью напоминает деловую старшеклассницу. Светлая кожа – и круглое лицо делают ее смутно похожей на старшего брата, но очевидно, что она гораздо общительнее его: во время нашего разговора она все время перекидывается текстовыми сообщениями с друзьями, с которыми наметила встретиться в тот же день. Она с успехом руководит собственным бюро переводов.
Полдень, и Сара везет меня пообедать с матерью, останавливаясь по дороге в разных памятных ей с детства местах: Кошачий парк, начальная школа. «Мои родители были членами коммунистической партии, поэтому в детстве нам внушали, что Советский Союз – хорошая страна. Мы ездили в Москву, – рассказывает она. – Мне больше всего запомнился огромный магазин игрушек – в Хельсинки таких больших нет». Когда родители развелись, ей было шесть лет. «Помню, как нам сказали, что папа теперь всегда будет жить отдельно. Я тогда подумала – вот хорошо, ссоры кончатся. Вообще-то он подолгу жил в Москве, поэтому мы привыкли, что он уезжает», – говорит Сара. В десять она решила переехать к отцу, в город Эспоо, расположенный неподалеку от Хельсинки, а не жить с матерью и Линусом. «Не то чтобы я не хотела жить с мамой. Я просто не хотела жить с Линусом. После этого мы с ним ссорились только по выходным. А обычно мы ссорились все время. И только когда мы стали старше, мы постепенно стали меньше ссориться».
Мы заезжаем к Анне Торвальдс в ее квартиру на первом этаже, и она радостно встречает нас. Все зовут ее Микке. Она не дает мне снять обувь по финскому обычаю: «Что за глупости! Здесь все равно грязно. Хуже уже не будет». Она невысокая, темноволосая, схватывает все на лету. Через несколько секунд после нашего приезда звонит телефон. Агент по недвижимости хочет показать мне свободную квартиру неподалеку от Микке, чтобы я мог описать ее Линусу и передать ему материалы о ней на случай, если тот захочет купить эту квартиру, чтобы иметь собственное пристанище в Хельсинки. Мы входим в просторную квартиру, где агент – вылитая Аннет Бенине в «Красоте по-американски» – велит нам перед осмотром надеть на обувь синие тряпичные тапочки. Вскоре она нарочито бодрым тоном заявляет: «А вот эта комната – идеальное место для хранения старинных произведений искусства, которым опасен солнечный свет». Микке смотрит на меня заговорщически и ехидно говорит: «Какой изящный способ сообщить, что это темная комната!»