Краткая история GNU\LINUX
Точкой отсчёта начала истории ОС Linux следует считать появление операционной системы Unix в 1969-м году в США в фирме Bell Laboratories, подразделении компании AT&T. Unix стала основой для множества операционных систем промышленного\корпоративного уровня.
Linux обязан своей жизнью двум проектам — GNU и Minix.
История проекта GNU началась в сентябре 1983-го года. Основоположник проекта GNU, Ричард Столлман (Richard M. Stallman) работал в это время в лаборатории искусственного разума Массачусетского технологического института (Massachusetts Institute of Technology, MIT, Cambridge, Massachusetts). Столлмана называют одним из самых выдающихся программистов нашего времени.
В той среде, к которой принадлежал Столлман, было принято свободно обмениваться программами и их исходными кодами. Лицензия же на Unix от AT&T, к примеру, стоила 40 000 баксов. Позволить себе приобрести её могли только достаточно огромные компании. А без обладания лицензией, программер не имел права использовать исходные коды системы в собственных разработках. Это препятствовало обмену идеями в сфере программирования и очень тормозило процесс создания программ, потому что вместо того, чтобы позаимствовать готовый кусок кода для решения той или другой задачи, разработчик программы был должен писать эту часть кода заново.
Столлман решил поменять это положение вещей в программировании. В 1983-м году он объявил о начале разработки проекта GNU, целью которого было создание полностью открытой операционной системы:
Четверг, 27 сентября 1983 г., 12:35:59 EST
Свободный Unix!
После Дня Благодарения я начинаю писать Unix-совместимую программную систему GNU (Gnu’s Not Unix), которую буду предоставлять свободно(!) всем, кто может её использовать. Нужна помощь в виде времени, средств, программ и оборудования.
GNU будет содержать ядро плюс все утилиты, нужные для того, чтобы писать и запускать программы на Cи: редактор, оболочку, компилятор Cи, линкер, ассемблер и ещё несколько вещей. После этого будут добавлены программа форматирования текста, YACC, игра Empire, электронная таблица и сотки других вещей. Мы надеемся включить всё, что обычно поставляется с Unix-системами, и всё, что ещё может оказаться полезным, в том числе онлайновую и печатную документацию.
GNU будет способна запускать программы Unix, но не будет идентична Unix. Мы будем вносить в систему улучшения, основываясь на нашем опыте работы с другими операционными системами…
Аббревиатура GNU расшифровывается как «GNU — это не Unix» (GNU is Not Unix). Unix всегда была несвободным ПО, другими словами она лишает собственных юзеров свободы сотрудничества, также контроля над своими компьютерами (как Windows в наши дни). Чуть позже Столлман написал свой узнаваемый Манифест GNU, который стал основой для лицензии GPL (GNU General Public License). Роль этой лицензии нельзя переоценить, она изменила всю компьютерную индустрия.
Основная идея GPL состоит в том, что пользователь должен обладать следующими 4-мя правами (или 4-мя свободами):
Правом запускать программу для всех целей (свобода 0)-
Правом учить устройство программы и приспосабливать её к своим потребностям (свобода 1), что предполагает доступ к исходному коду программы-
Правом распространять программу, имея возможность помочь другим (свобода 2)-
Правом облагораживать программу и публиковать улучшения, в пользу всего общества (свобода 3), что тоже предполагает доступ к исходному коду программы.
Программное обеспечение, распространяемое под этой лицензией, можно как угодно использовать, копировать, дорабатывать, модифицировать, передавать или продавать модифицированные (или даже немодифицированные) версии другим лицам при условии, что результат такой переработки тоже будет распространяться под лицензией GPL. Последнее условие — самое принципное и определяющее в этой лицензии. Оно гарантирует, что результаты усилий разработчиков свободного ПО останутся открытыми и не станут частью какого-либо лицензированного обыденным способом продукта. Оно также отличает свободное ПО от ПО, распространяемого безвозмездно. Одно из требований этой лицензии состоит в том, что продавая ПО под лицензией GPL, вы должны предоставить исходные коды этого ПО каждому, кто захочит получить к ним доступ. Лицензия GPL «делает ПО свободным и гарантирует, что оно остается свободным».
К 1990-му году в рамках проекта GNU было создано большая часть компонент, подходящих для функционирования свободной операционной системы. Не считая текстового редактора Emacs, Столлман сделал компилятор gcc (GNU C Compiler) и отладчик gdb. Будучи выдающимся программистом, Ричард Столлман в одиночку сумел сделать действующий и надёжный компилятор, который превосходит по своим качествам продукты коммерческих поставщиков, создаваемые целыми группами программистов. Потому что сначала при его разработке ставилась задача обеспечения переносимости, на данный момент есть версии этого компилятора практически для всех операционных систем. Позже были изготовлены компиляторы и для других языков программирования, включая C++, Pascal и Fortran. Поэтому сейчас аббревиатура GCC расшифровывается как GNU Compiler Collection.
Как пишет Ричард Столлман: «К 1990-му году система GNU была практически закончена, не хватало только 1-го из базовых компонент — ядра.» Ожидалось, что ядро (оно получило название Hurd) будет реализовано как набор серверных процессов, работающих на Mach — микроядре, создаваемом в Институте Карнеги-Меллона, а позже в Институте штата Юта. Начало разработки откладывалось в ожидании выпуска Mach, которое, как было обещано, будет выпущено в виде свободно распространяемого программного обеспечения. Но его появление всё откладывалось, и тут появилось ядро, разработанное финским студентом Линусом Торвальдсом, получившее название Linux. Линус сделал его в попытках усовершенствовать свою домашнюю операционную систему Minix, о которой стоит упомянуть раздельно.
В течение 1990-х годов личные компьютеры на базе микропроцессора Intel, оснащённые операционными системами от Microsoft, заняли господствующее положение на рынке настольных систем и захватили также существенную долю рынка серверов — традиционной сферы внедрения Unix-систем. Компютеры на базе Intel и Intel-совместимых процессоров добились вычислительной мощности, сравнимой с мощностью рабочих станций с Unix. Но большая часть коммерческих Unix-систем не имели версий, способных работать на оборудовании Intel. Производители Unix обычно тесно сотрудничали с производителями определенных процессоров или даже имели долю принадлежности в компаниях, производивших эти процессоры, а поэтому были заинтересованы в использовании собственных собственных разработок. Примерами могут служить линейки процессоров SGI и MIPS.
Потому что аппаратные возможности персоналок стремительно росли, естественно, что в некий момент должны были показаться варианты Unix для компьютеров на базе Intel-совместимых процессоров. Один из таких вариантов Unix-подобной операционной системы, который сыграл необычную роль в истории Linux, был разработан в январе 1987-го года Эндрю Таненбаумом (Andrew S. Tanenbaum), медиком Института Врие, Амстердам, Нидерланды. Таненбаум был одним из ведущих экспертов в области разработки операционных систем. Свою операционную систему Minix (Миникс) он разработал как учебное пособие, на примере которого показывал студентам внутреннее устройство реальной операционной системы.
Естественно, как операционная система, Minix не была верхом совершенства. Она была нацелена на микропроцессор Intel 80286, который в то время владычествовал на рынке. Но у неё было одно очень принципное качество — открытые исходные коды. Каждый, кто имел книгу Таненбаума «Операционные системы», мог изучить и проанализировать 12 000 строк кода, написанного на языке Си и на ассемблере. Это был тот редкий случай, когда исходные коды не были заперты под семью печатями в сейфах разработчика. Таненбаум сумел вовлечь самые выдающиеся разумы компьютерной науки в обсуждение искусства сотворения операционных систем. Minix можно было приобрести и раздельно от книги, она могла быть реально установлена на компьютер. Студенты компьютерных факультетов по всему миру корпели над книгой Таненбаума, вчитываясь в коды с целью понять, как работает та система, которая управляет их компютером. И одним из таких студентов был Линус Торвальдс.
Linux В 1991-м году, Линус Торвальдс, финский студент, очень увлёкся идеей написать совместимое с Unix ядро операционной системы для собственного компьютера с процессором Intel. Макетом для будущего ядра стала операционная система Minix: совместимая с Unix операционная система для личных компьютеров, которая загружалась с дискет и умещалась в очень ограниченной в те времена памяти компьютера.
25-го августа 1991-го года Линус Торвальдс направил 1-ое сообщение о своей разработке в группу новостей comp.os.minix:
From: torvaldsSklaava.Helsinki.Fi (Linus Benedict Torvalds)
To: Newsgroups: comp.os.inix
Subject: Чего вам больше всего не хватает в minix?
Summary: небольшой опрос для моей операционной системы Message-ID:
Date: 25 августа 1991 г., 20:57:08 GMT
Organization: University of Helsinki
Огненный пламенный привет всем пользователям minix!
Я пишу (бесплатную) операционную систему (это просто хобби, ничего большого и проф вроде gnu) для AT 386(486). Я вожусь с этим с апреля, и она, похоже, скоро будет готова. Напишите мне, кому что нравится/не нравится в minix, потому что моя ОС на неё похожа (не считая всего остального, у неё - по практическим суждениям - то же физическое размещение файловой системы).
Пока я перенёс в неё bash (1.08) и gсс (1.40), и всё вроде работает. Значит, в ближайшие месяцы у меня получится уже что-то работающее, и мне бы хотелось знать, какие функции нужны большинству. Все заявки принимаются, но выполнение не гарантируется :-)
Линус
PS. Она свободна от кода minix и включает мультизадачную файловую систему. Она НЕ переносима (употребляется переключение задач 386 и пр.) и, может быть, никогда не будет поддерживать ничего, не считая АТ-винчестеров, потому что у меня больше ничего нет :-(
Название «Linux» новая система получила следующим образом. Самого Торвальдса несколько смущало созвучие этого наименования с его именованием, поэтому он пробовал называть свою разработку Freax. Это название можно отыскать в файле kernl/Makefile версии 0.11, и в исходных кодах других программ. Но Ари Лемке, который предоставил место для выкладывания системы на FTP сайте, назвал каталог pub/OS/Linux. И это название закрепилось за новой ОС.
Тот факт, что Линус выложил код своей ОС в интернет, был решающим в грядущей судьбе Linux. Хотя в 1991-м году интернет ещё не был так широко распространён, как в наши дни, зато пользовались им в основном люди, имеющие достаточную техно подготовку. И уже с самого начала Торвальдс получил несколько заинтересованных откликов.
Примерно в феврале 1992-го года Линус высказал просьбу ко всем, кто уже пользовался или тестировал Linux, прислать ему открытку. Таких открыток было получено несколько сотен со всех концов света — из Новой Зеландии, Стране восходящего солнца, Нидерландов, США. Это говорило о том, что Linux начала получать некоторую известность.
Поначалу к разработке присоединились сотки, позднее тысячи, позднее сотки тысяч добровольных помощников. Система уже не была просто игрушкой для взломщиков. Дополненная массой программ, разработанных в рамках проекта GNU, ОС Linux стала применима для практического использования. А то, что ядро системы распространялось под лицензией GNU General Public License, гарантировало, что исходные коды системы останутся свободными, другими словами смогут копироваться, изучаться и модифицироваться без опасения нарваться на какое-либо преследование со стороны разработчика или некоторый коммерческой компании. Этот факт привлекал в ряды юзеров и сторонников Linux всё новых последователей, поначалу из числа студентов и программистов.
К этому времени сформировалась отдельная конференция в интернете, посвящённая Linux, — comp.os.linux. Энтузиасты образовали неограниченное количество групп юзеров и поначалу 1994-го года вышел 1-ый номер журнала «Linux Journal».
Сперва Торвальдс не вожделел продавать свою разработку. И не желал, чтобы её продавал кто-то другой. Это было чётко прописано в уведомлении об авторских правах, помещённом в копирайт самой первой версии — 0.01. Причём требование Линуса налагало значительно более жёсткие ограничения на распространение Linux, чем те, которые провозглашались в лицензии GNU: не разрешалось взымать никаких средств за передачу или внедрение Linux. Но уже в феврале 1992-го года к нему стали обращаться за разрешением брать плату за распространение дискет с Linux, чтобы покрыть временные издержки и стоимость дискет. Не считая того, необходимо было считаться и с тем, что при разработке Linux использовалось неограниченное количество свободно распространяемых по интернету инструментов, важным из которых был компилятор GCC. Авторские права на него оговорены в общественной лицензии GPL, которую изобрёл Ричард Столлман. Торвальдсу пришлось пересмотреть свое заявление об авторских правах, и, начиная с версии 0.12, он тоже перешёл на внедрение лицензии GPL.
С технической точки зрения, Linux представляет собой только ядро Unix-подобной операционной системы, отвечающее за взаимодействие с аппаратной частью компьютера и выполнение таких задач, как распределение памяти, выделение процессорного времени различным программам и т.д.. Не считая ядра, операционная система содержит внутри себя неограниченное количество различных утилит, которые служат для организации взаимодействия пользователя с системой. Успех Linux как операционной системы во многом обусловлен тем, что к 1991-му году в рамках проекта GNU уже было сотворено неограниченное количество утилит, свободно распространяемых в интернете. Проекту GNU не хватало ядра, а ядро, скорее всего, осталось бы невостребованным, если бы отсутствовали нужные для работы утилиты. Линус Торвальдс оказался со своей разработкой в подходящем месте в нужное время. И Ричард Столлман прав, когда настаивает на том, что операционную систему следует называть не Linux, а GNU/Linux. Но название Linux исторически закрепилось за этой ОС, поэтому мы тоже будем называть её просто Linux (не забывая о заслугах Столлмана и его сподвижников).
P.S. Я честно пролистал на Хабре все 36 страниц поисковой выдачи по запросу «история linux» и не нашёл ничего целостного по теме, что показалось мне довольно странным, беря во внимание популярность системы среди хабровчан. Информация по частичкам собиралась мной со всего интернета, разбиты зёрна от плевел и, надеюсь, будет вам интересна.
Добавить комментарий