Краткая история 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-3 они приняли решение переписать систему на C, что сделало Unix уникально переносимым: в отличие от других современных операционных систем, он мог и переносить, и переживать свое оборудование.

Исследования и разработки в Bell Labs (позднее AT & T) продолжались, когда Unix System Laboratories совместно с Sun Microsystems разрабатывали версии Unix, которые будут широко использоваться коммерческими поставщиками 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 поднял важные вопросы для разработчиков, но он также оставался проприетарным на самых ранних итерациях. Следующая глава его истории, таким образом, рассказывает о том, как разработчики работали внутри и против него, чтобы создать free и open-source альтернативы.

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

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

Тем временем другой разработчик работал над бесплатной альтернативой Unix: финский студент Линус Торвальдс. После того, как 25 августа 1991 года Торвальдс разочаровался в лицензии на MINIX, Торвальдс объявил группе пользователей MINIX, что разрабатывает собственную операционную систему, похожую на MINIX. Первоначально разработанное для MINIX с использованием компилятора GNU C, ядро ​​Linux быстро стало уникальным проектом с ядром разработчиков, которые выпустили версию 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, но оно может динамически загружать и выгружать код ядра по требованию.

  • Он имеет симметричную многопроцессорную поддержку (SMP), в отличие от традиционных реализаций Unix. Это означает, что одна операционная система может иметь доступ к нескольким процессорам, которые совместно используют основную память и доступ ко всем устройствам ввода-вывода.

  • Его ядро ​​превентивное, еще одно отличие от Unix. Это означает, что планировщик может принудительно переключать контекст в драйвере или другой части ядра во время его выполнения.

  • Его ядро ​​не различает потоки и обычные процессы.

  • Он включает интерфейс командной строки (CLI) и может также включать графический интерфейс пользователя (GUI).

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

Разработчики поддерживают много популярных дистрибутивов Linux сегодня. Среди самых старых - Debian, бесплатный дистрибутив с открытым исходным кодом, в котором 50 000 пакетов программного обеспечения Debian вдохновил другой популярный дистрибутив, Ubuntu, финансируемый Canonical Ltd. Ubuntu использует Debian формат пакета deb и инструменты управления пакетами, а разработчики 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), хорошим шагом может быть наш series на FreeBSD. Другим вариантом может быть рассмотрение нашей вводной series о начале работы с Linux. Вы также можете проверить это introduction для макета файловой системы в Linux, это discussion о том, как использовать + find + `и + locate + `для поиска файлов в Linux VPS, или это introduction для регулярных выражений в командной строке .

Related