1C-Битрикс
1C-Битрикс

Операционные системы на базе GNU/Linux

Аббревиатура GNU расшифровывается как «GNU — это не Unix» (GNU is Not Unix). Работа над GNU стала основой для разработки лицензии GNU General Public License, которая повернула весь компьютерный мир. В 1991-м году, Линус Торвальдс решил написать совместимое с Unix ядро операционной системы на базе Minix для своего ПК. Так вскоре появился первый Linux, который не включал элементов кода minix и имел мультизадачную файловую систему.

Операционные системы на основе GNU и Linux называют «Linux» или «GNU/Linux», произносится «гну слэш линукс». Первый вариант гораздо более популярен, и чаще используется сторонниками термина «open source», второй — сторонниками «free software». 

Хотя в английском второй вариант пишется и звучит, как «GNU/Linux» («гну слэш линукс»), это не всегда удобно в других языках. Поэтому, если можно показать равноправность GNU и Linux лучшим способом — например, GNU+Linux (гну плюс линукс), GNU-Linux (во французском), или GNU con Linux (в испанском), лучше использовать его, чем «GNU Linux» («гну линукс»), подразумевающее, что ядро «Linux» было разработано или принадлежит проекту GNU. Аналогичным образом построены названия «TCP/IP» и «Ogg/Vorbis». 

История Линукс начинается с конца 70х годов. Началом победной походки Linux можно считать появление операционной системы Unix, созданной в 1969 году в США фирмой Bell Laboratories, дочки компании AT&T. Unix стала прародителем огромного семейства операционных систем. 
Основные: 

История GNU началась в сентябре 1983 года. Основатель данного проекта, Ричард Столлман (Richard M. Stallman) зарабатывал на жизнь в лабораториях искусственного интеллекта Массачусетского технологического университета в Кембридже (Massachusetts Institute of Technology, MIT, Cambridge, Massachusetts). Столлман был и остаётся одним из УБЕР-программистов нашего времени.  

Там, где работал и учился Столлман, было принято свободно обмениваться своими наработками (программы, исходники). Лицензии же Unix всегда были платными и, не соврать, стоили более 40 000 (сорок тыщ долларов, это вам не Windows за 200 баксов) долларов. Купить такую могли только крупные фирмы или дети местных олигархов, промышлявших кокаином (шутка). А без покупки лицензии "наступала уголовная ответственность" (опять шутка) - программист не имел права использовать исходные коды системы в своих разработках, что очень тормозило прогресс (представьте себе, сидят 2 разные конторы и пишут одну и ту же программу), что равносильно изобретению велосипеда.
GNU - это замысловатая рекурсивная аббревиатура(так захотелось Столлману, помните времена FidoNet? - где у каждого самого простого поинта в подписи висел так называемый ориджин), и таким образом он решил показать своё остроумие. 

Аббревиатура GNU расшифровывается как «GNU — это не Unix» (GNU is Not Unix). Unix всегда лишал пользователя полного контроля над своим компьютером, одному богу было известно, что на нем происходит (Вам ничего это не напоминает? Подсказка - "синий экран смерти".) Чуть позже Столлман написал свой знаменитый Манифест GNU, который стал основой для лицензии GPL (GNU General Public License). Эта лицензия повернула весь компьютерный мир. 

Основные положения GPL: 

  • Правом запускать программу для любых целей;
  • Правом изучать устройство программы и приспосабливать её к своим потребностям, что предполагает доступ к исходному коду программы;
  • Правом распространять программу, имея возможность помочь другим;
  • Правом улучшать программу и публиковать улучшения, в пользу всего сообщества, что тоже предполагает доступ к исходному коду программы.


Код программы распространяемый по лицензии GPL можно использовать каким угодно способом, а именно: копировать, дорабатывать, модифицировать, передавать или продавать модифицированные (или даже не модифицированные) версии другим лицам при условии, что результат такой переработки тоже будет распространяться под лицензией GPL. 

Последнее условие — самое важное и определяющее в этой лицензии. Оно гарантирует, что результаты усилий разработчиков свободного ПО останутся открытыми и не станут частью какого-либо лицензированного обычным способом продукта. Оно также отличает свободное ПО от ПО, распространяемого бесплатно. Одно из требований этой лицензии состоит в том, что продавая ПО под лицензией GPL, вы должны предоставить исходные коды этого ПО каждому, кто захочет получить к ним доступ. Лицензия GPL «делает ПО свободным и гарантирует, что оно останется свободным». 

К 90му годы были созданы основные инструменты, необходимые для функционирования ОС, такие как: текстовый редактор EMacs, компилятор GCC и отладчик кода gdb. Как мы уже упомянали в статье - Столлман был отличным программистом, и смог создать компилятор, превосходивший по качествам своих коммерческих собратьев, создаваемые целыми группами программистов. Сегодня существуют версии практически для всех операционных систем и языков написания программ(языков программирования), что является залогом переносимости программ. В данный момент аббревиатура GCC расшифровывается как GNU Compiler Collection (вместо изначального GNU C++ Compiler). Не хватало самого главного - ядрышка, над которым уже трудилсь команда разработчиков во главе с Линусом Торвальдсом. 

Minix 

В конце 90х годов компы процессорами от Интел и Микрософтовской Виндой на борту заполонили заполонили практически весь рынок домашних компьютеров, а так же значительную часть рынка серверов - где изначально использовались UNIX-системы. Компы на базе Intel и Intel-compatible процессоров достигли огромных на тот момент вычислительных мощностей, сравнимой с мощностью рабочих станций с Unix. Но большинство коммерческих Unix-систем не имели версий, способных работать на оборудовании Intel. Производители Unix обычно тесно сотрудничали с производителями конкретных процессоров или даже имели долю собственности в компаниях, производивших эти процессоры, а поэтому были заинтересованы в использовании своих собственных разработок.

Т.к. аппаратные мощности компьютеров возрастали, то появление Unix для компов с процессорами Intel было только делом времени. Один из таких вариантов Unix, который сыграл особую роль в истории, был разработан в январе 1987-го года Эндрю Таненбаумом (Andrew S. Tanenbaum), профессором Университета Врие, Амстердам, Нидерланды. Таненбаум был одним из ведущих специалистов в области разработки операционных систем. Свою операционную систему Minix (Миникс) он разработал как учебное пособие, на примере которого показывал студентам внутреннее устройство реальной операционной системы. 

Конечно, Minix не был верхом совершенства. Он был ориентирован на процессор Intel 80286(Двушка), который в то время господствовал на рынке. Но у Миникса был один очень важный момент — Open Source. Каждый, кто имел книгу Таненбаума «Операционные системы», мог изучить и проанализировать 12 000 строк кода, написанного на языке Си и на ассемблере (Помните фильм Хакеры? - Огромная Красная книга, которая никогда не помещалась на полке.). Первый случай, когда исходники были доступны, а не заперты в сейфах разработчика. Великолепный автор, Таненбаум сумел вовлечь самые выдающиеся умы компьютерной науки в обсуждение искусства создания операционных систем. Minix можно было приобрести и отдельно от книги, она могла быть реально установлена на персональный компьютер. Студенты компьютерных факультетов по всему миру корпели над книгой Таненбаума, вчитываясь в коды с целью понять, как работает та самая система, которая управляет их компьютером. И одним из таких студентов был Линус Торвальдс.

В 1991-м году, Линус Торвальдс, финский студент, чрезвычайно увлёкся идеей написать совместимое с Unix ядро операционной системы для своего персонального компьютера с процессором Intel. Прототипом для будущего ядра стала операционная система Minix: совместимая с Unix операционная система для персональных компьютеров, которая загружалась с дискет и умещалась в очень ограниченной в те времена памяти персонального компьютера.
Название «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-го года вышел первый номер журнала «Linux Journal». Linux привлекла внимание промышленных фирм и несколько небольших компаний начали разрабатывать и продавать собственные версии Linux. 

Первоначально Линус Торвальдс не хотел продавать свою разработку. И не хотел, чтобы её продавал кто-то другой. Это было чётко прописано в уведомлении об авторских правах, помещённом в файл COPYING самой первой версии — 0.01. Причём требование Линуса налагало значительно более жёсткие ограничения на распространение Linux, чем те, которые провозглашались в лицензии GNU: не разрешалось взимать никаких денег за передачу или использование Linux. Но уже в феврале 1992-го года к нему стали обращаться за разрешением брать плату за распространение дискет с Linux, чтобы покрыть временные затраты и стоимость дискет. Кроме того, необходимо было считаться и с тем, что при создании Linux использовалось множество свободно распространяемых по интернету инструментов, самым важным из которых был компилятор GCC. Авторские права на него оговорены в общественной лицензии GPL, которую изобрёл Ричард Столлман. Торвальдсу пришлось пересмотреть свое заявление об авторских правах, и, начиная с версии 0.12, он тоже перешёл на использование лицензии GPL. 

С технической точки зрения, Linux представляет собой только ядро Unix-подобной операционной системы, отвечающее за взаимодействие с аппаратной частью компьютера и выполнение таких задач, как распределение памяти, выделение процессорного времени различным программам и так далее. Кроме ядра, операционная система включает в себя множество различных утилит, которые служат для организации взаимодействия пользователя с системой. Успех Linux как операционной системы во многом обусловлен тем, что к 1991-му году в рамках проекта GNU уже было разработано множество утилит, свободно распространяемых в интернете. Проекту GNU не хватало ядра, а ядро, скорее всего, осталось бы невостребованным, если бы отсутствовали необходимые для работы утилиты. Линус Торвальдс оказался со своей разработкой в нужном месте в нужное время. И Ричард Столлман прав, когда настаивает на том, что операционную систему следует называть не Linux, а GNU/Linux. Но название Linux исторически закрепилось за этой ОС, поэтому мы тоже будем называть её просто Linux (не забывая о заслугах Столлмана и его сподвижников).