Архитектура ядра linux
Ядро — центральная часть операционной системы, обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, оперативная память, внешнее оборудование. Обычно предоставляет сервисы файловой системы.
Монолитное ядро
Монолитное ядро — классическая и на сегодняшний день наиболее распространённая архитектура ядер операционных систем. Монолитные ядра предоставляют богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве.
Монолитные ядра имеют долгую историю развития и усовершенствования и на данный момент являются наиболее архитектурно зрелыми и пригодными к эксплуатации.
Старые монолитные ядра требовали перекомпиляции при любом изменении состава оборудования. Большинство современных ядер позволяют динамически во время работы подгружать модули, выполняющие части функции ядра. Такие ядра называются модульными ядрами. Возможность динамической подгрузки модулей не нарушает монолитности архитектуры ядра, так как динамически подгружаемые модули загружаются в адресное пространство ядра и в дальнейшем работают как интегральная часть ядра. Не следует путать модульность ядра с гибридной или микроядерной архитектурой.
Достоинства: Скорость работы, упрощённая разработка модулей.
Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.
Примеры: традиционные ядра UNIX, такие как BSD; Linux, а так же MS-DOS, Microsoft Windows 9x, Windows Me, ядро Mac OS (до Mac OS 8.6).
На сегодняшний день Linux — монолитное ядро с поддержкой загружаемых модулей. Драйверы устройств и расширения ядра обычно запускаются на "кольце 0", с полным доступом к оборудованию. В отличие от обычных монолитных ядер, драйвера устройств легко собираются в виде модулей и загружаются или выгружаются во время работы системы.
Традиционно считается, что монолитные ядра имеют следующие недостатки: усложнение отладки ядра, понимание кода ядра, добавление новых функций и возможностей, удаление "мёртвого", ненужного унаследованного от предыдущих версий кода, разбухание кода монолитных ядер повышает требования к объёму оперативной памяти, требуемому для функционирования ядра ОС. Это недостатки делают монолитные ядерные архитектуры мало пригодными к эксплуатации в системах, сильно ограниченных по объёму ОЗУ, например, встраиваемых системах, производственных микроконтроллерах.
Поддерживаемые linux'ом платформы, доказывают расширяемость, а вследствии и доступность для понимания кода ядра; наличие платформ, применяемых во встраиваемых системах, опровергает и второе утверждение:
Argonaut RISC Core (ARC) от ARC International
ARM архитектура:
Acorn Archimedes и серия Risc PC
DEC StrongARM
Marvel (сейчас Intel) XScale
Sharp Zaurus
iPAQ
Palm, Inc.'s Tungsten Handheld
Gamepark Holdings' GP2X
Nokia 770 Internet Tablet
gumstix
Atmel AVR32
Axis Communications' ETRAX CRIS
Fujitsu FR-V
Alpha architecture:
DEC Alpha
Samsung Alpha CPU.
Семейство Hewlett-Packard's PA-RISC
H8 architecture от Renesas Technology, сейчас Hitachi.
H8/300
H8/500
Intel IA-64 Itanium, Itanium II.
IBM's S/390 (31-bit)
IBM's zSeries and System z9 мэйнфреймы (64-bit)
x86 архитектура:
8086, 8088, 80186, 80188 и 80286 CPU находятся в разработке
Intel 80386, 80486, и похожие процессоры производства AMD, Cyrix, Texas Instruments and IBM variants
Вся серия Pentium
AMD 5x86, K5, K6, Athlon (all 32-bit versions), Duron, Sempron
x86-64: AMD's 64-bit процессоры (архитектура сейчас известна как AMD64 или EM64T (Intel)); поддерживаются Athlon 64, Opteron и Intel Core 2 процессоры
Cyrix 5x86, 6x86 (M1), 6x86MX and MediaGX (National/AMD Geode) series
VIA Technologies Eden (Samuel II), VIA C3, and VIA C7 processors
Microsoft's Xbox (Pentium III processor), поддержка через проект Xbox Linux
SGI Visual Workstation (Pentium II/III процессор(ы) с чипсетом SGI)
Sun Microsystem x86 Workstation (80386 and 80486).
M32R от Mitsubishi.
MIPS архитектура:
Jazz
Cobalt Qube, Cobalt RaQ
DECstation
Godson (MIPS-like), Godson II, and Godson IIE from BLX IC Design Ltd (China).
Некоторые модели PlayStation 2, поддержка через проект PS2 Linux
Freescale (прежде Motorola) 68K architecture (68020, 68030, 68040, 68060):
Some Amigas: A1200, A2500, A3000, A4000
Apple Macintosh II, LC, Quadra, Centris and early Performa series
рабочие станции Sun Microsystems 3-ей серии (поддержка экспериментальная, используя Sun-3 MMU)
NEC v850e
Power архитектура:
IBM Servers.
PowerPC architecture:
IBM's CELL
Весьма новые Apple Computers (все PCI-based Power Macintoshes, ограничено поддерживаемые из-за старого NuBus Power Macs)
Клоны PCI Power Mac продаваемые Power Computing, UMAX and Motorola
Amigas модернизированный "Power-UP" картой (такой как Blizzard или CyberStorm)
AmigaOne материнская плата от Eyetech Group Ltd (UK)
Samantha от Soft3 (Italy).
Amy'05 PowerPC материнская плата от Troika.
IBM RS/6000, iSeries и pSeries системы
Pegasos I и II на борту от Genesi.
Nintendo GameCube, из-за Gamecube Linux
Проект BlackDog из Realm Systems, Inc.
Sony Playstation 3 (PS3).
V-Dragon CPU from Culturecom.
Virtex II Pro Field Programmable Array (FPGA) из Xilinx с ядром PowerPC
SPARC:
Sun-4 series
SPARCstation/SPARCserver
Sun Ultra series
Sun Blade
Sun Fire
Клоны, сделанные компанией Tatung Company и другие
SuperH
