"Just for fun. Рассказ нечаянного революционера" - читать интересную книгу автора

Посвящается Туве, Патриции, Даниеле и Селесте. Я всегда мечтал быть в окружении молодых женщин — благодаря вам моя мечта сбылась.

Посвящается Тиа и Кейли. Как же я счастлив!

В этом посвящении нельзя не упомянуть некоторые важные имена. Вот они:

Мы благодарим нашего редактора Адриана Закхайма, который всегда чутко откликался на наши потребности; Эрин Ричнов, помощницу редактора в Harper Collins, которая больше нас самих была в курсе этого проекта; наших агентов Билла Глэдстоуна из Waterside Productions и Криса Дала из ICM, которые присылали нам чеки с неимоверной скоростью; Саре Торвальдс, у которой самая лучшая память в Финляндии и Скандинавии и которая владеет тремя языками, а также Вильяма и Руфь Даймонд, которые прочитали рукопись, постоянно приговаривая: «Нет, совсем неплохо»

VIII

From: torvaldsSklaava.Helsinki.Fi (Linus Benedict Torvalds)

To: Newsgroups: comp.os.inix

Subject: Чего вам больше всего не хватает в minix?

Summary: небольшой опрос для моей операционной системы Message-ID: lt;[email protected];

Привет всем пользователям minix! Я тут пишу (бесплатную) операционную систему (любительскую версию — она не будет такой большой и профессиональной, как gnu) для 386-х и 486-х AT. Я вожусь с этим с апреля, и она, похоже, скоро будет готова. Напишите мне, кому что нравится/не нравится в minix, поскольку моя ОС на нее похожа (кроме всего прочего, у нее — по практическим соображениям — то же физическое размещение файловой системы).

Пока что я перенес в нее bash (1.08) и gсс (1.40) , и все вроде работает. Значит, в ближайшие месяцы у меня получится уже что-то работающее, и мне бы хотелось знать, какие функции нужны большинству. Все заявки принимаются, но выполнение не гарантируется : -)

Линус ([email protected])

PS. Она свободна от кода minix и включает мультизадачную файловую систему. Она НЕ переносима (используется переключение задач 386 и пр.) и, возможно, никогда не будет поддерживать ничего, кроме АТ-винчестеров — потому что у меня больше ничего нет : — (.

Наиболее рьяные энтузиасты Minix встрепенулись. Мне прислали не так много заявок по поводу ее функций, но зато были другие сообщения.

gt;Расскажи поподробней! Ей нужен MMU?

Ответ: да

gt;Какая часть написана на Си? Какие будут трудности

gt;при переносе? Кто тебе поверит про машинную

gt;зависимость ;-) , я вот хочу ее перенести к себе на

gt;Amiga.

Ответ: она в основном написана на Си, но многие скажут, что это не настоящий Си. В ней использованы все особенности 386-го, которые я смог обнаружить, потому что хотел попутно разобраться в его работе. Некоторые из моих файлов на Си сильно смахивают на ассемблер.

Как я уже писал, она использует MMU как для страничной подкачки (пока не на диск), так и для сегментации. Именно из-за сегментации она ПО-НАСТОЯЩЕМУ зависит от 386-го (у каждой задачи есть 64-мегабайтный сегмент для кода и данных — максимум 64 задачи на 4 Гб. Если нужно больше 64 Мб на задачу — будут проблемы).

Несколько человек даже предложили стать бета-тестерами.

В итоге разместить ее в Интернете было просто естественно. Я привык обмениваться программами именно так. Поэтому вопрос был только один — на каком этапе я решусь показать ее людям? Или точнее: когда она будет достаточно готова, чтобы мне нечего было стыдиться?

Вообще-то мне хотелось иметь компилятор и настоящую среду, чтобы можно было писать программы прямо в Linux, без помощи Minix. Но я был так горд, когда у меня заработала оболочка gnu, что был готов всем это показать. И еще мне хотелось получить отклики.

К тому моменту, как заработала оболочка, у меня было несколько элементарных бинарников, которые я скомпилировал для операционки. Делать с ними пока было особенно нечего, но уже было видно, что система похожа на Unix. На самом деле она работала, как увечная Unix.

И вот я решился ее выложить. Я не делал публичных объявлений, а просто написал пятерым-десятерым хакерам на личные адреса, что она лежит на FTP-сайте. В числе прочих я написал знаменитому среди фанатов Minix Брюсу Эвансу и Ари Лемке. Я выложил исходники самой Linux и еще несколько бинарников, чтобы можно было хоть что-то делать. Я сказал, что нужно, чтобы запустить все это хозяйство. На машине должна была стоять Minix (версия 386) и нужен был компилятор GCC. Причем на самом деле нужна была моя версия GCC, поэтому ее я тоже выложил.

Существуют правила нумерации версий. Это вопрос психологический. Когда вы считаете, что программа по-настоящему готова — это версия 1.0. А до этого вы нумеруете версии так, чтобы было видно, сколько еще предстоит потрудиться до выпуска 1.0. Из этих соображений я положил на FTP-сайт версию 0.01. Чтобы все знали, что она мало на что пока годится.

Эту дату я хорошо помню: 17 сентября 1991 года.

Не думаю, чтобы ту версию проверяло больше одного-двух человек. Для этого нужно было возиться с установкой специального компилятора, выделить пустой раздел, чтобы использовать его для загрузки, откомпилировать мое ядро и запустить оболочку. А кроме запуска оболочки, делать было особенно нечего. Можно было распечатать исходники — всего 10 000 строк, т.е. меньше ста страниц, если печатать мелким шрифтом. (Сейчас там уже порядка 10 миллионов строк.)

Я стал распространять свою операционку прежде всего, чтобы доказать, что все это не пустая болтовня — я действительно что-то сделал. В Интернете много болтают. О чем бы ни шла речь — об операционке или о сексе — многие в киберпространстве просто вешают лапшу на уши. Поэтому важно после того как ты растрезвонил, что пишешь операционку, иметь возможность сказать: «Вот — я ее и правда сделал. Я не трепло — можете сами посмотреть».

Ари Лемке, который организовал для нее РТР-сайт, невзлюбил название Fгеах. Ему больше нравилось другое рабочее название, которое я использовал — Linux. Поэтому он назвал мой каталог pub/OS/Linux. Признаюсь — я не особенно сопротивлялся. Но инициатива была его. Поэтому я могу честно — или почти честно — сказать, что не был нескромным. Я тогда подумал, а что — хорошее название, и всегда можно будет на кого-нибудь свалить. Что я и делаю.

Как я уже говорил, моя операционка была не очень полезной. Она легко рушилась, если переполнить память или еще что-то не так сделать. Даже если вы ничего плохого не делали, система рушилась после более-менее продолжительного периода работы. Она тогда и не предназначалась для работы. На нее можно было только любоваться. И восхищаться ею.

То есть просто экспонат для группы людей, которые интересуются разработкой операционных систем. Для горстки технарей с узкой специализацией.

Реакция была неизменно положительная, но при этом так же неизменно звучало: «А вот хорошо бы она еще это делала» или «Смотрится классно, но на моем компьютере не работает» .

Помню одно сообщение, где говорилось, что автору очень понравилась моя операционка, он не меньше абзаца описывал, какая она классная. Потом объяснял, что она только чтоуничтожила его жесткий диск и что мой драйвер дисковода с придурью. Даже потеряв все свои файлы, он все равно был настроен очень положительно. Такие сообщения было читать очень приятно. Это был отчет об ошибках в программе, которая все у него вверх дном перевернула.

Именно таких сообщений я и ждал. Я исправил кое-какие глюки (например, система перестала зависать, когда кончалась память). И еще я сделал большой шаг вперед — перенес в нее компилятор GCC, так что можно было компилировать небольшие программы. Теперь пользователям не нужно было перед запуском операционки загружать мой компилятор GCC.