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

Обновлено: 06.07.2024

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

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

  • Операционная система – это программа, которая управляет выполнением прикладных программ и действует как интерфейс между пользователем компьютера и компьютерным оборудованием.
  • Более распространенное определение состоит в том, что операционная система – это единственная программа, постоянно работающая на компьютере (обычно называемая ядром), а все остальные – прикладные программы.
  • Операционная система занимается распределением ресурсов и служб, таких как память, процессоры, устройства и информация. Операционная система соответственно включает программы для управления этими ресурсами, такие как контроллер трафика, планировщик, модуль управления памятью, программы ввода-вывода и файловая система.
  1. Удобство. ОС делает использование компьютера более удобным.
  2. Эффективность. ОС позволяет эффективно использовать системные ресурсы компьютера.
  3. Способность к развитию. ОС должна быть построена таким образом, чтобы обеспечить эффективную разработку, тестирование и внедрение новых системных функций одновременно, не мешая обслуживанию.
  4. Пропускная способность. ОС должна быть сконструирована таким образом, чтобы она могла обеспечить максимальную пропускную способность (количество задач в единицу времени).

Основные функции операционной системы:

  • Управление ресурсами. Когда в ОС происходит параллельный доступ, это означает, что при доступе к системе нескольких пользователей ОС работает как диспетчер ресурсов. В ее обязанности входит предоставление пользователю оборудования. Это снижает нагрузку на систему.
  • Управление процессом. Сюда входят различные задачи, такие как планирование и завершение процесса. ОС управляет несколькими задачами одновременно. Здесь происходит планирование ЦП, что означает, что все задачи будут выполняться множеством алгоритмов, которые используются для планирования.
  • Управление хранилищем: механизм файловой системы, используемый для управления хранилищем. NIFS, CFS, CIFS, NFS и т. д. — это некоторые файловые системы. Все данные хранятся на различных дорожках жестких дисков, которыми управляет диспетчер хранения. Он включал жесткий диск.
  • Управление памятью: относится к управлению основной памятью. Операционная система должна отслеживать, сколько памяти было использовано и кем. Он должен решить, какой процесс нуждается в памяти и сколько. ОС также должна выделять и освобождать пространство памяти.
  • Управление безопасностью/конфиденциальностью. Операционная система также обеспечивает конфиденциальность с помощью паролей, чтобы неавторизованные приложения не могли получить доступ к программам или данным. Например, Windows использует проверку подлинности Kerberos для предотвращения несанкционированного доступа к данным.
  1. Пользователь
  2. Системные и прикладные программы
  3. Операционная система
  4. Оборудование

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


Рис. 1. Концептуальный вид компьютерной системы

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

  1. Он контролирует распределение и использование ресурсов вычислительной системы среди различных пользователей и задач.
  2. Он обеспечивает интерфейс между аппаратным обеспечением компьютера и программистом, который упрощает и делает возможным кодирование, создание и отладку прикладных программ.
  1. Предоставляет средства для создания и изменения программ и файлов данных с помощью редактора.
  2. Доступ к компилятору для перевода пользовательской программы с языка высокого уровня на машинный язык.
  3. Предоставить программу-загрузчик для перемещения скомпилированного программного кода в память компьютера для выполнения.
  4. Предоставьте подпрограммы, которые обрабатывают детали программирования ввода-вывода.
  • Компонент управления памятью, включающий буферизацию, кэширование и буферизацию.
  • Общий интерфейс драйвера устройства.

Драйверы для определенных аппаратных устройств.

Ассемблер —
Входными данными для ассемблера является программа на языке ассемблера. Результатом является объектная программа плюс информация, позволяющая загрузчику подготовить объектную программу к выполнению. Когда-то программист имел в своем распоряжении базовую машину, которая с помощью аппаратных средств интерпретировала определенные фундаментальные инструкции. Он запрограммирует этот компьютер, написав серию единиц и нулей (машинный язык), и поместит их в память машины.

Компилятор —
Языки высокого уровня — примеры FORTRAN, COBOL, ALGOL и PL/I — обрабатываются компиляторами и интерпретаторами. Компилятор — это программа, которая принимает исходную программу на «языке высокого уровня» и создает соответствующую объектную программу. Интерпретатор — это программа, которая выполняет исходную программу, как если бы это был машинный язык. Одно и то же имя (FORTRAN, COBOL и т. д.) часто используется для обозначения как компилятора, так и связанного с ним языка.

Загрузчик —
Загрузчик — это процедура, которая загружает объектную программу и подготавливает ее к выполнению. Существуют различные схемы загрузки: абсолютная, релокационная и прямая. В общем, загрузчик должен загрузить, переместить и связать объектную программу. Загрузчик — это программа, которая помещает программы в память и подготавливает их к выполнению. В простой схеме загрузки ассемблер выводит перевод программы на машинный язык на вторичное устройство, а загрузчик помещает его в ядро. Загрузчик помещает в память машинно-языковую версию пользовательской программы и передает ей управление. Поскольку программа-загрузчик намного меньше ассемблера, они делают больше ядра доступным для пользовательской программы.

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

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

  • Операционная система – это программа, которая управляет выполнением прикладных программ и действует как интерфейс между пользователем компьютера и компьютерным оборудованием.
  • Более распространенное определение состоит в том, что операционная система – это единственная программа, постоянно работающая на компьютере (обычно называемая ядром), а все остальные – прикладные программы.
  • Операционная система занимается распределением ресурсов и служб, таких как память, процессоры, устройства и информация. Операционная система соответственно включает программы для управления этими ресурсами, такие как контроллер трафика, планировщик, модуль управления памятью, программы ввода-вывода и файловая система.
  1. Удобство. ОС делает использование компьютера более удобным.
  2. Эффективность. ОС позволяет эффективно использовать системные ресурсы компьютера.
  3. Способность к развитию. ОС должна быть построена таким образом, чтобы обеспечить эффективную разработку, тестирование и внедрение новых системных функций одновременно, не мешая обслуживанию.
  4. Пропускная способность. ОС должна быть сконструирована таким образом, чтобы она могла обеспечить максимальную пропускную способность (количество задач в единицу времени).

Основные функции операционной системы:

  • Управление ресурсами. Когда в ОС происходит параллельный доступ, это означает, что при доступе к системе нескольких пользователей ОС работает как диспетчер ресурсов. В ее обязанности входит предоставление пользователю оборудования. Это снижает нагрузку на систему.
  • Управление процессом. Сюда входят различные задачи, такие как планирование и завершение процесса. ОС управляет несколькими задачами одновременно. Здесь происходит планирование ЦП, что означает, что все задачи будут выполняться множеством алгоритмов, которые используются для планирования.
  • Управление хранилищем: механизм файловой системы, используемый для управления хранилищем. NIFS, CFS, CIFS, NFS и т. д. — это некоторые файловые системы. Все данные хранятся на различных дорожках жестких дисков, которыми управляет диспетчер хранения. Он включал жесткий диск.
  • Управление памятью: относится к управлению основной памятью. Операционная система должна отслеживать, сколько памяти было использовано и кем. Он должен решить, какой процесс нуждается в памяти и сколько. ОС также должна выделять и освобождать пространство памяти.
  • Управление безопасностью/конфиденциальностью. Операционная система также обеспечивает конфиденциальность с помощью паролей, чтобы неавторизованные приложения не могли получить доступ к программам или данным. Например, Windows использует проверку подлинности Kerberos для предотвращения несанкционированного доступа к данным.
  1. Пользователь
  2. Системные и прикладные программы
  3. Операционная система
  4. Оборудование

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


Рис. 1. Концептуальный вид компьютерной системы

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

  1. Он контролирует распределение и использование ресурсов вычислительной системы среди различных пользователей и задач.
  2. Он обеспечивает интерфейс между аппаратным обеспечением компьютера и программистом, который упрощает и делает возможным кодирование, создание и отладку прикладных программ.
  1. Предоставляет средства для создания и изменения программ и файлов данных с помощью редактора.
  2. Доступ к компилятору для перевода пользовательской программы с языка высокого уровня на машинный язык.
  3. Предоставить программу-загрузчик для перемещения скомпилированного программного кода в память компьютера для выполнения.
  4. Предоставьте подпрограммы, которые обрабатывают детали программирования ввода-вывода.
  • Компонент управления памятью, включающий буферизацию, кэширование и буферизацию.
  • Общий интерфейс драйвера устройства.

Драйверы для определенных аппаратных устройств.

Ассемблер —
Входными данными для ассемблера является программа на языке ассемблера. Результатом является объектная программа плюс информация, позволяющая загрузчику подготовить объектную программу к выполнению. Когда-то программист имел в своем распоряжении базовую машину, которая с помощью аппаратных средств интерпретировала определенные фундаментальные инструкции. Он запрограммирует этот компьютер, написав серию единиц и нулей (машинный язык), и поместит их в память машины.

Компилятор —
Языки высокого уровня — примеры FORTRAN, COBOL, ALGOL и PL/I — обрабатываются компиляторами и интерпретаторами. Компилятор — это программа, которая принимает исходную программу на «языке высокого уровня» и создает соответствующую объектную программу. Интерпретатор — это программа, которая выполняет исходную программу, как если бы это был машинный язык. Одно и то же имя (FORTRAN, COBOL и т. д.) часто используется для обозначения как компилятора, так и связанного с ним языка.

Загрузчик —
Загрузчик — это процедура, которая загружает объектную программу и подготавливает ее к выполнению. Существуют различные схемы загрузки: абсолютная, релокационная и прямая. В общем, загрузчик должен загрузить, переместить и связать объектную программу. Загрузчик — это программа, которая помещает программы в память и подготавливает их к выполнению. В простой схеме загрузки ассемблер выводит перевод программы на машинный язык на вторичное устройство, а загрузчик помещает его в ядро. Загрузчик помещает в память машинно-языковую версию пользовательской программы и передает ей управление. Поскольку программа-загрузчик намного меньше ассемблера, они делают больше ядра доступным для пользовательской программы.

Раздел 404 Закона Сарбейнса-Оксли (SOX) требует, чтобы все публичные компании установили внутренний контроль и процедуры.

Закон о защите конфиденциальности детей в Интернете от 1998 года (COPPA) – это федеральный закон, который налагает особые требования на операторов доменов .

План North American Electric Reliability Corporation по защите критически важной инфраструктуры (NERC CIP) представляет собой набор стандартов.

Стандарт безопасности данных платежных приложений (PA-DSS) – это набор требований, призванных помочь поставщикам программного обеспечения в разработке безопасных .

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

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

Медицинская транскрипция (МТ) – это ручная обработка голосовых сообщений, продиктованных врачами и другими медицинскими работниками.

Электронное отделение интенсивной терапии (eICU) — это форма или модель телемедицины, в которой используются самые современные технологии.

Защищенная медицинская информация (PHI), также называемая личной медицинской информацией, представляет собой демографическую информацию, медицинскую .

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

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

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

Коэффициент усиления записи (WAF) – это числовое значение, представляющее объем данных, передаваемых контроллером твердотельного накопителя (SSD) .

API облачного хранилища — это интерфейс прикладного программирования, который соединяет локальное приложение с облачным хранилищем.

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

Получите полный доступ к Understanding the Linux Kernel, 3-е издание и более 60 000 других книг с бесплатной 10-дневной пробной версией O'Reilly.

Есть также прямые онлайн-мероприятия, интерактивный контент, материалы для подготовки к сертификации и многое другое.

Каждая компьютерная система включает в себя базовый набор программ, называемый операционной системой . Самая важная программа в наборе называется ядро . Он загружается в оперативную память при загрузке системы и содержит множество важных процедур, необходимых для работы системы. Другие программы являются менее важными утилитами; они могут предоставить пользователю широкий спектр интерактивных возможностей, а также выполнять все задачи, для которых пользователь купил компьютер, но основная форма и возможности системы определяются ядром. Ядро предоставляет ключевые средства для всего остального в системе и определяет многие характеристики более высокого программного обеспечения. Поэтому мы часто используем термин «операционная система» как синоним «ядру».

Операционная система должна выполнять две основные задачи:

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

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

Некоторые операционные системы позволяют всем пользовательским программам напрямую работать с аппаратными компонентами (типичным примером является MS-DOS). Напротив, Unix-подобная операционная система скрывает все низкоуровневые детали, касающиеся физической организации компьютера, от приложений, запускаемых пользователем. Когда программа хочет использовать аппаратный ресурс, она должна отправить запрос в операционную систему. Ядро оценивает запрос и, если оно решает предоставить ресурс, взаимодействует с соответствующими аппаратными компонентами от имени пользовательской программы.

Для реализации этого механизма современные операционные системы полагаются на наличие определенных аппаратных функций, которые запрещают пользовательским программам напрямую взаимодействовать с низкоуровневыми аппаратными компонентами или получать доступ к произвольным участкам памяти. В частности, аппаратное обеспечение вводит как минимум два разных режима выполнения для ЦП: непривилегированный режим для пользовательских программ и привилегированный режим для ядра. Unix называет их User Mode и Kernel Mode соответственно.

В оставшейся части этой главы мы познакомим вас с основными концепциями, лежащими в основе разработки Unix за последние два десятилетия, а также Linux и других операционных систем. Хотя эти концепции, вероятно, знакомы вам как пользователю Linux, в этих разделах мы попытаемся рассмотреть их немного глубже, чем обычно, чтобы объяснить требования, которые они предъявляют к ядру операционной системы. Эти общие соображения относятся практически ко всем Unix-подобным системам. Мы надеемся, что другие главы этой книги помогут вам понять внутреннее устройство ядра Linux.

Многопользовательские системы

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

Многопользовательские операционные системы должны включать несколько функций:

Механизм аутентификации для подтверждения личности пользователя

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

Механизм защиты от вредоносных пользовательских программ, которые могут вмешиваться в действия других пользователей или следить за ними

Механизм учета, который ограничивает количество единиц ресурсов, назначенных каждому пользователю

Для обеспечения надежных механизмов защиты операционные системы должны использовать аппаратную защиту, связанную с привилегированным режимом ЦП.В противном случае программа пользователя могла бы получить прямой доступ к схемам системы и преодолеть наложенные ограничения. Unix – это многопользовательская система, обеспечивающая аппаратную защиту системных ресурсов.

Пользователи и группы

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

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

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

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

Процессы

Все операционные системы используют одну фундаментальную абстракцию: процесс . Процесс может быть определен либо как «экземпляр исполняемой программы», либо как «контекст выполнения» работающей программы. В традиционных операционных системах процесс выполняет одну последовательность инструкций в адресном пространстве ; адресное пространство — это набор адресов памяти, на которые процесс может ссылаться. Современные операционные системы допускают процессы с несколькими потоками выполнения, то есть несколькими последовательностями инструкций, выполняемых в одном и том же адресном пространстве.

Многопользовательские системы должны обеспечивать среду выполнения, в которой несколько процессов могут быть активны одновременно и конкурировать за системные ресурсы, в основном ЦП. Системы, допускающие параллельные активные процессы, называются мультипрограммными или многопроцессорными . [*] Важно отличать программы от процессов; несколько процессов могут выполнять одну и ту же программу одновременно, а один и тот же процесс может выполнять несколько программ последовательно.

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

Unix — это многопроцессорная операционная система с вытесняемыми процессами. Даже когда ни один пользователь не вошел в систему и не запущено ни одно приложение, несколько системных процессов контролируют периферийные устройства. В частности, несколько процессов прослушивают системные терминалы, ожидая входа пользователя в систему. Когда пользователь вводит имя для входа, процесс прослушивания запускает программу, которая проверяет пароль пользователя. Если личность пользователя подтверждается, процесс создает другой процесс, запускающий оболочку, в которую вводятся команды. Когда графический дисплей активирован, один процесс запускает оконный менеджер, и каждое окно на дисплее обычно запускается отдельным процессом. Когда пользователь создает графическую оболочку, один процесс запускает графические окна, а второй процесс запускает оболочку, в которой пользователь может вводить команды. Для каждой пользовательской команды процесс оболочки создает другой процесс, который выполняет соответствующую программу.

Операционные системы, подобные Unix, используют модель процесса/ядра . У каждого процесса есть иллюзия того, что он единственный процесс на машине и имеет монопольный доступ к службам операционной системы. Всякий раз, когда процесс делает системный вызов (т., запрос к ядру, см. главу 10), аппаратное обеспечение меняет режим привилегий с User Mode на Kernel Mode, и процесс запускает выполнение процедуры ядра со строго ограниченной целью. Таким образом, операционная система действует в контексте выполнения процесса, чтобы удовлетворить его запрос. Всякий раз, когда запрос полностью удовлетворен, процедура ядра заставляет аппаратное обеспечение вернуться в режим пользователя, и процесс продолжает выполнение с инструкции, следующей за системным вызовом.

Архитектура ядра

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

Хотя академические исследования операционных систем ориентированы на микроядра , такие операционные системы, как правило, медленнее, чем монолитные, потому что явный обмен сообщениями между различными уровнями операционной системы имеет свою цену. Однако операционные системы с микроядром могут иметь некоторые теоретические преимущества перед монолитными. Микроядра вынуждают системных программистов применять модульный подход, поскольку каждый уровень операционной системы представляет собой относительно независимую программу, которая должна взаимодействовать с другими уровнями через четко определенные и понятные программные интерфейсы. Более того, существующую микроядерную операционную систему можно легко перенести на другие архитектуры, поскольку все аппаратно-зависимые компоненты обычно инкапсулированы в код микроядра. Наконец, микроядерные операционные системы, как правило, лучше используют оперативную память (ОЗУ), чем монолитные, потому что системные процессы, которые не реализуют необходимые функции, могут быть заменены или уничтожены.

Для реализации многих теоретических преимуществ микроядер без снижения производительности ядро ​​Linux предлагает модули . Модуль — это объектный файл, код которого может быть связан с ядром (и отсоединен от него) во время выполнения. Объектный код обычно состоит из набора функций, которые реализуют файловую систему, драйвер устройства или другие функции на верхнем уровне ядра. Модуль, в отличие от внешних слоев микроядерных операционных систем, не запускается как отдельный процесс. Вместо этого она выполняется в режиме ядра от имени текущего процесса, как и любая другая статически связанная функция ядра.

Основные преимущества использования модулей включают в себя:

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

Даже если модуль может полагаться на определенные аппаратные функции, он не зависит от фиксированной аппаратной платформы. Например, модуль драйвера диска, основанный на стандарте SCSI, работает как на IBM-совместимом ПК, так и на Hewlett-Packard Alpha.

Незначительное использование основной памяти

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

После компоновки объектный код модуля эквивалентен объектному коду статически компонуемого ядра. Следовательно, не требуется явная передача сообщений при вызове функций модуля. [*]

[*] Некоторые многопроцессорные операционные системы не являются многопользовательскими; пример — Microsoft Windows 98.

[*] Небольшое снижение производительности происходит, когда модуль связан и отключен. Однако этот штраф можно сравнить со штрафом, вызванным созданием и удалением системных процессов в микроядерных операционных системах.

Получите Понимание ядра Linux, 3-е издание прямо сейчас с онлайн-обучением O’Reilly.

Члены O’Reilly проходят онлайн-обучение в режиме реального времени, а также получают книги, видео и цифровой контент от более чем 200 издателей.

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