Hlavní navigace

Google podporuje Rust v linuxovém jádře

16. 4. 2021

Sdílet

Rust Tux Linux Autor: Rust project

Minulý měsíc byla do linuxového jádra poslána podpora pro moduly napsané v Rustu. Ve středu byl pak poslána do LKML  další záplata a RFC (request for comments), kde se mají diskutovat výhody a nevýhody začlenění Rustu do jádra.

Také ve středu Google na svém bezpečnostním blogu podpořil Rust v linuxovém jádře. Říkají, že Rust pomůže omezit bezpečnostní problémy a zároveň zachová vysoký výkon jádra. Před týdnem Google povolil používání Rustu v nízkoúrovňových komponentách Androidu.

(zdroj: phoronix)

Našli jste v článku chybu?
  • Aktualita je stará, nové názory již nelze přidávat.
  • 17. 4. 2021 19:28

    RDa

    Pry muze byt v jadru jen kod ktery se pouziva. Je jedinym potomkem rustu ten demo driver, nebo se uz nekdo odhodlal k necemu vaznejsimu?

  • 17. 4. 2021 23:32

    Fík

    teď je tam toho víc:

    menuconfig SAMPLES_RUST
    You can build sample Rust kernel code here.
    
    config SAMPLE_RUST_MINIMAL
    This option builds the Rust minimal module sample.
    
    config SAMPLE_RUST_PRINT
    This option builds the Rust printing macros sample.
    
    config SAMPLE_RUST_MODULE_PARAMETERS
    This option builds the Rust module parameters sample.
    
    config SAMPLE_RUST_SYNC
    This option builds the Rust synchronisation primitives sample.
    
    config SAMPLE_RUST_CHRDEV
    This option builds the Rust character device sample.
    
    config SAMPLE_RUST_MISCDEV
    This option builds the Rust miscellaneous device sample.
    
    config SAMPLE_RUST_STACK_PROBING
    This option builds the Rust stack probing sample.
    
    config SAMPLE_RUST_SEMAPHORE
    This option builds the Rust semaphore sample.
    
    config SAMPLE_RUST_SEMAPHORE_C
     This option builds the Rust semaphore sample (in C, for comparison).
  • 18. 4. 2021 11:13

    linuxák

    V jádru se teď toho ohledně Rustu děje hodně, za pozornost stojí "Rust support RFC": https://lkml.org/lkml/2021/4/14/1023

    Linus se k němu vyjádřil: https://lkml.org/lkml/2021/4/14/1099

    on the whole I don't hate it. HOWEVER. I do think that the "run-time failure panic" is a fundamental issue.

    Od Linuse to jde brát jako poměrně vřelé přijetí :-). Má výhrady k run-time failure panicu, což je validní argument. Hlavní problém je v tom, že standardní alokátor Rustu při nedostatku paměti ukončí proces. Alokátor jde snadno vyměnit, aby místo ukončení procesu vrátil např. NULL, ale problém to neřeší, protože standardní knihovna s tím nepočítá, např. std::vec::Vec není moc nachystaný na to, aby řešil nedostatek paměti při realokaci (co s tím taky kromě panic udělat, že...). Možná to povede na úpravu nebo napsání nových datových typů ze standardní knihovny pro kernel, které budou definovaně řešit nedostatek paměti. Nějaká podpora u std::vec::Vec už je v nighty (try_reserve), na řešení se pracuje: https://lkml.org/lkml/2021/4/14/1130