Divu procesu konteksta pārslēgs mklinux vidē aizņem 1,37 mikrosekundes. Tajā pašā dzelzī zem KVM tas pats mērījums dod 3,42 mikrosekundes. Skaitļus 25. augustā līdz ar laidienu mklinux v7.0-mk2 publicēja uzņēmums Multikernel Technologies. Tas ir pirmais publiskais laidiens Linux kodola atzarojumam, kas vienā fiziskā serverī vienlaikus darbina vairākus atsevišķus Linux kodolus.
Atzarojumu uztur Cong Wang. Pirmo ielāpu kopu kodola vēstkopā viņš nosūtīja 2025. gada 18. septembrī. Repozitorijs github.com/multikernel/linux izveidots 15. septembrī, trīs dienas pirms tās vēstules. Tajā pašlaik ir 138 zvaigznes, 12 atzarojumi un trīs tagi: archive/v6.19-rc5-mk0, v7.0-mk1 un v7.0-mk2.
Kā serverī iestartē otru kodolu
Viens kodols paliek saimnieks. Tas tur resursu pūlu: procesora kodolus, atmiņu un PCI ierīces. Pārvaldība notiek caur kernfs failu sistēmu, ko piemontē ar mount -t multikernel none /sys/fs/multikernel. Zem tās parādās trīs ieraksti: device_tree, instances/ un overlays/.
Vispirms saimniekam ieraksta bāzes ierīču koku ar cat baseline.dtb > /sys/fs/multikernel/device_tree. Otru bāzi sistēma vairs nepieņem, kamēr pūls tiek lietots. Tālāk instances rada ar pārklājumiem. Fragmenti instance-create, cpu-add, memory-add un device-add aiziet uz /sys/fs/multikernel/overlays/new. Kad instance saņēmusi resursus, tās status fails rāda ready.
Kodolu instancē ielādē un palaiž ar kexec_file_load(), adresējot izsaukumu uz instances numuru. Instances ierīču koks kopā ar /chosen mezglu kļūst par jaunā kodola sāknēšanas koku. Rīki kerf load un kerf exec to izdara vienā solī. Ko instance tur savā īpašumā, var nolasīt jebkurā brīdī: dtc -I dtb -O dts /sys/fs/multikernel/instances/web/device_tree izdrukā koku salasāmā formā.
Instance dzīvo caur pieciem stāvokļiem: empty, ready, loaded, active un failed. Pēdējais nozīmē kļūdu, kuras aprakstu meklē dmesg izvadā. Resursus atņem ar cpu-remove, memory-remove un device-remove. Instanci dzēš ar instance-remove pēc tam, kad tās kodols apturēts.
Dokumentācija nosaka arī to, ko darīt nevar. Komanda mkdir zem instances/ nestrādā. Instances failus rediģēt tieši nevar. Atritināšana ar rmdir uz transakcijas direktoriju neiznīcinās instanci, kuras kodols darbojas.
Vienu un to pašu saskarni montē abas puses. Saimnieks, kas saņēmis bāzes koku, pārvalda pūlu un rada instances. Spawn kodols zem instances/ redz pats sevi un savu ierakstu var mainīt. Katrs pārklājums nonāk atsevišķā transakcijas direktorijā overlays/tx_N, tāpēc izmaiņu kopu var atritināt, kamēr tajā aprakstītais kodols vēl nav palaists.
Kāpēc tas atšķiras no virtuālās mašīnas
Konteineri dala vienu kodolu. Virtuālās mašīnas darbojas zem hipervizora, kas pārtver privileģētās operācijas un uztur otro lappušu tabulu līmeni. mklinux instance nedara ne vienu, ne otru. Tā saņem savus fiziskos procesora kodolus, savu atmiņas apgabalu un savas ierīču rindas. Kodols instancē startē tieši uz dzelžiem un pats pārvalda to, kas tam iedots.
mklinux ļauj vienai mašīnai vienlaikus darbināt vairākus neatkarīgus Linux kodolus tieši uz dzelžiem, bez hipervizora. Nav VM exit ceļa. Nav otrā līmeņa lappušu tabulu.
Mainās arī kļūmju robežas. Ja instances kodols avarē, saimnieka kodols paliek dzīvs un var to pārstartēt. Resursus starp instancēm pārdala darba laikā, ierakstot jaunus pārklājumus. Instanci var apturēt un vēlāk startēt no jauna, neaiztiekot pārējās.
Skaitļi pret KVM
Linuxiac apkopoja projekta mērījumus uz divu ligzdu Intel Xeon Gold 5418Y servera. Abās pusēs vide saņēma divus procesora kodolus un 1 GB atmiņas.
- Divu procesu konteksta pārslēgs: 1,37 pret 3,42 mikrosekundēm
- Kanāla (pipe) aizture: 3,24 pret 7,06 mikrosekundēm
- Unix ligzdas aizture: 4,81 pret 7,48 mikrosekundēm
Ātrums maksā strāvu. Otra kodola darbināšana pievieno aptuveni 19 vatus. Phoronix pārbaudīja arī 24 kodolu konfigurāciju, kur divi kodoli deva labāku rezultātu nekā viens.
Kam projekts domāts
Mērķauditorija ir infrastruktūras un SRE komandas, nevis darbvirsmas lietotāji. Multikernel Technologies uz šī atzarojuma būvē trīs produktus. Private Cloud konsolidē slodzes uz dzelžiem. Sandbox dod AI aģentiem tiešu piekļuvi GPU. LiveUpdate risina kodola atjaunināšanu bez pilnas pārstartēšanas. Tālākie mērķi ir ARM serveri ar lielu kodolu skaitu, RISC-V sistēmas un iegultās ierīces, kur ražotājs pats kontrolē dzelžus.
Ceļš uz galveno koku
Pašlaik mklinux ir atsevišķs atzarojums, nevis daļa no galvenā Linux koka. Ielāpi kodola vēstkopā ir, taču termiņš, kad tie varētu tikt pieņemti, nav zināms. Phoronix raksta, ka pat labvēlīga iznākuma gadījumā līdz iekļaušanai galvenajā kodolā vēl tālu. Cong Wang mērķis, sūtot pirmo ielāpu kopu, bija turēt izmaiņas pēc iespējas mazākas, lai vide strādātu ar minimālu iejaukšanos esošajā kodā.
Tagu vēsture rāda, cik ātri kods ceļo līdzi kodolam. Vecākais tags nes nosaukumu archive/v6.19-rc5-mk0. Abi jaunākie jau balstīti uz Linux 7.0. Divu laidienu attālums starp v7.0-mk1 un v7.0-mk2 ir mazāks par mēnesi.
Testēta galvenokārt x86_64 arhitektūra. Arhitektūrai specifiskais kods ir nodalīts, lai vēlāk pievienotu citas platformas. Nākamais tags vēl nav publicēts. Mapē Documentation/multikernel pagaidām ir trīs faili: device-tree.rst, overlays.rst un usage.rst.
Avoti
- Phoronix: Linux 7.0-mk2 Released For Multi-Kernel Linux With Promising Performance Results
- Linuxiac: Multikernel Linux Releases First Public Kernel Tree Based on Linux 7.0
- It’s FOSS: You Can Now Run Multiple Linux Kernels on One Machine at Once
- GitHub: multikernel/linux
- LKML: pirmā multikernel ielāpu kopa (2025-09-18)
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.