С помощью имевшихся инструментов GNU
можно было бы писать программы на Си,
пользуясь
только свободными
программными продуктами, однако
свободного UNIX-совместимого
ядра, на основе которого могли
бы работать все эти инструменты, не
существовало. В такой ситуации
разработчики GNU вынуждены были
использовать одну из патентованных
реализаций UNIX, т. е. вынуждены были
следовать принятым в этих операционных
системах архитектурным решениям и
технологиям и основывать на них свои
собственные разработки. Идеал Столлмана
о научной разработке ПО, свободной от
решений, движимых коммерческими целями,
был недоступен, пока в основе свободной
разработки лежало патентованное
UNIX-совместимое
ядро,
исходные тексты которого оставались
тайной для разработчиков.
Linux —
ядро
В 1991 году Линус Торвальдс, финский
студент, чрезвычайно увлёкся идеей
написать совместимое с UNIX ядро
операционной системы для своего
персонального компьютера с процессором
ставшей очень широко распространённой
архитектуры Intel 80386. Прототипом для
будущего ядра стала операционная система
MINIX: совместимая с UNIX операционная
система для персональных компьютеров,
которая загружалась с дискет и умещалась
в очень ограниченной в те времена памяти
персонального компьютера. MINIX был
создан Энди Танненбаумом в качестве
учебной операционной системы,
демонстрирующей архитектуру и
возможности UNIX, но непригодной для
полноценной работы с точки зрения
программиста. Так же, MINIX можно было
использовать только в некоммерческих
целях. Именно полноценное ядро для
своего ПК и хотел сделать Линус
Торваьдс. Название для своего ядра он
соорудил из собственного имени, заменив
последнюю букву и сделав его похожим на
анаграмму слова UNIX.
Совместимость с UNIX в этот момент
означала, что операционная система
должна поддерживать стандарт POSIX
.
POSIX
— это
функциональная модель
совместимой с UNIX операционной системы,
в которой описано, как должна вести себя
система в той или иной ситуации, но не
приводится никаких указаний, как это
следует реализовать программными
средствами. POSIX
описывал
те свойства UNIX-совместимых систем,
которые были общими для разных
реализаций UNIX на момент создания этого
стандарта. В частности, в POSIX
описаны системные вызовы, которые должна
обрабатывать операционная система,
совместимая с этим стандартом.
Важнейшую роль в развитии Linux
сыграли глобальные компьютерные сети
Usenet и Internet. На самых ранних
стадиях он обсуждал свою работу и
возникающие трудности с другими
разработчиками в телеконференции
comp.os.minix в сети Usenet, посвящённой
операционной системе MINIX. Ключевым
решением Линуса стала публикация
исходных текстов ещё малоработоспособной
первой версии ядра под свободной
лицензией GPL. Благодаря этому и
получавшей всё большее распространение
сети Internet очень многие получили
возможность самостоятельно компилировать
и тестировать это ядро, участвовать в
обсуждении и исправлении ошибок, и
присылать исправления и дополнения к
исходным текстам Линуса. Теперь над
ядром работал уже не один человек,
разработка пошла быстрее и эффективнее.
В 1992 году версия ядра Linux
достигла 0.95, а в 1994 году вышла
версия 1.0, что свидетельствует о том,
что разработчики наконец сочли, что ядро
в целом закончено и все ошибки
(теоретически) исправлены. В настоящее
время разработка ядра Linux — дело уже
гораздо большего сообщества,
чем во времена до версии 0.1, изменилась
и роль самого Линуса Торвальдса, который
теперь не главный разработчик, но
главный авторитет, который традиционно
оценивает исходные тексты, которые
должны быть включены в ядро и даёт своё
добро на их включение. Тем не менее,
общая модель свободной разработки
сообществом сохраняется. В настоящее
время параллельно всегда разрабатывается
два варианта ядра. Стабильная версия,
считающаяся достаточно надёжной и
пригодной для пользователей, её номер
заканчивается на чётное число, например,
“2.4
”. Номер
соответствующей экспериментальной версии
ядра оканчивается на нечётное число — “2.5
”.
Экспериментальная версия адресована в
первую очередь разработчикам ядра,
тестирующим новые возможности.
GNU и Linux
Однако как нельзя сделать
операционную систему без ядра, так и
ядро будет бесполезно без утилит,
которые использовали бы его возможности.
Благодаря проекту GNU Линус Торвальдс
сразу имел возможность использовать в
Linux свободные утилиты: Bash,
компилятор gcc, tar, gzip и многие
другие уже известные и широко
используемые приложения, которые могли
работать с его UNIX-совместимым ядром.
Так Linux сразу попал в хорошее
окружение и в сочетании с утилитами GNU
представлял собой очень интересную среду
для разработчиков программного
обеспечения даже на самой ранней стадии
своего развития.
Принципиальным шагом вперёд было
именно то, что из ядра Linux и утилит и
приложений GNU впервые стало возможно
сделать полностью свободную операционную
систему, т. е. работать с компьютером и,
более того, разрабатывать новое
программное обеспечение, пользуясь
только свободным программным
обеспечением. Идеал полностью
некоммерческой разработки Столлмана
теперь мог быть реализован в жизни.
Однако появление теоретической
возможности воплощения идеала не
означало его немедленной практической
реализации. Совместимость Linux и утилит
GNU была обусловлена тем, что и то, и
другое писалось с ориентацией на одни и
те же стандарты и практику. Однако, в
рамках этой практики (множество
различных UNIX-систем) оставался большой
простор для несовместимости и различных
решений. Поэтому на начальном этапе
разработки ядра каждое заработавшее под
Linux приложение GNU было для Линуса
очередным достижением: первыми стали
Bash и gcc. Таким образом, сочетание GNU
и Linux было возможностью создать
свободную операционную систему, но само
по себе ещё не составляло такой системы,
потому что Linux и различные утилиты GNU
оставались разрозненными программными
продуктами, которые писали разные люди,
не всегда принимая в расчёт то, что
делают другие. Основное же качество
системы — согласованность её
компонентов.
Возникновение
дистрибутивов
После определённого периода
разработки под Linux уже стабильно
работал ряд важнейших утилит GNU.
Скомпилированное ядро Linux с небольшим
комплектом скомпилированных уже в Linux
утилит GNU составляло набор инструментов
для разработчика программного
обеспечения, желающего использовать
свободную операционную систему на своём
персональном компьютере. В таком виде
Linux уже не только годился для
разработки Linux, но и представлял собой
операционную систему, в которой можно
было уже выполнять какие-то прикладные
задачи. Конечно, первое, чем можно было
заниматься в Linux — писать программы на
Си.
Первоначально, чтобы получить
компьютер с работающей системой Linux,
разработчики пользовались специальными
комплектами дискет со скомпилированным
ядром Linux и утилитами: с этих дискет
можно было загрузить Linux и работать в
нём. Однако это не слишком удобно, когда
нужно работать в Linux постоянно, да и
объём дискет накладывал очень сильные
ограничения на дальнейшее расширение
системы и включение новых утилит.
Когда задача получить компьютер с
постоянно работающей на нём системой
Linux стала востребованной и довольно
распространённой, разработчики в
хельсинкском и техасском университетах
создают собственные наборы дискет, с
которых скомпилированное ядро и основные
утилиты можно записать на жёсткий диск,
после чего загружать операционную
систему прямо с него. Эти наборы
дискет — первые прототипы современных
дистрибутивов Linux —
комплекты программного обеспечения, на
основе которых можно получить работающую
операционную систему на своём
компьютере. Нужно отметить, что в
дистрибутив Linux с самого начала
входили программные продукты GNU. На
самом деле, всякий раз, когда говорится
«операционная система Linux»,
подразумевается «ядро Linux и утилиты
GNU». Фонд свободного ПО даже
рекоммендует называть это операционной
системой GNU/Linux.
Однако скопировать все нужные
программы на жёсткий диск ещё
недостаточно, чтобы получить подходящую
для нужд пользователя операционную среду
(пусть даже это очень профессиональный
пользователь). Поэтому первые наборы
дискет можно только условно назвать
дистрибутивами. Чтобы получить
работающую операционную систему,
тредуются какие-то специальные средства
установки и настройки программного
обеспечения. Именно наличие таких
средств и отличает современные
дистрибутивы Linux. Другое важнейшая
задача дистрибутива — регулярное
обновление. Программное обеспечение,
особенно свободное, — одна из самых
быстро развивающихся областей, поэтому
мало один раз установить Linux, нужно
ещё регулярно его обновлять. Первым
дистрибутивом в современном понимании,
получившим широкое распространение, стал
Slackware, созданный Патриком
Фолькердингом (кстати, этот дистрибутив
сохранился и до наших дней). Он был
широко известен пользователям Linux уже
к 1994 году.
Несмотря на то, что с появлением
первых дистрибутивов установка Linux уже
не требует самостоятельной компиляции
всех программ из исходных текстов,
использование Linux оставалось уделом
разработчиков: пользователь этой
операционной системы в тот период её
развития мог заниматься почти
исключительно программированием. По
крайней мере, чтобы решать в ней другие
повседневные прикладные задачи
(например, чтение электронной почты,
написание статей и т. п.), он должен был
сначала некоторое время позаниматься
программированием и даже разработкой
самой системы Linux, чтобы создать для
себя соответствующие прикладные
программы или заставить их работать в
Linux.
Однако разработчики — тоже люди,
которые пишут и электронные письма, и
статьи, и даже рисуют картинки. Всё
программное обеспечение для Linux было
открытым, поэтому вскоре стало
появляться всё больше прикладных
программ для Linux, которые
использовались всё большим сообществом,
отчего становились надёжнее и получали
всё новую функциональность. В конце
концов возникает идея, что из Linux и
GNU-приложений для Linux
целенаправленными усилиями небольшой
группы разработчиков можно делать
целостные операционные системы,
подходящие для очень широкого круга
пользователей и продавать эти системы
пользователям за деньги как аналог и
альтернативу существующим патентованным
операционным системам.
Выгода операционной системы, целиком
состоящей из свободного программного
обеспечения, очевидна — собирающие эту
систему не должны никому платить за
входящие в неё программы. Более того,
дальнейшая разработка и обновление
имеющихся программ ведётся сообществом
разработчиков также совершенно
бесплатно, не нужно платить сотрудникам,
которые занимались бы этим. В итоге
затраты фирмы, собирающей
дистрибутив Linux для
пользователя, ограничиваются оплатой
программистов, интегрирующих
разрозненные приложения в систему и
пишущих программы для стандартизации
процедур установки и настройки системы,
чтобы облегчить эти задачи
неподготовленному пользователю, а также
затратами на само издание получившегося
дистрибутива. Для конечного покупателя
это означает принципиальное снижение
цены на операционную систему.
Первой успешной компанией, работающей
по такой схеме, стала RedHat,
появившаяся в 1995 году. RedHat
адресовала свои разработки не только
программистам профессионалам, но и
обыкновенным пользователям и системным
администраторам, для которых компьютер —
в первую очередь офисное рабочее место
или рабочий сервер. Ориентируясь на уже
существующие на рынке предложения для
такого класса пользователей, RedHat
всегда уделял большое внимание
разработке приложений с графическим
интерфейсом для выполнения типичных
задач по настройке и администрированию
системы. Бизнес RedHat развивался
довольно успешно, в 1999 году эта
компания акционировалась — сразу после
выпуска акции росли в цене очень
энергично, однако потом ажиотаж улёгся.
В настоящее время доля RedHat на рынке
серверов и рабочих станций Linux очень
велика. Благодаря RedHat в сообществе
пользователей Linux очень широкое
распространение получил формат пакетов
RPM.
Практически одновременно с RedHat
появился проект Debian. Его задача была
примерно той же — сделать целостный
дистрибутив Linux и свободного
программного обеспечения GNU,
однако этот проект был задуман как
принципиально некоммерческий, проводимый
в жизнь сообществом разработчиков, нормы
взаимодействия в котором полностью
соответствовали бы идеалам свободного
ПО. Сообщество разработчиков Debian —
международное, участники которого
взаимодействуют через Internet, а нормы
взаимодействия между ними определяются
специальными документами —
полиси (policy).
Сообщество разработчиков не извлекает
никакой прибыли от продажи Debian, его
версии распространяются свободно,
доступны в Интернет, могут
распространяться и на твёрдых носителях
(CD, DVD), но и в этом случае их цена
редко сильно превышает стоимость
носителя и наценку, окупающую затраты на
издание. Первоначально разработка Debian
спонсировалась Фондом свободного
программного обеспечения. Адресатами
дистрибутивов Debian всегда в первую
очередь были профессиональные
пользователи, так или иначе связанные с
академической разработкой программного
обеспечения, которые готовы читать
документацию и собственными руками
организовать нужный профиль
системы, соотвествующий именно их
задачам. Ориентация на такую аудиторию
предопределила некоторые тенденции
развития Debian: в нём никогда не было
обилия «простых» графических средств
настройки среды, всевозможных
мастеров, однако всегда
уделялось много внимания средствам
последовательной и единообразной
интеграции программного обеспечения в
единую систему. Именно в Debian появился
менеджер пакетов (APT). В настоящее
время Debian — самый популярный
дистрибутив Linux среди пользователей,
являющихся профессионалами в области
информационных технологий.
Всякий раз, когда свободное
программное обеспечение оказывается
востребованным, немедленно возникает
множество альтернативных решений — так
произошло и с дистрибутивами Linux.
После 1995 года возникло (и продолжает
возникать) огромное количество
коммерческих компаний и свободных
сообществ, которые ставят своей задачей
подготовку и выпуск дистрибутивов Linux.
У каждого из них — свои особенности,
своя целевая аудитория, свои приоритеты.
К настоящему времени на рынке
дистрибутивов выделилось несколько
лидеров, которые предлагают более или
менее универсальные решения и наиболее
широко известны и используются. Помимо
уже названных RedHat и Debian следует
назвать в ряду дистрибутивов,
ориентированных на рядового
пользователя, немецкий SuSE и
французский Mandrake, среди адресованных
специалистам — Gentoo. Но помимо
«крупных» игроков на рынке дистрибутивов
есть горадо большее количество менее
распространённых дистрибутивов. Теперь
перед пользователем, желающим установить
Linux, встаёт вопрос выбора
дистрибутива. Критерии выбора — и
задачи, которые предполагается решать с
помощью Linux, и уровень подготовки
пользователя, и технологии, и
предстоящие контакты с тем сообществом,
которое занимается разработкой
дистрибутива.
История Linux в
России
Получилось так, что в международном
сообществе разработчиков, начинавших и
продолжавших развивать Linux, все в той
или иной степени могли объясниться
по-английски. Это и неудивительно,
поскольку исторически английский
оказался языком компьютерной науки и
операционной системы UNIX, глобальной
сети Internet, программирования. В
международном сообществе разработчиков
программного обеспечения английский
выполнял и выполняет роль, подобную
латыни в научном сообществе
средневековой Европы. Но если Linux
предполагается использовать не только
для программирования и общения с
программистами, но и для повседневных
задач, необходима локализация — т. е.
возможность общаться с комьютером и при
помощи компьютера и на других языках.
Локализация — комплексный процесс,
затрагивающий самые разные стороны
системы. Для полноценной поддержки того
или иного языка в системе необходимо
обеспечить возможность ввода на этом
языке (поддержка раскладок клавиатуры и
кодировок), вывода (экранных шрифтов),
печати, а затем уже необходимо
переводить интерфейс различных
приложений на данный язык, разрабатывать
средства подготовки электронных и
бумажных публикаций на этом языке
и т. д. В этой лекции мы кратко
рассмотрим только историю локализации
Linux в России для русского языка, т. е.
русификации Linux.
Первой компанией, поставившей своей
целью выпуск дистрибутивов Linux для
русскоговорящих пользователей, была
УрбанСофт, открытая в Петербурге в 1992
году. Весь её бизнес состоял в выпуске и
продаже CD-дисков с дистрибутивами
свободного программного обеспечения. В
первую очередь это были дистрибутивы
RedHat, а также Debian, в которые
включались разработанные силами
УрбанСофт пакеты для русификации.
Несколько позже в Москве IPLabs Linux
Team выпускает Linux Mandrake Russian
Edition — модифицированный (чтобы
соответствовать нуждам русского
пользователя) вариант дистрибутива
Mandrake Linux. Впоследствии эта команда
начинает выпускать дистрибутивы, которые
отличаются от Mandrake уже не только
наличием пакетов для русификации, но и
другими принципиальными возможностями. В
конце концов команда разработчиков
создаёт фирму ALT Linux и начинает
выпускать дистрибутивы под маркой ALT
Linux.
Также появляется компания ASPLinux,
целью которой является выпуск RedHat с
модификациями для поддержки русского
языка, название продукта совпадает с
именем компании.
Все перечисленные Российские
производители дистрибутивов Linux
существуют и по сей день, и продолжают с
большей или меньшей активностью
выпускать дистрибутивы.