Linux

История

В 1990-1991 году Линус Торвальдс, вдохновленный книгой Танненбаума об операционной системе MINIX (unix-подобная ОС), начинает разработку ядра (Kernel) новой многопоточной операционной системы, первое сообщение об этом датируется апрелем 1991. Версия 1.0.0 вышла в 1994 (спустя три года), однако первые доступные релизы Linux, собранные на базе промежуточных версий, появились уже в 1992 году. С подробной хронологией можно ознакомиться на Википедии.

Unix (и, как следствие, Linux) имеет следующие характерные особенности:

  • использование простых текстовых файлов для настройки и управления системой;
  • широкое применение утилит, запускаемых из командной строки;
  • взаимодействие с пользователем посредством виртуального устройства — терминала;
  • представление физических и виртуальных устройств и некоторых средств межпроцессного взаимодействия в виде файлов;
  • использование конвейеров из нескольких программ, каждая из которых выполняет одну задачу;
  • соответствует стандартам POSIX (см. ниже);
  • распространяется по лицензии GNU GPL.

GNU General Public License (переводят как Универсальная общественная лицензия GNU, Универсальная общедоступная лицензия GNU или Открытое лицензионное соглашение GNU) — лицензия на свободное программное обеспечение, созданная в рамках проекта GNU в 1988 г., по которой автор передаёт программное обеспечение в общественную собственность.

POSIX

POSIX (англ. Portable Operating System Interface — переносимый интерфейс операционных систем) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой (системный API), библиотеку языка C и набор приложений и их интерфейсов. Стандарт создан для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости прикладных программ на уровне исходного кода, но может быть использован и для не-Unix систем.

Задачи набора стандартов:

  • Содействовать облегчению переноса кода прикладных программ на иные платформы.
  • Способствовать определению и унификации интерфейсов заранее при проектировании, а не в процессе их реализации.
  • Сохранять по возможности и учитывать все главные, созданные ранее и используемые прикладные программы.
  • Определять необходимый минимум интерфейсов прикладных программ для ускорения создания, одобрения и утверждения документов.
  • Развивать стандарты в направлении обеспечения коммуникационных сетей, распределённой обработки данных и защиты информации.
  • Рекомендовать ограничение использования бинарного (объектного) кода для приложений в простых системах.

Состав стандартов:

  1. Основные определения (англ. Base definitions) — список основных определений и соглашений, используемых в спецификациях, и список заголовочных файлов языка Си, которые должны быть предоставлены соответствующей стандарту системой.
  2. Оболочка и утилиты (англ. Shell and utilities) — описание утилит и командной оболочки sh, стандарты регулярных выражений.
  3. Системные интерфейсы (англ. System interfaces) — список системных вызовов языка Си.
  4. Обоснование (англ. Rationale) — объяснение принципов, используемых в стандарте.

Kernel

kernel Ядро Linux - программный код, обеспечивающий взаимодействие между устройствами, программами и пользователем. Сам по себе не является операционной системой, выполняет следующие функции:

  1. Управление процессами
  2. Управление сетевым взаимодействием
  3. Управление файловыми системами
  4. Предоставление приложениям аппаратных ресурсов и управление их взаимодействием (процессорное время, память, устройства ввода-вывода и пр).

Символом Kernel (и, следовательно, всех основанных на нем операционных систем) был выбран пингвин Tux. tux