
#linux #rust #c #cpp #pegasus
Wygląda jakby starzy programiści C specjalnie chcieli, żeby w jądrze były luki. A co jeśli są tam ludzie np. z NSA lub po prostu hackerzy/crackerzy, którzy takie luki potem sprzedają np. do Pegasusa? Jeśli byłby bezpieczny język bez łuk, to nie mieliby czego sprzedawać.
https://ithardware.pl/aktualnosci/linus_torvalds_linux_rust-38846.html
Jądro Linuxa od dekad jest rozwijane głównie w języku C, który – mimo swojej wydajności – od lat jest krytykowany za liczne luki związane z zarządzaniem pamięcią. Rust, nowoczesny język programowania, który eliminuje wiele tych zagrożeń, zdobywa coraz większą popularność jako potencjalny następca C. Od 2022 roku jądro Linuxa zaczęło stopniowo integrować Rust, ale zmiana ta spotkała się z oporem wielu doświadczonych programistów C.
Wygląda jakby starzy programiści C specjalnie chcieli, żeby w jądrze były luki. A co jeśli są tam ludzie np. z NSA lub po prostu hackerzy/crackerzy, którzy takie luki potem sprzedają np. do Pegasusa? Jeśli byłby bezpieczny język bez łuk, to nie mieliby czego sprzedawać.
https://ithardware.pl/aktualnosci/linus_torvalds_linux_rust-38846.html
- Najlepsze
- Wszystkie komentarze







1. rust nie ma standardu. C ma jasno opisane jak ma działać i na podstawie tego można zrobić kompilator - w ruście masz jeden słuszny kompilator i on dyktuje zachowanie zamiast standardu
2. żeby rust mógł być wykorzystany w jądrze linuksa trzeba włączać pierdyliard niestandardowych ustawień i nightly featurów
3. kompilator C jest zajebiście prosty - stworzysz nową architekture, zaklepiesz na
@MamCieNaHita: standard związany z jedną wiodącą implementacją jest lepszy. W przeciwnym wypadku masz sytuację jak w C++, gdzie leśne dziadki od standardu wymyślają swoje po czym przychodzi ktoś z gcc/clang i mówi, że nie można, bo jest złamane ABI
@MamCieNaHita: aha, czyli to stąd w nim tyleundefined behavior ( ͡º ͜ʖ͡º)
Dlatego jądro jest w C, a nie C++ ( ͡° ͜ʖ ͡°)
Standard C nie definiuje specjalnie bardzo wielu rzeczy(na przykład takiej prostej jak integer overflow dla signed int) i potem co kompilator to inne zachowanie. A te niezdefiniowane zagadnienia są często bardzo trudne do wychwycenia wiec masz projekty jak UBSan czy valgrind.
Łatwość w portowaniu C nie wynika z prostoty kompilatora
@nostalgiwolf: Może i masz rację może nie. Ja tylko twierdzę, że zjadłem, strawiłem i wys#$em już sporo języków w swojej karierze, które miały jakoś magicznie rozwiązywać wszystkie bolączki znane z C. Zawsze okazywało się
@BeginEnd: Nikt nie musiał Linusa namawiać, Linus był za tym by dołączyć Rusta do kernela, ostatnio narzekał, że za wolno idzie jego dodawanie do kernela, a jeszcze wcześniej zmergował łatki od deweloperów Rust pomimo sprzeciwu maintainera.