Информационные технологииStfw.Ru 🔍
🕛

Linux 25 лет

«Привет всем пользователям minix - «Привет всем пользователям minix -  Я создаю (бесплатную) операционную систему (просто хобби, ничего профессионального уровня gnu) для 386(486) AT-клонов.
«Привет всем пользователям minix - 

Я создаю (бесплатную) операционную систему (просто хобби, ничего профессионального уровня 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 лет усилий разработчиков по всему миру сильно изменили масштабы и значимость продукта, который начинался как любительский проект финского студента.

Также по теме:
Вне компьютерной темы.