Vlákno názorů k článku
Google podporuje Rust v linuxovém jádře od RDa - Pry muze byt v jadru jen kod ktery...

  • Článek 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
    Zlatý podporovatel

    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