Я создаю (бесплатную) операционную систему (просто хобби, ничего профессионального уровня gnu) для 386(486) AT-клонов. С подобным я вожусь уже с апреля, скоро будет готово. Я хотел бы получить любые отзывы о том, что вам нравится и не нравится в minix, поскольку моя ОС её немного напоминает (то же физическое размещение файловой системы (по практическим соображениям) среди прочего).
Я уже портировал bash(1.08) и gcc(1.40), и всё, похоже, работает. То есть уже через несколько месяцев у меня получится что-то с практическим применением, и мне хотелось бы знать, какие функции понадобятся. Принимаются все предложения, хотя я не обещаю, что их выполню :-)
Линус (torvalds@kruuna.helsinki.fi)
PS. Да — в ней нет никакого кода из minix, у неё многопоточная файловая система. Она НЕ портируема (использует переключение задач 386 итд), и, наверное, никогда не будет поддерживать что-либо, кроме жёстких дисков AT, но это всё, что у меня есть :-(.»
Поздним вечером 25 августа 1991 года Линус Торвальдс оставил это сообщение в группе новостей
comp.os.minix
. Линусу на тот момент был 21 год, он учился в Хельсинском университете в Финляндии. 25 лет спустя операционная система, которую пишет Линус и ещё десяток тысяч разработчиков, управляет работой миллиардов устройств по всему миру: от крошечных микроконтроллеров, одноплатных компьютеров и смартфонов до огромных суперкомпьютеров на тысячи, сотни тысяч, миллионы ядер.На изображении: дискеты, на которых записаны одни из самых первых версий Linux, фото Симона Рамбла.
Unix
Если речь заходит про внутреннее устройство Linux, то неизбежно начинается разговор про соответствие принципам Unix. Зачем подражать, почему нельзя просто использовать Unix? И что это вообще за стандарты? Для ответа на этот вопрос нужно копнуть чуть глубже, в конец шестидесятых.
В 1968—69 годах в воздухе Bell Labs витала неопределённость: проект операционной системы с разделением времени Multics (Multiplexed Information and Computing Service) медленно заходил в тупик. Новая система должна была предоставить разделение времени, то есть позволять нескольким людям пользоваться машиной одновременно. На тот момент распространённой практикой был запуск программ одна за другой.
В конце концов, American Telephone & Telegraph вышла из совместного с General Electric и МТИ проекта, в который за пять лет были вложены миллионы долларов. Некоторые из инженеров, работавших над Multics — Кен Томпсон, Деннис Ритчи, Малкольм Дуглас Макилрой, Джозеф Оссанна, — ощущали необходимость в продолжении работы над подобным проектом и не хотели терять успевшую сформироваться уютную рабочую атмосферу. Группа начала работу над новым проектом. На бумаге были сделаны наброски файловой системы и основ операционной системы. В работе помогли два факта: найденный в лаборатории экземпляр мини-ЭВМ PDP-7 и временный холостяцкий статус Томпсона, жена которого на месяц уехала к родителям показать новорождённого сына.
Само название операционки родилось из шутки коллеги, который указал, что ОС может поддерживать лишь одного пользователя — Томпсона. Было логично считать её Un-multiplexed Information and Computing Service, откуда и получилось Unics. Позже слово превратилось в Unix.
Томпсон (сидит) и Ритчи работают на PDP-11, 1972 год.
Unix заложила то, что сегодня воспринимается как должное. Набор этих правил и норм называют «философией Unix». Разработчики пишут программы, которые делают что-то одно, но хорошо. Программы работают вместе и используют для общения текстовые потоки как универсальный интерфейс. Файловая система поддерживает поддиректории, а отдельные устройства представляются в виде специальных файлов. Остались не только принципы, но и простейшие утилиты, писавшиеся под системы без мониторов. В составе почти любой Unix-подобной системы есть текстовый редактор ed, изначально создававшийся для работы с телетайпом.
Годами Unix развивалась, выходили новые версии, появлялись новые функции. Система взрослела и начала напоминать что-то серьёзное. В 1973—74 годах исследовательским отчётом система засветилась для внешнего мира. Посыпались запросы на копию софта.
Но участь операционки диктовалась правовым положением AT&T. В обмен на фактическую монополию в сегменте телефонной связи компании было запрещено продавать продукты, не связанные с телефонами и телекоммуникациями. Исходники Unix было можно получить за плату, но поддержки не было. Годами презентации исследователей Bell Labs на конференциях включали слайд с гордым: «Без рекламы, без поддержки, без багфиксов, плата вперёд».
Заинтересованные не считали Unix законченным продуктом, поскольку помощи извне ждать было бессмысленно. А исходники помогали в вопросах исправления багов. Достать магнитозаписи с исправлениями и поделиться своими можно было в группе Usenix, чем с энтузиазмом и занимались последователи. К середине 1970-х годов сформировалось что-то, отдалённо напоминающее современное сообщество открытого программного обеспечения.
Linux
Систему переписывали, она развивалась, от неё отпочковывались другие проекты. Одним из клонов Unix была Minix. Это учебная операционная система Эндрю Таненбаума, которую он в 1987 написал для иллюстрации учебника «Операционные системы: разработка и реализация». И эта книга попала в руки нашего молодого студента.
Для начала работы над Linux тоже были свои причины. Главная из них — отсутствие адекватного свободного клона Unix на начало 1991 года. Да, был проект GNU. Прикладные программы писались и развивались. Возникали проблемы лишь с ядром Hurd, которое и по сей день не достигло допустимой стабильности.
Ещё был проект Berkeley Software Distribution на основе шестого издания Unix. Но на начало девяностых BSD находился в режиме судебных разбирательств между AT&T и Калифорнийским университетом. Код AT&T исключили из проекта, и потомки 386BSD и 4.4BSD-Lite продолжают жить в виде OS X, FreeBSD и ряда других операционных систем. Суд закончится лишь в январе 1994 года, куда позже описываемых событий. Как говорил сам Линус, если бы тогда 386BSD уже была доступна, проект Linux никогда бы не увидел свет.
Попавшая в руки Торвальдса Minix разрабатывалась для совместимости с микрокомпьютерами IBM PC. Изначально эта операционка писалась на 8088, но позднее её портировали на Intel 80386. Линус не пылал особой любовью к продукции Intel. За плечами у него был опыт программирования на Sinclair QL, старшем брате ZX Spectrum, а ещё раньше он сидел за Commodore Vic-20. На этих компьютерах он написал несколько программ, к примеру, клон Pac-Man. Отчасти из-за Minix Торвальдс решил обзавестись машинкой стандарта «пи-си».
Линус жил дома с матерью, поэтому из кредита на образование удалось выкроить немного денег. После Рождества (которое тоже сулило дополнительные денежные знаки на руки) 5 января 1991 года Торвальдс купил ПК с процессором Intel 386 DX33, 4 МБ ОЗУ и жёстким диском на 40 МБ. Ещё через полгода Линус купил математический сопроцессор для операций с плавающей запятой. Сделал он это исключительно ради обеспечения совместимости разрабатываемого продукта, эмуляция его вполне устраивала.
Дискеты с Minix пришли лишь через несколько месяцев. Поэтому Линус первое время убивал время в играх типа Prince of Persia под MS-DOS. А ещё он изучал архитектуру процессора своей новой машины. Торвальдс запускал два процесса, один из которых выводил на экран букву A, другой B. Затем Торвальдс заставлял задачи переключаться по таймеру. На экране появлялись последовательности вида AAAA BBBB. Так не особо продуктивно прошли первые месяцы.
Мелкий эксперимент с выводом символов был важен. Линус понял, что у него получилось. Он поменял два процесса, чтобы они вели себя как простейший пакет эмулятора терминала. Один считывал ввод с клавиатуры, посылал их на модем, другой читал с модема и посылал на экран. Для всего этого потребовались драйверы клавиатуры, текстового режима VGA, последовательного порта, чтобы получать и читать новости из университета. О стандарте POSIX, который описывает взаимодействие между операционной системой и прикладными программами, Торвальдс разузнал летом того же года. Линус продолжал работу: появлялся драйвер диска, файловая система, пакет эмуляции улучшался.
Если операционная система есть, то у неё должно быть имя. Сам автор хотел назвать проект Freax и полгода хранил файлы под этим именем. Но, как мы знаем, название получилось иным. Как и в случае с Unix, идею названия операционки заложил не автор. Ари Леммке, один из работников университета, общался с Линусом. Он проявлял интерес к проекту Торвальдса и выделил студенту папку на FTP-сервере вуза
ftp.funet.fi
. Путь к ней звучал как /pub/os/linux
. Имя каталога Леммке придумал самостоятельно, не спрашивая Линуса. Хоть Торвальдс и боялся показаться эгоистом, который на всё лепит своё имя, но название закрепилось.Здравствуйте, меня зовут Ричард Столлман, и я произношу Linux как GNU/Linux
Боюсь, что максимум 64 задачи (и одна для планировщика свопинга) вне зависимости от того, насколько они маленькие. Такая она фрагментация — оно так управляется. Похоже, что на данный момент 64 МБ [памяти на процесс] более чем достаточно, но 64 задачи — это немного тесновато. Наверное, я сделаю ограничения легкоизменяемыми (скажем, 32 МБ /128 задач) всего лишь перекомпиляцией ядра. Хотя не завидую тому, кто вызовет >64 процессов :-)
Линус
Первые версии выходили буквально для нескольких любителей и распространялись под собственной лицензией Линуса, которая запрещала коммерческое использование. На быстро развивающееся, но голое ядро были натянуты утилиты из проекта GNU: компилятор языка C, Bash и т. д. Версия 0.99 вышла в декабре 1992 года и уже под лицензией GNU GPL.
С самого начала Linux представляла собой лишь ядро системы. Ключевые утилиты для работы были взяты из GNU, что даже отразилось в спорах об имени получившейся операционки.
Сегодня под словом Linux люди и организации имеют в виду даже не этот набор утилит GNU и ядра, а огромное семейство дистрибутивов. За двадцать пять лет появилось огромное, кажется даже, избыточное множество сборок одной и той же операционки. Свободная натура ОС и огромной библиотеки открытого софта допускает, что любой желающий может собрать свою систему и распространять её.
Операционная система Android, которая живёт на смартфонах и планшетах, но иногда встречается на экзотике уровня умных телевизоров, тоже имеет в глубине себя Linux. Есть множество дистрибутивов, составляющих альтернативу Windows и OS X на настольных компьютерах и ноутбуках. Но это лишь самые очевидные для обывателя способы потрогать «пингвина» вживую. Linux управляет миллионами веб-серверов и разнообразных сетевых устройств по всему миру, которые обеспечивают работу Интернета. Linux можно встретить в самых неожиданных устройствах: это медицинское оборудование, умные часы, датчики и Интернет вещей, мейнфреймы и суперкомпьютеры.
За двадцать пять лет масштаб разработки сильно изменился. Сегодня Linux пишет не один Торвальдс. Целое сообщество разработчиков вносит свои исправления и реализует новые функции. И часть из них является сотрудниками компаний, задачей которых иногда является не только внесение правок в ядро, но и написание прикладного софта. Коммитеры-волонтёры становятся редкостью. Их быстро нанимают компании, где эти люди часто продолжают вносить такой же вклад в развитие ядра. Сегодня независимые разработчики ядра — это настоящий дефицит, их всего 7,7 %.
Хотя кому-то может не нравиться утеря любительского статуса, сегодня Linux является мощным профессиональным открытым проектом, которому помогают и от которого получают пользу корпорации транснационального масштаба. Согласно данным Linux Foundation, с момента отслеживаемости в Git в Linux внесли вклад 13,5 тыс. разработчиков и 1300 компаний. В среднем в час принимается 7,8 исправлений, то есть 187 изменений в сутки или 1310 в неделю.
Оригинальное ядро версии 0.01 состояло из каких-то 10 тысяч строк кода. Сегодня такой объём пишется за несколько суток. 25 лет усилий разработчиков по всему миру сильно изменили масштабы и значимость продукта, который начинался как любительский проект финского студента.
Комментарии (23)
SicYar
25.08.2016 09:15+11Есть отличная книга, Just For Fun, рассказывающая более подробно, со слов Линуса как все начиналось и как все продолжалось. Если вдруг найдутся те, кто не знаком с данным произведением, маст хэв так сказать для понимания идеологии и настроения создания.
uSasha
25.08.2016 12:34+2Самые классные в ней это первая и последняя главы и они совсем не про Linux :)
wellprog
25.08.2016 09:19+5Поздавляю всех с этой знаменательной датой. Linux — который начался просто просто как поделка just for fun, ну и просто для самоудовлетворения на сегодняшний день является одной из 3-х основных систем, которые развивают мир, и неизвестно что бы было если бы уважаемый Линус этого не сделал.
teamfighter
25.08.2016 12:45+3##Зануда_mode_on:
Линукс это не ОС, это ядро.
##Зануда_mode_off
А вообще обеими лапами поддерживаю поздравления)
izzholtik
25.08.2016 10:29+1Боюсь, что максимум 64 задачи (и одна для планировщика свопинга) вне зависимости от того, насколько они маленькие. Такая она фрагментация — оно так управляется.
Перевод цитат просто восхитителен.
ptica_filin
25.08.2016 11:07+3ftp.funet.fi до сих пор жив)
Только пусть немного изменили. В папке linux попадаются файлы аж 92-го года. здорово.Vespertilio
25.08.2016 22:05+2Похоже что есть даже то самое оригинальное ядро версии 0.01 и версия 0.99 под лицензией GNU GPL.
ptica_filin
26.08.2016 12:35Интересно, можно ли его как-то запустить и на чём :)
a5b
26.08.2016 16:36http://superuser.com/questions/306218/how-to-run-linux-0-01
Read the release notes on the page you linked to and read The Linux Kernel 0.01 Commentary. You'll need a machine with a floppy drive, a legacy IDE controller (or a pretty good imitation), a hard drive you can repartition at will, old compiler and assembler versions, and probably some low-level knowledge to hack around hardware quirks that Linux 0.01 couldn't imagine. Note that that document was written in 2003, and as much has changed from 2003 to 2011 as between 1994 and 2003.
Есть достаточно неплохой симулятор "386 simulator such as Bochs", но с эмулируемым оборудованием не все ясно.
Самый старый дистрибутив debian в архиве — 1995 года (http://archive.debian.org/debian/dists/Debian-0.93R6/), уже на ядре 1.2.13.
На oldlinux.org есть 0.91 beta http://www.oldlinux.org/Linux.old/distributions/debian/debian/ (1994). Там же образы с старыми ядрами под qemu: http://www.oldlinux.org/Linux.old/qemu-images/ Linux 0.11 — пост автора — http://virtuallyfun.superglobalmegacorp.com/2010/08/13/linux-0-00-0-11-on-qemu/
Remember that Linux 0.11 is OLD. At this point it didn’t support multiple users, nor did it even have a shutdown or reboot command. Instead we all ran ‘sync’ a dozen times, then pulled the plug. Also it was VERY unstable, and quite prone to panics and crashes…
Linux 0.00 — http://virtuallyfun.superglobalmegacorp.com/wordpress/wp-content/uploads/2010/08/Linux-00-under-Qemu.jpg
Linux 0.11 — http://virtuallyfun.superglobalmegacorp.com/wordpress/wp-content/uploads/2010/08/Linux-0.11-on-Qemu.jpg
perfect_genius
25.08.2016 11:15+3Надеюсь, лет через 10 увидим подобные статьи здесь по ReactOS и KolibriOS =)
junkerSchmidt
26.08.2016 12:39Недавно была статья, где говорилось что-то вроде: «вот де, разработчики софта такие-сякие, не хотят мэйнтейнить мой любимый дистрибутив». И не удивительно. С таким-то разнообразием различных «OS». Да бог с ними, с дистрибутивами. Взять тот же KDE. Кто-то, конечно, двумя кулаками за. Я вот, за 7 лет, пытался-пытался, да плюнул на этот DE. Подход меняли, АПИ меняли, интерфейс меняли… Gnome не лучше. С одной стороны, в этом и сила «открытости»: не понравилось — да ну всех на… Я тут ща «свою ОСь напишу». С другой…
Здесь забавная аналогия на ум приходит. Рассмотрим одежду. Вот вы вроде бы статичны (более-менее): рост, обхват груди, талии и т.д. А производители — это как «open source community» — возьмут, да и свои стандарты (АПИ) поменяют. Вы идете в магазин, заказываете ту же модель брюк (рубашки, обуви...), покупаете, — бац! не подходит. Либо слишком большие брюки, либо обувь жмет. А потому что вам никто ничего не обещал. Не нравится — рядом другой магазин есть.
hzs
25.08.2016 15:52Нет повода не выпить, коллеги.
Даже если мы пишем всего лишь прикладной софт, а не пилим ядро.
balsoft
25.08.2016 16:49+1Поздравляю, братья-красноглазики! Выпьем же
кефираза дальнейшее процветание Линукса!
engine9
25.08.2016 23:42Интересно аналогичные проекты есть у внеземных цивилизаций? И как у них вообще организованы вычислительные машины, наверное программисты продали бы свою бабушку лишь бы узнать что-то подобное.
mydogandi
26.08.2016 12:41Да ничего сложного. В 1997, если правильно помню, один американский учёный даже написал вирус для бортовой ЭВМ инопланетного корабля.
vdonich
26.08.2016 12:39+2состояло из каких-то 10 тысяч строк кода. Сегодня такой объём пишется за несколько суток.
Можно и больше, можно и быстрее.
Только такая фигня получается…
EndUser
Вот чем люди занимались вместо путча ;-)
sergarcada
Он устроил свой маленький «путч» в мире операционных систем :)
kontnoor
Скорее, революцию
zooks
Такая же мысль, пока в России одни баламуты выводили танки, а другие выводили людей — где-то в Финляндии тихо и незаметно создавалось будущее IT.