Storia del progetto NetBSD

Da Wiki di NetBSD Italia.

Questo articolo è solo un abbozzo, contribuisci a migliorarlo secondo le convenzioni di NetBSD-it mettendo a disposizione le tue conoscenze. La comunità te ne sarà grata!

[[NetBSD nasce nel 1993 prendendo le sue origini dall'UCB 4.3BSD originale

attraverso il rilascio Networking2 e 386BSD (il port di BSD per le architetture i386. Il progetto NetBSD fu fondato da Chris Demetriou (cgd@), Theo de Raadt (attualmente responsabile di OpenBSD), Adam Glass e Charles M. Hannum (mycroft@), che lascio' il progetto qualche tempo dopo.

La frustrazioe di intregrare le patch e i rilasci di 386BSD ha portato a FreeBSD, il quale si e' concentrato sulla piattaforma i386, mentre NetBSD e' formato per focalizzarsi sul supporto multi-piattaforma.

Da allora, in aggiunta ai molti sviluppatori all'interno del progetto, sono stati importati cambiamenti da molti altri sorgenti, incluso 4.4BSD Lite. NetBSD e' stato anche usato come base per altri derivati, incluso Lites (costruito sopra Mach) dell'Universita' dello Utah e Rhapsody della Apple.

Origini

Quando nacque il progetto, Linux e 386BSD erano entrambi piccoli sistemi per hobbisti, entrambi piuttosto bacati, ed entrambi privi di alcuni importanti supporti hardware. Fondamentalmente vi erano delle esigenze: non c'era un pacchetto di 386BSD completo piu' le patch necessarie per farlo girare su piu' sistemi e correggere i bug, e non c'era segno che Bill Jolitz sarebbe riemerso e/o avrebbe fatto qualcosa.

Buona parte della struttura del progetto si evolse a causa di alcuni problemi. Probabilmente la scelta migliore fu iniziare ad utilizzare un controllo di versione centrale (CVS); questo consenti' una visione molto ampia della storia del codice ed (eventualmente) favori' le collaborazioni con un grosso numero di sviluppatori molto facilmente. Vennero truccate alcune altre cose; per esempio, Chris si stanco' di essere l'uomo di punta per ogni cosa e stava cercando di laurearsi al college, cosi' venne creato un "cabal" interno per la gestione del progetto, che divento' noto come il "core group" (nucleo). Sebbene il web fosse piuttosto nuovo, venne creato piuttosto rapidamente un sito web per diffondere le informazioni riguardanti il progetto e i vari rilasci.

Buona parte di questa prima struttura (CVS, sito web, cabal, etc.) fu copiata da altri progetti open source (questo termine ancora non era largamente usato) -- anche la forma del nome del progetto e il termine "core". Questo divento' in seguito un tipo di modello standard per avviare un progetto open source.

Sfortunatamente commisero qualche errore qui'. Come videro col passare degli anni, uno dei grandi successi di Linux fu che ebbe un forte leader, che stabiliva obiettivi e direzioni, e fu capace di far fare alla gente quello che volle -- o trovare qualcun'altro per farlo. Quest'ultima parte e' anche un elemento chiave; non aveva senso che qualcun'altro "comandasse" un pezzo di Linux (sebbene la "proprietaria'" de facto ci sia stata in alcune parti); se tu non producevi, Linus avrebbe usato il codice di qualcun'altro. Se volevi che le persone utilizzassero le tue cose dovevi muoverti.

NetBSD non ebbe questo. In parte a causa della mancanza di persone, e in parte a causa di una mentalita' piu' aziendale, i progetti furono spesso "bloccati". Una persona poteva dire che lavoravano a un progetto, e a tutti gli altri veniva detto di fare riferimento a loro. Spesso questi progetti stagnavano o non progredivano affatto. Se lo facevano, gli stimoli erano spesso troppo lenti. Come risultato, molti progetti importanti sono stati spostati su ritmi glaciali, o non si sono materializzati affatto.

Charles M. Hannum, come lui stesso dice, e' dispiaciuto di aver aiutato a creare questi problemi e che molti dei progetti che modellano se' stessi dopo NetBSD (probabilmente a causa della loro alta popolarita' nel 1993 e 1994) hanno sofferto di simili problemi. FreeBSD e XFree86, per esepmio, hanno avuto dei progetti successori (fork, Dragonfly e X.Org) per ragioni molto simili.

Sfortunatamente, ancora oggi esistono questi problemi nel progetto NetBSD, e niente e' stato fatto per risolverli.

Stato

Oggi, il progetto e' gestito da "cabal" differenti. Questo e' il risultato di un colpo che ha avuto luogo nel 2000-2001, nel quale La Fondazione NetBSD e' stata ripresa da un cambiamento fraudolento del consiglio di amministrazione. Il "Progetto NetBSD" (TNP) e "La Fondazione NetBSD" (TNF) furono intesi dall'inizio come entita' separate -- l'ultima fornendo le infrastrutturo di supporto per la prima -- questa distinzione e' stata attivamente offuscata da allora, cosi' che gli attuali amministratori della TNF sono piuttosto a stretto controllo su molti aspetti del TNP.

La TNF fu composta da una buona serie di capi, questa situazione potrebbe essere al piu' accettabile -- anche se certamente non ideale. Il problema e', in realta' non ci sono capi a questo punto. Gli "obiettivi" per i rilasci non sono basati su feedback dei clienti o pensando alle esigenze futuro, ma unicamente sulla base di quello che sembra essere abbastanza "caldo" per poter essere possibile che sia finito in tempo. Non ci sono direzioni di alto livello; se si chiede "che si dice in merito al problema con i thread?" o "ci sara' un file system flash-friendly?", la miglior risposta che si otterra' e' "ci piacerebbe avere entrambi" -- ma viene effettuato alcun lavoro per recrutare persone per codare queste cose, o incoraggiare gli sviluppatori esistenti a lavorarci.

Questo vuoto ha materialmente contribuito alla corrente stagnazione del progetto. Effettivamente, NetBSD e' molto lontano dietro a una pletora di progetti molto importanti. Il threading non funziona su piu' CPU -- ed anche su una sola CPU e' un po' bacato. Non c'e' nessun buon flash file system. Fino a recenti versioni del sistema non c'era supporto per il journaling (eccetto per LFS che era ancora in qualche modo sperimentale). Anche se ci sono stati alcuni recenti lavori nel supporto alla sospensione, e' ancora largamente "rotto". La gestione dell'energia e' molto primitiva. Etc. Anche i nuovi supporti hardware non hanno piu' origine su NetBSD; sono sviluppati da FreeBSD e OpenBSD, e portati dopo. Ci sono poche eccezionia questa regola (e.g. il supporto Bluetooth).

Per queste ragioni ed altre, il progetto e' sceso quasi fino al punto di irrilevanza. C'e' chi sostiene che questo sia al di la' di quanto esposto fin'ora. Questo e' un peccato, soprattutto da quando l'utilizzo di NetBSD -- specialmente nello spazio embedded (integrati) -- ha cominciato a crescere a buon ritimo nel 2000 e 2001, prima del colpo di cui sopra.

Strumenti personali