Архитектура ос linux кратко

Обновлено: 30.06.2024

Linux — это семейство операционных систем (ОС), работающих на основе одноименного ядра. Нет одной операционной системы Linux, как, например, Windows или MacOS. Есть множество дистрибутивов (набор файлов, необходимых для установки ПО), выполняющих конкретные задачи.

Кратчайшая история создания Linux

Линус Торвальдс — первый разработчик и создатель Linux. Именно в честь него и была названа ОС. В 1981 году Линус начал работу над собственной ОС семейства Unix. Через три года появилась первая версия, доступная для скачивания. Но тогда она имела очень низкий спрос — ей пользовались буквально несколько человек.

Только через 10 лет ОС Linux получила широкое распространение. Сообщество программистов подхватило идею свободного ПО, специалисты стали помогать развивать проект.

Про логотип

Логотип и талисман Linux — пингвин Tux с желтыми лапами и клювом. В 1996 году разработчики ядра Linux решили выбрать талисман. Торвальдс обмолвился о том, что ему очень нравятся пингвины. Поэтому на логотипе ОС изображен пингвин.

Где нужен Linux?

Веб-серверы

Дистрибутивы Linux практически полностью захватили рынок веб-серверов. Согласно рейтингу аналитического агентства W3Techs, на Linux-серверах развернуты 75,1% сайтов.

Мобильные устройства

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

Суперкомпьютеры

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

Они уникальны, для многих из них требуется особая ОС, способная решать конкретные задачи. Благодаря открытому исходному коду разработчики могут видоизменять ОС так, чтобы она работала и на таких машинах.

Игровые консоли

Linux занял свою нишу и в игровых консолях, но ориентированных на эту ОС игр пока не так много. Компания Steam работает над исправлением ситуации — разрабатывает операционную систему SteamOS. Она будет поставляться вместе с игровой консолью Steam Machine.

Устройства IoT и умная техника

Многие из них созданы на основе Linux. Так, компания Samsung разработала операционную систему Tize, LG — WebOS, а Panasonic и Philips используют FirefoxOS.

Авиация и транспорт

Во встроенных компьютерах Tesla и машинах с автопилотами Google используется операционная система Linux. ПО для отслеживания трафика в США аналогично разработано на этой ОС, а администрация авиации Америки перешла на нее еще в 2006 году.

Какие компоненты у дистрибутива Linux?

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

Что это такое, как работает и зачем нужно? Это так называемая главная программа, основная часть ОС. Ядро выступает в качестве посредника между устройствами ПК (видеокартой, процессором, оперативной памятью и пр.) и его ПО. Для этого в коде есть драйверы устройств. Они загружаются в память или подключаются по мере необходимости ресурса определенного устройства. Ядра управляют устройствами, процессами и памятью, обрабатывают системные вызовы.

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

Какие есть виды ядер? Всего выделяют 3 типа: микроядра, монолитные и гибридные.

Микроядро (microkernel)

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

Плюсы:

теоретически высокая степень надежности (по сравнению с другими архитектурами);

низкое потребление памяти;

легкое подключение дополнительных частей ядра (модульность).

Минусы:

низкая скорость из-за постоянного переключения между отдельными частями;

доступность аппаратных средств только через драйверы.

Монолитное ядро (monolithic)

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

Плюсы:

прямой доступ к аппаратным средствам;

простой обмен данными между процессами;

более высокая скорость реакции процессов.

Минусы:

меньшая степень безопасности (по сравнению с микроядром);

занимает много оперативной памяти.

Гибридное ядро (hybrid)

Комбинация элементов двух ранее описанных архитектур. Для ускорения работы запускает модули операционной системы в пространстве ядра.

Плюсы:

возможность выбора того, что будет функционировать в пространстве ядра и пользователя;

меньший физический размер (в сравнении монолитным ядром);

большая степень гибкости.

Минусы:

более медленная работа;

выпуск драйверов устройств только производителями.

Начните свой путь в IT

Попробуйте себя в программировании, аналитике данных, Data Science и других востребованных специальностях — получите все курсы для входа в IT по цене одного.

Ядро Linux — монолитное, при этом оно заимствует некоторые идеи из микроядерной архитектуры. Это означает, что вся ОС функционирует в пространстве ядра, а драйвера устройств могут легко загружаться (или выгружаться) непосредственно при работе операционной системы.


Железо аппаратное обеспечение ПК с его периферийными устройствами.

Ядро основной компонент ОС, взаимодействует с аппаратным обеспечением, выступает посредником между низкоуровневым железом и компонентами верхнего уровня.

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

Утилиты — служебные программы, дающие пользователю большую часть функциональных возможностей System OS Linux. Виды утилит: sed, cat, date, vi и прочие.

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

Системные утилиты

Утилиты — вспомогательные компьютерные программы в составе общего ПО. Они нужны для выполнения типовых задач, связанных с работой оборудования и ОС. У Linux есть набор простых утилит. Они позволяют, например, редактировать данные, изменять расположение файлов.

Системные библиотеки

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

Утилиты разработки ПО

При помощи трех вышеперечисленных компонентов операционная система сможет запускаться и функционировать. Но для обновления и создания новых программ нужно иметь дополнительные библиотеки и инструменты — toolchain. Этот набор программ, инструментов и утилит поможет создавать рабочее приложение из исходных кодов.

Пользовательские программы

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

Плюсы Linux

Минусы Linux

  • Сложности с освоением ОС. Интерфейс большей части версий Linux значительно отличается от привычных Windows и MacOS.
  • Консоль и терминал. Консоль позволяет управлять операционной системой через ввод текста. Там же высвечиваются ответы ОС. Терминал — это современный аналог консоли, он отображается в виде окна на фоне рабочего стола.


  • Требование прав доступа к файлам для работы части программ. Для пользователя это значит, что придется вводить пароль по несколько раз в сутки.
  • Малое количество совместимых игр и программ (по сравнению с Windows). Сегодня это одна из основных причин, почему пользователи не переходят на Linux.

Поддержка и помощь

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

Найдите свой путь в IT

Освойте разработку, аналитику данных, Data Science или другие востребованные профессии — получите все курсы для входа в IT по цене одного.

Аннотация: В лекции рассмотрены следующие вопросы: история создания Linux; Linux и GNU-проекты; ядро Linux; развитие Linux; архитектура Linux; диалекты Linux; Linux как серверная ОС; принципы проектирования Linux; компоненты Linux; динамически подгружаемые модули ядра; управление процессами.

Презентацию к данной лекции Вы можете скачать здесь.

Введение

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

  1. История Linux
  2. Принципы проектирования Linux
  3. Модули ядра Linux
  4. Управление процессами в Linux
  5. Планирование в Linux
  6. Управление памятью в Linux
  7. Файловые системы в Linux
  8. Ввод и вывод в Linux
  9. Взаимодействие процессов в Linux
  10. Структура сети в Linux
  11. Безопасность в Linux.

История Linux

Linux – современная, свободно распространяемая ОС, основанная на стандартах и традициях UNIX .

История Linux берет свое начало с 1983 г., когда Ричард Столмен (Richard Stallman) начал проект GNU , а в 1985 г. основал некоммерческую организацию Free Software Foundation . Основная цель – разработка UNIX -подобной системы, которая состояла бы только из свободно распространяемого программного обеспечения .

Впервые Linux разработана как небольшое, но самодостаточное ядро ОС в 1991 Линусом Торвальдсом (Linus Torvalds), с основной целью добиться совместимости с UNIX .

История Linux – это история многолетнего (удаленного) взаимодействия пользователей всего мира, которое осуществляется почти исключительно через Интернет .

Система была cпроектирована с целью эффективного и надежного использования на распространенных персональных компьютерах, но она также используется и на многих других аппаратных платформах.

Основная часть ОС Linux полностью оригинальна, но на ней может также исполняться значительная часть свободно распространяемого программного обеспечения для UNIX , и в результате в распоряжении пользователей имеется оригинальная, свободно распространяемая, совместимая с UNIX система, в которой нет корпоративного конфиденциального кода.

Ядро Linux

Версия 0.01 (май 1991) не содержала сетевых средств, выполнялась только на 80386-совместимых Intel – процессорах, имела очень ограниченный набор драйверов устройств и поддерживала только файловую систему MINIX ( MINIX – операционная система типа UNIX , разработанная Andrew Tannenbaum).

Версия Linux 1.0 (март 1994) включала следующие новые возможности:

  • Поддержку стандартных для UNIX сетевых протоколов TCP/IP
  • BSD-совместимый интерфейс сокетов для сетевого программирования
  • Поддержку драйверов устройств для использования IP в сетях типа Ethernet
  • Расширенную файловую систему
  • Поддержку большого диапазона SCSI – контроллеров для высокопроизводительного доступа к дискам.

Версия Linux 1.2 (март 1995) была последней версией ядра Linux только для персональных компьютеров.

Версия Linux 2.0 выпущена в июне 1996, со следующими новыми возможностями:

  • Поддержкой нескольких аппаратных архитектур, включая полный 64-разрядный перенос на рабочие станции Digital Alpha (первые 64-разрядные рабочие станции в мире)
  • Поддержкой многопроцессорной архитектуры
  • Улучшенным кодом для управления памятью
  • Улучшенной производительностью TCP/IP
  • Поддержкой внутренних потоков (threads) ядра ОС, используемых для обработки зависимостей между загрузочными модулями и для автоматической загрузки модулей по требованию.
  • Стандартизованным конфигурационным интерфейсом.

Версия Linux 2.0 была доступна на процессорах Motorola 68000, Sun SPARC , PC ( x86 ) и PowerMac.

Современное состояние Linux, дистрибутивы и лицензирование

ОС Linux использует многие инструменты, разработанные как части Berkeley BSD UNIX , системы X Window разработки MIT , а также проекта GNU некоммерческой ассоциации Free Software Foundation ( FSF ).

Минимальный набор системных библиотек был разработан как часть проекта GNU , с улучшениями, разработанными сообществом Linux.

Средства сетевого администрирования Linux были разработаны на основе версии 4.3 Berkeley Software Distribution ( BSD ) UNIX . Недавние производные от BSD (например, UNIX FreeBSD), в свою очередь , заимствовали код из Linux.

Система Linux поддерживается слабо связанной сетью разработчиков, взаимодействующих через Internet . Небольшое число публично доступных ftp-серверов используется как хранилища информации о де-факто стандартах.

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

Ранние дистрибутивы включали диалекты SLS и Slackware. Red Hat и Debian – популярные дистрибутивы, соответственно, основанные на коммерческих и некоммерческих исходных кодах.

Единый формат файла пакета - RPM обеспечивает совместимость между различными дистрибутивами Linux.

Что касается инсталляции Linux, то, по личному опыту автора, при частичных инсталляциях Linux в различных конфигурациях (например, workstation ) и последующих "доинсталляциях" до полной версии возможны проблемы: инсталлятор "путает" фактический состав инсталлируемых пакетов (Linux Red Hat , 2003), по крайней мере, дополнить Linux до полной версии путем итеративных инсталляций не удается, и рекомендуется сразу же инсталлировать полную версию, т.е. явным образом изменить умолчания инсталлятора.

Ядро Linux распространяется на условиях GNU General Public License (GPL),которые установлены организацией Free Software Foundation .

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

Linux в основном используется как серверная операционная система , ввиду ее высокой надежности. Что касается использования Linux как клиентской ОС, то доля ее использования очень мала, как показывает приведенная на рис. 25.1 диаграмма использования различных ОС как Web-клиентов.

Использование различных операционных систем как Web-клиентов, март 2010.


увеличить изображение
Рис. 25.1. Использование различных операционных систем как Web-клиентов, март 2010.

Очень старый перевод, долгое время пролежавший в черновиках. Продолжение – частично уже есть, надеюсь – будет время и настроение продолжить.

Оригинал – на странице Conceptual Architecture of the Linux Kernel.

Более полное описание архитектуры – есть на странице Concrete Architecture of the Linux Kernel.

Обзор системы

Ядро Linux бесполезно само по себе – оно является частью одной большой системы, которая целиком является работоспособной. Поэтому, имеет смысле обсудить ядро в контексте всей системы. На изображении ниже отображена схема работы и связи всей системы, в которой участвует ядро:

kernel_arch_2

Операционная система Linux (или – GNU/Linux) состоит из четырёх основных частей:

    1. User applications (пользовательские приложения) – набор пользовательских приложений может быть разным в различных дистрибутивах Linux, но типичные примеры – это приложения обработки текста и веб-браузер;
    2. O/S services (службы операционной системы) – службы, которые обычно считаются частью операционной системы, такие как оконный менеджер, командная строка и т.д. Так же, сюда входит программный интерфейс ядра (компилятор/ы и библиотеки);
    3. Ядро Linux – основная интересующая нас часть; ядро создаёт абстрактный слой и является “посредником” между первыми двумя частями и hardware-частью компьютера;
    4. Hardware controllers (контроллеры оборудования) – подсистема, охватывающая все возможные физические устройства, такие как CPU, устройства памяти, жёсткие диски, сетевые карты – все они являются частью этой подсистемы.

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

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

    Роль ядра

    Ядро Linux представляет собой своего рода виртуальную машину для процессов. Процессы работают без всякой информации про оборудование компьютера – ядро абстрагирует весь уровень оборудования в единый совместимый виртуальный интерфейс. Кроме того, ядро реализует многозадачность прозрачно для всех процессов – каждый процесс “думает”, что он является единственным процессом в системе, и имеет полные и эксклюзивные права на память и другие ресурсы оборудования компьютера. Фактически же – ядро выполняет несколько процессов одновременно, и оно ответственно за распределение ресурсов оборудования таким образом, что бы каждый процесс получил достаточный доступ к этим ресурсам.

    Обзор структуры и зависимостей подсистем ядра

    Ядро Linux состоит из пяти основных подсистем:

    1. Process Scheduler ( SCHED ) – планировщик процессов, отвечает за контроль над доступом процессов к CPU. Планировщик обеспечивает такое поведения ядра, при котором все процессы имеют справедливый доступ к центральному процессору.
    2. Memory Manager ( MM ) – менеджер памяти, обеспечивает различным процессам безопасный доступ к основной памяти системы. Кроме того, MM обеспечивает работу виртуальной памяти, которая позволяет процессам использовать больше памяти, чем реально доступно в системе. Выделенная, но неиспользуемая память вытесняется на файловую систему, и при необходимости – возвращается из неё обратно в память ( swapping ).
    3. Virtual File System( VFS ) – виртуальная файловая система, создаёт абстрактный слой, скрывая детали оборудования, предоставляя общий файловый интерфейс для всех устройств. Кроме того, VFS поддерживает несколько форматов файловых систем, которые совместимы с другими операционными системами.
    4. Network Interface ( NET ) – сетевые интерфейсы, обеспечивает работу с различными сетевыми стандартами и сетевым оборудованием.
    5. Inter-Process Communication ( IPC ) – межпроцессная подсистема, поддерживающая несколько механизмов для process-to-process связей в единой Linux-системе.

    На рисунке ниже изображены связи всех этих подсистем, где линии исходят от зависимых подсистем к подсистемам, от которых они зависят:

    Общая структура и связи подсистем ядра Linux

    Другие зависимости не так явны, но не менее важны:

    • Планировщик процессов использует менеджер памяти, что бы согласовывать карту памяти для каждого процесса, когда он возобновляет своё выполнение;
    • Подсистема IPC зависит от менеджера памяти для поддержания механизма использования общей памяти; этот механизм позволяет двум процессам получить доступ к области общей памяти, в дополнение к их приватной памяти;
    • Виртуальная файловая система использует сетевые интерфейсы для обеспечения работы NFS (Nework File System), и использует менеджер памяти для обеспечения работы устройства RAM drive;
    • Менеджер памяти использует подсистему виртуальной файловой системы для поддержки swapping -а, и это единственная причина, по которой менеджер памяти зависит от файловой системы; когда процесс запрашивает доступ к участку памяти, который уже был вытеснен на диск (swapped out) – менеджер памяти выполняет запрос к файловой системе, что бы получить обратно данные из хранилища ( swap -раздела или swap -файла), а выполнение процесса на это время приостанавливается.

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

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

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

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

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

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

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

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

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

    Программы (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), который принимает данные от программ и передает их ядру системы, а ядро непосредственно работает с оборудованием.

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

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

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

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

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

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

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

    Вывод:

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

    Читайте также: