Автор ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Sway ΠΈ языка Hare Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ микроядро Helios ΠΈ OC Ares

Π”Ρ€ΡŽ Π”Π΅Π’ΠΎΠ»Ρ‚ (Drew DeVault) прСдставил свой Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ — микроядро Helios. Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ находится Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° систСмах с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ x86_64. А дальнСйшСм ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ iscv64 ΠΈ aarch64. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° Π±Π»ΠΈΠ·ΠΊΠΎΠΌ ΠΊ Π‘ΠΈ языкС систСмного программирования Hare с ассСмблСрными вставками ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv3. Для ознакомлСния с состояниСм Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ тСстовый iso-ΠΎΠ±Ρ€Π°Π· (1 ΠœΠ‘).

АрхитСктура Helios построСна с оглядкой Π½Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ микроядра seL4, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для управлСния рСсурсами ядра вынСсСны Π² пространство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ для Π½ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚Π΅ ΠΆΠ΅ срСдства разграничСния доступа, ΠΊΠ°ΠΊ ΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… рСсурсов. ΠœΠΈΠΊΡ€ΠΎΡΠ΄Ρ€ΠΎ прСдоставляСт ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ для управлСния доступом ΠΊ физичСскому адрСсному пространству, прСрываниям ΠΈ рСсурсам процСссора, Π° высокоуровнСвыС абстракции Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для взаимодСйствия с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ… микроядра Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π·Π°Π΄Π°Ρ‡, выполняСмых Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅.

Π’ Helios примСняСтся модСль разграничСния доступа Π½Π° основС «capability». Π―Π΄Ρ€ΠΎ прСдоставляСт ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ для выдСлСния страниц памяти, отраТСния физичСской памяти Π² адрСсноС пространство, управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ ΠΏΠΎΡ€Ρ‚Π°ΠΌ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… устройств. Помимо сСрвисов ядра, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ консоли Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ ΠΈ BIOS VGA API. На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ядра Π±ΡƒΠ΄ΡƒΡ‚ обСспСчСны Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‰Π°Ρ ΠΌΠ½pΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, IPC, PCI, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Ρ€Π°Π·Π±ΠΎΡ€ Ρ‚Π°Π±Π»ΠΈΡ† ACPI ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‚Π΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ пСрспСктивС планируСтся Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ SMP, IOMMU ΠΈ VT-x.

Π§Ρ‚ΠΎ касаСтся пространства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚ΠΎ Π² ΠΏΠ»Π°Π½Π°Ρ… Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… сСрвисов ΠΈ систСмного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° Mercury, слоя совмСстимости с POSIX (Luna), ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Venus, окруТСния для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Gaia ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° для тСстирования ядра Vulcan. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° вСдётся с оглядкой Π½Π° использованиС ΠΏΠΎΠ²Π΅Ρ€Ρ… Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ оборудования — Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ этапС планируСтся созданиС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ThinkPad, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для GPU Intel HD, HD Audio ΠΈ Intel Gigabit Ethernet. ПослС этого оТидаСтся появлСниС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² для GPU AMD ΠΈ ΠΏΠ»Π°Ρ‚ Raspberry Pi.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° являСтся созданиС ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Ares со своим ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ ΠΈ графичСским интСрфСйсом. Π’ качСствС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ созданиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° упоминаСтся тяга ΠΊ экспСримСнтам ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠ°ΠΊ Ρ€Π°Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ (ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ «just for fun»). Π”Ρ€ΡŽ Π”Π΅Π’ΠΎΠ»Ρ‚ Π»ΡŽΠ±ΠΈΡ‚ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ собой Π°ΠΌΠ±ΠΈΡ†ΠΈΠΎΠ·Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ, нСсмотря Π½Π° ΠΎΠ±Ρ‰ΠΈΠΉ скСптицизм, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ…. Π’Π°ΠΊ Π±Ρ‹Π»ΠΎ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ Sway, ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ Aerc, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ совмСстной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ SourceHut ΠΈ языком программирования Hare. Но Π΄Π°ΠΆΠ΅ Ссли Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ³ΠΎ распространСния, ΠΎΠ½ послуТит ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… систСм. НапримСр, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для Helios ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ планируСтся ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Linux, Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для построСния графичСского интСрфСйса Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ привязаны ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

Автор ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Sway ΠΈ языка Hare Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ микроядро Helios ΠΈ OC Ares


Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru