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

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

Эти дистрибутивы остаются актуальными и поддерживаются сообществами разработчиков.

  • Linux может работать на разном оборудовании и может устанавливаться рядом с уже существующими системами (полезная черта в локальных средах разработки).
  • Linux поддерживает централизованную установку программного обеспечения из репозиториев.
  • Linux портебляет мало ресурсов.
  • Linux часто учитывают при создании экосистем приложений и инструментов для серверов, что приводит к высокому уровню совместимости.
  • 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’s Un Unix!»). Оставив лабораторию в 1984 году, он получил возможность распространять компоненты GNU в качестве бесплатного программного обеспечения. Ядро GNU, известное как GNU HURD, стало фокусом Free Software Foundation (FSF), основанного в 1985 году и в настоящее время возглавляемого Столлманом.

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

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

Ключевые принципы Linux

Ядро Linux унаследовало многие цели и свойства от Unix, однако оно отличается от предыдущей системы:

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

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

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

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

Tags: ,