Wpis z mikrobloga

#linux #rust #c #cpp #pegasus

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
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mk321: rust wspaniały język, tylko na około słabo bo
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
  • Odpowiedz
via Wypiek
  • 2
@MamCieNaHita

C++ jest od dziesiątek lat i również jest o niebo bezpieczniejszy od gołego C - spiseg?


Dlatego jądro jest w C, a nie C++ ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@MamCieNaHita: Co do punktu 2 się nie wypowiem bo się nie znam, ale w 1 i 3 to piszesz głupoty.
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
gentooman - @MamCieNaHita: Co do punktu 2 się nie wypowiem bo się nie znam, ale w 1 i...
  • Odpowiedz
@mk321: @MamCieNaHita @gentooman Gdyby Rust był taki wspaniały to sam by trafił do kernela bo i Linus by sobie go przygarnął i ktoś chętny by się znalazł, żeby go tam wsadzić. A tak nie dość, że musieli wieki Linusa namawiać żeby się wgle zgodził to jeszcze z bólem i trudem jako tako udało się go tam wepchnąć, nie mówiąc o tym, że nikt nie chce sam z siebie
BeginEnd - @mk321: @MamCieNaHita @gentooman Gdyby Rust był taki wspaniały to sam by t...

źródło: lng

Pobierz
  • Odpowiedz
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


@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
  • Odpowiedz
Zwróćcie uwagę - jeszcze dobrze ten Rust nie wszedł, jest tylko jakaś mikro jego część a już potrafił wygenerować tak niepotrzebny bałagan, zamieszanie i spalanie energii. Nie wygląda dobrze jako promocja dla czegoś co ma pomóc. Tymczasem C na pierwszy rzut oka dla ludzi, którzy nigdy dobrze go nie poznali C może się wydawać dziwne, że archaiczny język ma taką obronę. W rzeczywistości nie jest taki straszny ani archaiczny, jest się go
  • Odpowiedz
A tak nie dość, że musieli wieki Linusa namawiać


@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.

nie mówiąc o tym, że nikt nie chce sam z siebie nic tam pisać w
  • Odpowiedz
A to, że parę dinozaurów się oburza na coś nowego bo myślą, że jak 30 lat temu C był niezastąpiony to dalej tak jest to już nie jest kwestia techniczna, tylko ideologiczna. Czas jednak swoje zrobi.


@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ę
  • Odpowiedz