• Multikernel Linux låter flera Linux-kärnor dela på samma dator

    Med Multikernel Linux kan flera fristående Linux-kärnor köras samtidigt på samma fysiska dator – utan virtuella maskiner eller en hypervisor. Den första offentliga versionen bygger på Linux 7.0 och visar lovande resultat, men tekniken befinner sig fortfarande på experimentstadiet.

    En vanlig Linux-dator kör en enda kärna som ansvarar för allt från processorer och minne till nätverk, lagring och anslutna enheter. Det spelar ingen roll om datorn har fyra eller hundra processorkärnor – alla resurser styrs normalt av samma Linux-kärna.

    Multikernel Linux tar ett helt annat grepp. I stället för att låta en enda kärna sköta hela datorn delas hårdvaran upp mellan flera självständiga Linux-kärnor. Varje kärna får sina egna processorkärnor, sitt eget minne och vid behov egna PCI-enheter.

    Den första offentliga versionen har fått beteckningen v7.0-mk2 och bygger på Linux 7.0. För närvarande stöds endast datorer med arkitekturen x86_64. Utvecklarnas lanseringsmeddelande finns i Linux-kärnans e-postarkiv.

    Som flera datorer inuti samma dator

    Det enklaste sättet att förstå tekniken är att tänka sig en stor fysisk server som delas upp i flera mindre datorer.

    En Linux-kärna fungerar som värd och förfogar över en pool med processorer, minne och enheter. Värdkärnan kan exempelvis ge fyra processorkärnor och två gigabyte minne till en andra Linux-kärna. En tredje kärna kan samtidigt få åtta processorkärnor, mer minne och direkt tillgång till ett nätverkskort eller en grafikprocessor.

    Varje Linux-kärna arbetar sedan självständigt med sin egen schemaläggare, nätverksstack och uppsättning processer.

    Det kan påminna om vanliga virtuella maskiner, men det finns en viktig skillnad: de extra Linux-kärnorna körs inte ovanpå en hypervisor som KVM, VMware eller Hyper-V. De arbetar direkt mot den tilldelade hårdvaran.

    Nya kärnor startas med en utökad variant av Linux befintliga kexec-funktion. Normalt används kexec för att starta en ny kärna utan att först gå genom datorns BIOS eller UEFI. I Multikernel har mekanismen byggts ut så att den nya kärnan kan startas bredvid värdkärnan i stället för att ersätta den.

    Resurserna kan flyttas

    Uppdelningen behöver inte vara permanent. En instans kan stängas av och lämna tillbaka sina processorkärnor, sitt minne och sina enheter till värdkärnan. Resurserna kan därefter användas för att starta en ny instans, möjligen med en annan version eller konfiguration av Linux-kärnan.

    Det öppnar för servrar där olika arbetsuppgifter får specialanpassade kärnor. En webbserver kan exempelvis använda en kärna optimerad för nätverkstrafik, medan en databas får en annan kärna med inställningar anpassade för lagring och minneshantering.

    Projektets verktyg Kerf används för att skapa instanser, tilldela resurser och starta kärnorna. Den som vill prova behöver själv kompilera kärnan med Multikernel-stödet aktiverat. Projektet har publicerat en komma igång-guide med bygg- och installationsanvisningar.

    Snabbare än KVM i vissa tester

    Utvecklarna har även jämfört Multikernel med en välkonfigurerad virtuell KVM-maskin. Testerna genomfördes på en server med två Intel Xeon Gold 5418Y-processorer. Båda miljöerna fick två processorkärnor, en gigabyte minne och samma kärnversion.

    Minneslatens och minnesbandbredd var i stort sett identiska. Det visar hur effektiv modern hårdvaruvirtualisering har blivit när processorn och minnet får arbeta utan många avbrott.

    Större skillnader syntes vid täta processbyten och kommunikation mellan processer:

    • Ett kontextbyte mellan två processer tog 1,37 mikrosekunder med Multikernel och 3,42 mikrosekunder i KVM.
    • Kommunikation genom en pipe tog 3,24 mikrosekunder med Multikernel och 7,06 mikrosekunder i KVM.
    • Kommunikation genom en lokal Unix-socket tog 4,81 mikrosekunder med Multikernel och 7,48 mikrosekunder i KVM.

    En mikrosekund är en miljondels sekund. Skillnaden är alltså omöjlig att märka vid en enstaka operation, men i servrar där miljontals processbyten och meddelanden sker varje sekund kan den sammanlagda effekten bli betydande.

    Varför blir den virtuella maskinen långsammare?

    En stor del av skillnaden beror på hur vilande virtuella processorer väcks.

    När en virtuell KVM-processor inte har något att göra lämnar den normalt den virtuella maskinen och överlämnar kontrollen till värdsystemet. När processorn behövs igen måste hypervisorn väcka den och återgå till den virtuella miljön. Denna övergång kostar lite tid.

    Multikernel-instansen styr sina fysiska processorkärnor direkt och behöver inte göra samma resa genom en hypervisor.

    KVM kan ställas in för att låta de virtuella processorerna vänta aktivt i stället för att somna. Då minskar en stor del av skillnaden, men processorkärnorna ser samtidigt fullt belastade ut och förbrukar mer energi. I projektets test ökade effektförbrukningen med upp till 19 watt.

    Resultaten betyder därför inte att Multikernel alltid är flera gånger snabbare än KVM. Skillnaden beror på arbetsbelastningen och hur den virtuella maskinen är konfigurerad. Testerna är dessutom genomförda och publicerade av Multikernel-projektet självt och bör betraktas som projektets egna resultat tills de har bekräftats genom fler oberoende tester. Den fullständiga jämförelsen mellan Multikernel och KVM beskriver både resultaten och kompromisserna kring strömförbrukning.

    Inte samma sak som containrar

    Containrar som Docker delar värdsystemets Linux-kärna. Det gör dem små och snabba, men innebär också att alla containrar är beroende av samma kärna.

    Virtuella maskiner kan köra var sin kärna och ger starkare avskiljning, men lägger till en hypervisor mellan operativsystemet och hårdvaran.

    Multikernel försöker kombinera delar av båda modellerna. Varje instans får en egen Linux-kärna, samtidigt som den körs direkt på tilldelad hårdvara. Om en kärna kraschar eller drabbas av ett problem är tanken att övriga kärnor ska kunna fortsätta arbeta.

    Det gör tekniken intressant för stora servrar, molntjänster, databaser, AI-system och andra miljöer där många processorkärnor ska utnyttjas med låg latens.

    Fortfarande ett experimentellt projekt

    Multikernel Linux är ännu inte en del av den officiella Linux-kärnan från kernel.org. Den första offentliga versionen ligger i projektets separata källkodsträd på GitHub.

    Stödet är än så länge begränsat till x86_64, även om gränssnitten har delats upp för att underlätta framtida stöd för andra processorarkitekturer. Det återstår också omfattande arbete med drivrutiner, säkerhet, stabilitet och verktyg innan tekniken kan betraktas som ett moget alternativ till etablerad virtualisering.

    Den första offentliga versionen är ändå ett viktigt steg. Multikernel visar att en kraftfull server inte nödvändigtvis måste välja mellan en enda stor Linux-kärna och traditionella virtuella maskiner. Det kan finnas en tredje väg: flera riktiga Linux-kärnor som arbetar sida vid sida direkt på samma hårdvara.

    > Teknisk fakta: Multikernel Linux

    Version:
    v7.0-mk2
    Bygger på:
    Linux 7.0
    Arkitektur:
    x86_64
    Princip:
    Flera självständiga Linux-kärnor körs samtidigt på samma dator.
    Virtualisering:
    Ingen hypervisor krävs.
    Resurser:
    Varje kärna kan tilldelas egna processorkärnor, eget minne och egna PCI-enheter.
    Startmetod:
    Utökad Linux kexec-funktion.
    Hantering:
    Kommandoradsverktyget Kerf.
    Fördel:
    Direkt tillgång till hårdvaran och låg latens utan traditionell virtualisering.
    Status:
    Experimentellt projekt och ännu inte en del av den officiella Linux-kärnan.

    [SYSTEM] Flera kärnor. En fysisk dator. Ingen hypervisor.

  • ByteDance vill köra flera Linux kärnor på samma dator – utan virtualisering

    Kan flera Linux-kärnor dela på en enda server utan virtualisering? ByteDance, företaget bakom TikTok, tror det. Med sitt nya projekt Parker vill de ta ett koncept som länge funnits i stordatorvärlden – partitionering – och göra det möjligt på vanliga x86-servrar. Resultatet kan bli snabbare och mer flexibla system, men också nya risker.

    Vad är det som är nytt?

    ByteDance, mest känt för TikTok, har lagt fram ett förslag som kan förändra hur stora datorer används. Projektet kallas Parker och handlar om att låta flera Linux-kärnor köras samtidigt på samma fysiska dator – men utan att använda klassiska virtualiseringslösningar som VMware eller KVM.

    I stället delas själva hårdvaran upp: vissa processorkärnor, minne och nätverkskort går till en kärna, medan andra kärnor får sina egna resurser.

    Så här fungerar Parker

    Allt börjar med en Boot Kernel, som tar kontroll över datorn vid start. Den delar upp resurserna och tilldelar dem till olika Application Kernels.

    Efter det körs varje kärna helt självständigt, utan att de pratar med varandra. Det gör att de inte stör varandra – och kan ge mycket bättre prestanda på riktigt stora servrar.

    Varför är detta intressant?

    Moderna servrar kan ha hundratals processorkärnor. Att få dessa att jobba effektivt är inte alltid lätt. Parker skulle kunna:

    • Förbättra skalbarhet – varje kärna jobbar för sig själv.
    • Ge flexibilitet – olika kärnor kan ha olika inställningar och optimeringar beroende på arbetsuppgift.
    • Låta företag köra olika system samtidigt på samma maskin, utan att bygga upp en stor virtualiseringslösning.

    Men det finns risker

    Allt är inte guld och gröna skogar. Parker har ingen hypervisor som övervakar kärnorna. Det betyder att en bugg i en av kärnorna kan få hela datorn att krascha.

    En expert från Intel, Dave Hansen, varnade dessutom för att vissa systemkommandon – som normalt påverkar hela maskinen – kan skapa konflikter mellan kärnorna.

    Vad händer nu?

    Förslaget är än så länge bara på experimentstadiet. Linux-utvecklare världen över diskuterar just nu om Parker är ett genialiskt steg framåt – eller bara ännu ett misslyckat försök som kommer glömmas bort.

    Sammanfattning

    Parker är ett djärvt försök att köra flera Linux-kärnor parallellt, utan virtualisering. Om det lyckas kan det ge snabbare, mer flexibla servrar – men också innebära nya risker för stabilitet och säkerhet.

    Framtiden får utvisa om Parker blir verklighet eller bara stannar som en spännande idé på ritbordet.

    Parker – teknisk faktaruta

    • Typ: Partitionerad Linux-kärna (utan hypervisor)
    • Syfte: Köra flera Linux-kärnor samtidigt på samma maskin
    • Primärt mål: Stora x86-servrar med mycket högt kärnantal
    • Resurser per instans: Dedikerade CPU-kärnor, minnesregioner och PCIe-enheter
    • IO-krav: Egen NVMe/NIC per kärna (ingen delning)
    • Arkitektur: Boot Kernel delar ut resurser → Application Kernels
    • Kommunikation: Ingen – instanserna delar inget (”share-nothing”)
    • Gränssnitt: kernfs för konfiguration
    • Start av sekundära: kexec till reserverade minnesområden
    • Förberedelser: CPU offline, CMA-minnesreserv, unbind av PCI-enheter
    • Fördel: Lägre overhead och potentiellt bättre skalbarhet
    • Risk/Begränsning: Samma säkerhetsdomän (ingen hypervisor-isolering)
    • Kända invändningar: Systemomfattande instruktioner (t.ex. WBINVD) kan påverka alla
    Konfigurationsidéer: olika CONFIG-val, FDO/PGO per arbetslast.
    Föreslagit av: ByteDance (Fam Zheng, Thom Hughes) • Status: RFC
  • Multikernel: Linux tar steget bortom den enskilda kärnan

    Linux står inför en ny milstolpe. Med projektet Multikernel öppnas dörren för en framtid där flera Linux-kärnor kan samarbeta på samma maskin. Genom att bygga vidare på den beprövade kexec-tekniken vill utvecklarna skapa ett mer flexibelt och skalbart Linux – anpassat för moln, datacenter och hyperskala.

    Linux har alltid haft ett rykte om sig att vara skalbart. Från små inbyggda system till världens största superdatorer – samma grundidé, samma kärna. Men under ytan finns det en begränsning: Linux bygger fortfarande på en modell där en enda kernel styr hela hårdvaran.

    Nu håller det på att förändras.

    Ett nytt initiativ, kallat Multikernel, vill ge Linux en helt ny arkitektur. Projektet öppnades nyligen upp för allmänheten och i samband med detta skickade Googles mjukvaruingenjör Cong Wang in de allra första kodändringarna till den klassiska Linux Kernel Mailing List (LKML).

    Från en till många
    Tänk dig att du sitter vid en server med en kraftfull processor och många kärnor. Ändå kör allt fortfarande under samma Linux-kärna, som ensam bestämmer hur resurserna används. Men vad händer om du vill köra två helt olika versioner av Linux sida vid sida – utan att ta till virtuella maskiner?

    Det är här Multikernel kommer in.

    Istället för att hålla fast vid en monolitisk modell låter Multikernel dig starta flera Linux-instanser på samma maskin, som sedan samarbetar som jämlikar. Varje kernel lever sitt eget liv, men de kan samtidigt dela på arbetsuppgifterna.

    Idén är inte helt ny. Forskare har tidigare experimenterat med samma tanke – bland annat i projektet Popcorn Linux, som visade att det går att låta flera kärnor samspela över olika hårdvaruplattformar. Men Multikernel försöker göra detta till något praktiskt och direkt användbart för dagens Linux.

    Byggt på gamla beprövade mekanismer
    Hur får man då flera Linux-kärnor att leva sida vid sida? Multikernel bygger vidare på en redan existerande funktion i Linux: kexec.

    Kexec har i mer än 20 år använts för att snabbt starta en ny kernel utan att starta om hela datorn. Multikernel använder samma teknik – men istället för att ersätta en gammal kernel med en ny, kan man nu ”spawna” flera kärnor som kör parallellt.

    Det betyder att man inte behöver uppfinna allt från början. Istället tar Multikernel något som redan är vältestat och förlänger det in i en ny riktning.

    Ett Linux för molnet och hyperskalan
    Varför behövs då detta? Svaret finns i de enorma datacenter som driver molnet.

    Där räcker inte alltid idén om ett enhetligt systemavtryck. I storskaliga miljöer kan det vara mer praktiskt att låta flera kernels hantera olika delar av arbetsbördan, ungefär som flera hjärnor som samarbetar i samma kropp.

    För utvecklare betyder det också något viktigt: man kan börja experimentera med denna arkitektur redan nu, utan att skriva om hela Linux från grunden.

    Öppenhet som filosofi
    Multikernel är inte ett slutet projekt. Tvärtom bygger det på öppenhet och samarbete.

    Alla ändringar, alla arkitekturval, allt delas öppet med Linux-communityt. Målet är inte att säga: ”så här ska det vara”, utan att bjuda in fler till diskussionen om hur framtidens kernel kan se ut.

    Teamet bakom Multikernel planerar också en serie instruktionsvideor som förklarar tekniken bakom projektet – både hur Multikernel fungerar och hur kexec gör det möjligt.

    Ett första steg på en lång resa
    Just nu befinner sig projektet i sin linda. Patcherna som släppts är bara första stenen i grunden. Men riktningen är tydlig: Multikernel vill göra Linux mer flexibelt, mer anpassningsbart och mer redo för en värld där datorer inte längre bara är en maskin – utan ofta tusentals maskiner som arbetar i kluster.

    Och det kanske mest spännande? Alla kan vara med. Koden finns på GitHub, diskussionen förs öppet på LKML, och vem som helst med intresse kan bidra med idéer och förbättringar.

    Multikernel är alltså inte bara ett tekniskt experiment – det är en inbjudan till att tänka om Linux från grunden.

    https://linuxiac.com/linux-kernel-multikernel-project-opens-up

    Teknisk fakta – Multikernel
    • Arkitektur: Multikernel (replikerad/”peer” kernel-design ovanpå kexec)
    • Kärnmekanism: Startar extra Linux-instanser via kexec (”spawned kernels”) på samma maskin
    • Isolering + samarbete: Varje kernel är isolerad men kan dela arbetsbörda med andra
    • Målmiljö: Hyperskala, moln, kluster och heterogena system
    • Användningsfall: Kör olika kernelversioner samtidigt utan VM; partitionera jobblaster per kernel
    • Resurshantering: Tänkbar partitionering av CPU-set, minnesområden och I/O-enheter per kernel
    • Kommunikation: Inter-kernel-kanaler (IKC) för kontroll- och dataplan (under uppbyggnad)
    • Kompatibilitet: Bygger på beprövad kexec-infrastruktur (20+ år i Linux)
    • Designmål: Minimala upstream-ändringar, robusthet och transparent integration
    • Relation till forskning: Inspirerat av Popcorn Linux och andra replikerade kernelprojekt
    • Status: Tidig fas; första patchset inskickat till LKML av Cong Wang (Google)
    • Utvecklarfokus: Möjliggör experiment utan omfattande omskrivning av kärnan
    • Begränsningar (nu): Delning av vissa enheter/DRM/blk kan vara begränsad; aktivt arbete pågår
    • Säkerhet: Isolering per kernel; attackyta mellan kernels hanteras via kontrollerade gränssnitt
    • Bygg/krav: Kernel med CONFIG_KEXEC, kexec-tools; x86_64 först ut (andra ISA kan följa)
    • Felsökning: printk, tracing, loggkanaler per kernel; koordinering kräver nya verktygsflöden
    • Hemsida/Repo: GitHub (källkod) och LKML (diskussion); tekniska videor utlovas
    • Engagera dig: Testa patcharna, ge feedback på LKML, skicka förbättringar via pull requests

Etikett: kexec

  • Multikernel Linux låter flera Linux-kärnor dela på samma dator

    Med Multikernel Linux kan flera fristående Linux-kärnor köras samtidigt på samma fysiska dator – utan virtuella maskiner eller en hypervisor. Den första offentliga versionen bygger på Linux 7.0 och visar lovande resultat, men tekniken befinner sig fortfarande på experimentstadiet. En vanlig Linux-dator kör en enda kärna som ansvarar för allt från processorer och minne till…

  • ByteDance vill köra flera Linux kärnor på samma dator – utan virtualisering

    Kan flera Linux-kärnor dela på en enda server utan virtualisering? ByteDance, företaget bakom TikTok, tror det. Med sitt nya projekt Parker vill de ta ett koncept som länge funnits i stordatorvärlden – partitionering – och göra det möjligt på vanliga x86-servrar. Resultatet kan bli snabbare och mer flexibla system, men också nya risker. Vad är…

  • Multikernel: Linux tar steget bortom den enskilda kärnan

    Linux står inför en ny milstolpe. Med projektet Multikernel öppnas dörren för en framtid där flera Linux-kärnor kan samarbeta på samma maskin. Genom att bygga vidare på den beprövade kexec-tekniken vill utvecklarna skapa ett mer flexibelt och skalbart Linux – anpassat för moln, datacenter och hyperskala. Linux har alltid haft ett rykte om sig att…