Архитектура linux приложения linux

Архитектура Linux. Детальное описание анатомии Линукса от и до

Lorem ipsum dolor

Архитектура Linux берет свое начало еще в далеком 1969 -м году. Именно в то время команда разработчиков-энтузиастов начала работу над грандиозным проектом создания обобщенной операционной системы для различных видов компьютеров, дав ей название «Unix».

Краткая история возникновения Linux — систем

Как мы знаем, Linux — это часть сообщества unix-подобных операционных систем, которые функционируют на ядре Линукс. Это ядро в 1991-м году разработал финно-американский студент-разработчик Линус Торвальдс. На такую разработку его вдохновило прочтение книги о проектировании ОС Unix , и он решил продолжить эту идею. В 91-м году выходят 2 прототипа экспериментальных Линукс-систем, которые были, мягко говоря, не работоспособными. Потом в течение 2-х лет велась упорная работа над разработкой рабочей версии ОС Linux. И вот в 1994-м году увидела свет первая стабильная и работоспособная версия операционной системы Линукс. Внутри себя она содержала ядро Linux и небольшое количество программного обеспечения для поддержки работоспособност и системы, которое разработала та же команда разработчиков, которая создала и само ядро. Это был довольно скудный набор инструментов, но зато был дан старт эпохе Linux — систем. Еще один момент — эта «первая» операционная система тогда называлась «Freax», а имя «Linux» она приобрела несколько позже.

Уже с тех времен главным принципом этой ОС была поддержка открытого исходного кода. Именно это позволило развиваться Линукс-системам и дорасти до того, что сегодня имеем мы.

Это сейчас мы в слово «Linux» вкладываем полноценную операционную систему, которую можно инсталлировать и сразу пользоваться, но по сути «Linux» — это просто ядро. А все остальное его программное обеспечение — это труд многих «свободных» программистов, которые трудились над разработкой ядра и создавали для него свое ПО. И то , что мы сейчас понимаем под «операционной системой Линукс», — это симбиоз ядра Linux и стороннего программного обеспечения.

Любая операционная система, которая использует ядро Линукс, будет именоваться «дистрибутивом Линукс а ». И это будет полноценная ОС, как Windows или MacOS. Но дистрибутивы Линукса от других ОС отличает важная особенность — открытый исходный код. А это означает, что фактически любой пользователь способен внести туда собственные корректировки и разработать индивидуальную операционную систему или отредактировать старую под собственные нужды. При этом нужно заметить, что дистрибутивы « пингвина » бывают и платными — это когда их разработчики «закрывают» собственные наработки от стороннего вмешательства.

Читайте также:  Bluetooth mic in linux

Даже те, кто не знаком с Линукс — системами, знают, что талисманом ядра Linux является пингвин. У него даже есть имя — Tux. Он стал талисманом еще в 1996-м году и был предложен самим создателем ядра — Линусом Торвальдсом.

Архитектура Linux

  1. «Железо». Это аппаратные характеристики устройства, на котором используется Линукс: архитектура системы, вид е окарта, аудиокарта, процессор, ядра и т. д.
  2. «Ядро Linux». Это основной компонент Линукс-систем. По сути это «мостик», который связывает низкоуровневое «железо» и высокоуровневые компоненты операционной системы.
  3. «Оболочка». Это пользовательский интерфейс, который налаживает согласованность между пользователем и ядром операционной системы. Это тоже «мостик», но только более «продвинутый», так как создан для человека, чтобы он мог влиять на работу Линукс-системы.
  4. «Утилиты». Это программное обеспечение, которое дает возможность пользователю системы использовать ее потенциальные возможности.
  • является посредником между всеми компонентами «железа» и налаживает их взаимодействие с пользователем системы;
  • распределяет ресурсы системы между работающими программами и всеми запущенными процессами;
  • всегда первым загружается в систему и постоянно находится в рабочем состоянии.

Заключение

  • персональных компьютерах;
  • суперкомпьютерах;
  • смартфонах;
  • серверах;
  • других системах и устройствах.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Архитектура ОС GNU/Linux

Архитектура ОС GNU/Linux как это устроено

В этой статье вы прочитаете про архитектура ОС Linux, думаю будет очень интересно и полезно.

Также посмотрите статью «Лучшие книги для изучения Linux», там вы найдёте ещё книги для изучения Linux.

Архитектура ОС GNU/Linux:

Для того что бы понять GNU/Linux нужно разобраться с его архитектурой для этого вспомним что же такое операционная система (сокращенно ОС). ОС – это системная программа, которая выступает в качестве посредника между пользователем и аппаратурой компьютера. ОС – это системная программа, которая выступает в качестве посредника между прикладными программами и аппаратурой компьютера.

Для простоты условно разделим архитектуру на 3 части: двух уровневая (простая), структурная (схематическая, с основными компонентами системы) и полная схема ядра (объединение всех частей ядра в единую схему). Постепенно разберемся с каждой из них и будем углублять знания о GNU/Linux. И в конце сравним архитектуры Windows и Linux.

  • Двухуровневая архитектура;
  • Структурная архитектура;
  • Сравнение Windows и GNU/Linux;
  • Полная схема ядра Linux;

Двух уровневая архитектура:

Архитектура любой ОС может быть разделена структурно на 2 части это ядро (Kernel) и программы (Applications). Applications+Kernel это ОС. Ядро (Kernel) – это центр ОС.

Читайте также:  Linux консоль login incorrect

Оно обеспечивает доступ программы к оборудованию компьютера, такого как оперативная память, процессорное время, жесткие диски, видеокарта и т.д.

Программы (Applications) – это разные утилиты, сервисы, прикладные программы и т.д. Из 2-х уровневой архитектуры, можно сделать вывод: ничего особенного.

Схематически так можно изобразить любую операционную систему. Windows, Dos, Unix, MAC ОС и другие. Попробуем разобраться детальней.

Программное обеспечение в GNU/Linux взято из проекта Ричарда Столлмэна GNU — то самое свободное программное обеспечение (open source). Ядро, которое использует GNU/Linux, то самое ядро Linux, написанное Линусом Торвальдсом.

Ядро любой ОС можно классифицировать как: монолитное ядро, модульное ядро, микроядро, экзо-ядро, нано-ядро, гибридное ядро. В ОС GNU/Linux используется монолитное ядро.

Монолитное ядро – изображено на рисунке и состоит из ядра (kernel) и модулей (modules). Части ядра – называют модулями.

При этом модуль ядра — это часть ядра, то есть модуль не является полноценной, независимой программой, а является частью одной большой программы, которая называется ядро ОС.

Все модули используют единое адресное пространство оперативной памяти, одни и те же данные. Иными словами, любой модуль может обратиться к данным которые использует другой модуль, так и к ОП другого модуля.

Как вывод крах одного модуля может повлечь за собой крах другого модуля или всей системы. К примеру, в случае если модуль некорректно изменит общие данные, то это может привести к ошибке в другом модуле и возможно к ошибке во всем ядре.

В архитектуре монолитного ядра есть свои плюсы и минусы. Плюсы заключаются в том, что разрабатывать отдельные модули ядра очень просто, и работает такое ядро очень быстро.

Минусом является то, что ошибка в работе любого модуля, может приведет к краху всей системы.
Старые ядра Linux требовали перекомпиляции ядра (то есть созданию нового ядра) при использовании нового оборудования.

То есть если возникала необходимость добавить новый модуль в ядро, то приходилось целиком пересобрать ядро. Новые ядра Linux могут на ходу подгружать модули. Такие модули часто называют динамическими.

Структурная схема ядра:

Посмотрим на архитектуру GNU/Linux немного детальней. Архитектура разбита на 3 функциональных уровня: уровень пользователя, уровень ядра и уровень аппаратуры.

Уровень пользователя — это то, что до этого момента мы называли: программы (Applications). На этом уровне работают разные программы, службы, системные утилиты и т.д.
Уровень ядра – тут находится само ядро ОС.

Уровень аппаратуры — тут находятся разные устройства таки как оперативная память, процессор, жесткие диски, видеокарта и т.д.

Читайте также:  Создать установочный диск линукс

В уровне пользователя есть программное обеспечение (пользовательские приложения), которое может работать напрямую с ядром, либо посредством специальных системных библиотек (к примеру: glibc).

В пространстве ядра есть “обращение к операционной системе”, это посредник между программами и ядром. (Executive Services), который принимает данные от программ и передает их ядру системы, а ядро непосредственно работает с оборудованием.

Как видно из схемы после “обращения к операционной системе”, есть всего два варианта развития дальнейших событий.

Обращаться можно только к “подсистема управления файлами” либо к “подсистема управления процессами”. “Подсистема управления файлами” – управляет всем: вводом/выводом, устройствами и т.д. “Подсистема управления процессами” – управляет процессорным временем, ОП, процессами и т.д. “Подсистема управления процессами” позволяет процессам обмениваться данными друг с другом с помощью специальных процедур, которые называют каналы. “Подсистема управления файлами” и “подсистема управления процессами” могут между собой взаимодействовать.

Именно “Подсистема управления файлами” ( файловая система) и “подсистема управления процессами”( управления процессами) — две основных компоненты ядра. “Подсистема управления файлами” формирует нужного синтаксиса данные и отправляет их “Драйверу устройства”. “Подсистема управления файлами” может передавать символы или блоки данных. Стоит отметить, что Linux изначально разрабатывался под девизом: «Пишите программы, которые бы поддерживали текстовые потоки, поскольку это универсальный интерфейс» (Дуг МакИлрой, изобретатель каналов UNIX).

Именно поэтому Подсистема управления файлами связана с драйверами напрямую не битовыми потоками, а символьными.

Подсистема управления файлами разрабатывалась с возможностью отобразить все что есть в системе: устройства (жесткий диск, принтеры и т.д.), процессы, и т.д. Как видно из схемы, именно на файловую систему ложится задача передавать данные устройствам. Именно здесь, в файловой системе, каждое устройство представляется в виде отдельного специального файла, что позволяет легко и просто обращаться к любому устройству.

Для связи с жестким диском процесс использует файл “/dev/hdа”. Который в свою очередь связывается с драйвером жесткого диска. Драйвер жесткого диска уже непосредственно обращается к жесткому диску и производит чтение или запись. Еще несколько примеров.

Например: принтер – это специальный файл, и все что будет скопировано в этот файл — будет распечатано.

Например: сетевой адаптер – это специальный файл, и все что будет скопировано в этот файл, будет передано по сети. Например: терминал (консоль пользователя) – это специальный файл, и все что в него будет записано, будет выведено на экране терминала (консоль пользователя).

Вывод:

В этой статье вы прочитали про архитектура ОС Linux, думаю вам было вполне интересно и вы многое узнали.

Источник

Оцените статью
Adblock
detector