• 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
  • QEMU 10.1 släppt – enklare att virtualisera på fler plattformar

    QEMU har släppt version 10.1 – den första uppdateringen i den nya 10.x-serien. Den populära emulatorn och virtualiseraren bjuder på flera stora nyheter: nästlad KVM för ARM, stöd för moderna CPU-funktioner, förbättrad migration av virtuella maskiner och uppdaterade krav på byggmiljö. Samtidigt fasas äldre maskinmodeller och distributioner ut till förmån för nya tekniker och bättre prestanda.

    QEMU, en av de mest använda emulatorerna och virtualiseringsverktygen med öppen källkod, har nu släppt version 10.1. Uppdateringen är den första i den nya 10.x-serien och bjuder på flera nyheter för både utvecklare och användare.

    Stöd för nya funktioner på ARM

    För datorer och servrar med ARM-baserade processorer har QEMU fått stöd för fler moderna funktioner. Det gör det lättare att köra avancerade beräkningar och att utnyttja ARM:s växande ekosystem. Dessutom kan man nu köra nästlad virtualisering – alltså virtuella maskiner inuti andra virtuella maskiner – om man använder en tillräckligt ny Linux-kernel.

    Nya modeller – gamla tas bort

    Vissa äldre maskinmodeller har fasats ut, medan nya moderna tillkommit. Bland de nya finns hårdvara från både Analog Devices och NVIDIA.

    Förbättringar på andra plattformar

    Även andra arkitekturer får uppdateringar. För RISC-V förbättras stabiliteten och fler instruktioner stöds. På x86-sidan (Intel/AMD) finns nu möjlighet att använda nya tekniker som gör virtuella maskiner mer säkra och isolerade, förutsatt att värddatorn kör en nyare Linux-kernel. På IBM:s s390x-plattform har gamla maskintyper tagits bort för att städa upp och förenkla.

    Säkrare och smidigare flytt av virtuella maskiner

    QEMU 10.1 gör det lättare att flytta virtuella maskiner mellan olika datorer utan avbrott. Bland annat har stödet för moderna nätverkstekniker och nya funktioner för säkerhet och prestanda förbättrats.

    Mindre nyheter

    Användare märker också mindre förbättringar, som fixar för grafiska gränssnitt och bättre stöd för felsökningsverktyg.

    Högre systemkrav

    För att bygga QEMU 10.1 krävs nu nyare utvecklingsverktyg: Rust 1.77 och Meson 1.8.1. Stödet för Debian 11 (Bullseye) har samtidigt tagits bort.

    Här är ett stycke du kan använda direkt i artikeln – skrivet på en nyhets/tekniknivå:

    Nästlad KVM

    Nästlad KVM innebär att man kan köra en virtuell maskin inuti en annan virtuell maskin med hårdvaruacceleration aktiverad i båda lagren. Det gör det möjligt att testa och utveckla virtualiseringsmiljöer utan att behöva dedikerad fysisk hårdvara. Tekniken har sedan tidigare funnits på x86-processorer från Intel (med VT-x/EPT) och AMD (med SVM/NPT), men med QEMU 10.1 får även ARM-arkitekturen stöd – under förutsättning att värdmaskinen använder en tillräckligt ny Linux-kernel och att CPU\:n har de senaste virtualiseringsinstruktionerna (till exempel ARMv8.3-baserade utökningar för Stage-2 MMU).

    Tillgänglighet

    QEMU 10.1 finns redan att ladda ner via projektets GitHub-sida, tillsammans med den fullständiga listan över alla ändringar.

    Faktaruta: QEMU 10.1

    Vad är QEMU?
    QEMU är en maskinemulator och virtualiserare med öppen källkod. Den kan köra hela operativsystem för olika CPU-arkitekturer och utnyttja hårdvaruacceleration via KVM.
    Varför det spelar roll
    Projektet används brett i utveckling, test och CI för att reproducera miljöer, isolera arbetslaster och migrera virtuella maskiner mellan värdar.

    Nyheter i 10.1 (urval)

    ARM: Nya CPU-extensioner (FEAT_SME2, FEAT_SVE2p1 m.fl.), stöd för CXL, ACPI PCI hotplug samt nästlad KVM. Äldre modeller tas bort, nya tillkommer.

    RISC-V: Förbättrad vektorhantering, PMP-förbättringar och buggrättningar.

    x86: Stöd för Intel TDX och AMD SEV-SNP via IGVM (Linux 6.16+ krävs).

    s390x: Gamla maskintyper borttagna, nya QOM-gränssnitt för identifieringsdata.

    Migration: VFIO live update, multifd-förbättringar, IPv6-stöd i RDMA live migration.

    Övrigt: GUI-fixar, GDBStub-uppdateringar, förbättrad blockhantering.

    Krav

    • Rust 1.77 och Meson 1.8.1 krävs
    • Debian 11 (Bullseye) stöds inte längre
    • Nya säkerhetsfunktioner kräver Linux 6.16+

    Ladda ner

    Källkoden finns på GitHub.

    Tips: Nästlad KVM på ARM kräver både CPU-stöd och rätt kernel-version.

    https://linuxiac.com/qemu-10-1-brings-tdx-sev-snp-vm-support

  • GNU Binutils 2.45 – Stort lyft för RISC-V och nya funktioner för flera arkitekturer

    GNU-projektet har släppt version 2.45 av GNU Binutils, en samling viktiga kommandoradsverktyg för lågnivåprogrammering. Binutils används för att skapa, analysera och manipulera objektfiler (mellanformatet som kompilatorer producerar innan det blir körbara program), bibliotek och färdiga exekverbara filer.

    Tillsammans med GCC (GNU Compiler Collection – GNU:s samling av kompilatorer), glibc (GNU C Library – standardbibliotek för C-språket) och GDB (GNU Debugger – felsökningsverktyg) utgör Binutils kärnan i den öppna GNU-verktygskedjan som driver stora delar av Linux-världen.

    Den nya versionen innehåller både grundläggande förbättringar och omfattande stöd för nya processorinstruktioner i arkitekturer som RISC-V, Arm v9.6, LoongArch och x86.

    Mer pålitliga stackspårningar med SFrame

    En av de mest tekniskt betydelsefulla nyheterna är förbättringarna i SFrame, ett format för att lagra komprimerad information om funktionsanrop och returadresser.

    När ett program kraschar eller behöver analyseras kan utvecklare använda stack traces (anropsstackar) för att se exakt var i koden något gick fel. Med SFrame i version 2 blir denna information mer kompakt och samtidigt mer exakt, vilket särskilt gynnar verktyg som körs utanför själva processen (till exempel felsökningsverktyg som analyserar kärndumpar).

    I och med version 2.45:

    • GAS (GNU Assembler – översättare från assemblerkod till maskinkod) genererar nu SFrame-sektioner med SHT_GNU_SFRAME-typen och flaggan SFRAME_F_FDE_FUNC_START_PCREL som standard.
    • IBM\:s s390x-plattform (64-bitars version av stordatorarkitekturen System/390) får för första gången möjlighet att generera SFrame direkt från CFI-direktiv (Call Frame Information – metadata som beskriver hur stackramar byggs upp och återställs).

    Nya verktyg direkt i assemblerkoden

    Utvecklare får även två nya direktiv:

    • .errif – kastar ett felmeddelande vid ett visst villkor.
    • .warnif – ger en varning vid ett visst villkor.

    Villkoren utvärderas först när filen är helt assemblerad, vilket gör det möjligt att samla in mer kontext innan felmeddelandet visas. Detta är användbart i stora kodbaser eller firmwareprojekt.

    RISC-V tar flera steg framåt

    RISC-V är en öppen processorinstruktionsuppsättning (ISA – Instruction Set Architecture) som kan användas royaltyfritt av tillverkare. Den växer snabbt i betydelse, och Binutils 2.45 bygger ut stödet rejält:

    • Stöd för Privileged Specification v1.13 – den del av RISC-V-specifikationen som reglerar hur operativsystem och hårdvara kommunicerar på låg nivå.
    • Tre nya profiler (20, 22 och 23) som definierar färdiga kombinationer av instruktionstillägg.
    • Nytt direktiv .bfloat16 – hantering av 16-bitars flyttal i formatet Brain Floating Point, populärt i maskininlärning.
    • Stöd för en lång lista av standardtillägg som exempelvis:
    • sha – hårdvaruacceleration för SHA-kryptografi.
    • zce – komprimerade instruktioner för inbyggda system.
    • smrnmi – säker maskinvaruhantering av icke-maskerbara avbrott.
    • Stöd för leverantörsspecifika tillägg, bland annat från:
    • T-Head (Alibaba Groups processordivision): xtheadvdot – specialinstruktioner för vektorberäkningar.
    • MIPS: instruktioner som förbättrar minnesoperationer och kontrollflöde.

    En viktig förändring är också att $x-mappningssymboler nu ersätts med \$x för att bättre ange vilken ISA de tillhör. Detta kan kräva att viss äldre RISC-V-kod byggs om.

    Arm v9.6 – försprång till framtida CPU-funktioner

    För Arm tillkommer flaggan -march=armv9.6-a i assemblern. Den aktiverar redan nu stöd för kommande instruktioner som väntas i kommersiella processorer från slutet av 2025 och framåt.

    Några exempel:

    • +sme2p2 – nästa generation av Scalable Matrix Extension, för maskininlärning och vektorberäkningar.
    • +ssve-aes – effektivare AES-kryptering med Scalable Vector Extension (SVE).
    • +f8f32mm – snabbare matrismultiplikation med 8-bitars och 32-bitars flyttal.

    x86 och LoongArch – små men viktiga uppdateringar

    x86-sidan:

    • Stöd för Zhaoxin PadLock XMODX – en uppsättning kryptografiska instruktioner i vissa kinesiska x86-processorer.
    • Borttagning av stöd för 256-bitars varianten av AVX10.2-avrundningsinstruktioner – eftersom alla berörda CPU\:er redan stöder 512-bitarsvarianten.

    För LoongArch (en kinesisk processorarkitektur):

    • Nya alias för vissa 32-bitars instruktionsvarianter.
    • Förbättrade varningar när .align-direktiv eller matematiska uttryck riskerar att ge fel (till exempel negativa skiftningar eller division med noll).

    Slutsats

    GNU Binutils 2.45 är en ovanligt stor uppdatering – särskilt för dem som utvecklar kod nära hårdvaran. Den stärker debugmöjligheterna, inför nya verktyg i själva assemblern och ger utvecklare tillgång till nästa generations processorfunktioner redan idag.

    För RISC-V betyder det här ett bredare och mer komplett verktygsstöd, för Arm öppnar det dörren till framtida vektor- och krypteringsförbättringar, och för både x86 och LoongArch handlar det om små men värdefulla optimeringar

    https://www.gnu.org/software/binutils

    GNU Binutils 2.45 — Tekniska begrepp & förkortningar
    Binutils
    Samling lågnivåverktyg (bl.a. as, ld, objdump, readelf) för objektfiler, bibliotek och länkningssteg.
    GAS
    GNU Assembler – översätter assembler till maskinkod/ELF; i 2.45 genererar GAS SFrame V2 per default.
    ELF
    Executable and Linkable Format – standard för binärformat på Unix-lika system; sektioner, symboltabeller, relokerings-poster m.m.
    SFrame (V2)
    Kompakt stack-unwindformat för out-of-process stacktracing; lagrar återställningsregler per funktion utan full DWARF-overhead.
    SHT_GNU_SFRAME
    ELF-sektionstyp som identifierar SFrame-data; gör att verktyg kan hitta och tolka SFrame deterministiskt.
    SFRAME_F_FDE_FUNC_START_PCREL
    Header-flagga som anger att funktionsstart i FDE (Frame Description Entry) är PC-relativ – robustare symbolik/relokering.
    CFI
    Call Frame Information – metadata (ofta via .cfi_*) som beskriver stackramar; kan nu syntetiseras till SFrame på s390x.
    s390x
    64-bitars IBM Z/System z-ISA; Binutils 2.45 kan generera SFrame direkt från CFI för bättre felsökning på mainframe.
    .errif / .warnif
    GAS-direktiv som utvärderar villkor vid filslut och emitterar fel/varning; bra för policy-kontroller i firmware/SDK-träd.
    AArch64 sysregs
    Systemregister i 64-bitars Arm; 2.45 kan assemblera samtliga utan extra spärrar (-menable-sysreg-checking av).
    RISC-V ISA
    Öppen instruktionsuppsättning; 2.45 stödjer Privileged Spec v1.13, profiler 20/22/23, och ett brett spektrum av extensions.
    Privileged v1.13
    Spec för trap/CSR/virt mm. (OS-nivå); uppdaterade regler för maskin-/supervisor-lägen och delegationsvägar.
    Profiler 20/22/23
    Kuraterade paket av extension-kombinationer för definierade “capability tiers”; förenklar toolchain-målsättning.
    .bfloat16
    Assemblerliteral för Brain Float 16 (8-bit exponent, 7-bit mantissa+sign); nyttjas i ML-kernels på RVV/SME-lika enheter.
    $x → $x<isa>
    RISC-V-mappingsymbol byter semantik: explicit ISA-tagg per kodö i stället för implicit ärvning; kan kräva ombyggnad.
    Standard-ext.
    sha (SHA-accel), zce (compressed embedded), ssqosid/ssnpm/smnpm/smmpm/sspm/supm (privilege mgmt/QoS), ssccfg, svvptc (virt/ptc), zilsd/zclsd (load/store dags), smrnmi (RM-NMI) m.fl.
    Vendor-ext.
    T-Head: xtheadvdot (vektordot-ops). MIPS: xmipscbop, xmipscmov, xmipsexectl, xmipslsp (kontroll/mem-primitiver).
    Armv9.6-A
    -march=armv9.6-a aktiverar bl.a. +sme2p2 (SME v2p2), +ssve-aes (SVE-optimerad AES), +f8f16mm/+f8f32mm (FP8-matrismul), +sve2p2, m.fl. för pre-silicon-validering.
    SVE/SME
    Scalable Vector Extension / Scalable Matrix Extension – vektor- och matrisaccel med vektorlängds-agnostisk semantik.
    x86 XMODX
    Zhaoxin PadLock XMODX – nya kryptoinstruktioner. Samtidigt tas 256-bitars AVX10.2-rounding path bort (512-bit antas).
    AVX10.2
    Advanced Vector Extensions 10.2 – uniform ISA över 128–512b; 2.45 slopar en äldre 256b-avrundningskodväg.
    LoongArch
    Kinesisk RISC-ISA; 2.45 lägger till LA32R-alias (rdcntvl.w, rdcntvh.w, rdcntid.w) och striktare uttrycksdiagnostik.
    .align (3:e arg)
    Max bytes att hoppa; 2.45 varnar på out-of-range. Extra kontroller för negativa shifts och /% med noll.
    Tips: Aktivera SFrame-emission i byggkedjan och validera med readelf --sections och objdump --sframe där stöds.

    Källa :

    https://linuxiac.com/gnu-binutils-2-45-expands-risc-v-support

Etikett: x86

  • 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…

  • QEMU 10.1 släppt – enklare att virtualisera på fler plattformar

    QEMU har släppt version 10.1 – den första uppdateringen i den nya 10.x-serien. Den populära emulatorn och virtualiseraren bjuder på flera stora nyheter: nästlad KVM för ARM, stöd för moderna CPU-funktioner, förbättrad migration av virtuella maskiner och uppdaterade krav på byggmiljö. Samtidigt fasas äldre maskinmodeller och distributioner ut till förmån för nya tekniker och bättre…

  • GNU Binutils 2.45 – Stort lyft för RISC-V och nya funktioner för flera arkitekturer

    GNU-projektet har släppt version 2.45 av GNU Binutils, en samling viktiga kommandoradsverktyg för lågnivåprogrammering. Binutils används för att skapa, analysera och manipulera objektfiler (mellanformatet som kompilatorer producerar innan det blir körbara program), bibliotek och färdiga exekverbara filer. Tillsammans med GCC (GNU Compiler Collection – GNU:s samling av kompilatorer), glibc (GNU C Library – standardbibliotek för…