E' parecchio tempo che mi frulla in testa l'idea di fare una distribuzione tutta mia; forse oggi ho le competenze necessarie e alcune buone "intuizioni" per fare tutto ciò. Scriverò senza un filo logico preciso, perchè le idee che ho in testa sono molte,
Veniamo a noi...
Bisogna fare una premessa; mio padre ha uno studio di consulente del lavoro e in questi anni ho dovuto sistemare pc poco potenti, pc potenti e pc scarsi per i più svariati utilizzi desktop e server. Inoltre facendo dei lavoretti di assistenza ho avuto a che fare con computer da sistemare di un infinità di tipi e con un infinità di problemi.
Premesso ciò, ieri in questi giorni ho modificato una DamnSmallLinux e l'idea della mia distro è ritornata a galla. La prima cosa che ho pensato è stata "ok io voglio fare una distro debian-based con svariati scopi, ma quale dimensione deve avere?", sono rimasto affascinato da DSL ma 50 MB sono davvero pochi e, IMHO 650 sono troppi, almeno per quello che riguarda fare una distro che non si perda nel mucchio; inoltre vorrei che tale distribuzione fosse installabile/utilizzabile anche su supporti USB, ed è per questo che la mia scelta è ricaduta sul formato dei mini-CD, cioè 185 MB; in questo modo il mini-CD è poco ingombrante e anche se messa (la distro) su una penna USB da 256 MB, ne rimangono sempre un po' per i file personali (da lavoro). Trovata "la dimensione" della debian che vorrei fare, la prima cosa è stata quella di pensare ai vari "usi" del CD:
1) come LiveCD
2) Per installare la distro su PC
3) Per installare la distro su penna USB (direttamente dal CD)
4) Per avviare la distro da penna USB
5) Per creare eventuali floppy di boot (ad esempio per avviare da penna USB) e di installazione (come la debian net-install)
6) Eventualmente per fare dei test (come il memory test di suse) o per "ripartizionare" l'hard-disk.
La mia idea sarebbe anche quella di fornire una mini-guida in html all'interno, di modo che se inserito il CD quando siamo in windows, si presenta una schermata che spiega cosa è il Cd, cosa fa, ecc. ecc. Non è da escludere, ma è seriamente da valutare, l'ipotesi di fornire nel CD anche una versione del freedos+gui o alcuni programmi di utilità windows, di modo da aumentare il "valore" della distro anche per gli utenti principianti (nel senso, uno può usare il cd, non solo per avere una distro live, ma magari per usare dei programmi windows, di modo che quel CD può seriamente diventare "un amico" di molti tecnici, che poi un giorno, spinti da curiosità o bisogno, magari si ritrovano ad installare linux - nda: insomma server per catturare utenti).
Procediamo per punti; la distro live (sia se avviata da cd o da usbpen) deve permettere fondamentalmente le stesse operazioni dell'avvio normale, ma anche qualcosa di più (che a molte distro manca), ed in tal senso DSL mi ha dato un'idea, se avviato come liveCD, deve poter essere possibile salvare i dati dell'utente all'interno di una partizione, backuppandoli come file tar.gz (o come file zip per motivi di compatibilità con l'ambiente win), ma se avviato da USB, deve poter essere "quasi automatica" la possibilità di salvare i dati all'interno della pena.
Per quanto detto fino ad ora, propongo uno schema dei file "come dovrebbero essere", per poi spiegare anche un'altra cosa.
\
\floppy
\floppy\boot.img
\floppy\root.img
\floppy\cdrom.img
\floppy\net.img
\floppy\rawrite.exe
\KNOPPIX\KNOPPIX
\guida\index.htm
\guida\blablabla.htm
\home\pippo.tar.gz (o .zip)
\boot.cat
\boot.msg
\fX (f2, f3, ecc.)
\syslinux.cfg
\syslinux.bin
\ldlinux.sys
\linux22
\linux24
\linux26
\logo.16
\minirt.gz
\scriptPippo
\index.htm (redirect a \guida\index.htm)
Ok, questa è la "struttura" di una knoppix, adattata per essere avviabile da USB, bisonga però porre particolare attenzione, ai floppy di boot, che possono essere scritti usando direttamente il programma rawrite (ad esempio se si legge il CD da windows), alla guida in html, alla directory home che conterrà i dati di lavoro di chi usa la distro da USB (infatti avrebbe senso mettere il formato .zip, per il semplice motivo che è facilmente accessibile da windows e quindi risulta pratico per utilizzare i propri file senza problemi) e a quello scriptPippo che, udite udite, dovrà essere un programma con un compito molto semplice, ricreare partendo dai file contenuti del CD, una iso del CD stesso che può essere rimasterizzata (bella cosa, non trovate?), infatti in linux, per creare una iso da quei file si dovrebbe dare un comando del tipo:
mkisofs -opzioni -X boot.img (nel dir floppy) -X boot.cat -X directory (contenente, appunto, i file) nomefile.iso
QUESTO E' UN PUNTO DA VALUTARE BENE IN FUTURO.
Una piccola digressione riguarda l'uso della home... infatti vorrei fare in modo che la home diventi realmente "utile", e per fare ciò deve essere accessibile, non solo nel liveCD, ma anche nell'installazione della distro che se rileva un CD o una penna USB si mette alla ricerca di quel file, lo scompatta e lo piazza nella home dell'utente; analogamente per Windows, sarebbe "carino" fare in modo (magari facendo un programmi ad-hoc in VC++) di mettere a disposizione la home dell'utente nella cartella "documenti".
Ma andiamo avanti che la carne sul fuoco è tanta e rischiamo di veder bruciare tutto...
Pensiamo ai programmi e all'installer che rappresenterebbero il vero punto cruciale della distro...
Poniamo un presupposto anche qui, su cui non sono disposto a cambiare idea (perchè la ritengo una cosa importante); la distro deve essere TOTALMENTE COMPATIBILE con una versione di DEBIAN, pensavo a SID, oppure a SARGE, ma questo fatto è voluto da me per due semplici motivi, il primo è che una volta installata, per quanto "magnifica" possa essere la distro, deve poter essere aggiornabile con i repository ufficiali debian, in questo modo la gente sarebbe disposta ad usarla perchè potrebbe rappresentare un'ottima scelta alternativa alla debian normale - :ApertaParentesi: io ho una debian un po' incasinata, volevo installare ubuntu o kanotix, non l'ho fatto perchè poi sarei rimasto legato ai loro repository e non a quelli ufficiali con tutte le limitazioni del caso; chi mi assicura che poi una sorgente apt esterna che su debian funziona, non mi faccia casini in ubuntu? chi mi garantisce la medesima quantità di software dei repository debian ufficiali ed ufficiosi? :ChiusaParentesi: -
in secondo luogo non ho la possibilità di mettere su e mantenere un mio server debian, per motivi prettamente economici, sarebbe una spesa grande per me e non fornirebbe niente di più all'utente.
Pensiamo ai programmi; questa è forse la cosa che mi stimola di più, cioè ridurre all'osso, senza perdere troppo in funzionalità. Parliamoci chiaro con un media da 185 MB si può fare un'installazione di 500 MB circa di software, che imho sono la "quantità più accettabile di software" a partire dal caca computer "Pentium I, 64 MB Ram, meno di 1GB di disco" ai supercomputer da NASA ultimo modello; sono, sempre secondo me, la via giusta per aumentare il target della distro (qui ho esperienza diretta personale, infatti uso debian dal piccolo caca-server con potenzialità molto limitate, fino al mio scintillante computer desktop che non ha niente da invidiare ad un pc windows o ad altre distro "zeppe" di software).
Per fare ciò è necessario fare una cernita, sia sulla quantità di programmi, sia sulla documentazione (i man page ed altra roba - a chi interessa l'help in suomi o in neo-zelandese?); per quanto riguarda quest'ultimo punto, adando a naso, si può pensare che italiano, inglese, francese, tedesco, spagnolo ed altre poche lingue rappresentano la maggior utenza del mondo occidentale (no, non è prevista la versione in cinese, almeno non ancora). Continuando, la cernita sui programmi deve essere abbastanza "spietata" nel senso che bisogna fare delle scelte. Imho mettere GRUB e non LILO, mettere OpenOffice (se possibile), ma anche altri applicativi "office" (per i pc poco potenti) che la possano sostituire degnamente (Abiword, gnumeric, ecc.). Mettere GNOME e non KDE (che non mi piace, lo so, molti di voi rimarrano delusi, ma non prediligo questo DE), e così via.
Ok, a questo punto le domande di molti saranno relative a quale tipologia di software mettere, io pensavo a:
1) Applicativi Internet (browser, posta, messenger, p2p, ecc.)
2) Applicativi da ufficio (office, viewer pdf, ecc.)
3) Applicativi multimediali
4) Programmi di editing immagini (Gimp su tutti - No CAD)
5) Programmi Server "semplici" (es. ssh, un server telnet, uno ftp, apache, un server dhcp, samba e così via)
6) Niente Giochi (se volete giocare compratevi l'X-box)
7) Applicativi di utilità di sistema (Partizionatori, programmi per gestire i filesystem e così via)
8) Programmi di firewalling/routing (da decidere ???)
Una nota particolare va ai DE, come ho già detto, niente KDE, ma anche GNOME e gli altri vanno "scremati" bene bene, ad esempio mettendo temi che possano ricreare sistemi operativi conosciuti (penso sempre agli utenti windows), e quindi pensavo a IceWM, XFCE e Fluxbox, e facendo una cernita anche dei temi, mettendo pochi, ma buoni.
Veniamo adesso all'installer, che è direttamente connesso anche a possibili programmi che verranno creati appositamente per la distribuzione. Innanzitutto l'installer dovrà essere solo testo (come quello debian originale) per motivi di retro-compatibilità e di spazio (pc vecchi possono visualizzarlo meglio e si risparmia moltissimo spazio) e dovrà prevedere diversi modi di installazione; alcune idee per l'installer sono:
1) Poter partizionare/spostare partizioni/backuppare partizioni in modo semplice
2) Poter scegliere quali programmi installare, partendo da diverse tipologie di installazione... ad esempio se uno ha un caca-pc è inutile che io gli proponga gnome, meglio icewm+gestore icone+file manager. In tal senso sarebbe interessante, a seconda del DE/WM scelto fare domande del tipo "Vuoi settare automaticamente l'aspetto del tuo DE come Windows? (o come il Mac o come il BeOS)"... così che l'utente principiante, finita l'installazione si trova Icewm o Gnome già configurato con aspetto simile (per quanto possibile) a windows.
3) Poter scegliere quale kernel utilizzare (se la versione 2.2, la 2.4 o la 2.6 - sempre in previsione che l'installazione può avvenire su pc con potenza differente)
4) rendere più semplici i passaggi di installazione, fornendo le dovute spiegazioni su quello che si sta facendo.
5) Automatizzare i processi che possono bloccare un utente (come la configurazione di alcune periferiche o della rete).
6) Permettere una facile configurazione di rete con semplici domande, box di esempio...
"Per collegarti ad internet usi:
- Un modem analogico 56 (nel caso l'installazione continua chiedendo i dati di connessione ppp)
- Un modem ISDN
- Un modem ADSL (configurazione pppoe)
- Un router ADSL (configurazione skd di rete)
- Sono collegato ad internet tramite skeda di rete
- altre tipologie"
Oppure, per settare la rete windows, porre domande del tipo:
"Sei in una rete di computer?" Se si,
"Inserire il gruppo di lavoro
-> Workgroup (per utenti Windows 95/98/ME)
-> MSHOME (per utenti Win2K, WinXP)
-> Specificare [.....]"
Insomma rendere l'installer più semplice
Riguardo all'installazione un punto sul quale lavorare è soprattutto il riconoscimento hardware, attingendo, ad esempio, agli script di knoppix o al riconoscimento hardware di redhat, ma anche a tool di altre distro (come ha fatto Yoper). Per i filesystem (fstab) e per il bootloader, anche qui, ci sarebbe molto lavoro da fare per migliorare l'installazione in dual boot con windows e per configurare grub in modo da farlo coesistere con altri SO/Linux (- sto pensando a interessanti modifiche a Grub, come il boot di dispositivi USB, ma questo richiede modifiche al progetto originale non di poca entità-). Inoltre sempre riguardo ai filesystem, buona cosa sarebbe quella di utilizzare (e consigliare), ove possibile il reiserFS, magari non il 4, vedremo.