Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

seL4

Z Wikipedie, otevřené encyklopedie
seL4
VyvíjíNICTA a další[1]
Rodina OSUnix-like a další
DruhSvobodný software
Aktuální verze13.0.0 /1. července2024[2]
Podporované platformy32bitové:
ARM:
ARMv6 (ARM11)
ARMv7 (Cortex A8, A9, A15)
Intel:
x86
64bitové:
ARM:
ARMv8 (Cortex A53 (Raspberry Pi 3)[3]
(Cortex A72Raspberry Pi 4)[4])
Intel:
x86-64
RISC-V:RV64[5][6]
Typ jádramikrojádro třetí generace
Programovací jazykHaskell (model),C,assembler
LicenceSvobodný software, převážněGNU GPLv2[7] aBSDv2.
StavAktivní
Oficiální webseL4 (anglicky)
seL4 Home
L4.verified Home

seL4 (Secure Embedded L4) jesvobodnéjádro operačního systému, přesnějimikrojádro třetí generace, zaměřené na vysokoubezpečnost aspolehlivost.[1]

MikrojádroseL4 bylo vytvořeno jako pokračovatel revolučního mikrojádra druhé generaceL4 německého počítačového vědce jménemJochen Liedtke.

MikrojádroL4 bylo vytvořeno zejména s důrazem na co nejvyšší výkon. Také mikrojádroseL4 bylo vytvořeno s důrazem na vysoký výkon, avšak zároveň s přihlédnutím k otázkám bezpečnosti a formální bezchybnosti. Důležité zlepšení také spočívá v lepší přenositelnosti, a to nejen uživatelskýchserverů (poskytovatelů služeb mikrojádra běžících vuživatelském prostoru), ale též vlastního mikrojádra.[8]

Historie

[editovat |editovat zdroj]

První generace mikrojader

[editovat |editovat zdroj]

Operační systém typu mikrojádro vznikl jako reakce na neustálé zvětšování klasickýchmonolitických operačních systémů, u kterých tak začal být obtížný další vývoj a údržba. Návrh mikrojádra proto odpovídá teoriistrukturovaného programování. Výhoda mikrojádra spočívá v rozdělení systému na menší části (uživatelskéservery a vlastní mikrojádro), což přináší vyšší přehlednost kódu.

Nevýhodou mikrojádra je nutnost častější změny kontextu při systémovém volání mezi uživatelským procesem, mikrojádrem a obsluhujícími servery a s tím související ztráty výkonu.

Špatný výkon první generace mikrokernelů, jako byl zejménaMach 3, vedl v polovině devadesátých let 20. století množství vývojářů k redefinici celého konceptu mikrokernelu.

Asynchronní vnitro-kernelový konceptmeziprocesové komunikace (IPC) mikrokernelu Mach 3, používající velkouvyrovnávací paměť (buffer), se ukázal být jedním z hlavních důvodů pro jeho špatný výkon. Toto přimělo vývojáře na Machu založených operačních systémů k přenesení některých časově kritických komponent, jako jsou ovladače (systémGNU Hurd)[9] a souborové systémy, zpět do jádra, často až k přechodu khybridnímu jádru (systémymacOS,NT).[10] I když to poněkud zmírnilo problémy s výkonem, je to jasné porušení minimalistického konceptu opravdových mikrokernelů (a plýtvá jejich hlavními výhodami).

Detailní analýzaúzkého hrdla operačního systému Mach indikuje, že (jakékoliv další) požadavky na mikrokernel, dělají problém příliš složitým: kódmeziprocesové komunikace (IPC), jehož většina je v jádře, představuje špatnou lokalizaci; což ve výsledku znamená příliš mnoho neúspěšných čtenícacheCPU (musí se číst z mnohem pomalejší paměti). Tato analýza vedla k závěru, že efektivní mikrokernel musí být dostatečně malý, aby většina výkonu kritického kódu byla k dispozici v cache první úrovně (pokud možno malý zlomek zmíněné cache).

L4 family tree

Druhá generace mikrojader

[editovat |editovat zdroj]

Po zkušenosti s použitím svého mikrokernelu L3, dospěl Liedtke k závěru, že i několik dalších konceptů Machu bylo špatných (vizte též). Prostřednictvím zjednodušení konceptu mikrokernelu ještě vynalezl první mikrokernelyL4 (první vlna mikrojader druhé generace), které byly od počátku primárně navrženy pro vysoký výkon. Za účelem vyždímat každý kousek výkonu jádra, byly celé napsány vassembleru a jejichmeziprocesová komunikace (IPC) tak byla 20krát rychlejší než v případě Machu.

První vlna mikrojader druhé generace, je reprezentována zejména originálním systémemL4, který byl velice pečlivě vytvořen Jochenem Liedtkem vassembleru, což bylo důležité zejména pro vysoký výkon a rychlost tohoto systému. Ale brzy se ukázalo, že by bylo vhodné, aby nejen uživatelskéservery, ale též vlastní mikrojádro, bylo co nejlépe přenositelné na jiné systémy, s jinýmhardware a jinýmiCPU.

Proto se objevila druhá vlna (druhé generace mikrojader), která dala vzniknout mikrojádrům napsaným z větší části ve vyšších programovacích jazycích, zejména jako jsouprogramovací jazyky C aC++, a to mikrojádroL4Ka::Hazelnut a zejménaL4Ka::Pistachio nauniverzitě v Karlsruhe[11], aFiasco naTechnické univerzitě Drážďany.

Třetí generace mikrojader

[editovat |editovat zdroj]

Další vývoj přinesl potřebu třetí generace mikrojader, s vysokou bezpečností a dostupností, což vyústilo v požadavek formální (matematicky ověřené) bezchybnostizdrojového kódu mikrojader. Tato nová situace vedla k vývoji třetí generace mikrojader, jako jsouseL4[12][13] a pozdější verze Fiasco (Fiasco.OC, které je součástí systémuL4Linux).[14]

V roce2006 tedy zahájila skupinaNICTA programování třetí generace mikrokernelu, který se jmenujeseL4, s cílem poskytnout základ pro vysoce bezpečné a spolehlivé systémy, vhodné pro uspokojování bezpečnostních požadavků, jako jsou ty zCommon Criteria i mimo ně. Od začátku byl vývoj zaměřený na formální verifikaci jádra. Pro usnadnění splnění někdy vzájemně si odporujícími požadavků na výkon a verifikaci, tým použil middle-out softwarový proces, počínaje spustitelnou (modelovou) specifikací napsanou v jazyceHaskell.[12]seL4 používázabezpečení založené na způsobilosti (Capability-based access control) pro umožnění formální (matematické) kontroly ohledně přístupnosti objektů. Poté je však tento modelový kód v Haskellu (přibližně 5700 řádekzdrojového kódu)[15] přepsán dojazyka C (přibližně 8700 řádek) aassembleru (přibližně 600 řádek).[13][8][16]

Bezpečnost

[editovat |editovat zdroj]

seL4 je vyvíjen se zvláštním přihlédnutím k otázkám bezpečnosti a formální bezchybnostimikrojádra organizacíNICTA a dalšími vývojáři. Právě kvůli těmto vlastnostem byl vytvořen vývojový model, který umožňuje ověřit zdrojový kódseL4 vefunkcionálním jazyceHaskell pomocíformálních (matematických)důkazů.[8][1]

Výhoda mikrojader ověřených formálním důkazem

[editovat |editovat zdroj]

Ověření bezpečnosti operačních systémů pomocí matematického důkazu funguje i proti útokům využívající strojové učení. Ukazuje se, že útočník je ve výhodě, pokud útočí na komplikovaný systém, který navíc současnými prostředky nelze matematicky ověřit. Více zveřejňuje na svém blogu spoluautorseL4,Gernot Heiser.[17]

Architektura

[editovat |editovat zdroj]

Operační systémseL4, na rozdíl od původního operačního systémuL4, implementuje jako uživatelskýserver navíc i správu paměti mikrojádra. Tento uživatelský server se tak stává nezbytnou součástí mikrokernelu. Výsledkem však je další snížení nezbytného počtusystémových volání a neúspěšných čtenípaměti cache.[8]

Open Source

[editovat |editovat zdroj]

29. července2014,NICTA aGeneral Dynamics C4 Systems uvedly, že seL4 s příslušnými důkazy bylo uvolněno jakootevřený software.[18]Zdrojové kódy jádra amatematické důkazy (o jeho správnosti a bezpečnosti) byly uvolněny pod licencíGPLv2 a většina knihoven a nástrojů byla uvolněna pod2-klauzulovou BSD licencí.[19]

Podpora pro programovací jazyky

[editovat |editovat zdroj]

Podpora pro Rust v seL4

[editovat |editovat zdroj]

Nick Spinale, financovaný nadací seL4 Foundation, od roku 2023 vyvíjí podporu pro vývoj programů a aplikací vuživatelském prostoru seL4, vprogramovacím jazyceRust.

Spinale vytvořil komplexní infrastrukturu pro podporu jazyka Rust, která je dobře integrována se zbytkem ekosystému seL4 (capDL, Microkit, sel4test). Tato práce byla15. listopadu2023 přijata technickým řídícím výborem nadace seL4 a lze ji nalézt naGitHubu. Také Nickova přednáška na nedávném summitu seL4 je na kanáluYouTube seL4. Na GitHubu je k dispozici ukázkový systém, který využíváframeworkovladače zařízení, asynchronní programování v Rustu, a podporuknihoven z ekosystému Rustu k naprogramování maléhowebového serveru.

Celkovým výsledkem bude umožnit programátorům programovat bezpečnější kód, s méně chybami, na uživatelské úrovni nad systémem seL4, aniž by potřebovali úplné formální ověření (jako mikrojádro seL4), s jazykem Rust, který probouzí stále větší zájem, a který je v souladu s programováním vestavěných systémů kritických z hlediska zabezpečení a bezpečnosti.[20]

Podpora pro C++ v seL4

[editovat |editovat zdroj]

Samotné jádro seL4 pro provozování programovacího jazykaC++ nic nepotřebuje, pokud nepotřebujete používatstandardní knihovnu C++ (STL), která by tedy, v případě svého použití, měla být portována do konkrétního prostředí seL4. Pokud byste chtěli zkompilovat kód C++, který nepoužívá standardní knihovnu, pak je to relativně snadné a na GitHubu, v sekci sel4test je triviální příklad.[2]

Tento způsob je vhodný spíše pro vhled do problematiky, který by mohl trochu ukázat, co je vyžadováno pro správný port C++, ale nelze to brát jako dobrý nápad nebo způsob, jak vybudovat spolehlivý systém.[21]

Odkazy

[editovat |editovat zdroj]

Reference

[editovat |editovat zdroj]
  1. abcMIHULKA, Stanislav.Ochrání nehacknutelné jádro počítače před kybernetickými útoky? [online].http://www.osel.cz [cit. 2015-10-04].Dostupné online. 
  2. seL4 Version 13.0.0 Release.docs.sel4.systems [online]. [cit. 2024-11-01].Dostupné online. 
  3. Raspberry PI 3 Model B and Model B+ | seL4 docs.docs.sel4.systems [online]. [cit. 2024-01-09].Dostupné online. 
  4. Raspberry Pi 4 Model B | seL4 docs.docs.sel4.systems [online]. [cit. 2024-01-09].Dostupné online. 
  5. [1]
  6. OSIER-MIXON, Jeffrey.seL4 is verified on RISC-V! [online]. 2020-06-09 [cit. 2023-08-11].Dostupné online. (anglicky) 
  7. License.sel4.systems [online]. [cit. 2017-01-29].Dostupné v archivu pořízeném z originálu dne 2017-02-02. 
  8. abcdAdvanced Operating Systems [online]. NICTA [cit. 2015-07-19].Dostupné online. (anglicky) 
  9. KOUSOULOS, Constantine.Re: Device drivers in Mach? [online]. 2007-03-21.Dostupné online. (anglický) 
  10. CUSTER, Helen.Windows NT. 1.. vyd. Praha: Grada Publishing, 1994. 424 s.ISBN 80-85424-87-8. 
  11. L4Ka Project [online].http://www.kit.edu/english/ [cit. 2015-07-11].Dostupné online. (anglicky) 
  12. abDerrin, Philip (September 2006). "Running the manual: an approach to high-assurance microkernel development". ACM SIGPLAN Haskell Workshop: 60–71. Je zde použita šablona{{Cite conference}} označená jako k „pouze dočasnému použití“.
  13. abA formal proof of functional correctness was completed in 2009. (October 2009) "seL4: Formal verification of an OS kernel". 22nd ACM Symposium on Operating System Principles. Je zde použita šablona{{Cite conference}} označená jako k „pouze dočasnému použití“.
  14. Fiasco.OC - The L4Re Microkernel [online]. TU Dresden [cit. 2015-07-11].Dostupné online. (anglicky) 
  15. seL4: Formal Verification of an OS Kernel [online]. 2010-12-15 [cit. 2016-11-06].Dostupné online. 
  16. seL4: Formal Veri cation of an OS Kernel [online]. [cit. 2016-06-08].Dostupné online. 
  17. ML accelerates the cyber arms race — we need real security more than ever [online]. 2022-11-08 [cit. 2022-11-08].Dostupné online. (anglicky) 
  18. NICTA: Secure operating system developed by NICTA goes open source, tisková zpráva, [cit. June 25, 2015],Dostupné on-line.Je zde použita šablona{{Cite press release}} označená jako k „pouze dočasnému použití“.Archivováno 15. 3. 2016 naWayback Machine.
  19. Licensing | seL4 docs.docs.sel4.systems [online]. [cit. 2023-09-23].Dostupné online. 
  20. Support for Rust in seL4 userspace now available.sel4.systems [online]. [cit. 2024-01-28].Dostupné online. 
  21. Support for Rust in seL4 userspace now available.lists.sel4.systems [online]. [cit. 2024-01-28].Dostupné online. 

Související články

[editovat |editovat zdroj]

GNU – GNU GPL (licence)

[editovat |editovat zdroj]

BSD – BSD licence

[editovat |editovat zdroj]

Související systémy

[editovat |editovat zdroj]

Související témata


Další čtení

[editovat |editovat zdroj]

Externí odkazy

[editovat |editovat zdroj]
Portály:Svobodný software
  1. PM, WN. KataOS by mohl pohánět zařízení internetu věcí s podporou ML.www.businessit.cz [online]. [cit. 2022-12-14].Dostupné online. 
  2. Google oznámil vývoj operačního systému KataOS.www.abclinuxu.cz [online]. [cit. 2022-12-13].Dostupné online. 
  3. Announcing KataOS and Sparrow [online]. [cit. 2022-12-13].Dostupné online. 
Citováno z „https://cs.wikipedia.org/w/index.php?title=SeL4&oldid=24719777
Kategorie:
Skrytá kategorie:

[8]ページ先頭

©2009-2025 Movatter.jp