Pisanie nowego kernela - kilka pytań

0

Witam, mam takie pytanie dlaczego twórcy nowych kernelów nie podzielą ich sprzętowo. Na przykład taki Linux, tworząc nową wersję kernela nie podzieli go na nową serię 5.xx, gdzie w tym wydaniu będzie tylko wsparcie procesorów od AMD Ryzen r3, r5, r7, oraz intel i3, i5, i7 z serii 7xxx, 8xxx. To samo dotyczy to najnowszych kart graficznych od serii Nvidia Geforce 1xxx, AMD Radeon FX 5xx, oraz inne sterowniki czy to sieciowe, WiFi z tego roku. A wszystko co do tej pory było wspierane zostawić, te starocie w kernelu 4.13.x. Przecież te stare jądra systemu Linux pamiętają jeszcze standard języka programowania C 89. To jest trochę podobna metoda działania do polityki Apple, gdzie wybierają tylko dany sprzęt i piszą pod niego sterowniki w swoim systemie. Czy jak by Linus Torvalds zgodził się na taki plan wydawniczy, oddzielając kernele na te wspierające tylko nowy najnowszy sprzęt, to nie przyspieszyło by to znacznie jądra systemu? Zapewne bardzo by go odchudziło, można by było programować w jednym najnowszym standardzie, korzystając z najlepszych dostępnych technik i bibliotek. Może nawet mogli by zmienić język programowania na taki C++17 lub Rust. Pozbyli by się naleciałości zamierzchłych czasów, wadliwego dziurawego kodu, poprawiło by się bezpieczeństwo. Przecież 4 września zgodnie z harmonogramem, Linus Torvalds wydał wersję 4.13 kernela, wciąż pod nazwą kodową Fearless Coyote. Ponad 14 tys. commitów, ponad 600 tys. nowych wierszy kodu. Nie wierze że przy takim wsparciu jednostki ludzkiej, nie mogli by podzielić tych programistów na dwie grupy. Gdzie jedna z nich zajmowała by się tą nową wersją nowoczesnego kernela z serii 5.xx pod najnowszy sprzęt. Tu mam takie pytanie, do tych którzy orientują się w tych nowych systemach takich jak HaikuOS(C++), RedoxOS(Rust). Zapewne one wspierają jakieś w miarę nowe procesory, karty, dlatego że powstały dużo później niż systemy Linux, BSD?

0
  1. Linuks dalej działa na abstrakcyjnych dla Ciebie platformach. I robi to cały czas (Xeony na serwerach, ARM w smartfonach, 8080 na stacjach kosmicznych, inne ezoteryczne platformy w miliardach innych miejsc).
  2. W samym rdzeniu nie ma tak dużo różnic pomiędzy "nowymi" x86 a "starymi", SIMD nie istnieje, FPU i reszta też. Więc tak na prawdę różnic w samym działaniu rdzenia między Pentium 4 a AMD Ryzen r7 nie ma tak dużo.
  3. To samo tyczy się sterowników. Pamiętaj, że większość instancji Linuksa to nie są komputery domowe a serwery i telefony.
  4. To samo tyczy się standardu C. Chodzi o to, by każdy kompilator był w stanie to skompilować.

A tak BTW:

Jak przekonasz Linusa by użył C++ to masz u mnie piwo. Dobre piwo. Całą skrzynkę dobrego piwa.

0

Ale nadal by ten egzotyczny sprzęt działał, tylko by był rozwijany w innej numeracji jądra. Linus kiedyś powiedział, że widział jakie potrafią pisać programiści potworki z kodu C++. Ale być może tym starszym hakerom, po prostu nie chciało się uczyć nowego języka programowania. Ewentualnie nie pasowała im tak brzydko dodana obiektowość w C++.

0

Po co robić inną numerację jądra dla innego sprzętu, skoro wszystko może działać na tej samej. Ja w tym sensu nie widzę

0

A w tym widzisz sens?
https://openms.net/jak-ustawic-tcp-bbr-w-systemie-linux/
Może po to aby przyspieszyć działanie systemu. Ewentualnie aby był mniej podatny na błędy, bugi systemowe.

0

Autorze, nie utrzymywałeś nigdy produkcyjnego produktu i to widać.

Przy rozłamie "nowe i stare" biznes i inżynieriowie odpowiadający bezpośrednio przed biznesem nie pozwoliliby na wdrożenie nowej wersji przez najbliższe 10 lat. I to dość optymistyczne założenie. Przy rozłamie "nowe stare" złamałbyś też spójność społeczności, która z czasem coraz mniej chętnie zajmowałaby się "starym" branchem - część ludzi kontrybuuje hobbystycznie, często w pracy jesteśmy zmuszeni do pracy nad starociami to po pracy wolelibyśmy zająć się czymś co nie ma łatki "stare" lub "do ubicia za kilka lat". Czyli w efekcie masz coraz mniej ludzi do pracy nad branchem, który wymaga wciąż tyle samo uwagi bo wciąż jest głównym produkcyjnym branchem.

Nie sądzę, byś kogokolwiek przekonał do swojego zdania, linux ma bogatą historię deplojmentów na wielu platformach, od mainstreamowych do dość ezoterycznych, zawsze jest miejsce na usprawnienia, ale na tak radykalne kroki nikt nie pozwoli dopóki obecny schemat działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1