Поиск по сайту:

Краткая история Linux


Введение

В популярном использовании «Linux» часто относится к группе дистрибутивов операционных систем, построенных вокруг ядра Linux. Однако в самом строгом смысле Linux означает только наличие самого ядра. Для создания полноценной операционной системы Linux дистрибутивы часто включают инструменты и библиотеки из проекта GNU и других источников. В последнее время все больше разработчиков используют Linux для создания и запуска мобильных приложений; он также сыграл ключевую роль в разработке доступных устройств, таких как Chromebook, на которых работают операционные системы на В облачных вычислениях и серверных средах в целом Linux является популярным выбором по ряду практических причин:

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

Linux также ведет свое происхождение от движения за бесплатное программное обеспечение с открытым исходным кодом, и, как следствие, некоторые разработчики выбирают его по сочетанию этических и практических причин:

  • Для некоторых разработчиков использование Linux означает приверженность доступности и свободе самовыражения.
  • Некоторых разработчиков также привлекает сообщество Linux: если у них есть вопросы, они могут обратиться к ресурсам, созданным этим сообществом, или напрямую связаться с одним из многих активных сопровождающих.

Чтобы понять роль Linux в сообществе разработчиков (и за его пределами), в этой статье будет изложена краткая история Linux через Unix и рассмотрены некоторые популярные дистрибутивы Linux.

Корни в Unix

Linux берет свое начало в Unix и Multics, двух проектах, которые разделяли цель разработки надежной многопользовательской операционной системы.

Начало Unix

Unix был разработан на основе итерации проекта Multics в Исследовательском центре компьютерных наук Bell Laboratories. Разработчики, работающие над Multics в Bell Labs и в других местах, были заинтересованы в создании многопользовательской операционной системы с одноуровневым хранилищем и динамической компоновкой (в которой запущенный процесс может запросить добавление другого сегмента в его адресное пространство, что позволит ему выполнять код этого сегмента) и иерархическую файловую систему.

Bell Labs прекратила финансирование проекта Multics в 1969 году, но группа исследователей, включая Кена Томпсона и Денниса Ритчи, продолжала работать над основными принципами проекта. В 1972–1973 годах они приняли решение переписать систему на языке C, что сделало Unix уникально переносимой: в отличие от других современных операционных систем, она могла как перемещаться с аппаратного обеспечения, так и переживать его.

Исследования и разработки в Bell Labs (позже AT&T) продолжались, при этом Unix System Laboratories разрабатывали версии Unix в сотрудничестве с Sun Microsystems, которые будут широко приняты коммерческими поставщиками Unix. Тем временем исследования продолжались в академических кругах, в первую очередь в Исследовательской группе компьютерных систем Калифорнийского университета в Беркли. Эта группа выпустила Berkeley Software Distribution (BSD), который вдохновил ряд операционных систем, многие из которых используются до сих пор. Двумя дистрибутивами BSD, имеющими историческое значение, являются NeXTStep, операционная система, разработанная NeXT, которая стала основой для macOS, среди других продуктов, и MINIX, образовательная операционная система, которая послужила сравнительной основой для Линуса Торвальдса, когда он разрабатывал Linux.

Ключевые особенности Unix

Unix ориентирован на принципы ясности, переносимости и одновременности.

  • Ясность. Модульная конструкция Unix позволяет функциям выполняться ограниченным и определенным образом. Его файловая система унифицирована и иерархична, что упрощает манипулирование данными. В отличие от некоторых своих предшественников, в Unix реализованы сотни (а не тысячи) системных вызовов, каждый из которых разработан так, чтобы быть простым и понятным по назначению.
  • Переносимость. Написав Unix на языке C, группа Bell Labs сделала Unix доступным для широкого использования и внедрения. C был разработан, чтобы иметь низкоуровневый доступ к памяти, минимальную поддержку во время выполнения и эффективную связь между языком и машинными инструкциями. Основа на C означает, что Unix легко адаптируется и легко работает на различном оборудовании.
  • Одновременность. Ядро Unix адаптировано к цели (разделяемой проектом Multics) по поддержке нескольких пользователей и рабочих процессов. Пространство ядра по-прежнему отличается от пользовательского пространства в Unix, что позволяет одновременно запускать несколько приложений.

Эволюция Linux

Unix поднимал перед разработчиками важные вопросы, но в своих первых итерациях он также оставался частной собственностью. Таким образом, следующая глава его истории — это история о том, как разработчики работали внутри и против него, создавая бесплатные альтернативы с открытым исходным кодом.

Эксперименты с открытым исходным кодом

Ричард Столмен был центральной фигурой среди разработчиков, вдохновленных созданием непатентованных альтернатив Unix. Работая в Лаборатории искусственного интеллекта Массачусетского технологического института, он инициировал работу над проектом GNU (рекурсивно для «GNU — это не Unix!»), в конце концов покинув лабораторию в 1984 году, чтобы иметь возможность распространять компоненты GNU как свободное программное обеспечение. HURD стал центром деятельности Фонда свободного программного обеспечения (FSF), основанного в 1985 году и в настоящее время возглавляемого Столлманом.

Тем временем другой разработчик работал над бесплатной альтернативой Unix: финский студент Линус Торвальдс. Разочаровавшись в лицензии на MINIX, 25 августа 1991 года Торвальдс объявил группе пользователей MINIX, что разрабатывает свою собственную операционную систему, напоминающую MINIX. Хотя первоначально ядро Linux было разработано для MINIX с использованием компилятора GNU C, оно быстро стало уникальным проектом, в котором ядро разработчиков выпустило версию 1.0 ядра вместе с Торвальдсом в 1994 году.

Торвальдс использовал код GNU, включая компилятор GNU C, со своим ядром, и верно то, что многие дистрибутивы Linux основаны на компонентах GNU. Столлман лоббировал расширение термина «Linux» до «GNU/Linux», что, как он утверждает, отражает как роль проекта GNU в разработке Linux, так и основные идеалы, которые способствовали развитию проекта GNU и ядра Linux. Сегодня «Linux» часто используется для обозначения как ядра Linux, так и элементов GNU. В то же время встроенные системы на многих портативных устройствах и смартфонах часто используют ядро Linux с небольшим количеством компонентов GNU или без них.

Ключевые особенности Linux

Хотя ядро Linux унаследовало многие цели и свойства от Unix, оно отличается от более ранней системы следующим образом:

  • Его основным компонентом является ядро, которое разрабатывается независимо от других компонентов операционной системы. Это означает, что Linux заимствует элементы из различных источников (таких как GNU) для создания всей операционной системы.
  • Это бесплатное приложение с открытым исходным кодом. Ядро поддерживается сообществом разработчиков под лицензией GNU General Public License (ответвление работы FSF над проектом GNU) и доступно для загрузки и модификации. GPL предусматривает, что производная работа должна поддерживать условия лицензирования оригинального программного обеспечения.
  • Он имеет монолитное ядро, похожее на Unix, но может динамически загружать и выгружать код ядра по требованию.
  • В отличие от традиционных реализаций Unix, он поддерживает симметричную многопроцессорность (SMP). Это означает, что одна операционная система может иметь доступ к нескольким процессорам, которые совместно используют основную память и доступ ко всем устройствам ввода-вывода.
  • Его ядро является вытесняющим, что является еще одним отличием от Unix. Это означает, что планировщик может вызвать переключение контекста в драйвере или другой части ядра во время его выполнения.
  • Его ядро не делает различий между потоками и обычными процессами.
  • Он включает интерфейс командной строки (CLI), а также может включать графический интерфейс пользователя (GUI).

Популярные дистрибутивы Linux

Сегодня разработчики поддерживают множество популярных дистрибутивов Linux. Одним из старейших является Debian, бесплатный дистрибутив с открытым исходным кодом, содержащий 50 000 пакетов программного обеспечения. Debian вдохновил другой популярный дистрибутив, Ubuntu, финансируемый Canonical Ltd. Ubuntu использует формат пакетов Debian и инструменты управления пакетами Debian, а разработчики Ubuntu возвращают изменения обратно в Debian.

Аналогичные отношения существуют между Red Hat, Fedora и CentOS. Red Hat создала дистрибутив Linux в 1993 году, а десять лет спустя разделила свои усилия на Red Hat Enterprise Linux и Fedora, основанную на сообществе операционную систему, использующую ядро Linux и элементы из проекта GNU. Red Hat также сотрудничает с CentOS Project, еще одним популярным дистрибутивом Linux для веб-серверов. Однако эти отношения не включают платное обслуживание. Как и Debian, CentOS поддерживается сообществом разработчиков.

Заключение

В этой статье мы рассмотрели корни Linux в Unix и некоторые из его определяющих особенностей. Если вам интересно узнать больше об истории версий Linux и Unix (включая FreeBSD), хорошим шагом может стать знакомство с регулярными выражениями в командной строке.

Статьи по данной тематике: