
Linus Torvalds o stanie Linuksa, języku Rust i bezpieczeństwie open source
Podczas wystąpienia twórcy Linuksa nie zabrakło podsumowania 30-letniej historii Linuksa i zapowiedzi dotyczących jego przyszłości.
Podczas wystąpienia twórcy Linuksa nie zabrakło podsumowania 30-letniej historii Linuksa i zapowiedzi dotyczących jego przyszłości.
+135
pokaż komentarz
Ale się Linus roztył...
+6
pokaż komentarz
@UniversalHater: ヽ( ͠°෴ °)ノ
+170
pokaż komentarz
@UniversalHater https://i.imgur.com/AELAu.jpg
+2
pokaż komentarz
@ponton: dobre
+9
pokaż komentarz
@UniversalHater: dwóch grubasów jest, nie mniej nie więcej, Linus i Kernel
+8
pokaż komentarz
@UniversalHater: Taa kiedys kernel byl taki chudy, a teraz tyle w nim zaimplementowany rzeczy, to rosnie ( ͡° ʖ̯ ͡°).
+23
pokaż komentarz
Linus i Kernel
@cysiekw: ...i tylko jeden z nich ma mikrojądro ( ͡° ͜ʖ ͡°)
-4
pokaż komentarz
@UniversalHater: No pakietów od chu*a xD
0
pokaż komentarz
Komentarz usunięty przez autora
+1
pokaż komentarz
@UniversalHater: ja się nie dziwię - całe życie przed komputerem ( ͡° ͜ʖ ͡°)
+48
pokaż komentarz
@ponton:
źródło: i.imgur.com
-4
pokaż komentarz
@UniversalHater: Spasł się jak Wieprz
+48
pokaż komentarz
@UniversalHater: @gosvami: ( ͡° ͜ʖ ͡°)
źródło: vyd4dbxzhw781.jpg
+5
pokaż komentarz
@FightMaker: mam nadzieję że ta klątwa mnie nie dosięgnie jako użytkownik archa
+1
pokaż komentarz
dwóch grubasów jest, nie mniej nie więcej, Linus i Kernel
@cysiekw: Stawiam na Systemd
-1
pokaż komentarz
@FightMaker: o kurła, na bogato
0
pokaż komentarz
@cysiekw zawsze 2 ich jest. Mistrz i uczeń.
0
pokaż komentarz
@ochucki: KurSysV!eleven
+72
pokaż komentarz
Rust w Linuksie to przede wszystkim bezpieczeństwo pamięci oraz wydajność. Przekonał się o tym zresztą Microsoft, którego specjaliści wyliczyli, że zdecydowana większość problemów z pamięcią (70% wszystkich podatności z własną sygnaturą CVE począwszy od 2006 roku!) wynika z braków w C i C++. Rust jako język oferujący bezpieczną warstwę abstrakcji dla potencjalnie ryzykownych operacji oraz inne cechy bezpośrednio przekładające się na brak możliwości odtworzenia takich wycieków, jakie mają w kodzie C/C++ jest ich naturalnym następcą.
+2
pokaż komentarz
@xaliemorph: kompilator rusta jest trochę upierdliwy, ale bardzo rzadko zdarza się, że coś nie działa tak jak chcesz po naprawieniu tego co zgłasza kompilator. jak dla mnie bomba.
+34
pokaż komentarz
@lonegamedev: chciałbym zobaczyć jak to wygląda. Z tego co kojarzę to Rust ma być używany głównie do sterowników, gdzie jednak normą jest jechanie po pamięci wymagające
unsafe
, ciekawe jak rust się tu odnajdzie+28
pokaż komentarz
@Saly: Chyba 70% kodu w rust-linux było unsafe, bo sporo z tego, korzystało w funkcji napisanych w C, z tego co zrozumiałem z tego kodu.(A dodam, że nie rozumiem z niego zbyt wiele ( ͡° ͜ʖ ͡°) ).
-24
pokaż komentarz
@lonegamedev: W RUSCie nie widziałem za wiele realnych rzeczy (czyli rzeczywiście niskopoziomowych) za to widziałem wiele karkołomnych projektów, z UI, czy nawet gier. Niestety to jest ciągle język zabawka dla fanatyków co powtarzają jego zalety ale realnie z nich skorzystać nie potrafią.
-2
pokaż komentarz
@Saly: @dsntbce: domyślam się, że macie na myśli to że rust potrafi współpracować z kodem napisanym w c/cpp. czyli macie istniejący program do którego dodajecie moduły napisane w rust. wiadomo - ten kod z którym rust rozmawia jest niebezpieczny z oczywistych względów.
@Miko92: w c/cpp też napisano wiele enginów i gier mimo, że to w teorii język do pisania systemów operacyjnych. nie bardzo rozumiem zarzutu.
nowego systemu operacyjnego z nim nikt dla beki nie napisze, a zmiana istniejących rozwiązań wymaga czasu. adopcja nowej technologii trwa, szczególnie że rust różni znacznie od cpp/javy/c#/pythona itp.
to chyba największy projekt używający rusta.
https://servo.org/
-4
pokaż komentarz
@lonegamedev: LOL C++ nie jest językiem do pisania systemów operacyjnych ;) To jest język wielo-paradygmatowy ogólnego zastosowania.
Największym problem RUSTa to bardzo słabo napisany parser i cierpiąca na tym składnia odbiegająca za bardzo od jeżyków, które RUST próboje zastąpić - C/C++/Java.
-2
pokaż komentarz
@Miko92: c był językiem stworzonym z myślą o pisaniu systemów operacyjnych.
-3
pokaż komentarz
@lonegamedev: Z naciskiem na "był".
+27
pokaż komentarz
domyślam się, że macie na myśli to że rust potrafi współpracować z kodem napisanym w c/cpp. czyli macie istniejący program do którego dodajecie moduły napisane w rust. wiadomo - ten kod z którym rust rozmawia jest niebezpieczny z oczywistych względów.
@lonegamedev: i tak i nie. Wiadomo, że kod z rusta będzie wołał kod napisany w C, który by default jest niebezpieczny. Ale tutaj bardziej chodziło mi o to, że nawet pisząc w czystym Ruscie musisz używać unsafe, bo np. chcesz coś pisać po jakiejś dzielonej pamięci i Rust wymaga unsafe, bo kto wie co tam się dzieje. Pytanie czy ta cała ceremonia ma sens. Jeśli jakiś sterownik będzie się składał głównie z bloku unsafe to może się okazać, że zyskujemy bardzo mało na Ruscie a tracimy czytelność i prostotę C
LOL C++ nie jest językiem do pisania systemów operacyjnych ;) To jest język wielo-paradygmatowy ogólnego zastosowania.
@Miko92: xd, kernel jest napisany w C, bo tak chciał Linus. I była to dobra decyzja, bo C++ słabo się zestarzał tj. jest tam dużo ficzerów, które się słabo zestarzały. Nie zmienia to faktu, że C++ nadaje się do pisania kerneli (a przynajmniej do driverów tak jak Rust teraz), bo po tylu latach wiemy, które ficzery są przydatne np. raii, templates czy kontenery. Przykładowo Fushia OS jest częściowo napisana w C++
Największym problem RUSTa to bardzo słabo napisany parser i cierpiąca na tym składnia odbiegająca za bardzo od jeżyków
@Miko92: drugi raz xd C/C++ mają straszną składnię, której nie da się sparsować żadnym normalnych parserem, bo gramatyka jest niejednoznaczna. Ciężko się temu dziwić, skoro w czasach C nikt o to nie dbał i pewnie nawet cała teoria kompilacji nie istniała. Rust ma trochę skomplikowaną składnię poprzez dużo ficzerów, ale jest ona logiczna i korzysta z tych 50 lat rozwoju w językach programowania.
0
pokaż komentarz
@lonegamedev: C++ nie był a go wymieniłeś.
+1
pokaż komentarz
@lonegamedev: gdzie to przeczytałeś i kiedy
-1
pokaż komentarz
@Miko92:
Największym problem RUSTa to bardzo słabo napisany parser i cierpiąca na tym składnia odbiegająca za bardzo od jeżyków, które RUST próboje zastąpić - C/C++/Java.
zarzut z dupy. język używa trochę innej filozofii niż klasa czy intefejs, więc ma inną składnie.
a na marginesie - po szablonach w cpp ciężko o bardziej zj$?#ną składnię.
@S0Cool:
Z naciskiem na "był".
w odniesieniu do zarzutu, że pisze się w nim A, B, C a tylko trochę D - nie ma to znaczenia.
-3
pokaż komentarz
C++ nie był a go wymieniłeś.
@Miko92: napisałem c/cpp
0
pokaż komentarz
gdzie to przeczytałeś i kiedy
@blank2: 20 lat temu w jakimś podręczniku, albo na slajdach z jakiegoś wykładu.
+2
pokaż komentarz
@lonegamedev: Tak, cpp to znany skrót od "c plus plus". Wymieniłeś go jako język do pisania systemów operacyjnych - czym nie jest.
-4
pokaż komentarz
@Miko92: c/cpp widzisz ten slash pomiędzy?
-1
pokaż komentarz
@lonegamedev: I co by to niby miało zmieniać? Nie ma czegoś takiego jak "c/cpp" jest "C" i "C++" znany także pod nazwą cpp. To jakiś twój wymysł ?
+4
pokaż komentarz
@lonegamedev: Akurat Servo to martwa tragedia mozillii. Dobiła to pandemia, a mozilla wyrzuciła pracowników pracujących nad nowym silnikiem. Teraz robią coś chyba pro bono, ale jak to ostatnio testowałem, to strona gorzej się wyświetlała, niż gdy testowałem go w grudniu 2018 albo 2019.
nowego systemu operacyjnego z nim nikt dla beki nie napisze, a zmiana istniejących rozwiązań wymaga czasu. adopcja nowej technologii trwa, szczególnie że rust różni znacznie od cpp/javy/c#/pythona itp.
https://www.redox-os.org ( ͡° ͜ʖ ͡°) Napisze.
domyślam się, że macie na myśli to że rust potrafi współpracować z kodem napisanym w c/cpp. czyli macie istniejący program do którego dodajecie moduły napisane w rust. wiadomo - ten kod z którym rust rozmawia jest niebezpieczny z oczywistych względów.
Nie znam Rusta, ale to chyba tak nie działa, bo z tego co pamiętam, to w jakimś commicie, było dodawane mnóstwo usafów do funkcji, bo moduł wykorzystujący niebezpieczną funkcję, sam często jest niebezpieczny czy jakoś tak? Na pewno, jest to opisane w ich docach.
-6
pokaż komentarz
@Miko92: to są dwa języki z tej samej rodziny. do tego stopnia bliskie, że kod c można kompilować przy użycia kompilatora cpp przy drobnych przeróbkach typu uściślenie typu - taki był zresztą zamysł twórców. jeden i drugi język był używany do pisania systemów operacyjnych.
nie wiem co chcesz udowodnić w kontekście rozmowy. usrałeś sobie, że coś jest nisko albo wyskopoziomowe - a prawda jest taka, że nie ma jednej uniwersalnej definicji i każdy rozumie nisko i wysokopoziomość trochę inaczej.
+3
pokaż komentarz
@lonegamedev: "usrałeś się" - ok kolego, widzę, że mam do czynienia z mentalnym dzieckiem, które nie potrafi się przyznać do błędu. Wymieniłeś C++ jako jako język do pisania systemów operacyjnych, którym nigdy nie był. Teraz bronisz tego jakimiś karkołomnymi wywodami, które nie mają najmniejszego sensu. Szkoda mi już czas na ciebie, bez odbioru.
-3
pokaż komentarz
@Miko92: tak, cpp nigdy nie był używany do pisania systemów operacyjnych (。◕‿‿◕。)
+2
pokaż komentarz
@Saly: C ma straszną składnię? I niejednoznaczną gramatykę? xD. W C++ jedyne co się źle zestarzało to składnia templejtow i pokraczne TMP zamiast prawdziwego metaprogramowania.
+9
pokaż komentarz
@FocentDiutt: tak. Przykładowo co taki parser ma powiedzieć jak widzi
x*y
? Mnożenie, czy pointer y wskazujący na x? Do tego typ zwracany funkcji jest po lewej stronie, co przy czytaniu od lewej do prawej rodzi problemy. Jakby to nie był problem to nie mielibyśmy https://en.wikipedia.org/wiki/Trailing_return_type . C/C++ mają kupę takich głupot i przypadków brzegowych, których nikt nie używa ale są i powodują ból głowy jak coś przestanie działać0
pokaż komentarz
@lonegamedev: trochę się pozmieniało od tego czasu nawet inflacja podskoczyła
-4
pokaż komentarz
x*y? Mnożenie, czy pointer y wskazujący na x
@Saly:
Mnożenie, gdzie ty tu niejednioznacznosć widzisz?
pointer y wskazujący na x to byś miał np dla zmiennej typu int
int *y = &x;
+2
pokaż komentarz
@tarrin: a co jak x jest typem?
-2
pokaż komentarz
@Saly: W sensie? Bo nie za bardzo rozumiem o co ci chodzi.
EDIT:
w sensie że x to przykładowo int, double czy char? wtedy to jest słowo kluczowe i nie użyjesz go jako nazwy zmiennej. W c masz silne typowanie, więc tutaj niejednoznaczności nie będzie.
+1
pokaż komentarz
@tarrin: typedef int x;
-2
pokaż komentarz
@Saly:
w senise:
#include <stdio.h>
typedef int x;
int main(void)
{
x z = 12;
x *x = &z;
printf("%d\n", *x);
}
?
No rzeczywiście za przejrzyście to nie wygląda. Dopiero z kontekstu wynika, że mamy przypisanie, jakby typedef gdzieś schować w includach to lekki zonk.
Człowiek codziennie uczy się czegoś nowego :)
0
pokaż komentarz
C++ słabo się zestarzał tj. jest tam dużo ficzerów, które się słabo zestarzały.
@Saly: które ficzery C++ się słabo zestarzały?
+2
pokaż komentarz
@t3m4:
- copy by default i brak non-destructive moves. To działa w C, w C++ jest strasznie upierdliwe
- exceptiony. Są wolne albo ludzie wolą używać return values. Duża fragmentacja środowiska: część ich używa, część nie
- templaty. Rust używa wspólnej abstrakcji do runtime/static polimorphism. C++ ma dwa całkowicie inne mechanizmy
- duża część standardowej biblioteki. Przykładowo streamy to syf
- dużo róznych sposobów na inicializację i żaden z nich nie działa prosto i intuicyjnie
- dalej templaty: C++ kompiluje się bardzo wolno przez to, że każdy header jest interpretowany od nowa w każdej jednostce kompilacji. Ten problem występuje w C, ale jest dużo mniej odczuwalny. Zobaczymy, czy nowe moduły rozwiążą ten problem
- dziedziczenie: C++ ma dużo dziwnych ficzerów i dyskutując o nich często pada pytanie
a jak to się zachowuje z dziedziczeniem?
- dużo dziwnych
OOP
ficzerów: dziedziczenie private/proteced, friend.- biblioteka standardowa: przykładowo streamy to straszny syf
- dalej templaty: bardzo często się ich używa w nieintuicyjny sposób. Np. sfinae sprawia, że mamy długą kompilację i błędy kompilacji na parę stron
- to moja osobista opinia, ale referencje. Rust też ma referencje, ale mają one semantykę pointera tj. nie ma takiego problemu, że kontener trzymający referencje nie może istnieć, bo referencja zachowuje się jak alias. I przez to mamy takie potworki jak https://en.cppreference.com/w/cpp/utility/functional/reference_wrapper
Dużo z tych problemów wynika z C. W C++ piszę się troche inaczej i problemy, które były marginalne w C teraz są znaczące
0
pokaż komentarz
@Saly: dzięki! :)
+1
pokaż komentarz
@Saly: dorzuciłbym jeszcze taki szczegół - że cpp przez lata nie w dorobiło się ustandaryzowanego paczkowania, więc nie licząc bibliotek dystrybuowanych jako pliki nagłówkowe, integracja paczek third-party to prawie zawsze niezapomniana przygoda.
0
pokaż komentarz
@Saly: W 100% racja, to taki zestaw błędów i wypaczeń, tylko na razie nie ma lepszych alternatyw. Każda ma gdzieś coś, co powoduje że zawsze język jest świetny ale w wąskim spektrum zastosowań...
0
pokaż komentarz
@StarszyPanPoTrzydzistce: w przypadku Rusta (i ogólnie języków niskopoziomowych lub mających działać bardzo szybko) jedynym problemem jest totalna dominacja C i C++. Rust ma kilka problemów jak niewspieranie niektórych architektur/brak niszowych bibliotek/beton i wymogi co do specyficznych narzędzi (zwłaszcza gamedev) co nie zmienia faktu, że jak się da go użyć to kod będzie bezpieczniejszy, wydajniejszy i dużo szybciej napisany
+2
pokaż komentarz
ale się postarzał
+7
pokaż komentarz
@nienawidzeseksu: niezwykłe...
+43
pokaż komentarz
@nienawidzeseksu: Zakładam że przyczyną tego jest to, że się zestarzał.
+2
pokaż komentarz
@proweniencja: myślę, że raczej upływ czasu.
+2
pokaż komentarz
To już na bank będze rok Linuxa ( ͡° ͜ʖ ͡°)
+4
pokaż komentarz
@NoJakNieJakTak:
GIF
źródło: spiderman-meme.gif (1.68MB)
0
pokaż komentarz
@NoJakNieJakTak: to jeszcze nie nastąpił? Chyba właśnie wybudziłem się ze śpiączki.
-2
pokaż komentarz
@NoJakNieJakTak: żyjesz w wirtualnej piaskownicy wszyscy już maja linuxa :)|
+1
pokaż komentarz
@NoJakNieJakTak: Wykop stoi na windowsie?
+2
pokaż komentarz
@NoJakNieJakTak: U mnie to już ponad 2 dekady.
+1
pokaż komentarz
@blank2: prawie wszyscy. Są jednak osoby które korzystają z innych systemów niż Android
+1
pokaż komentarz
@ChojaK: Android nie ma praktycznie nic wspólnego z GNU/Linuxem. Samo jądro, ale filozofia i użytkowanie kompletne odmienne.
0
pokaż komentarz
@ChojaK: no macos też jest ok
0
pokaż komentarz
Android nie ma praktycznie nic wspólnego z GNU/Linuxem. Samo jądro,
@Korda: Bez GNU, Linux to właściwie samo jądro, więc zdanie logicznie poprawne i tyle. Nikt powyżej nie napisal o GNU.
pokaż spoiler
Onuco ( ͡° ͜ʖ ͡°)
0
pokaż komentarz
@NoJakNieJakTak: Idź być bilogejtsem gdzie indziej, zasrany sentrysto!
+4
pokaż komentarz
Android nie ma praktycznie nic wspólnego z GNU/Linuxem. Samo jądro, ale filozofia i użytkowanie kompletne odmienne.
@Korda: No nie wiem co jest odmiennego w Androidzie :P Jasne, system dostosowany do ekranów i dobrze spełnia swoje zadanie. Na takim Andku odpalisz apki z Linuksa dogrywając biblioteki lub po prostu przekompilowując je (Termux to robi)
0
pokaż komentarz
@fervi: Prawdziwy Linux na Androida to Ubuntu Touch, którego nikt by nawet nie chciał. Ba Linuksie nie instalujesz aplikacji korzystając z terminala. Jest intuicyjny.
0
pokaż komentarz
@Korda: A czemu nie Mobian?
0
pokaż komentarz
@fervi: No właśnie, czemu nie? ( ͡° ͜ʖ ͡°)
0
pokaż komentarz
@Korda: No nie wiem ( ͡° ͜ʖ ͡°)
Lubię Androida, chociaż wolałbym Mobiana, wtedy mógłbym z telefonu zrobić całkiem dobry komputer
0
pokaż komentarz
@fervi: To czego sobie nie zainstalujesz Mobiana?
0
pokaż komentarz
@Korda: Próbowałem, ale telefon wchodzi w bootloop. Może coś w weekend wymyślę
+1
pokaż komentarz
@fervi: A próbowałeś może SailfishOS? Chociaż w sumie tutaj ograniczona ilość modeli (nie rozumiem ich podejścia, tym bardziej, że to nie jest darmowy projekt).
0
pokaż komentarz
@Korda: Nie próbowałem, ale też nie wiem czy jest wsparcie dla różnych telefonów. Tylko PostmarketOS, Ubuntu Phone i Mobian / Droidian się skupiają na tym, by dostarczyć system na różne urządzenia
0
pokaż komentarz
@fervi: Czy da się na tym systemie debuggować apki zdalnie na PCta pod jakimś IDE?
0
pokaż komentarz
@StarszyPanPoTrzydzistce: Szczerze to nie wiem czy IDE się skomunikuje z automatu. Jeśli można to oprogramować to masz wszystkie Linuksowe narzędzia do tego. Większość tego typu narzędzi i tak jest FLOSS, więc wszelkiego rodzaju GDB, Strace itd. system ma. Kwestia czy IDE te dane sobie pobierze
0
pokaż komentarz
Komentarz usunięty przez autora
+2
pokaż komentarz
Widać, że sponsorowane znalezisko, praktycznie żadnych istotnych informacji, trzy akapity na krzyż i główna...