Archive for the ‘Free Software’ Category

Ebers-Moll, questo sconosciuto

Wednesday, February 18th, 2009

Non pare anche a voi che il modello di Ebers-Moll per i transistori bipolari sia parecchio complicato? Beh per rendermelo un po’ più comprensibile ho pensato di disegnare le caratteristiche con il computer anziché affidarmi a quelle fatte a mano… giusto per capire un po’ meglio come vanno le cose!

I due programmini seguenti, che producono queste immagini, sono in codice Matlab e si possono eseguire tranquillamente con Matlab (appunto) o con il programma gratuito GNU Octave.

% Transistore BJT: modello Ebers-Moll
% Disegna, al variare di Vce come parametro, la corrente Ib in funzione di Vbe
Vt=25e-3; % Tensione termica in Volt
Is=1e-15; % Corrente Is in Ampere
Bf=100; % Parametro BetaF
Br=1; % Parametro BetaR
Vbe_i=0.9; % Vbe iniziale in Volt
Vbe_f=1.0; % Vbe finale in Volt
Vbe_p=1000; % Passi di Vbe
Vce_i=0; % Vce iniziale in Volt
Vce_f=0.25; % Vce finale in Volt
Vce_p=10; % Passi di Vce

Vbe=linspace(Vbe_i,Vbe_f,Vbe_p); % Tensione Vbe in Volt
Vce=linspace(Vce_i,Vce_f,Vce_p); % Tensione Vce in Volt
Ib=ones(Vbe_p,Vce_p);
for i=1:Vce_p
Ib(:,i)=Is/Bf.*(exp(Vbe/Vt)-1)+Is/Br.*(exp((Vbe-Vce(i))/Vt-1));
end

plot(Vbe,Ib);
xlabel V_{BE};
ylabel I_B;
%axis([0.9 1 0 25]); % per ottenere la stessa immagine

% Transistore BJT: modello Ebers-Moll
% Disegna, al variare di Ib come parametro, la corrente Ic in funzione di Vce
Vt=25e-3; % Tensione termica in Volt
Is=1e-15; % Corrente Is in Ampere
Bf=100; % Parametro BetaF
Br=1; % Parametro BetaR
Vce_i=0; % Vce iniziale in Volt
Vce_f=1.05; % Vce finale in Volt
Vce_p=1000; % Passi di Vce
Ib_i=0; % Ib iniziale in Ampere
Ib_f=2.5; % Ib finale in Ampere
Ib_p=10; % Passi di Ib

Vce=linspace(Vce_i,Vce_f,Vce_p); % Tensione Vce in Volt
Ib=linspace(Ib_i,Ib_f,Ib_p); % Corrente Ib in Ampere
Ic=ones(Vce_p,Ib_p);
for i=1:Ib_p
Ic(:,i)=(Bf*Br*Ib(i)+Br*Is+Bf*Is)./(exp(Vce/Vt)*Br+Bf).*(-Br-1+exp(Vce/Vt));
end

plot(Vce,Ic);
xlabel V_{CE};
ylabel I_C;

Ancora (sotto?) analisi…

Wednesday, December 10th, 2008

Ancora una volta, vado a lezione per studiare la buona vecchia analisi (che non è troppo vecchia e nemmeno troppo buona, se è per quello). Però stavolta proverò a trascrivere i miei appunti in LaTeX durante le lezioni (unico modo per autocostringermi a studiare nei periodi di lezione, e per capirci qualcosa di questa materia è fondamentale!). Quindi proverò anche a pubblicarli nelle versioni preliminari, giusto nel caso possano tornare utili. Per facilitare la lettura, ho aggiunto un indice (o meglio ho istruito LaTex a farlo per me). Buono studio, e mi raccomando segnalate eventuali errori.

Ho finalmente completato gli appunti… ora non resta che studiarli (sigh!)

Analisi Matematica L-C: definizioni, teoremi e dimostrazioni v1.1 (aggiornato il 10/12/2008)

Tanto per gradire, aggiungo un succulento formulario di Analisi Matematica… spero di aver corretto tutti gli errori, ce n’erano parecchi.

Analisi Matematica L-C: formulario di Analisi v0.2 (aggiornato il 13/11/2008)

Celestia: là dove nessuno è mai giunto prima

Saturday, June 21st, 2008

Via Lattea

Per riposarsi un po’ nei periodi più stressanti, particolarmente quelli degli esami, un buon libro può aiutare e io in questi giorni mi sto rileggendo diversi libri di uno dei miei autori preferiti, l’inimitabile Isaac Asimov: proprio lui, il genio della fantascienza (devo ammettere che fra l’altro è molto ben coordinato con l’esame di Fisica L-B sull’elettromagnetismo :D ) con il suo meraviglioso Ciclo delle Fondazioni. Se anche a voi piace la fantascienza, e di conseguenza siete almeno minimamente interessati all’astronomia, non potrà non piacervi il programma di cui ho pensato di parlare… (more…)

Firefox Download Day: missione compiuta

Wednesday, June 18th, 2008

Firefox Download Day 2008Firefox Download Day 2008

Alpha testing!

Saturday, April 1st, 2006

E’ più di una settimana che non posto (a causa di gita scolastica e successivi impegni), ma oggi ho deciso di fare un post breve breve perchè sono diventato alpha tester della prossima versione di Ubuntu; ovvero provo a usare una versione ancora in sviluppo dell’OS e contribuisco a correggere gli errori (più che altro segnalandoli nel modo più preciso possibile). Al contrario di quanto normalmente avviene con i software proprietari, nel software libero TUTTI possono contribuire alle operazioni di correzione dei bug; e questo, naturalmente, è un grosso vantaggio.

La grande efficienza di questo metodo nella risoluzione dei bug è evidente appena si nota la fantastica stabilità di questa versione ancora molto preliminare: quando, fra un paio di mesi, uscirà la versione definitiva, sarà probabilmente uno dei sistemi più stabili e sicuri mai creati (almeno, questa è la mia opinione).

Speriamo che Microsoft impari la lezione e si avvicini un po’ all’open source, in modo da permettere la correzione tempestiva di tutti i bug. Segnali buoni ci sono per quanto riguarda Internet Explorer 7: pare che ogni utente potrà denunciarne i bug a Microsoft… speriamo bene!

Free Software – 3° puntata

Monday, March 20th, 2006

Benché distrutto da un raffreddore fulminante, mi accingo a completare la serie di post introduttivi sul Free Software – assolutamente fondamentale per capire tutto ciò di cui parlerò dopo!

Prima, però, è necessario fare un pochino di glossario perchè questa è di sicuro la parte più complessa della nostra storia. Bisogna che abbiamo ben chiari tre concetti: quello di shell, quello di kernel e quello di compilatore.

Cominciamo dal compilatore, il concetto più complesso per i “profani” dell’informatica. Si tratta di un programma che trasforma un testo scritto in un certo linguaggio di programmazione in codice macchina eseguibile dal computer. In pratica, trasforma una serie di istruzioni in un linguaggio comprensibile dall’uomo del tipo “se questo è vero, fai quello” in una serie di zero e uno (0101000110111010110…) che il computer capisce ed esegue.

Il kernel (letteralmente “nocciolo”) è invece il programma fondamentale del sistema operativo: dà l’avvio a tutti gli altri programmi, li controlla, li chiude se necessario, spesso contiene il codice driver di base necessario per fare funzionare le periferiche come la tastiera o lo schermo.

Infine, la shell (letteralmente “conchiglia”) è il programma che riceve tramite tastiera comandi dall’utente, poi passa il controllo al programma richiamato, e quando il programma è finito riprende il controllo e stampa il risultato (output). La shell che è più facile vedere è quella detta “Prompt di MS-DOS” o “Prompt dei Comandi” in Windows (tecnicamente, la shell sarebbe l’intero ambiente mentre il prompt è la scritta che appare chiedendo di inserire un comando, ad esempio C:\>).

Torniamo a noi: eravamo arrivati alla fondazione del progetto GNU per creare un sistema operativo libero. In pochi anni, questo progetto cresce e crea una serie di programmi importantissimi e diffusissimi, tra cui una suite di compilatori per diversi linguaggi di programmazione (C,C++,Fortran…) di nome GCC (GNU Compiler Compilation), che funziona particolarmente bene su di una shell di nome bash (Bourne Again Shell), nota per essere una delle più potenti e complete. I programmi creati dal progetto GNU formano, nel ‘90 – ‘91, un sistema operativo completo e moderno – ma senza kernel. Infatti, i lavori di creazione del kernel procedono mooolto a rilento e ci si deve quindi accontentare di testare i programmi GNU su sistemi commerciali come il vero Unix.

Contemporaneamente, in quel di Helsinki (Finlandia), uno dei più importanti insegnanti universitari di Sistemi Operativi (tale professor Tanenbaum, cioè albero di Natale ;) ) crea, come esempio per i suoi studenti, un intero sistema operativo simile a Unix che chiama Minix. Uno degli studenti di Tanenbaum, un certo Linus Torvalds, crea per divertimento un kernel che replica Minix, in grado di far girare sia la shell bash che il compilatore GCC.

Nasce così il kernel Linux che, dopo le prime versioni senza licenza, viene pubblicato sotto licenza GNU/GPL e, nella sua crescita, si unisce sempre più stabilmente a GNU (di cui diventa il kernel semi-ufficiale). Stallman non è tanto contento (in effetti molti si riferiscono a Linux dimenticandosi del tutto di GNU), ma in generale comincia l’era più positiva per il Free Software.

In effetti l’unica seria minaccia al monopolio di Windows nel settore PC si viene a formare proprio negli stessi anni in cui Windows fagocita tutti gli altri ambienti PC, tra cui il suo “fratellino” OS/2 sviluppato da IBM (di cui prima o poi parlerò, perchè la sua è una gran bella storia). Naturalmente ci sono anche i Mac, ma non sono esattamente PC e sono troppo costosi, almeno negli anni ‘90, per fare una seria concorrenza a Microsoft.

Per completare la nostra breve (ma intensa) storia del Free Software, occorre ricordare che in questi stessi anni il movimento si spezza in due tronconi fondamentali: Free Software, il movimento idealistico che vuole tutto il software libero e non commerciale, e Open Source, che è molto simile nei fatti ma diverso nei principi (in quanto non richiede che il software non abbia fini commerciali, ma solo che il suo codice sia liberamente visibile e modificabile).

Free Software – 2° puntata

Sunday, March 19th, 2006

Puntata numero due, a brevissima distanza dalla numero uno, per continuare a parlare di Free Software.

L’altra volta ho descritto molto sinteticamente cos’è il Software Libero, oggi vorrei sottolineare un po’ da dove viene il Software Libero e qual è il suo scopo.

Il movimento del Software Libero è, quasi totalmente, figlio della cultura hacker degli anni ‘70 e ‘80. Ora, dimenticate tutto quello che vi hanno detto sugli hacker perchè la probabilità che sia falso è altissima.

L’hacker in senso stretto è semplicemente un appassionato di sicurezza informatica, ovvero della materia che studia come proteggere un computer da furti di dati, virus e faccende simili. L’hacker è di solito tanto appassionato di questa materia da cercare in tutti i modi che conosce “buchi” nei sistemi difensivi dei computer propri e altrui; se trova un “buco” (che in gergo tecnico si dice vulnerabilità) si inserisce nei computer degli altri, ne esamina il codice con l’unico scopo di studiarlo e, se è particolarmente buono, lo migliora. Per inciso, quelli che si introducono in sistemi altrui per rubare o per distruggere, non sono hacker. Di solito vengono chiamati cracker, ma hanno anche tutta una serie di nomignoli e distinzioni interne che vi risparmio.

Torniamo ai nostri hacker. L’abitudine di modificare software altrui li porta verso l’idea di sviluppare software che sia disponibile a tutti per essere modificato: così viene fondata la Free Software Foundation. Alla fine degli anni ‘80 ad uno degli hacker più importanti della FSF viene un’idea: creare una variante gratuita e libera del sistema allora più diffuso nei computer aziendale: Unix.

Quell’hacker si chiama Richard Stallman ed è un po’ il prototipo di ogni hacker: vestito male, un po’ barbone, e sicuramente un personaggio bizzarro nonchè un grande idealista. Il progetto che fonda si chiama GNU, che sta per GNU is Not Unix, che tenterà di sviluppare un intero sistema operativo libero completamente compatibile con Unix.

Per il terzo e ultimo post introduttivo sul Free Software, dovrete aspettare domani…

Free Software – 1° puntata

Saturday, March 18th, 2006

Ebbene, ho deciso di aprire un blog. Cioè, in realtà di usare uno spazio aperto quasi un anno fa e mai sfruttato fino ad ora. Di che parla il mio blog? Principalmente, della mia passione: l’informatica. Possibilmente usando il meno possibile quel gergo che rende così difficile far capire ad altri di cosa si sta parlando. Magari anche di altre cose, se ne avrò il tempo e la passione (spero di sì).

Sono appassionato di informatica più o meno in tutte le sue applicazioni (programmazione, sistemi operativi, sicurezza, web design, grafica, videogiochi ecc.) più o meno da sempre; ho “usato” la prima volta un computer all’età di 5 anni cercando di fare dei disegnini in un programma di disegno DOS. Oggi sono un appassionato e moderatamente esperto utilizzatore sia del “canonico” sistema operativo Windows, sia dell’”alternativo” GNU/Linux.

Ma ora basta parlare di me. Parliamo di un argomento ben più importante, che sarà uno degli oggetti principali del mio blog: la filosofia del Free Software.

Cos’è il Free Software? La nostra conoscenza della lingua inglese, insieme alla considerazione che il software di solito si paga, ci porta automaticamente a tradurre Software Gratuito, invece di Software Libero. Si tratta di un grosso errore: moltissime case commerciali, acerrime nemiche del Free Software (Microsoft, tanto per fare un esempio ;) ), distribuiscono prodotti gratuiti. Sono Free Software, invece, i programmi che non hanno nessuno scopo commerciale e sono sottoposti a licenze particolari (la più famosa si chiama GNU/GPL e ne parlerò un’altra volta).

Il Software Libero può essere liberamente distribuito e modificato: si può anche venderlo, ma si deve sempre fare in modo che il suo codice sia pubblicamente modificabile anche da chi non lo ha comprato. Questo concetto può essere esteso a un sacco di altre cose; ad esempio, se non sbaglio di grosso, questo e gli altri blog di splinder sono scritti sotto licenza Creative Commons, che è più o meno la GNU/GPL dei documenti, libri ecc.

Per spiegazioni più approfondite, vi rimando ai prossimi post, nonchè al sito della Free Software Foundation e del progetto GNU.