Aby ułatwić eksplorację języka programowania Rust w celu przechowywania danych w jądrze systemu Linux, inżynier firmy Samsung, Andreas Hindborg, opublikował sterownik bloku zerowego napisany w tym bezpiecznym dla pamięci języku programowania.

Sterownik Rust zerowego bloku ma służyć do oceny powiązań Rust dla warstwy blokowej jądra, udostępniać Rust większej liczbie programistów pamięci masowej Linuksa i służyć podobnym celom, pomagając „kopać opony” wokół sterowników pamięci masowej Rust i Linux.

Andreas Hindborg napisał w ogłoszeniu nowego sterownika Rust:

„Ponieważ jest mały i prosty, sterownik bloku zerowego jest dobrym miejscem do wprowadzenia społeczności przechowywania jądra Linuksa do Rust. Pomoże to przygotować społeczność do przyszłych projektów Rust i ułatwi lepszy proces konserwacji tych projektów.

Statystyki przedstawione w mojej poprzedniej wiadomości pokazują, że sterownik bloku zerowego C miał znaczną ilość problemów związanych z bezpieczeństwem pamięci w przeszłości. 41% poprawek połączonych dla sterownika bloku zerowego C to poprawki problemów związanych z bezpieczeństwem pamięci. To sprawia, że ​​sterownik bloku zerowego jest dobrym kandydatem do przepisania w Rust.

W tej tabeli każda komórka pokazuje względną wydajność sterownika Rust w stosunku do sterownika C z przepustowością sterownika C w nawiasach: `rel_read rel_write (read_miops write_miops)` Np.: sterownik Rust działa o 4,74 procent lepiej niż sterownik C dla fio randread z 2 zadaniami przy rozmiarze bloku 16 KiB.

Ponad 432 W konfiguracjach porównawczych względna wydajność sterownika Rust w stosunku do sterownika C (pod względem IOPS) wynosi od 6,8 ​​do-11,8 procent, przy średniej o 0,2 procent lepszej dla odczytów. Dla zapisów rozpiętość wynosi od 16,8 do-4,5 procent, przy średniej o 0,9 procent lepszej.”

Sterownik bloku zerowego Rusta obsługuje już wielokolejkowanie BLK-MQ, bezpośrednie uzupełnianie I/O, żądania odczytu/zapisu, opcjonalne tworzenie kopii zapasowych pamięci itp. Istnieją jednak inne funkcje, dzięki którym ten sterownik jest porównywalny z istniejącym sterownikiem bloku zerowego opartym na języku C, takie jak obsługa NUMA, przesyłanie oparte na danych biologicznych, konfiguracja harmonogramu we/wy, obsługa pamięci strefowej i nie tylko.

Więcej szczegółów na temat tego wczesnego sterownika warstwy bloku zerowego Rust, który pomaga w dalszym rozwoju języka programowania Rust dla pamięci masowej w systemie Linux, można znaleźć na stronie seria poprawek.

Categories: IT Info