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

Введение

В популярном использовании термин “Linux” часто относится к группе дистрибутивов операционных систем, построенных вокруг ядра Linux. В строгом смысле, однако, Linux относится только к наличию самого ядра. Для создания полной операционной системы дистрибутивы Linux часто включают инструменты и библиотеки из проекта GNU и других источников. В последнее время все больше разработчиков используют Linux для создания и запуска мобильных приложений; он также сыграл ключевую роль в разработке доступных устройств, таких как Chromebooks, которые работают под управлением операционных систем на основе ядра. В области облачных вычислений и серверных сред 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 not Unix!”), в конечном итоге покинув Лабораторию в 1984 году, чтобы распространять компоненты GNU как свободное программное обеспечение. Ядро GNU, известное как GNU HURD, стало основой Фонда свободного программного обеспечения (FSF), основанного в 1985 году и в настоящее время возглавляемого Столлманом.

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

Торвальдс использовал код GNU, включая GNU C Compiler, в своем ядре, и остается фактом, что многие дистрибутивы 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, но способное динамически загружать и выгружать ядерный код по требованию.
  • Он поддерживает симметричную многопроцессорность (SMP), в отличие от традиционных реализаций Unix. Это означает, что одна операционная система может иметь доступ к нескольким процессорам, которые разделяют основную память и доступ ко всем устройствам ввода-вывода.
  • Его ядро является прерываемым, еще одним отличием от Unix. Это означает, что планировщик может принудительно переключить контекст на драйвер или другую часть ядра во время выполнения.
  • Его ядро не различает потоки и обычные процессы.
  • В него включен интерфейс командной строки (CLI), а также может включать графический пользовательский интерфейс (GUI).

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

A similar relationship exists between Red Hat, Fedora, and CentOS. Red Hat created a Linux distribution in 1993, and ten years later split its efforts into Red Hat Enterprise Linux and Fedora, a community-based operating system that utilizes the Linux kernel and elements from the GNU Project. Red Hat also has a relationship with the CentOS Project, another popular Linux distribution for web servers. This relationship does not include paid maintenance, however. Like Debian, CentOS is maintained by a community of developers.

Заключение

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

Source:
https://www.digitalocean.com/community/tutorials/brief-history-of-linux