www.openmamba.org -- linux italian distro

domenica 1 giugno 2008

Linux è un circolo vizioso di conoscenza

Detto così potrebbe sembrare una cosa negativa. In realtà non lo è.
Senza andare a immischiarsi nei meandi delle licenze e delle diatribe fra gpl2 vs gpl3 possiamo dire con estrema tranquillità che Linux è free software.
Possiamo infatti copiarlo, vederne il codice sorgente, ridistribuirlo, modificarlo e quant'altro, a nostro piacimento.
Ma al di là del puro codice, parlando a un livello di ragionamento, assolutamente stimola l'utente ad aumentare la sua conoscenza.
Ovviamente ci vuole un minimo di curiosità, una persona completamente apatica e senza voglia di fare niente che non sia clicca qui clicca lì, può tranquillamente continuare a usare winz e cliccare sui suoi antivirus e firewall senza problemi.
Non si deve avere necessariamente la curiosità e la brillante intelligenza di un hacker per entrare nel circolo vizioso che porta ad avere sempre più conoscenza che innesca Linux. Basta giusto un minimo.
E giusto un minimo ho io.
Ma quel minimo fa accadere, in modo più o meno veloce, qualcosa nel cervello.
E lo sto sperimentando di persona, da quando uso Linux.
Appena installato la prima volta non sapevo nemmeno cosa fosse un rpm, un deb (lo dico solo per parcondicio), o una shell.
Poi piano piano, se volevo usare l'allora QiLinux, dovevo imparare come funzionasse, a livello user, cioè dovevo imparare ad usarlo come usavo winz precedentemente.
E si potrebbe dire: "Ok, mi fermo qui, tanto mi serve ciò che so per usarlo, e questo basta".
Ovviamente chi usa una Gentoo o una Slackware sarà favorito sotto questo punto di vista, ma la sua curva di apprendimento sarà molto più lenta e complicata, ma se non consigliano queste distro a chi inizia, ci sarà pure un motivo.
A questo punto, vista l'eterogeneità degli utenti e la grande quantità di programmi esistenti, sicuramente capiterà che ad un certo punto della nostra vita Linuxiana avremo bisogno di un programma che non è già bello e pronto in un pacchetto della nostra distro preferita. Sicuramente.
Un programma nuovo di zecca, una nuova versione di un programma esistente o quant'altro.
A questo punto, visto che desideriamo ardentemente quel programma, nei ritagli di tempo, iniziamo a studiare come si fa a pacchettizzare quel programma. Per me è stato Yakuake.
E l'ho pacchettizzato.
Poi dopo aver capito come funziona la pacchettizzazione, è normale che quando si trova un programma che si suppone essere utile, si decida di pacchettizzarlo.
E' ovvio che si possono incontrare delle difficoltà, ma c'è sempre quel minimo di curiosità che ci spinge ad andare avanti, per capire come mai qualcosa non funziona.
Il passo successivo si presenta quando si deve applicare un patch ad un programma pacchettizzato.
Anche in questo caso, di necessità si fa virtù e si cerca di capire come si applica una patch.
E' ovvio che si deve conoscere il linguaggio di programmazione in cui è scritto il programma, almeno un minimo, o comunque tocca impararselo, ma applicare quella patch è di vitale importanza per noi, e nessun altro lo farà per noi, quindi lo facciamo.
Studiamo il codice e vediamo che programmare non è così difficile come lo si dipinge. All'inizio magari ci sembra oscuro, ma a seconda del tempo che gli si dedica e del livello di curiosità che abbiamo, tutto diventa man mano più chiaro.
Beh, mi sembra palese che se notiamo che nella nostra distribuzione manca qualcosa, o c'è qualcosa che può essere migliorato, semplicemente ci mettiamo a scrivere codice. Non necessariamente un programma intero, o cose complicate.
Una icona nella systray che ci semplifica notevolemente alcune operazioni che compiamo spesso. Poi pacchettizziamo ciò che abbiamo fatto e lo distribuiamo, chissà che qualcuno ha bisogno delle nostre stesse cose, ma non ci aveva ancora pensato, o non è ancora in grado di farlo...
Ovviamente poi a seconda del tempo, dell'attitudine alla programmazione , ecc... il livello dei programmi / script creati potrà essere di livello molto differente. Ma non è la quantità che conta, è il fatto di farlo che da soddisfazione.
Il passo successivo è più complesso, sia dal punto di vista della enorme voglia di conoscenza che si deve avere, sia per la difficoltà intrinseca dell'operazione.
Modificare il kernel.
E' un terreno sul quale mi sono avventurato solo per l'università e che almeno per ora non ha dato grandi esiti.
Cioè non ho mai modificato qualcosa nel kernel (che non fosse un proc file), ma ho studiato il codice scritto da altri.
Altri che non sono uno qualsiasi, sono fra i più bravi programmatori del mondo, tra cui Linus.

NB: con questo non voglio dire che chi usa windows o mac non abbia questa curiosità o sia un incapace, in quanto conosco persone che conoscono windows molto meglio di come io conosco Linux senza dubbio, o chi fa il sistema operativo non sia un buon programmatore (oddio forse nel caso di windows.. mah)
Quello che voglio dire è che questi utlimi due sistemi operativi non stimolano a ricercare la conoscenza, anzi cercano di bloccare questo processo (soprattutto windows), e quindi per riuscire a conoscere approfonditamente un tale sistema operativo si deve avere un livello di conoscenza di gran lunga maggiore.

Nessun commento: