Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Threos: Mikrokernel oper´aci´os rendszer a gyakorlatban Nagy Andr´as ´ Bar´ath Aron © Conet Kft. 2017.
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Tartalom
1
Bevezet´es
2
Threos
3
Magasszint˝u software r´eteg
4
Live demo
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Hardware Software
Tartalom
1
Bevezet´es
2
Threos
3
Magasszint˝u software r´eteg
4
Live demo
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Hardware Software
Programok
• Nat´ıv (leford´ıtott) vagy interpret´ alt • Programok v´ egrehajt´as´ahoz fut´asi k¨ornyezet sz¨uks´eges • K¨ ornyezet: • Megfelel˝ o hardware ´es software ¨ osszes´ege • Kapcsolat a program ´ es a k¨ ulvil´ag k¨ oz¨ ott
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Hardware Software
Hardware k¨ornyezet • Utas´ıt´ asok beolvas´asa, ´ertelmez´ese ´es v´egrehajt´asa • Be- ´ es kimenetek kezel´ese • Nagyon alacsony szint ( vas”) ” • V´ egrehajt´o egys´eg (processzor) • Mem´ oria (RAM, ROM, FLASH) • Perif´ eri´ak • Sokf´ ele: komplex, nem nyitott, nem hibamentes • Neh´ ez kezelni • L´ eteznek speci´alis hardware k¨ornyezetek
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Hardware Software
Hardware alapok • V´ egrehajt´o egys´eg (processzor) • Sokf´ ele t´ıpus ´ anos c´el´ • Altal´ u (asztali g´ep, szerver, tablet) • Speci´ alis c´el´ u (grafika, hang) • Mikrokontroller (teljes rendszer egy chipben (SOC)) • Elmos´ odtak a hat´arvonalak • Technol´ ogiai fejl˝od´es hat´asa • • • • •
1994: Intel Pentium P54C (75-120 MHz, 8-12W, $849) 2015: Intel Atom x5-Z8500 (4mag 1.44 GHz, 2W, $25) 2014: ARM Cortex A7 (4mag 1.2 GHz, 1W, $2) MCU 2011: ARM Cortex M3 (180 MHz, 0.25W, $5) MCU 2017: ARM Cortex M0+ (48 MHz, 0.01W, $1) ´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Hardware Software
Processzor alapok • Kontextus • Programsz´ al fut´as´ahoz er˝ oforr´asok (regiszterek, flag) • Cser´ el´es hosszabb ideig is eltarthat • Privilegiz´ alt ´allapot ´ • Altal´ aban 2 szint • Privilegiz´ alt, Nem privilegiz´alt • Megszak´ıt´ asok • Software megszak´ıt´ asok, kiv´etelek (rendszerh´ıv´as) • Hardware megszak´ıt´ asok aszinkron (id˝ oz´ıt˝o)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Hardware Software
Processzor alapok: Processzor c´ımt´er • M˝ uveletek ´altal el´erhet˝o mem´oria • Von Neumann: egy c´ımt´ er utas´ıt´asoknak ´es adatnak • Harvard: k¨ ul¨ on c´ımt´er utas´ıt´asoknak ´es adatnak • Nem felt´ etlen¨ul egyezik meg a fizikailag c´ımezhet˝o
mem´oria m´eret´evel, lehet nagyobb vagy kisebb • 32 bit → 32 bit virtu´ alis, 36 bit fizikai (PAE) • 64 bit → 48 (56) bit virtu´ alis, 36-46 bit fizikai
• Hardware perif´ eri´ak regiszterei c´ımt´erbe lek´epezve
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Hardware Software
Processzor alapok: Virtu´alis mem´oria • Fix m´ eret˝u (4 KiB) blokkokra osztott c´ımt´er lek´epez´es • A lek´ epez´es nem felt´etlen¨ul folytonos • Fizikai mem´ oria t¨oredezetts´eg´et elfedi • V´ altogathat´o (kontextus v´alt´as) • Lassabb el´ er´es, laphib´ak kezel´ese • Virtu´ alis c´ımterek ´atfed´esben is lehetnek • Nem minden processzor t´ amogatja
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Hardware Software
Programok software k¨ornyezete
• Elfedi a hardware k¨ ornyezetet • Egys´ eges software fel¨uletet biztos´ıt • T¨ obb szint˝ u (pl. interpreter, web b¨ ong´esz˝o) • Lehet nyers vasra” (bare metal) is programot ´ırni ” • Be´ agyazott rendszerekben nem ritka • Oper´ aci´os rendszer!
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Hardware Software
Oper´aci´os rendszer • Alacsony szint˝ u software r´eteg • Szolg´ altat´asok egys´eges fel¨ulete • Sz´ eles spektrum • K´ et nagy p´olus: Microkernel ´es Monolitikus kernel • Hol h´ uzzuk meg az oper´aci´os rendszer hat´arvonal´at • Oper´ aci´os rendszer r´eszei egyben vagy k¨ ul¨on • Sz´ etosztott vagy k¨ ozpontos´ıtott • Sebess´ eg, komplexit´as, modularit´as vonzata van • Hibrid kernel (r´ eszben micro, r´eszben monolitikus)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Hardware Software
Oper´aci´os rendszer: Microkernel • Kicsi kernel, csak alapfunkci´ ok • Szolg´ altat´asok k¨ul¨on programokban
¨ • Uzenetk¨ uld´es a k¨ozponti mechanizmus • Lassabb lehet a kontextus v´ alt´asok miatt • Biztons´ agosabb • P´ arhuzamos m˝uk¨od´es (t¨obb processzor) • Nem kell kernel ´ allapotot menteni
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Hardware Software
Oper´aci´os rendszer: Monolitikus kernel
• Egy nagy kernel • Minden funkci´ ot a kernel l´at el (modulok) • Kevesebb kontextus v´ alt´as • Nem szepar´ alt, bels˝o er˝oforr´as f¨ugg˝os´egek • Device driver mag´ aval r´anthatja az eg´esz rendszert • Sz¨ uks´eges a kernel ´allapot´anak ment´ese
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Hardware Software
Oper´aci´os rendszer: Alapvet˝o felhaszn´al´asi teru¨let
• Microkernel • Kis helyig´ eny • Val´ os idej˝ u feladatok • Be´ agyazott rendszerek (GSM/GPRS modem) • Monolitikus kernel • Nagyobb rendszerek • Hat´ arok elmos´odnak
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Tartalom
1
Bevezet´es
2
Threos
3
Magasszint˝u software r´eteg
4
Live demo
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Tervez´esi szempontok
• Alacsony mem´ oria ´es teljes´ıtm´eny ig´eny • Gyors m˝ uk¨od´es, r¨ovid v´alaszid˝o • Modularit´ as • K¨ onny˝u portolhat´os´ag
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Threos oper´aci´os rendszer
• Microkernel • Val´ os idej˝u u¨temez´es • Multitasking, multithreading • Virtu´ alis mem´oria kezel´ese, de egy c´ımt´er • ASLR adja mag´ at • Task kontextus´ aban fut´o megszak´ıt´asok • Nagyon kev´ es architekt´ura f¨ugg˝o r´esz
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Threos microkernel tulajdons´agok
• Objektum orient´ alt szeml´eletm´od • Alapvet˝ oen C-ben + C preprocessz´alt ASM • Gyors, egyszer˝ u rendszerh´ıv´asok (timeout) • Single stack kernel (stateless) • Param´ eter ´atad´as csak regisztereken kereszt¨ul
¨ • Uzenet alap´u kommunik´aci´o
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Kernel objektumok • K¨ oz¨os header ( o˝soszt´aly”)
”
• Csak rendszerh´ıv´ asokon kereszt¨ul lehet hozz´af´erni • Haszn´ alat el˝ott l´etre kell hozni • Egy objektum t¨ obb l´ancon is szerepelhet (owner, timeout) • Objektumok automatikus t¨ orl´ese (tulajdonos t¨orl´ese) • Kritikus fut´ asi id˝oben nem lehet objektumot l´etrehozni • Task felszabad´ıt´ asa sok´aig is eltarthat → kiszervezhet˝o
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Task
• Alap ¨ osszefog´o objektum • Tulajdonosa m´ as objektumoknak • K¨ oz¨os c´ımt´er a fut´asi sz´alaknak • Nincs sz¨ ul˝o-gyerek kapcsolat • Priorit´ assal rendelkezik • Privilegiz´ alhat´o
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Thread
• Fut´ asi egys´eg kontextussal • Task-hoz tartozik, annak a c´ımter´ eben fut • Priorit´ assal rendelkezik (Task-on bel¨uli priorit´as) • Kell stack-et defini´ alni neki • Gyorsan l´ etrehozhat´o
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Memo (MEMory Object) • Mem´ oria lapokb´ol ´all´o egys´ege • Task-hoz tartozik • Nem felt´ etlen¨ul folytonos, de lehet k´erni (DMA) • Nem felt´ etlen¨ul tartozik hozz´a fizikai mem´oria (HW IO) • Lehet fix fizikai c´ımre k´ erni (HW IO) • Speci´ alis t´ıpus Copy Memo, copy-on-write megval´os´ıt´as´ara • Tartalma View-on kereszt¨ ul c´ımezhet˝o
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
View
• N´ ezet egy adott Memo adott r´esz´ere • Virtu´ alis c´ımt´er egybef¨ugg˝o r´esze • Task-hoz ´ es Memo-hoz tartozik • Lehet t¨ obb k¨ul¨onb¨oz˝o View egy Memo-ra • Virtu´ alis c´ımek kioszt´asa AVL-fa haszn´alat´aval
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
View kezel´es
• Virtu´ alis c´ım el´er´esekor van felhaszn´alva • Laphiba (kiv´ etel) eset´en: • Memo lap foglal´ as, m´asol´as, tiszt´ıt´as • Task virtu´ alis c´ımter´ebe lek´epez´es (mappel´es) • Laphiba induk´ alhat magasabb szint˝u m˝uveleteket: • On demand loading • On demand relocation
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Memo ´es View lek´epez´ese
Ta
P
Tb
0
0
0
VA0
VS0
VA1
MA0 MB0
MB1 MA1
VB0
VB1
VS1
Vmax
MS0
VS0
´ Nagy Andr´ as, Bar´ ath Aron
MS1
VS1
Pmax
Vmax
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
View c´ımt´er tulajdons´agok • Egy k¨ oz¨os virtu´alis c´ımt´er van, de v´edett (szepar´alt) • Mem´ oria mindenk´eppen korl´atos, nincsenek v´egtelen
er˝oforr´asok • K¨ oz¨os c´ımt´er eset´en pointerek ugyanoda mutatnak • Gyors shared memory • Hasonl´ o fel´ep´ıt´es VM n´elk¨ul is (MCU) • Lehet csak virtu´ alis c´ımteret foglalni (VirtualAlloc)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
View c´ımt´er tulajdons´agok (folyt.)
• Program r´ eszei fut´asi id˝oben is megoszthat´oak • Nem kell L1i cache-t t¨ or¨olni kontextus v´alt´askor • VIVT (virtually indexed virtually tagged) eset´ en • T´ enyleges p´arhuzamos m˝uk¨od´es • Relok´ alni kell a programokat
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Message Port (MsgPort) ¨ • Uzenetek k¨uld´es´ere ´es fogad´as´ara szolg´al • Task-hoz tartozik • Fix mennyis´ eg˝u (10-20) u¨zenet t´arol´as´ara alkalmas • Kapacit´ as ford´ıt´asi id˝oben defini´alt • Aszinkron k¨ uld´es • Ha betelt, akkor a v´ arakoz´ok sor´aba ker¨ul a k¨uld˝o • Ha u ¨res, akkor a v´arakoz´ok sor´aba ker¨ul a fogad´o
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Message (Msg) • Folyamatok k¨ oz¨otti kommunik´aci´o alapja • Nem val´ odi objektum (csak SignalMsg eset´eben) • Csak u ¨zenetportokon kereszt¨ul lehet k¨uldeni ´es fogadni • 3´ ert´ek (32 vagy 64 bit, architekt´ura specifikus) • Konvenci´ o: k¨uld˝o, u¨zenet1, u¨zenet2 (sender, msg1, msg2) • Sender alapvet˝ oen egy Handle ¨ • Uzenetek ´ ert´eke b´armi lehet (azonos´ıt´ o, mutat´o,
kompozit ´ert´ek)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Signal Message (SignalMsg)
• Gyorsan ´ es garant´altan akarunk u¨zenetet k¨uldeni • Task-hoz tartozik • Ak´ ar t¨obbsz¨or is elk¨uldhetj¨uk • Fogad´ as ut´an nem t¨orl˝odik, u´jrafelhaszn´alhat´o • Megszak´ıt´ asb´ol val´o u¨zenet k¨uld´esre • Megszak´ıt´ asban nem lehet v´arakozni
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Interrupt Service Routine (ISR) • Hardware megszak´ıt´ asok kezel´es´ere • Egy megszak´ıt´ ashoz t¨obbet is lehet rendelni • Task-hoz tartozik, annak c´ımter´ eben, jogosults´ag´aval fut • Speci´ alis sz´al, nem callback • Van saj´ at stack-je (tulajdonos Task c´ımter´eb˝ol) • H´ıvhat rendszerh´ıv´ asokat, de nem v´arakozhat • Rendszerh´ıv´ assal t´er vissza (RetISR) • Laphiba vagy v´ arakoz´as eset´en abort´al´odik
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Rendszerh´ıv´as tulajdons´agok
• 60 rendszerh´ıv´ as • Regisztereken kereszt¨ uli param´eter ´es eredm´eny ´atad´as • A kernel nem l´ atja a h´ıv´o c´ımter´et • Laphiba speci´ alis rendszerh´ıv´as”, blokkol´odhat a Thread
”
• Kiv´ etelek: Thread fogja feldolgozni • FPU regiszterek bet¨ olt´ese, kiment´ese csak sz¨uks´eg eset´en • Kernel nem haszn´ al FPU-t
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Rendszerh´ıv´as fel´ep´ıt´es • Architekt´ ura f¨ugg˝o r´esz (Assembly ´es C) • Rendszerh´ıv´ as prol´ ogus ´es epil´ ogus • P´ ar funkci´o csak itt van megval´ os´ıtva (pl. RetISR) • Magas szint˝ u rendszerh´ıv´as f¨uggv´eny (C) • Objektumok l´ etrehoz´as, megsz¨ untet´es, m´odos´ıt´as • Task-ok, Thread-ek v´ arakoztat´asa, fel´eleszt´ese ¨ • Utemez´ es • Platform f¨ ugg˝o r´eszek (csak header, C makr´ok) • Pl. megszak´ıt´ asok sz´ama, regiszterek kioszt´asa
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Rendszerh´ıv´as architektu´ra fu¨gg˝o r´esz 1 2 3 4 5 6
´ ep´es rendszer u¨zem´odba (sysenter, syscall, svc, ...) Atl´ Alapvet˝o regiszterek ment´ese Thread strukt´ur´aba Bej¨ov˝o param´eter vizsg´alat (rendszerh´ıv´as sz´ama) Fut´asi id˝o elsz´amol´asa Magas szint˝u rendszerh´ıv´as (ASM → C) Visszat´er´esi ´ert´ek ´ertelmez´ese • Kell-e Thread-et (´ es Task-ot) v´altani? • Ha v´ alt´as van, u o h´ıv´as (ASM → C) ¨temez˝ • V´ alt´as eset´eben marad´ek regiszterek ment´ese
7 8
Ha kell, akkor virtu´alis c´ımt´er v´alt´as (m´asik Task) Thread regiszterek visszat¨olt´ese, ´es visszat´er´es ´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Rendszerh´ıv´as magas szintu˝ fu¨ggv´eny t¨orzs 1
Objektum param´eterek (Handle) vizsg´alata • • • •
2
Pseudo handle feldolgoz´as L´etezik-e az Objektum? V´egrehajthat´ o-e a m˝ uvelet? Megfelel˝oek a jogosults´agok?
M˝uvelet v´egrehajt´asa • Fel kell ´ ebreszteni alv´ o sz´alat? • V´ arakoztatni kell a h´ıv´ o sz´alat? • Megv´ altoztak-e a priorit´asok?
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Kernel Kernel objektumok Kernel rendszerh´ıv´ as
Kernel haszn´alata • Feladathoz szabhat´ o rendszer • A virtu´ alis mem´oria kezel´es megl´ete meghat´aroz´o • Virtu´ alis mem´oria kezel´est nem t´amogat´o hardware • Kisebb rendszer (Mikrokontrolleres k¨ ornyezet) • Sok minden kiesik (nincs laphiba) • Virtu´ alis mem´oria kezel´est t´amogat´o hardware ´ • Altal´ anos sz´am´ıt´ og´epes k¨ ornyezet (ARM, PPC, x86, x86 64) • Teljes ´ ert´ek˝ u nagy rendszer ´ep´ıthet˝ o • Lehet mindkett˝ on m˝uk¨od˝o programot ´ırni ´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Tartalom
1
Bevezet´es
2
Threos
3
Magasszint˝u software r´eteg
4
Live demo
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
I/O request • Megnyitott Device p´ eld´any sz¨uks´eges hozz´a • Nagy mennyis´ eg˝u adat is ´atk¨uldhet˝o
¨ • Uzenet k¨uld´ese a Device-nak
TD
0
Vmax IOreq
TP
0
Device
Vmax
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Device class • Azonos szerepk¨ or˝u device-ok (service-ek) k¨oz¨os interf´esze • DCLS_BLOCK • DCLS_FILESYSTEM • DCLS_SERVICE • ... • Egy device (service) t¨ obb class-t is megval´os´ıthat • pl. TCP/IP device: DCLS_TCPIP, DCLS_SERVICE • Vannak opcion´ alis parancsok • pl. FS_CMD_MKDIR
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Device Framework
• A rendszerben sok device driver tal´ alhat´o • Ezek hasonl´ o elven m˝uk¨odnek, sok tev´ekenys´eg ugyanaz • K´ od u´jra felhaszn´al´as • Aszinkron m˝ uk¨od´es • Library (static vagy dynamic)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Opcion´alis corutin k¨onyvt´ar (utask) • A device framework kieg´ esz´ıt´ese • Device-nak (service) egyszerre nagyon sok tev´ ekenys´ege
lehet • R´ esz tev´ekenys´egek, vagy egym´asra ´ep¨ul˝o tev´ekenys´egek • Nagyon kev´ es er˝oforr´as sz¨uks´eges hozz´a • Corutinok, amik meg tudj´ ak o˝rizni ´allapotukat
(´allapotg´epek) • Szinkroniz´ alhat´oak
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Program loader • Program ind´ıt´ asa: egy le´ır´o k¨uld´ese a loadersvc-nek • Adatszerkezetek el˝ o´all´ıt´asa, ´es er˝oforr´asok foglal´asa • Sz¨ uks´eges view-ok k´esz´ıt´ese • Sz¨ uks´eg eset´en page fault exception handler install´al´asa • Program bet¨ olt´ese page fault-ok ment´en • K´ od relok´al´asa (reloc info kell az ELF-be) • K¨ uls˝o szimb´olumok (weak, undef) felold´asa libsvc-vel • Rendszerh´ıv´ asok k¨ul¨on shared view-ban (Intel vs AMD)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Loader: crt0
• Mindenk´ eppen r´esze a programnak (mindig static library) • Legalapvet˝ obb tev´ekenys´egek elv´egz´ese • crt inicializ´ al´asa • main megh´ıv´ asa • crt takar´ıt´ o elj´ar´as´anak megh´ıv´asa
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Loader: crt
• Nagyobb library (lehet dinamikus is) • Heap m´ eret be´all´ıt´asa • libc kontextus ´ es kiv´etelkezel˝ok inicializ´al´asa • Parancssori argumentumok el˝ ofeldolgoz´asa • Task n´ ev be´all´ıt´asa (k´es˝obb)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
bootfs ´es cpio • Az adatok bootfs-en t´ arol´odnak • bootloader.ini • Rendszer image-ek: *.cpio.xz • Multi-config image • Tartalma teljes eg´ esz´eben a /run al´a ker¨ul (tmpfs) • Alapvet˝ o device-ok • IDE, SATA vez´ erl˝ o • Network driver-ek, TCP/IP service • VFS, file rendszerek • Config-ok, script-ek, devman ini-k ´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Config script • Egyszer˝ u szintaxis (´ert´ekad´as, szekvencia ´es el´agaz´as) • Alapm˝ uveletek elv´egz´ese eg´esz sz´amokon • String konkaten´ aci´o • Konverzi´ ok • Programind´ıt´ as • M˝ uveletek a registry-vel: • kulcs l´ etrehoz´as • kulcsra v´ arakoz´as • kulcs t¨ orl´es • A device manager script nyelve ´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Device manager • Supervisor • A detektorok inform´ aci´oi ide futnak be • Programok (´ ujra)ind´ıt´asa • F¨ ugg˝os´egek kezel´ese • A futtat´ asi k¨ornyezet egyszer ´ert´ekel˝odik ki • Config script-ek futtat´ asa • File rendszer interface: /dev • Karakter ´ es blokk device-ok list´az´asa
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
/$ ls -l /dev dr-xr-xr-x 1 root dr-xr-xr-x 1 root crw-rw-rw- 1 root dr-xr-xr-x 1 root c--------- 1 root drwxrwxrwx 1 root crw-rw-rw- 1 root brw-rw-rw- 1 root brw-rw-rw- 1 root brw-rw-rw- 1 root lrwxrwxrwx 1 root crwxrwxrwx 1 root crw-rw-rw- 1 root crw-rw-rw- 1 root crw-rw-rw- 1 root
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
root 0 2017-10-16 14:26:56 detectors root 0 2017-10-16 14:26:56 iniroot root 0 2017-10-16 14:26:56 null root 0 2017-10-16 14:26:56 programs root 0 2017-10-16 14:26:57 ptmx root 0 2017-10-16 14:26:56 pts root 0 2017-10-16 14:26:56 random root 0 2017-10-16 14:26:56 sata0n0 root 0 2017-10-16 14:26:56 sata0n1 root 0 2017-10-16 14:26:56 sata0n2 root 32 2017-10-16 14:26:56 tty -> /dev/pts/0 root 0 2017-10-16 14:26:57 tty0 root 0 2017-10-16 14:26:56 ttyS0 root 0 2017-10-16 14:26:56 urandom root 0 2017-10-16 14:26:56 zero
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Detektorok
• Hardware konfigur´ aci´o detekt´al´asa (ACPI, PCI) • M´ asra is haszn´alhat´ o • Statikus (PCI) ´ es dinamikus (USB) detekt´al´asok • A device manager-nek k¨ uldi el • A detekt´ alt hardware meghajt´oja kommunik´alhat a
detektor´aval • Szabv´ anyos interface
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Detektorok (xen p´elda)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Registry
• Fut´ asi idej˝u inform´aci´ok sz´albiztos megoszt´asa • task lista • device lista
´ • Ertes´ ıt´esi mechanizmus • T´ıpusok: dir, tmp, int, bin • Szerializ´ alhat´os´ag • Guarded key
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Registry guarded key
• A registry kulcsnak lehet egy tulajdonosa • A tulajdonos egy megnyitott registry p´ eld´any • A p´ eld´any bez´ar´od´asakor a kulcs automatikusan t¨orl˝odik • Felhaszn´ al´as: task lista, device lista
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Registry Watch
• Registry bejegyz´ esekre • A watch m´ elys´ege be´all´ıthat´o • Kulcs vagy r´ eszfa megv´altoz´asa eset´en u¨zenetet k¨uld
¨ • Uzenet t´ıpusok: m´odos´ıt´as ´es t¨orl´es • Felhaszn´ al´as: IPC ( glob´alis” v´altoz´o helyett)
”
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Library Service
• Program m´ eret´et n¨oveli a static library
´ • Erdemes a programk¨onyvt´arat k¨ul¨on tenni • Dinamikus hozz´ aszerkeszt´es: dynamic library • Input adat: Shared Executable (sx) • Szimb´ olumok felold´asa • Sz¨ uks´eg eset´en library megoszt´asa a klienssel
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Shared Executable (sx)
Stateless (shared)
Stateful (mapped)
• Nincs relok´ al´as
• GOT/PLT relok´ al´asa
• Nincs allok´ al´as
• .data, .bss allok´ al´as
• Korl´ atozott
• Univerz´ alis
• Nem lehet ´ allapota
• T´ arolhat ´allapotot
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Library p´elda (1)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Library p´elda (2)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Library p´elda (3)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Library p´elda (4)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
VFS
• A file system inferf´ eszek nagyon alacsony szint˝uek • Egys´ eges fel¨ulet kell • El´ eg a VFS gy¨oker´et ismerni • K¨ onyvt´ar bejegyz´esek cache-el´ese • File system-ek fel´ e csak entry id (inode) • Speci´ alis bejegyz´esek: char, block, fifo, socket
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
File system service • Class: DCLS_FILESYSTEM • K¨ ul¨onb¨oz˝o file system-ek k¨oz¨os interf´esze • tmpfs • ext2 • ffs • bootfs • FAT32 • Nem felt´ etlen¨ul val´os´ıt meg minden m˝uveletet
¨ • Osszek¨ ot´es blokk vagy flash device-szal • Mindegyik a VFS-en kereszt¨ ul ´erhet˝o el ´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Network interface
• Ethernet ´ es Wi-Fi • Adatcsomagok k¨ uld´ese megadott MAC c´ımre • A hogyan nem ´ erdekes • K¨ oz¨os interf´esz: DCLS_NETIFACE • Speci´ alis m˝uveletek (NIF_CMD_GETOPT,
NIF_CMD_SETOPT)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
TCP/IP stack • Network interf´ eszek felhaszn´al´asa • Absztrakci´ os r´eteg • Robusztus, modul´ aris ´es testreszabhat´o • IPv4 u ¨zenetek k¨uld´ese • ICMP • UDP • TCP • Alkalmaz´ as szint˝u protokollok • DNS • DHCP • Adatok perziszt´ al´asa a registry seg´ıts´eg´evel ´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
SystemService
• Minden task megsz˝ un´es´ere feliratkozik (¨uzenet k¨uld´es) • Programok exit code-j´ anak kezel´ese • V´ arakoz´as program befejez˝od´es´ere • Device-ok ´ ertes´ıt´ese task t¨orl˝od´es´er˝ol • Megnyitott device p´ eld´anyok automatikus bez´ar´asa • Kev´ es program ker¨ul explicit interakci´oba vele
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
telnetd
• Telnet daemon • Fejleszt´ eshez kellett • Egyszer˝ u • Alacsony er˝ oforr´as ig´eny • Megb´ızhat´ o (TCP) • Tesztnek is kiv´ al´o
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
httpd
• Hypertext Transfer Protocol • FastCGI (´ es CGI) t´amogat´as • T¨ obbsz´al´u request feldolgoz´as • FastCGI programok automatikus bet¨ olt´ese ´es cache-el´ese • FastCGI-k u ´jra felhaszn´alhat´ ok
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
ftpd
• File Transfer Protocol
´ ford´ıtott bin´arisokat gyorsan kellett m´asolni • Ujra • TFTP k´ enyelmetlen ´es nem megb´ızhat´ o • httpd-hez hasonl´ oan t¨obbsz´al´u • Nem titkos´ıtott
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
HTTP k´er´es kiszolg´al´asa
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
pkman • Package manager • Teljesen C-ben ´ır´ odott • .pkg.cpio.xz form´ atum • Integrit´ as: SHA-256 • Verifik´ al´as: digit´alis al´a´ır´as (RSA, 2048+) • Az alpm ´ es a pacman ihlette • Nem kell minden programnak saj´ at update mechanizmus
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
makepk • pkman-kompatibilis package el˝ o´all´ıt´asa • K¨ ul¨onb¨oz˝o s´em´ak • A package form´ atum is param´eter • Feladata: • K¨ uls˝o tool-ok megh´ıv´asa (build) • Package le´ır´ o (integrit´as, al´a´ır´as) • cpio ¨ ossze´all´ıt´asa • T¨ om¨or´ıt´es (xz)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
barsh
• A bash egy egyszer˝ us´ıtett verzi´oja • Nincs k¨ ozponti szerepe • Automatikus- ´ es k¨ornyezeti v´altoz´ok kezel´ese • Shell script lehet˝ os´eg • Figyelembe veszi a shebang-et (interpreter v´ alaszt´as) • Minim´ alis a be´ep´ıtett parancsk´eszlet
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
utibox
• Unix-b´ ol ismert parancsok gy˝ujtem´enye • ls • cp • mv • Egyetlen program, k¨ oz¨os f¨uggv´enyek miatt • Symlink-ek v´ alasztj´ak ki az eszk¨ozt • Program bet¨ olt´ese lust´an!
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
sysbox • Rendszer er˝ oforr´asait ´es kernel objektumait kezeli • task • threads • tview • tmemo • treereg • Egyetlen program, k¨ oz¨os f¨uggv´enyek miatt • Symlink-ek v´ alasztj´ak ki az eszk¨ozt • Program bet¨ olt´ese lust´an!
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Dokument´aci´o
• Dokument´ aci´ok rendszerint package-k´ent: • pl: threos-docs, sysbox-docs • A dokument´ aci´o friss´ıt´ese is megoldott • Opcion´ alisan telep´ıthet˝oek • Rendszerint egyszer˝ u html file-ok • Olvashat´ oak pl. a cat tool-lal
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
I/O request-ekkel
• Teljesen aszinkron programok k´ esz´ıt´ese • K¨ ozponti szerepl˝o a MsgPort lesz • Kapcsolat a k¨ ulvil´aggal: • registry (service) • file system (vfs service) • socket-ek (tcpip service)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
POSIX
• A nyers I/O request-ek mellett ny´ ultott API • Ismertebb, ´ es rengeteg seg´edanyag el´erhet˝o • Aszinkron alkalmaz´ asok tov´abbra is k´esz´ıthet˝oek: poll • A k¨ ozponti szerepl˝o ´ıgy is a MsgPort lesz! • Kapcsolat a k¨ ulvil´aggal: • C99 ´ es POSIX file API • BSD-style socket API
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
P´eld´ak
• T¨ obb open source projekt is gond n´elk¨ul ford´ıthat´o • joe, tcc, ncurses, links • grep, make, sed, yacc • T¨ obb projekt forr´ask´ent ´erhet˝o el • ctris (make-elhet˝ o) • 2048-c (bin´ arisk´ent is)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Konklu´zi´o
• A Threos alapvet˝ oen m´as alapokra ´ep¨ult • Nem Unix/Linux, sem Windows • Egys´ eges API el˝ony • Fontos a POSIX (´ es a C89, C99) ismerete
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Alapok Rendszer indul´ as (boot-ol´ as) Device-ok, service-ek ´ es daemon-ok Alkalmaz´ asok ´ es fejleszt´ es
Felhaszn´al´asi teru¨let
• PC-n (de csak x86 64) • Be´ agyazott rendszerekben • Kev´ es er˝oforr´as • ARM, PPC • pl. OrangePI, de egyedi hardware is • Az eg´ esz rendszer modul´aris!
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Boot Rendszer ´ allapot analiz´ al´ asa
Tartalom
1
Bevezet´es
2
Threos
3
Magasszint˝u software r´eteg
4
Live demo
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Boot Rendszer ´ allapot analiz´ al´ asa
Q&A
Az eddigiekkel kapcsolatos k´erd´esek.
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Boot Rendszer ´ allapot analiz´ al´ asa
Els˝o f´azis • Elindul a vas • BIOS kiv´ alasztja a boot disk-et • MBR bet¨ olt´ese ´es elind´ıt´asa • Boot part´ıci´ o kiv´alaszt´asa • PBR bet¨ olt´ese ´es elind´ıt´asa • Bootloader bet¨ olt´ese ´es elind´ıt´asa • A bootloader kilist´ azza a boot-olhat´o konfigur´aci´okat • A konfigur´ aci´ ok a bootfs-en tal´alhat´ oak • A Threos mindenk´ eppen a bootfs-r˝ ol indul
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Boot Rendszer ´ allapot analiz´ al´ asa
M´asodik f´azis • A konfigur´ aci´ohoz tartoz´o XZ ut´an a bootloader bet¨olt´ese • XZ kit¨ om¨or´ıt´ese mem´ori´aban → CPIO • boot.cfg alapj´ an indul´o kernel image ¨ossze´all´ıt´asa • Az els˝ o modul a kernel • A t¨ obbi modul alapvet˝ o szolg´altat´asokat val´os´ıtanak meg • Pl: registry, loader, syslog, early serial, libsvc • A kernel ut´ an a modulok ind´ıt´asa, melyek p´arhuzamosan
futnak • Pl: a devman elkezdi a saj´ at tev´ekenys´eg´et, k¨ozben a
PCI is v´egzi a detekt´al´ast • A devman egyik utols´ o target-je a shell ´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Boot Rendszer ´ allapot analiz´ al´ asa
readlog
• A devman tev´ ekenys´ege (mit ind´ıtott el) • Detekt´ al´asok • Milyen detekt´ alt hardware-ek vannak • Milyen driver lett hozz´ arendelve • Mely hardware elemhez nem lett driver rendelve • TCP/IP esem´ enyek (pl. DHCP log)
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Boot Rendszer ´ allapot analiz´ al´ asa
task
´ • Eppen fut´o task-ok (process-ek) kilist´az´asa • -n: task nev´ enek megjelen´ıt´ese • -s: task st´ atusza • B: blocked • R: ready • r: running • Z: zombie
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Boot Rendszer ´ allapot analiz´ al´ asa
tview ´es tmemo
• Task view-jainak/memo-inak list´ az´asa • Root jogok sz¨ uks´egesek • Task ´ allapot´anak vizsg´alata • Allok´ alt ´es haszn´alt mem´oria mennyi´ege • Memory leak detekt´ al´asra is haszn´alhat´o
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Boot Rendszer ´ allapot analiz´ al´ asa
treereg
• Registry megjelen´ıt˝ o seg´edprogram • -a: bin´ aris kulcsok ASCII-k´ent • -F: bejegyz´ es t´ıpusa • -x: eg´ esz sz´amok hexadecim´alisk´ent
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban
Bevezet´ es Threos Magasszint˝ u software r´ eteg Live demo
Boot Rendszer ´ allapot analiz´ al´ asa
Q&A K¨osz¨onju¨k a figyelmet! http://threos.io
[email protected] [email protected]
´ Nagy Andr´ as, Bar´ ath Aron
Threos: Mikrokernel oper´ aci´ os rendszer a gyakorlatban