A mame to tady zas.. pry zastaraly kod. Jak muze funkcni kod degradovat prosim vas? Kod bud funguje, nebo nefunguje.
Pokud nefunguje, tak to nekdo(!) rozbil, a pokud si dobre pamatuji, tak ti, co prispivaji do jadra a prekopavaji veci maji za povinnost aktualizovat veskere ostatni casti ktere jsou upravami dotceny.
Ze je to opensource, neni vymluva na prosazovani FY pristupu. Proste to nema hlavu a patu :)
Zvažuju jestli jen trolíte nebo jestli opravdu nemáte zkušenosti a zajímá vás to.
Tak tedy - kód stárne sám od sebe vlivem externího vývoje - přichází nové možnosti v jazyce, v překladačích, HW atd. To přináší rozhodnutí, jestli se vyplatí aktualizace nebo to nechat být.
Dále je navázán na infrastrukturu v okolních knihovnách. Pokud se tam objeví něco nového, tak je třeba migrovat kód, který to může použít a opět jsme u zvažování co se vyplatí a co ne. Nakonec to dojde do stavu, že by se mohly staré části infrastruktury vyhodit, pokud se vyhodí kód, který už nikoho nezajímá. A to může být tento případ.
Takže ano, kód stárne zcela přirozeně.
Ne, nic takoveho se na moniliticky bastl jmenem "Linux Kernel" nevztahuje - kernel nema okolni knihovny. (Stary) HW ktery existoval - nadale existuje v nezmenene podobe.
Nekonecne prekopavani a zmena politicke ideologie (API), pripadne technologicke lenosti (vyzadovani atomickeho xchg), je to, na cem to cele hnije.
Externí knihovny sice nemá, ale drivery používají spoustu pomocných subsystémů, které je potřeba stále vyvíjet, rozšiřovat. A občas i se zbavit některých API (třeba jen jedné metody), jejichž podpora se v daném subsystému stává neudržitelně komplikovanou. Předtím je samozřejmě nutné změnou dotčené stávající drivery upravit, aby vše dál fungovalo.
Souhlasím s předřečníkem, že nechápe, co tě na tom překvapuje.
1. 8. 2024, 12:49 editováno autorem komentáře
Ne, v 90% případů je to projev čisté idiocie ev. "takhle je to lepší".
Většina tskových změn, se kterou jsem se potkal já, bylo pouze přejmenování metody/funkce. Stejná funkcionalita, stejné parametry (i když, už jsem také párkrát viděl, že je někdo jen přeházel), jen změna jména. Změna pro změnu bez závažného důvodu.
To mi připomíná Win API - k jedné funkcionalitě 2-5 funkcí označených fx2-5, některé varianty jsou thread safe, jiné nejsou, některé podporují utf, jiné ne, některé podporují 8znakové názvy souborů, a jiné plnou délku. Neskutečný mrdník. V tom se neskutečně blbě programuje, protože musíte prolézt nnásobně víc dokumentace, a předpokládám, že to pro Microsoft bude taky neskutečná koule na noze. Neomezená kompatibilita zabije jakoukoliv evoluci.
Když někdo udělá v projektu změnu, je třeba projekt otestovat. V případě jádra OS ho vyzkoušet na podporovaných architekturách CPU. Když to nikdo dlouhodobě nedělá, je předpoklad, že to jádro už na dané architektuře stejně nefunguje, a tak není třeba omezovat nový kód tím starým. Povšimněte si, že stále živé architektury stále podporované jsou (např ty Motoroly v Amigách). Samozřejmě že problém zčásti vzniká i architekturou Linux kernelu, je to něco za něco.
1. 8. 2024, 15:42 editováno autorem komentáře
Jednoduchou metrikou:
- budes to udrzovat nebo nekdo koho zaplatis?
Pokud ne, tak to zalezi jen a pouze na tom jestli to bude udrzovat nekdo jiny, at uz proto ze ma ten HW, nebo ze ho nekdo zaplati.
Vyzadovat po opensource projektu, ktery mas zdarma a nicim neprispejes, aby v nem nekdo zdarma udrzoval podporu pro zastaralej HW ktery ho nezajima a nema ho, je postavene na palici...
Raspberrypi 1 a nebo Zero jsou stale velmi popularni/se prodava, z textu zpravicky ale chapu ze prave jejich podpora se ukoncuje.
V jadru jsou balasty stare 40 let a tady se chce zapit cpu stary 10 let. To mi hlava nebere.
Kdyby kuci odstranily ruzne workaroundy na Intely dejme tomu od 7me generace, to by jadru ulehcilo.
Jako první se odstraňuje kód náročný na údržbu, případně kód vyžadující zvláštní přistup, a kód o který se nikdo nechce starat (ať dobrovolně nebo komerčně - chybí podpora od dodavatele). Vidím to na Postgresu - letos se zrušila podpora pro legacy systémy včetně AIXu (chyběla mašina v testovací farmě, překladač obsahoval bugy, kvůli kterým musely být v kódu workaroundy, ...). Teprve poté, co se podpora AIXu odstranila, se někdo v IBM chytil za nos, a věci se trochu posunuly - 17ka bude bez podpory AIXu, ale v 18tce bude nový port, který bude méně náročný na údržbu a AIX bude i v testovací farmě.
Open Source píší vývojáři dobrovolně nebo za peníze. Udržovat podporu rozvíjející se aplikace pro různé CPU, překladače, hardware je dost pracné, a pokud nejsou lidi, ať dobrovolníci nebo placení vývojáři, tak není co řešit. Pro podporu CPU nebo operačních systémů (v případě Postgresu) potřebujete lidi se speciálními znalostmi (a těch je extrémně málo, zvlášť v případě starších systémů nebo staršího hardware).
Jinak to, že se odstraní podpora neznamená, že nebudete moct používat daný systém. Pouze pro něj nebudou nové verze.