Micronuclei contra nucleos monolithicos: compensationes iterum inspectae
Paucae disputationes de consilio systematum operativorum tam diu duraverunt quam disputatio inter micronucleos et nucleos monolithicos.
In superficie, distinctio simplex videtur:
- nuclei monolithici pleraque officia systematis operativi intra nucleum servant
- micronuclei pleraque officia in spatium usoris movent
In usu, compensatio subtilior est.
Quaestio vera non est utrum una structura ubique velocior, mundior, aut tutior sit. Quaestio vera est ubi auctoritas, complexitas, defectus, et sumptus efficientiae habitare debeant.
Hoc scriptum hanc compensationem iterum inspicit, explicat cur multa vetera argumenta de micronucleis nimis simpliciter dicta sint, et ostendit cur systemata moderna sicut EriX exemplar micronuclei iterum practicabile faciant.
Forma historica disputationis⌗
Prima systemata operativa sub duris limitationibus ferramenti aedificata sunt.
Memoria limitata erat. CPU tardiores erant. Mutationes contextus carae erant. Caches, TLB, systemata multiprocessoria, et viae celeres syscall multo minus valebant quam hodie.
Sub illis condicionibus, nuclei monolithici electio naturalis erant.
Systemata Unix-similia systemata fasciculorum, moderatores machinarum, retia, administrationem processuum, et multa alia officia intra unum spatium allocationis privilegiatum nuclei ponebant. Illud consilium multas operationes viles faciebat:
- systema fasciculorum stratum block directe vocare poterat
- stratum retis structuras moderatoris directe accedere poterat
- subsystemata nuclei data sine IPC communicare poterant
Effectus erat efficax et pragmaticus.
Id etiam significabat magnas copias codicis cum pleno privilegio nuclei currere.
Cur micronuclei apparuerint⌗
Micronuclei ex alia observatione orti sunt:
Plurimus codex systematis operativi plenam auctoritatem machinae non indiget.
Systema fasciculorum tabulas paginarum arbitrarias mutare non debet. Moderator claviaturae omnes processus accedere non debet. Stratum retis schedulatore dominari non debet.
Micronuclei tantum mechanismos maxime fundamentales in nucleo servant, plerumque:
- scheduling
- administrationem spatiorum allocationis
- communicationem inter processus
- administrationem facultatum aut manubriorum
- traditionem interruptorum et exceptionum
Officia altioris gradus ut processus ordinarii in spatio usoris currunt.
Hoc systemati separationem firmiorem dat. Ruina moderatoris non necessario ruina nuclei est. Vitium in systemate fasciculorum non statim fit corruptio arbitraria memoriae nuclei. Auctoritas accuratius distribui potest.
Idea valida erat, sed primae implementationes saepe cum efficientia et compatibilitate laborabant.
Prima difficultas efficientiae⌗
Critica classica micronucleorum est eos lentos esse.
Illa critica non ex nihilo orta est.
Quaedam prima systemata micronucleorum officia tradita systematis operativi post multos ministros separatos in spatio usoris ponebant, deinde interfaces Unix notas desuper servare conabantur. Operatio simplex in catenam nuntiorum verti poterat:
- applicatio ad ministrum fasciculorum
- minister fasciculorum ad administratorem memoriae
- administrator memoriae ad paginatorem
- paginator ad officium block
- officium block ad moderatorem
Unusquisque gradus mutationem contextus, validationem nuntii, consilium scheduling, et interdum transcriptionem implicare poterat.
Si interfaces nimis loquaces sunt, sumptus accumulatur.
Error fuit hoc in regulam universalem vertere:
Micronuclei lenti sunt.
Regula accuratior est:
Viae IPC male designatae et fines officiorum nimis loquaces lenti sunt.
Haec distinctio interest.
Via celeris monolithica⌗
Nuclei monolithici celerrimi esse possunt quia multos fines protectionis vitant.
Systema fasciculorum intra nucleum stratum block intra nucleum vocatione functionis ordinaria vocare potest. Moderator memoriam directe cum alio subsystemate communicare potest. Non necesse est omnem petitionem in formam nuntii serializare.
Hoc verum commodum est.
Sed gratuitum non est.
Via celeris monolithica saepe secum fert:
- plus codicis privilegiati
- plus status mutabilis communicati
- plus complexitatis serarum internarum nuclei
- plures vias quibus unum subsystema aliud corrumpere potest
- maiorem basim computandi fidatam
Efficientia non est sola numeratio instructionum. Etiam mores cache, contentio serarum, continentia defectuum, recuperatio, et sumptus rectitudinis per tempus servandae ad eam pertinent.
Nucleus monolithicus microbenchmark crudum vincere potest et tamen separationem atque examinabilitatem difficiliores facere.
Fabula efficientiae: omnis finis fatalis est⌗
Fabula communis est unumquemque finem micronuclei tam carum esse ut consilium certare non possit.
Haec sententia obsoleta est.
Finis sumptum habet, sed systemata moderna hunc sumptum tractabilem facere possunt:
- viae celeres syscall et reditus
- meliores heuristicae scheduling
- viae datorum memoria communicata
- mappatio paginarum pro transcriptione magna
- petitiones aggregatae
- traditio eventuum asynchrona
- ABI IPC diligenter designatae
Propositum magni momenti est consilium politicam extra nucleum servare sine eo ut omnis byte datorum per nucleum ire cogatur.
Nucleus auctoritatem mediare debet. Non necesse est omnia data movere.
Fabula efficientiae: IPC omnia transcribere significat⌗
IPC saepe imaginatur ut “totum hunc buffer e processu A ad processum B transcribe”.
Hoc unum tantum consilium possibile est.
Micronucleus parvos nuntios imperii mittere potest dum auctoritatem ad memoriam communicatam, frames, endpoints, aut obiecta machinarum transfert. Via datorum cara mappata manere potest, dum nucleus tantum validat quis accedere liceat.
Hoc centrale est in consilio facultatibus innixo.
Pro magnis structuris datorum per subsystema privilegiatum transcribendis, processus facultatem accipere potest quae accessum ad obiectum certum cum iuribus certis permittit.
Nucleus responsalis manet ut translatio cogatur. Non necesse est eum intellegere omnia protocolla altioris gradus super illam translationem aedificata.
Fabula efficientiae: moderatores in spatio usoris non sunt practici⌗
Moderatores in spatio usoris saepe ut idea investigationis tractantur.
Cura intellegibilis est. Accessus ad ferramentum sensitivus est, interrupta tempore pendent, et moderatores saepe in viis calidis sedent.
Sed plerique moderatores plena auctoritate nuclei non indigent.
Moderator plerumque accessu indiget ad:
- certum intervallum portuum I/O
- certam regionem MMIO
- certam lineam interrupti
- certam dispositionem DMA aut bufferum
Hae sunt formae auctoritatis angustiores quam “totus nucleus”.
Si nucleus exacte has opes delegare potest, moderator extra nucleum currere et tamen opus utile facere potest. Si deficit, systema occasionem habet illum moderatorem sistere, denuo incipere, aut substituere sine eo ut defectus pro corruptione memoriae nuclei habeatur.
Compensatio vera est: moderatores in spatio usoris bono IPC, diligenti traditione interruptorum, et proprietate opum explicita indigent. Sed exemplar per se impracticabile non est.
Quid EriX in nucleo ponat⌗
EriX ut micronucleus facultatum designatur.
Nucleus EriX consulto politice minimus est. Documenta architecturae eum responsalem definiunt pro:
- validatione traditionis a bootloader ad nucleum
- administratione obiectorum fundamentalium nuclei et semantica facultatum
- creatione muneris root
- expositione introitus trap, syscall, et interruptorum
Nucleus expresse non est responsalis pro:
- politica systematis
- politica orchestrationis processuum
- politica memoriae altioris gradus
- politica vitae officiorum
Hic est finis micronuclei in usu.
Nucleus cum auctoritate machinae incipit, sed hanc auctoritatem in obiecta nuclei explicita et references facultatum convertere debet. Nulla auctoritas ambiens in spatium usoris effluere debet.
Quid EriX extra nucleum moveat⌗
EriX functiones quae politicam portant in officia spatii usoris ponit.
Exempli gratia:
rootdest prima auctoritas spatii usoris quae politicam fertprocdadministrationem vitae processuum possidetdevicedpoliticam moderatorum et orchestrationem initii moderatorum possidetvfsdspatium nominum publicum systematis fasciculorum possidet- provisores systematis fasciculorum sicut
ramfsd,e2fsd, etfatdmanent pares backend privati postvfsd
Hoc non est solum “codicem extra nucleum movere” ut electio aesthetica.
Unusquisque finis officii finem auctoritatis definit.
rootd facultates initii minimae potestatis distribuit. procd processus creat
et incipit per creationem filii gradatim factam et concessiones institutionis.
deviced non directe nucleus fit; procd rogat ut processus moderatorum regat
et tantum auctoritatem moderatoris pro unoquoque munere necessariam tradit.
Haec structura verbosior est quam graphum vocationum nuclei monolithici, sed fluxum auctoritatis visibilem facit.
Auctoritas angusta pro privilegio lato⌗
Unum ex maximis rebus implementationis EriX est discessus a lato endpoint root ut superficie imperii normali tempore executionis.
Nucleus hodiernus familias angustas endpointorum imperii nuclei pro certis operibus exponit:
- imperium temporis
- imperium interruptorum
- eventus hotplug
- lectiones configurationis PCI
- accessum ad consolam et framebuffer
- I/O COM1
- I/O i8042
- retyping memoriae
- mappationem VSpace
- resolutionem defectuum paginatoris
- imperium processuum
- lectiones ACPI
Dispatch tempore executionis ab obiecto endpoint et eius genere regitur, non a numero slot globali privilegiato.
Hoc interest quia munus auctoritatem non acquirit tantum sciendo valorem slot conventionalem. Rectam facultatem in proprio spatio facultatum locali vere habere debet.
Exempli gratia, drv-serial auctoritatem I/O COM1-specificam accipit.
drv-i8042 auctoritatem I/O i8042-specificam accipit. drv-acpi auctoritatem
lectionis ACPI accipit. probed auctoritatem lectionis configurationis PCI
accipit.
Haec est alia forma securitatis quam omnes illas operationes post unum latum manubrium nuclei ponere.
Memoria machinae ut obiectum explicitum⌗
EriX etiam auctoritatem memoriae machinae ut explicitam et typatam tractat.
Nucleus CAP_TYPE_DEVICE_FRAME distinctum habet pro memoria machinae validata.
In via repositorii, frame MMIO a BAR sustentatum pro deviced derivari potest,
et deviced deinde tantum illum frame machinae derivatum in fasciculo initii
gradatim facto moderatoris instituere potest.
Propositum non est moderatores machinarum simplices fieri.
Propositum est ne auctoritas MMIO cum frame RAM ordinariis confundatur neque per effugium genericum “quidlibet cum memoria machinae fac” exponatur.
Hoc est ipsum genus singularis rei quod micronucleos modernos viabiles facit: accessus ferramenti delegatur ut obiectum certum cum iuribus certis.
IPC ut ABI, non ut casus⌗
In nucleo monolithico, multae interfaces internae sunt vocationes functionum ordinariae.
In micronucleo, IPC pars ABI systematis fit. Hoc eam maiorem momenti facit, non minorem.
EriX IPC ut contractum commune tractat:
- capita nuntiorum versionata sunt
- dispositiones fixae sunt
- parsing arithmetica comprobata utitur
- payloads male formata clauso modo deficiunt
- translationes facultatum explicitae sunt
- nuntii runtime qui translationes ferunt
GRANTrequirunt
Hoc contrarium est ei quod IPC ut cogitatio postrema tractetur.
Sumptus IPC partim implementatione regitur, sed etiam consilio interfaciei. ABI diligenter designata ambitus inutiles vitat, nuntios intra fines tenet, et translationem imperii a motu datorum separat.
Cur micronuclei iterum viabiles sint⌗
Micronuclei hodie propter plures causas magis viabiles sunt.
1. Ferramentum mutatum est⌗
Sumptus relativus finis protectionis mutatus est.
Mutationes contextus et syscalls adhuc gratuitae non sunt, sed CPU modernae, systemata memoriae, et mechanismi interruptorum sumptum crudum minus decretorium faciunt quam erat cum prima experimenta micronucleorum iudicabantur.
Eodem tempore, systemata moderna complexiora et magis exposita sunt. Sumptus compromissionis nuclei crevit.
Separatio nunc pretiosior est.
2. IPC melius intellegimus⌗
Doctrina ex prioribus systematibus non est “IPC evita”.
Doctrina est:
- IPC inutile vitare
- protocolla nimis loquacia vitare
- magnorum datorum transcriptionem vitare cum translatio auctoritatis sufficiat
- fines officiorum circa veram proprietatem designare
Micronuclei viabiles sunt cum IPC ut problema consilii primi ordinis tractatur.
3. Facultates fines utiles faciunt⌗
Codicem in spatium usoris movere tantum dimidia pars fabulae est.
Si omnis minister spatii usoris adhuc privilegium implicitum latum accipit, systema plerumque monolithum cum mutationibus contextus additis recreavit.
Facultates finem significantem faciunt.
In EriX, auctoritas per facultates typatas cum iuribus explicitis repraesentatur. Officia facultates quas accipiunt validant. Fasciculi initii auctoritatem declaratam describunt. Codex nuclei et officiorum numeros slot canonicos ut permissionem ambientem tractare vitat.
Hoc decompositionem plus quam modularitatem facit. Decompositionem partem exemplaris securitatis facit.
4. Linguae et instrumenta meliora facta sunt⌗
Linguae implementationis modernae et instrumenta moderna etiam compensationem mutant.
Rust vitia systematum operativorum non tollit, sed multa vitia securitatis
memoriae casu scribere difficilius facit. Etiam fines unsafe in recensione
visibiles facit.
Pro systemate micronuclei, hoc praecipue utile est. Nucleus parvus et examinabilis manere potest, dum officia spatii usoris adhuc cum cautionibus securitatis firmioribus quam componentia systematis traditionalia C-gravia scribi possunt.
EriX hoc cum ratione conclavis puri et sine crates tertiarum partium coniungit, quod systema facilius examinabile servat, quamquam laborem implementationis auget.
Sumptus reliqui⌗
Micronuclei adhuc sumptus reales habent.
Requirunt:
- logicam initii magis explicitam
- contractus IPC diligenter versionatos
- robustam supervisionem officiorum
- plus cogitationis de aggregatione et motu datorum
- claram proprietatem uniuscuiusque facultatis
- bonum tracing et mensuram efficientiae
Etiam partem complexitatis extra nucleum movent potius quam delent.
rootd, procd, deviced, et officia systematis fasciculorum adhuc consilio
diligenti indigent. Extra nucleum esse possunt, sed tamen componentia fidata pro
certis partibus systematis esse possunt.
Differentia est quod eorum auctoritas angustior quam auctoritas nuclei esse potest, et eorum defectus consultius contineri possunt.
Compensatio iterum inspecta⌗
Vetus forma saepe erat:
- nuclei monolithici celeres sunt
- micronuclei mundi sed lenti sunt
Haec forma nimis simplex est.
Melior forma est:
- nuclei monolithici cooperationem directam intra nucleum optimizant
- micronuclei auctoritatem explicitam et separationem defectuum optimizant
- uterque designus celer aut lentus esse potest secundum implementationem
- uterque designus complexus fieri potest si fines male eliguntur
Pro EriX, electio micronuclei ex propositis systematis sequitur:
- minima basis computandi fidata
- auctoritas explicita per facultates
- stricta separatio inter nucleum et spatium usoris
- fines officiorum examinabiles
- bootstrap et mores defectuum deterministici
Haec proposita efficientiam non faciunt irrelevantem.
Definiunt ubi opus efficientiae fieri debeat: IPC celer, interfaces officiorum diligentes, viae datorum memoria communicata, familiae endpoint angustae, et translatio facultatum explicita.
Prospectus⌗
Micronuclei non sunt via compendiaria.
Plus disciplinae consilii ante tempus exigunt quam simplex graphum vocationum intra nucleum. Systema cogunt ut auctoritatem, proprietatem, et mores defectuum cito definiat.
Ita prorsus sunt interesting.
EriX exemplar micronuclei adhibet non quia in more est, sed quia architecturae congruit: nucleus parvus, auctoritas per facultates mediata, et politica per officia explicita spatii usoris impleta.
Proximum scriptum ideam examinabit quae multum huius structurae movet: basis computandi fidata.
Videbimus quid TCB vere includat, cur magnitudo eius superficiem oppugnationis afficiat, et quomodo EriX codicem fidatum parvum servare conetur, politicam in officia spatii usoris explicita et facultatibus constricta movendo.