Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Тип компьютерной программы ядра
Type of kernel computer program
Монолитное ядро – это архитектура операционной системы, при которой вся операционная система функционирует в пространстве ядра. Монолитная модель отличается от других архитектур операционных систем (например, архитектуры микроядра) тем, что она самостоятельно определяет высокоуровневый виртуальный интерфейс над компьютерным оборудованием. Набор примитивов или системных вызовов реализует все сервисы операционной системы, такие как управление процессами, обеспечение параллельности и управление памятью. Драйверы устройств могут быть добавлены в ядро в виде модулей.
A monolithic kernel is an operating system architecture where the entire operating system is working in kernel space. The monolithic model differs from other operating system architectures (such as the microkernel architecture) in that it alone defines a high level virtual interface over computer hardware. A set of primitives or system calls implement all operating system services such as process management, concurrency, and memory management. Device drivers can be added to the kernel as modules.
Загружаемые модули
Модульные операционные системы, такие как OS 9 и большинство современных монолитных операционных систем, таких как OpenVMS, Linux, BSD, SunOS, AIX и MULTICS, могут динамически загружать (и выгружать) исполняемые модули во время выполнения. Эта модульность операционной системы реализована на бинарном (образном) уровне, а не на уровне архитектуры. Модульные монолитные операционные системы не следует путать с архитектурным уровнем модульности, свойственным клиент-серверным операционным системам (и их производным, иногда продаваемым как гибридное ядро), которые используют микроядра и серверы (не путать с модулями или демонами). Фактически, динамическая загрузка модулей – это просто более гибкий способ управления образом операционной системы во время выполнения, в отличие от перезагрузки с другим образом. Модули позволяют легко расширять функциональность операционной системы по мере необходимости. Динамически загружаемые модули влекут за собой небольшие накладные расходы по сравнению со включением модуля в образ операционной системы. Однако в некоторых случаях динамическая загрузка модулей (по требованию) помогает минимизировать объем кода, выполняемого в пространстве ядра; например, для уменьшения занимаемого места операционной системой на встроенных устройствах или устройствах с ограниченными аппаратными ресурсами. А именно, выгруженный модуль не обязательно хранить в дефицитной оперативной памяти.
Modular operating systems such as OS 9 and most modern monolithic operating systems such as OpenVMS, Linux, BSD, SunOS, AIX, and MULTICS can dynamically load (and unload) executable modules at runtime. This modularity of the operating system is at the binary (image) level and not at the architecture level. Modular monolithic operating systems are not to be confused with the architectural level of modularity inherent in server client operating systems (and its derivatives sometimes marketed as hybrid kernel) which use microkernels and servers (not to be mistaken for modules or daemons). Practically speaking, dynamically loading modules is simply a more flexible way of handling the operating system image at runtime—as opposed to rebooting with a different operating system image. The modules allow easy extension of the operating systems' capabilities as required. Dynamically loadable modules incur a small overhead when compared to building the module into the operating system image. However, in some cases, loading modules dynamically (as needed) helps to keep the amount of code running in kernel space to a minimum; for example, to minimize operating system footprint for embedded devices or those with limited hardware resources. Namely, an unloaded module need not be stored in scarce random access memory.