(С) Костромин В.А., март 2005 г.
Линуксцентр| Назад | Оглавление | Вперед |
![]() |
|
Рис. 8. Линус Торвальдс. |
Линус Бенедикт Торвальдс (Linus Benedict Torvalds) родился 28 декабря 1969 года. Его дед по материнской линии, Лео Вальдемар Тёрнквист был профессором статистики в Университете Хельсинки. В 1981 он купил компьютер Commodore VIC-20. Это был первый компьютер, к которому Линус получил доступ - он помогал деду набивать программы, которые профессор старательно писал на бумаге, потому что не привык делать это непосредственно за компьютером. На этом же компьютере Линус написал свою первую программу - это была традиционная "Hello, World!". Когда дед умер, компьютер достался Линусу. Следующие 4 года он провел за компьютером. Когда он выжал из VIC-20 все, что смог, он стал копить деньги на модель следующего поколения. Основным источником средств на покупку компьютера были школьные стипендии, которые Линукс ежегодно получал как лучший математик. В 1987 году он купил Sinclair QL. В этом компьютере был установлен 32-разрядный процессорный чип 68008 компании Motorola с частотой 8 мегагерц. Sinclair имел 128 килобайт (не мегабайт!) памяти, что по тем временам было очень много для домашнего компьютера. У VIC-20, на смену которому он пришел, было всего три с половиной килобайта. В качестве операционной системы использовалась Q-DOS.
Именно в это время Торвальдс заинтересовался работой операционной системы. Как он пишет сам в книге "Just for fun": "Операционками я заинтересовался так: купил флоппи-контроллер, ... но к нему прилагался такой поганый драйвер, что пришлось написать новый. Пока писал - обнаружил проколы в самой операционной системе или по крайней мере несоответствие между тем, что обещала документация, и тем, что реально происходило. Я с этим столкнулся, когда моя программа отказалась работать."
На Sinclair QL Торвальдс работал 3 года. За это время он написал собственный редактор и ассемблер, запрограммировал несколько игр. По окончании школы он поступил на отделение компьютерных наук университета г.Хельсинки, столицы Финляндии. После окончания первого курса Торвальдс был вынужден был пойти в армию, где прослужил 11 месяцев. По возвращении из армии он снова вернулся в университет, выбрал себе курсы на осень и с нетерпением ждал лекций по языку Си и системе Unix. В предвкушении этих лекций еще летом он купил книгу "Проектирование и реализация операционных систем" Эндрю С. Таненбаума, в которой описывалась операционная система Minix. В своих воспоминаниях Линус пишет: "Как только я прочел предисловие, познакомился с концепцией Unix и узнал, на что способна эта мощная, строгая и красивая операционная система, я захотел купить такой компьютер, на котором сможет работать Unix. Я решил, что поставлю себе Minix - единственную по-настоящему полезную из известных мне версий."
2 января 1991 года Линус приобрел в рассрочку новый компьютер, на основе процессора Intel 80386 с 4 мегабайтами ОЗУ и тактовой частотой 33 мегагерца. Он установил на него Minix, которую пришлось заказывать отдельно. Она поставлялась на 16-ти дискетах. Примерно за месяц Торвальдс обжился в системе полностью и у него возникло множество претензий к этой ОС, несмотря на то, что установил в систему усовершенствования, сделанные австралийским хакером Брюсом Эвансом (это был царь и бог Minix 386). Хуже всего была эмуляция терминала, очень важная для Торвальдса программа, потому что именно ее он использовал для подключения к университетскому компьютеру MicroVAX, на котором стояла Ultrix - вариант Unix, созданный корпорацией Digital Equipment. Пришлось писать собственную программу эмуляции.
Когда программа эмуляции терминала заработала, возникла новая проблема. Как пишет Торвальдс "Беда была в том, что я хотел скачивать и закачивать файлы. То есть мне нужно было уметь писать на диск. Для этого моей программе эмуляции нужен был драйвер дисковода. А еще ей был нужен драйвер файловой системы, чтобы она могла вникать в организацию диска и записывать скачиваемые файлы. ... разработка драйверов для дисковода и файловой системы казалась интересным делом. И я решил им заняться. Написал драйвер дисковода. А поскольку я хотел записывать файлы в файловую систему Minix, да к тому же эта система была хорошо документирована, я сделал свою файловую систему совместимой с системой Minix. Таким образом я мог читать файлы, созданные в Minix, и писать файлы на тот же диск, так что Minix могла читать файлы, созданные моей программой эмуляции терминала."
В Minix не только была плохая эмуляция терминала, но и не было возможности перевести в фоновый режим программу, которой временно не пользуешься. И тут Торвальдс уже практически взялся за создание собственной операционной системы. Вначале он пытался просто программировать один за другим системные вызовы. Но их около двухсот и эта работа скоро наскучила. Тогда он изменил подход. Он взял оболочку bash, котоорая свободно распространялась в Интернет, и начал пытаться заставить ядро своей ОС запустить ее. Когда на этапе загрузки или запуска оболочка обращалась к какому-то системному вызову, происходил сбой. Тогда Линукс реализовывал необходимый системный вызов и повторял попытку. Наконец, в конце августа или начале сентября 1991 года, оболочка заработала. Это был очень важный момент. Как только оболочка заработала, удалось откомпилировать еще несколько программ. Оболочка была сложнее, чем, к примеру, программа копирования ср или команда выдачи листинга каталогов ls. В какой-то момент готовых компонент оказалось столько, что настал момент, когда можно было сказать, что заложены основы новой операционной системы.
25 августа 1991 года Линус Торвальдс направил первое сообщение о своей разработке в группу новостей comp.os.minix (смотри листинг 2).
В другом послании (от 26 августа 1991 г.) Линус впервые сообщает о том, что он собирается придерживаться лицензии GNU: "Даже тогда она, вероятно, не будет способна делать много больше того, что может minix, а во многих отношениях просто много меньше. Но она будет открыта (возможно, в соответствии с лицензией GNU или подобной)". Впрочем, это только небольшое попутное замечание, решение о том, на каких условиях будет распространяться Linux, будет сделано не сразу, и не сразу это будет GPL.
В своей книге "Just for fun" Л.Торвальдс пишет, что версия 0.01 была выпущена 17 сентября 1991 года. Снова приведу цитату из книги Торвальдса:
"И вот я решился ее выложить.
Я не делал публичных объявлений, а просто написал пятерым-десятерым хакерам
на личные адреса, что она лежит на FTP-сайте. В числе прочих я написал
знаменитому среди фанатов Minix Брюсу Эвансу и Ари Лемке. Я выложил исходники
самой Linux и еще несколько бинарников, чтобы можно было хоть что-то делать.
Я сказал, что нужно, чтобы запустить все это хозяйство. На машине должна была
стоять Minix (версия 386) и нужен был компилятор GCC. Причем на самом деле
нужна была моя версия GCC, поэтому ее я тоже выложил.
Не думаю, чтобы ту версию проверяло больше одного-двух человек. Для этого
нужно было возиться с установкой специального компилятора, выделить пустой
раздел, чтобы использовать его для загрузки, откомпилировать мое ядро и
запустить оболочку. А кроме запуска оболочки, делать было особенно нечего.
Можно было распечатать исходники - всего 10 000 строк.
Я стал распространять свою операционку прежде всего, чтобы доказать,
что все это не пустая болтовня - я действительно что-то сделал. В Интернете
много болтают. О чем бы ни шла речь - об операционке или о сексе - многие в
киберпространстве просто вешают лапшу на уши. Поэтому важно после того как
ты растрезвонил, что пишешь операционку, иметь возможность сказать:
"Вот - я ее и правда сделал. Я не трепло - можете сами посмотреть".
Название "Linux" новая система получила следующим образом. Самого Торвальдса несколько смущало созвучие этого названия с его именем, поэтому он пытался назвать свою разработку FREAX. Это название можно обнаружить в файле kernl/Makefile версии 0.11, и в исходных кодах других программ. Но Ари Лемке, который предоставил место для выкладывания системы на FTP сайте, назвал каталог pub/OS/Linux. И это название закрепилось за новой ОС.
Версия 0.02 Linux появилась 5 октября 1991 г. Она сопровождалась следующим известным заявлением Торвальдса:
Листинг 3. Сообщение о выходе версии 0.02.
Тот факт, что Линус выложил код своей ОС в Интернет, был решающим в дальнейшей судьбе Linux. Хотя в 1991 году Интернет еще не был так широко распространен, как в наши дни, зато пользовались им в основном люди, имеющие достаточную техническую подготовку. И уже с самого начала Торвальдс получил несколько заинтересованных откликов.
Примерно в феврале 1992 года Линус высказал просьбу ко всем, кто уже пользовался или тестировал Linux, прислать ему открытку. Таких открыток было получено несколько сотен со всех концов света - из Новой Зеландии, Японии, Нидерландов, США. Это говорило о том, что Linux начала приобретать некоторую известность.
Получил Торвальдс отзыв и от Андрю Таненбаума, автора MINIX. К сожалению, отзыв этот был довольно недоброжелательный. В своем письме Таненбаум писал: "Я все же придерживаюсь той точки зрения, что использование монолитного ядра в 1991 году является фундаментальной ошибкой. Радуйтесь тому, что вы не мой студент. У меня вы не получили бы высокой оценки за такую работу :-)"
Линус позже признавался, что это был самый тяжелый момент в истории его занятий Linux. Все же Таненбаум был знаменитым профессором и все, что он говорил, заслуживало внимания. Но в отношении Linux профессор был не прав, а Линус был упрямым парнем и не мог просто так признать себя неправым. К тому же Таненбаум озаглавил свое письмо "Linux устарела" и опубликовал его в телеконференции, что сильно задело Линуса, так как ему показалось, что оно подрывает его социальный статус, которым он очень дорожил. И Торвальдс ответил Таненбауму достаточно резко:
Листинг 4. Из ответа Л.Торвальдса на письмо Э.Таненбаума.
">для меня MINIX - хобби, которым я занимаюсь по вечерам >Моя основная работа - преподавание и >исследования в области операционных систем. Вы хотите этим оправдать ограниченность minix? Извините, но вы не правы. У меня оправданий гораздо больше, и все-таки linux побеждает minix почти по всем параметрам. Не говоря уж о том, что большая часть хороших кодов для minix, похоже, написана Брюсом Эвансом. Re 1: Для вас minix хобби - но ведь minix приносит доход, a linux раздается бесплатно. Теперь по поводу хобби. Поместите minix в свободный доступ, и одна из моих главных претензий к ней отпадет. Linux для меня в большой степени хобби (серьезное хобби, самого высшего сорта). Я не беру за нее денег, и она даже не является частью моей учебной работы. Я сделал ее в свободное время на собственной машине. Re 2: Вы работаете преподавателем и исследователем. Прекрасное объяснение для умственной неполноценности minix. Остается надеяться, что Amoeba не такая фигня, как minix. >1. МИКРОЯДРО ИЛИ МОНОЛИТ Да, linux - монолитная система, и я согласен, что микроядро лучше. Если бы у вашего сообщения не был такой спорный заголовок, я бы, вероятно, согласился с большинством ваших высказываний. С теоретической (и эстетической) точки зрения linux проигрывает. Если бы ядро GNU было готово прошлой весной, я бы и не взялся за свою разработку: беда в том, что оно не было готово тогда и не готово до сих пор. Linux выигрывает прежде всего потому, что она уже готова. >MINIX - система с микроядром [пропущено, но без >потери смысла] . LINUX - монолитная система. Если бы это было единственным критерием качества ядра, вы были бы правы. Однако вы не пишете о том, что микроядро в minix сделано плохо и возникают проблемы с многозадачностью (в ядре). Если бы я сделал ОС, у файловой системы которой были бы проблемы с многозадачностью, я бы не стал так поспешно осуждать других: наоборот, я бы из кожи вон лез, чтобы все забыли о моем провале. Да, я знаю, что для minix есть масса заплаток, обеспечивающих многопоточную работу, но это лишь заплатки, и Брюс Эванс говорит, что все равно остается множество проблем синхронизации." |
Линус говорит, что спор с создателем Minix вскоре перешел в обмен личными посланиями - перепалка была слишком резкой, чтобы вести ее публично. Несколько месяцев было тихо. Потом Таненбаум прислал Линусу ссылку на пятистрочное объявление в журнале "Byte" о выпуске коммерческой версии Linux. "В своем последнем сообщении Эндрю спрашивал, этого ли я хотел - чтобы кто-то продавал мой труд. Я ему ответил коротко: "Да", и больше он мне не писал", - рассказывает Линус.
Более подробно с перепиской Линуса Торвальдса, Андрю Таненбаума,
Теда Тсо (Ted T'so), Дэвида Миллера и других участников этого спора вы
познакомиться, если перейдете по следующим ссылкам
"Linux is Obsolete",
obsolete.
С полным текстом можно также ознакомиться по адресу:
http://groups.google.com/groups?threadm=12595%40star.cs.vu.nl.
Тем временем работа над Linux продолжалась. В таблице 1 приведены основные вехи этого первого этапа развития Linux.
Таблица 1. Развитие Linux от версии 0.01 до 1.0.
|
Версия |
Дата выхода |
Комментарий |
|---|---|---|
|
0.01 |
17.09.1991 |
Несколько драйверов устройств и драйвер диска, (бинарных) программ не было |
|
0.03 |
26.10.1991 |
Уже могла использоваться, включала оболочку shell, компилятор языка C и несколько утилит |
|
0.10 |
12.1991 |
Это все еще не более, чем скелет Linux. Поддерживала только жесткий диск от AT, не имела программы login (сразу загружалась оболочка bash). |
|
0.11 |
12.1991 |
Версия 0.11 обеспечивала поддержку многонациональных клавиатур, включала драйвер флоппи-дисковода, поддержку VGA, EGA, Hercules и т.д. Системой стали по-настоящему пользоваться несколько человек. |
|
0.12 |
05.01.1992 |
Первая версия, которая распространялась под лицензией GPL. Включала возможность свопинга ОП на диск. Именно в январе 1992 г. пользоваться Linux стали не только те немногочисленные энтузиасты, с которыми у Торвальдса уже сложились постоянные контакты, но и сотни неизвестных ему людей. |
|
0.96 |
04.1992 |
Нумерация версий была изменена и версия 0.96 следовала сразу за 0.12. Первая версия, способная запускать систему X Window. |
|
0.99.14 |
12.1993 |
Серия 0.99 имела много под-версий, пока Linux не добралась до версии 1.0 |
|
1.0 |
16.04.1994 |
Выход релиза 1.0 после более чем двух лет развития |
Первоначально Линус Торвальдс не хотел продавать свою разработку. И не хотел, чтобы ее продавал кто-то другой. Это было четко прописано в уведомлении об авторских правах, помещенном в файл COPYING самой первой версии - 0.01. Причем требование Линуса налагало значительно более жесткие ограничения на распространение Linux, чем те, которые провозглашались в лицензии GNU: не разрешалось взимать никаких денег за передачу или использование Linux. Но уже в феврале 1992 г. к нему стали обращаться за разрешением брать плату за распространение дискет с Linux, чтобы покрыть временные затраты и стоимость дискет. Кроме того, необходимо было считаться и с тем, что при создании Linux использовалось множество свободно распространяемых по Интернету инструментов, самым важным из которых был компилятор GCC. Авторские права на него оговорены в Универсальной общественной лицензии (GPL), которую изобрел Ричард Столман. Торвальдсу пришлось пересмотреть свое заявление об авторских правах, и, начиная с версии 0.12 он тоже перешел на использование лицензии GPL.
Весной 1992 года Орест Збровски сумел перенести под Linux систему X Window. Обмен информацией между сервером и клиентам в этой системе осуществляется с помощью сокетов, или, точнее, Unix Domain Sockets. Этот же способ используется для передачи информации в Интернет. Поэтому, как пишет Торвальдс, "мы с большим воодушевлением принялись разрабатывать сети для Linux поверх этих самых Domain Sockets, хотя они вовсе не были для этого предназначены. Я был настолько уверен, что все получится, что даже сделал скачок в нумерации версий. В марте 1992 года я планировал выпустить версию 0.13. А вместо этого, получив графический интерфейс пользователя, уверился, что мы на 95% достигли цели - выпуска полноценной, надежной операционной системы, пригодной к тому же для работы в сети. И поэтому выпустил версию 0.95." Но разработка сетевой подсистемы оказалась делом значительно более сложным, чем это казалось вначале. Поэтому пришлось использовать трехуровневую систему нумерации.
Для появившихся к этому времени коммерческих компаний, продававших Linux, было очень важно, чтобы была наконец выпущена версия Linux с номером 1.0. Это имело значение скорее по психологическим, чем по технологическим причинам: кому хочется торговать операционной системой версии 0.96? Поэтому в конце концов и Линус Торвальдс согласился выпустить версию 1.0, когда почувствовал, что система стала наконец работоспособной. Университет Хельсинки предоставил для проведения презентации Linux 1.0 главную аудиторию факультета информатики. Презентация была проведена 16 апреля 1994 года с большой помпой. Репортаж об этом событии даже показали по финскому телевидению.
С самых ранних этапов существования Linux в развитие системы вносили свой вклад очень многие добровольные помощники, которые посвящали свое время, умения и усилия развитию и совершенствованию Linux. В следующей табличке перечислены только некоторые из них.
Таблица 2. Вклад добровольных помощников в развитие Linux.
|
Вернер Альмесбергер (Werner Almesberger) |
Драйверы флоппи-дисководов, LILO |
|
Теодор Тсо (Theodore Ts'o) |
Файловая система Ext2, библиотеки, kernel memory allocator, множество предложения по достижению совместимости со стандартом POSIX |
|
Дональд Беккер (Donald Becker) |
Сетевые драйверы (позже - Beowulf) |
|
Олаф Кирч (Olaf Kirch) |
Руководство по сетевому администрированию Linux, код NFS. |
| Пол Гортмейкер (Paul Gortmaker) |
Разработал множество частей кода ядра, среди которых драйвер реального времени (Real Time Clock driver). Он также занимался разработкой сетевых драйверов (NE-2000 и других) и написал "Linux Ethernet HOWTO" и "Boot-Prompt HOWTO". |
|
Питер Мак-Дональд (Peter McDonald) |
Поддержка загружаемых модулей в ядре версии 0.99 (хотя в современных ядрах эта поддержка осуществляется другим способом). |
Конечно, эти люди проделали гораздо больше работы, чем сказано в этой табличке. И, кроме перечисленных, было огромное число людей, которые в этой табличке не указаны, но которые внесли свой вклад в развитие Linux. Вначале к разработке присоединились сотни, потом тысячи, потом сотни тысяч добровольных помощников. Система уже не была просто игрушкой для хакеров. Дополненная массой программ, разработанных в рамках проекта GNU, Linux был уже пригоден для практического использования. А то, что ядро системы распространялось под лицензией GNU General Public License, гарантировало, что исходные коды системы были и останутся свободными, то есть могут копироваться, изучаться и модифицироваться без опасения нарваться на какое-либо преследование со стороны разработчика или какой-то коммерческой фирмы. И это привлекало в ряды пользователей и сторонников Linux все новых последователей, в первую очередь из числа студентов и программистов.
К этому времени сфорировалась отдельная телеконференция в Интернете, посвященная Linux, - comp.os.linux. Энтузиасты образовали множество групп пользователей и в начале 1994 г. вышел первый номер журнала "Linux Journal". Linux привлекла внимание промышленных фирм и несколько небольших компаний начали разрабатывать и продавать собственные версии Linux.
Самые первые версии Linux, появившиеся в 1991 году, размещались на двух дискетах. Первая дискета была загрузочной и содержала ядро, а вторая - корневую файловую систему и основные утилиты. Копии этих дискет можно было загрузить с сервера университета в Хельсинки. Конфигурирование и настройка системы производились вручную и были очень сложными. Поэтому до появления первых дистрибутивов установить Линукс на свой компьютер мог только достаточно подготовленный специалист, можно сказать эксперт в UNIX.
Положение изменилось после появления так называемых дистрибутивов. Дистрибутив Linux отличается от простого набора пакетов программного обеспечения в первую очередь наличием программы инсталляции, которая позволяет рядовому пользователю установить систему на свой компьютер, причем сделать это не привлекая высококвалифицированного эксперта. Если попытаться дать формальное определение дистрибутива, то получится что-то вроде:
Дистрибутив Linux – это набор пакетов программного обеспечения, включающий базовые компоненты операционной систем (в том числе, ядро Linux), некоторую совокупность программных приложений и программу инсталляции, которая позволяет установить на компьютер пользователя операционную систему GNU/Linux и набор прикладных программ, необходимых для конкретного применения системы.
Первые дистрибутивы Linux появились вскоре после того, как Линус Торвальдс выпустил разработанное им ядро Linux под лицензией GPL. Поскольку значительная часть другого необходимого программного обеспечения уже была разработана в рамках проекта GNU, отдельные программисты (и группы программистов) начали разрабатывать как программы инсталляции, так и другие прикладные программы, пользовательский интерфейс, программы управления пакетами и выпускать свои дистрибутивы Linux.
Первый дистрибутив Linux был создан Оуэном Ле Бланк (Owen Le Blanc) в Манчестерском компьютерном центре (Manchester Computing Centre, MCC) в Англии. Первый релиз этого дистрибутива, получившего имя MCC Interim Linux, стал доступен для всех желающих с ftp-сервера Манчестерского университета в феврале 1992 г. Примерно в то же время сотрудниками университета Техаса был создан дистрибутив TAMU.
В октябре 1992 появился разработанный Питером Мак-Дональдом (Peter McDonald) дистрибутив Softlanding Linux System (SLS), который был первым дистрибутивом, включающим в себя такие элементы, как X Window System и поддержка TCP/IP.
Ни один из этих дистрибутивов не имел хорошей поддержки. В конце 1992 года Патрик Фолькердинк (Patrick Volkerding) выпустил дистрибутив, в значительной части основанный на SLS, который он назвал "Slackware" и который является старейшим дистрибутивом из тех, которые до сих пор активно развиваются.
На основе дистрибутива Slackware германской фирмой S.U.S.E (акроним от немецкого "Software- und System Entwicklung"), основанной в 1992 году как консультативная группа по ОС UNIX, был создан дистрибутив SuSE Linux, версия 1.0 которого вышла в 1994 году. Позже SuSE интегрировал дистрибутив Jurix Флориана Ла Роше (Florian La Roche).
Еще один проект по разработке дистрибутива, Debian, был начат Яном Мёрдоком (Ian Murdock) 16 августа 1993 года как альтернатива коммерческим дистрибутивам Linux. Ян хотел создать систему, распространяемую абсолютно свободно и открыто, в духе Linux и GNU. Позже разработка Debian была профинансирована проектом GNU: Free Software Foundation, который выделил деньги на один год, с ноября 1994 по ноябрь 1995, что позволило Я.Мердоку в течение этого периода уделять проекту Debian все свое время.
Дистрибутив Red Hat, который включал в себя некоторые аспекты дистрибутива Bogus (например, механизм пакетов), был основан в 1994 году. На основе Red Hat было создано множество других дистрибутивов, в том числе многие коммерческие дистрибутивы, например, Caldera, Mandrake и TurboLinux.
А Линус Торвальдс к этому времени еще даже не окончил учебу в университете!
| Назад | Оглавление | Вперед |