Linux существует уже более 20 лет и успешно выполняет функции как настольного компьютера, так и сервера. Но это не появилось в одночасье. Linux — это результат многолетнего сотрудничества множества людей.
Чтобы понять Linux, вам придется вернуться к моменту рождения Unix. В 1969 году Деннис Ритчи и Кен Томпсон, пара программистов из Bell Labs, захотели продолжить исследования операционных систем. Bell Labs участвовала в Multics, исследовательском проекте, в котором участвовали MIT и GE, по созданию операционной системы, предоставляющей информационную полезность. Идея во многом напоминала то, что сейчас называют «облачными вычислениями», но в 1960-х годах это был эквивалент операционной системы Duke Nukem Forever, и разработка шла медленно. Bell Labs вышла из проекта, оставив Томпсона и Ритчи без той среды программирования, которую они использовали в Multics.
Они использовали PDP-7 компании Digital Equipment Corporation, которая уже тогда считалась устаревшей, для реализации гораздо более простых систем. Его назвали Unics, игра слов на Multics. Multics расшифровывалась как Multiplexed Information and Computing Service, и поскольку их система была более простой и «кастрированной» версией, ее назвали Uniplexed Information and Computing Service. Позже название было сокращено до Unix.
Тем не менее, Unix распространялась в Bell Labs со скоростью лесного пожара. Одним из главных нововведений была возможность отправлять выходные данные одной программы на вход другой, что позволяло программистам создавать приложения на основе уже существующих программ, таких как LEGO. Другой была идея переопределить Unix на языке C, изобретенном Ричи и Брайаном Керниганами. C — это язык высокого уровня, который может использовать любой компьютер с компилятором. Раньше операционные системы разрабатывались на языке ассемблера и разрабатывались для конкретного компьютера. Переписывание Unix на C позволило ей стать универсальной операционной системой, способной работать на разных компьютерах с минимальными изменениями.
Эта система распространилась за пределы Bell Labs, когда Томпсон и Ритчи опубликовали о ней статью в престижном журнале компьютерных наук Communications of the ACM. AT&T, материнская компания Bell Labs, бесплатно передала его университетам, поскольку ему было запрещено использовать его на нетелефонных рынках.
Одним из университетов, получивших эту систему, был Калифорнийский университет в Беркли, где программисты быстро начали вносить изменения, поскольку система поставлялась с исходным кодом. Эта система получила название BSD, или Berkeley Software Distribution, и она включала в себя некоторые инновации, такие как интеграция TCP/IP и различные другие утилиты.
Тем временем AT&T начала еще активнее защищать свою интеллектуальную собственность. Программисту лаборатории искусственного интеллекта Массачусетского технологического института Ричарду Столлману это не понравилось, и он начал проект GNU, что означает «Gnu’s Not Unix», в качестве бесплатной замены. Столлман объяснил свои доводы в манифесте:
Я считаю, что золотое правило требует: если мне нравится программа, я должен поделиться ею с другими людьми, которым она нравится. Продавцы программного обеспечения хотят разделить пользователей и завоевать их, заставляя каждого пользователя соглашаться не делиться с другими. Я отказываюсь таким образом нарушать солидарность с другими пользователями. Я не могу с чистой совестью подписать соглашение о неразглашении или лицензионное соглашение на программное обеспечение. В течение многих лет я работал в Лаборатории искусственного интеллекта, чтобы противостоять таким тенденциям и прочему негостеприимству, но в конце концов они зашли слишком далеко: я не мог оставаться в учреждении, где такие вещи делают для меня против моей воли.
Столлман нанимал программистов для создания бесплатных (как в речи, так и в пиве) программ, которые поставлялись с исходным кодом, и явно давал программистам разрешение изменять и распространять свои улучшенные версии. Последним элементом, который оказался трудным, было ядро, или самое сердце операционной системы.
В то же время профессор информатики по имени Эндрю Таненбаум написал книгу об операционных системах, которая заменила более раннюю книгу Джона Лайонса, которая включала полный исходный код более ранней версии Unix и комментарии. Таненбаум создал бесплатную замену, которую назвал Minix, и включил ее в свою книгу.
Одним из многих людей, использовавших Minix, был финский аспирант по имени Линус Торвальдс, который хотел изучить микропроцессор 386, поэтому ради развлечения решил написать собственное ядро, спроектированное так же, как системы Unix, к которым он привык. Вот как он объявил об этом в Usenet в конце 1991 года:
Я делаю (бесплатную) операционную систему (просто хобби, не будет такой большой и профессиональной, как gnu) для клонов 386(486) AT. Это назревало с апреля и начинает готовиться. Я хотел бы получить любые отзывы о том, что людям нравится/не нравится в minix, поскольку моя ОС чем-то напоминает его (среди прочего, такое же физическое расположение файловой системы (по практическим соображениям)).
Когда это было объединено с инструментами GNU, это оказалось мощной системой, способной конкурировать с Windows и Mac OS (которая теперь основана на Unix). Если вы посмотрите на историю Linux, то станет ясно, что у Линуса были довольно большие гиганты, на плечах которых он стоял.
Фото предоставлено: Википедия, Мартин Штрайхер (фото Линуса Торвальдса), Сэм Уильямс (фото Столлмана)