View Single Post
Old 18-06-2021, 18:45   #21
blackshard
Senior Member
 
L'Avatar di blackshard
 
Iscritto dal: Jan 2002
Città: non ti interessa
Messaggi: 5257
Quote:
Originariamente inviato da kreijack Guarda i messaggi
Oggi il paragone è calzante: all'interno del kernel di Linux, è possibile accedere più o meno a tutte le strutture; questo consente una notevole flessibilità sviluppo al costo di fare danni.
Però appena le strutture interne cambiano, si rompe la compatibilità con i moduli out-of-tree.

C'è una importante differenza tra Linux e l'Amiga. Gli sviluppatori del kernel cambiano allegramente le strutture interne, e lo possono fare visto che il 90% dei driver sono già integrati in Linux. I driver out-of-tree (e.g. ZFS), sono considerati "cittadini di 2a classe", e "si devono adattare".

Chi usa in Linux i driver NVIDIA sa di cosa parlo.

Personalmente penso che un kernel monolitico sia più veloce da sviluppare. Ma mi aspetto che prima o poi crolli sotto la complessità di gestire (da un punto di vista dello sviluppo) la numerosità dei driver.
Secondo me bisogna fare dei distinguo.
Per come è organizzato Linux, succede quello che a cui hai accennato tu. Però non è una prerogativa dei kernel monolitici, quanto piuttosto del modo in cui Linux è sviluppato e gestito.

La compatibilità ABI di solito può cambiare ad ogni minor release (p.es da 5.10 a 5.11), ma questo non impensierisce i maggiori fruitori di sistemi Linux, che non sono gli utenti NVIDIA, bensì gente come Qualcomm, Broadcom, Freescale, etc...
Loro scelgono un kernel (solitamente uno LTS) e ci sviluppano sopra; lavorano su quello e solo con quello per lunghissimo tempo, infatti se guardi su qualsiasi telefono Android difficilmente troverai un kernel in versione 5.xx, buona parte sono ancora 4.xx o addirittura 3.xx (Il mio redmi 5 con Snapdragon 450 è su kernel 3.18)

Per i driver NVIDIA solitamente basta ricompilare il driver, altre volte cambia effettivamente l'ABI e serve mettere le mani nel codice; ma il fatto che l'ABI non sia stabile è una scelta di Linux di per se, non del kernel monolitico in generale, ed è dettata principalmente dal suo modello di sviluppo e dal suo target principale, che non sono i sistemi end-user desktop.

Sono anche piuttosto d'accordo che mettere tutti i driver sotto il grande ombrello Linux rende la cosa un pizzico problematica e poco gestibile alla lunga, ma bisogna anche tenere presente che, se sono cose grosse, la manutenzione la fanno generalmente le stesse aziende interessate sotto la supervisione di un "reggente".
blackshard è offline   Rispondi citando il messaggio o parte di esso
 
1