GNU/Linux — популярнейшая операционная система в мире свободного программного обеспечения(СПО). Её разработка была начата в 1991 году Линусом Торвальдсом. В качестве идейной базы он использовал OS Unix - ещё одна операционная система, разработанная в 1970-х годах компанией AT&T Laboratories.
Давайте начнём с практичной теории, без особых углублений, а именно сразу сэкономим своё время. Потому, что существует огромный выбор форм распространения, рассматриваемой операционной системы, другими словами дистрибутивов семейства GNU Linux. Поэтому, чтобы понять «от куда растут ноги», рассмотрим базу.
(фото веток всех дистрибутивов)
Начнём с понимания самой аббревиатуры GNU Linux, простыми словами GNU это набор программ и утилит, в числе которых и сам компилятор языка программирования C, на котором было написано само ядро рассматриваемой связки, которое и назвали Linux. Ядро OS отвечает за управление процессами, и памятью, за драйверы устройств, за файловые системы, за сетевой стек и многое другое.
В задачи входит одновременная обработка вызовов OS, которые являются интерфейсом между ним, и такими приложениями как GNU, и аппаратные прерывания, что поступают от физического железа: жёстких дисков, оперативной памяти, процессора и так далее.
Интерфейсы, структура каталогов в организации системных файлов, набор системных утилит и переменных, здесь определяются стандартами , это делает GNU Linux UNIX-подобной системой. Линус Торвальдс, основатель кода ядра Linux, выбрал этот стандарт UNIX, так как в нём уже была создана большая база приложений, те самые утилиты GNU. Одним из главнейших основателей проекта GNU является известный программист, он же один из родоначальников всего движения за СПО Ричард Столлман.
Хотя ядро контролирует всю систему, но без пользовательских программ и их процессов, ему просто нечего делать. Например, без командного интерпретатора, shell или Bash у вас не получится отдавать команды операционной системе, и запускать скрипты, состоящие из списка команд вызывающих различные утилиты. И именно утилиты проекта GNU составляют базу приложений практически любого дистрибутива.
набор стандартов POSIX
Для возможности существования различных вариантов ОС Unix, чтобы обеспечить совместимость, должны существовать стандарты интерфейсов ОС на всех уровнях. Это позволит производителям, в том числе и различных архитектурных платформ разрабатывать совместимые программные продукты, под различные ПК, оснащённые операционной системой, использующей эти стандарты. Стандарт интерфейсов ОС — это официальное издание, содержащее комплекс норм, правил, требований к синтаксическим (интерфейсным) и семантическим (поведенческим) свойствам операционной системы. Существует множество различных стандартов открытых систем, но наиболее популярным, принятым ISO (известная международная организация по стандартизации), является стандарт POSIX 1003.1. (англ. Portable Operating System Interface — переносимый интерфейс операционных систем). Этот стандарт определяет минимальные требуемые средства операционной системы (по сути дела, UNIX). Набор стандартов, описывающих интерфейсы между ОС и ПО, в том числе библиотеку языка C, служит для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости приложений на уровне исходного кода, при этом может быть использован и для не-Unix систем. Стандарт определяет интерфейс программирования приложений (APIs). Такие попытки как Linux Standard Base, и похожая iBCS2 (использование System V на архитектуре x86) направлены на портируемость скомпилированных исходников и определяют для этого набор инструментов операционной системы. Большинство из подобных проектов основаны на стандарте POSIX.
задачи ядра Линукс
При этом в основные задачи ядра входит контроль над аппаратным и программным обеспечением, чтобы максимально эффективно управлять и грамотно распределять все ресурсы системы. Linux взаимодействует с оборудованием через основные драйверы, которые включены в текущую версию. (Но часть драйверов устанавливается в виде модулей ядра позже).
И поэтому в ситуации, когда какое-то из GNU приложений захочет что-то сделать (скажем, изменить разрешение или частоту обновления экрана), то оно отправит запрос в Linux, который задействует драйвер монитора и поменяет разрешение.
Свежие статьи
14 ноя
Где ещё используется GNU/Linux
Из-за большого разнообразия приложений было разработано множество операционных систем на основе ядра Linux для использования их на различных устройствах. На значительной части из всех смарт-устройств работает операционная система на базе ядра Linux. Со встроенными системами приходит встроенное программное обеспечение. Цель этого программного обеспечения — получить доступ к оборудованию и сделать его пригодным для использования.
В основном GNU/Linux использует те же принципы и основные идеи Unix, но сам GNU/Linux не содержит кода Unix, так как это независимый проект. И это довольно принципиальный момент для сообщества, потому, что даже название проекта в расшифровке звучит как GNU’s Not UNIX, т.е. «GNU это не Unix».
Операционные системы Windows и MacOS, с закрытым исходным кодом, считают себя главнее администратора компьютера, и сами решают, что ему можно, а что нельзя.
GNU/Linux и BSD операционные системы, напротив, с открытым исходным кодом, и считают главным администатора, и поэтому не имеют права запретить ему что-либо.