Bugfixes: 25 anni per sistemare un bug!

Alla base del cuore di Mac OS X c’è Darwin, un sistema operativo nato dalla fusione del kernel Mach con FreeBSD.
FreeBSD è un sistema operativo opensource di derivazione Unix, portato avanti dall’università di Berkley.

Alla base di moltissimi sistemi operativi moderni ci sono delle derivazioni di BSD, oltre al nostro Mac OS X.


Dalla sua nascita, però, il sistema ha sofferto di un bug, recentemente corretto da un programmatore svizzero, Marc Balmer.
La stranezza? Il bug è presente dalla versione 4.2BSD, nata nel 1983. Siamo nel 2008, e sono passati 25 anni da allora.

Il bug è presente nella gestione di alcune funzioni, telldir(), seekdir() and readdir(), di cui in particolare a soffrirne è seekdir(): una volta invocata, non restituisce la corretta posizione della cartella.

Ad essersi accorti per primi di questo bug sono stati gli sviluppatori del progetto Samba. Infatti nel creare la metodologia di connessione con le reti Microsoft da parte dei sistemi Unix, si sono resi conto di come quelle funzioni restituissero degli errori.
Però, invece che correggere o segnalare agli sviluppatori dei sistemi di derivazione BSD l’errore, hanno preferito scriversi le proprie routine che aggirassero il problema, lasciando il bug insoluto a permanere nei sistemi che si basano su questa distribuzione Unix.

Marc Balmer nel suo blog afferma di essere sicuro che molti altri programmatori abbiano incontrato il bug ed abbiano preferito lasciarlo dove stava senza andare a correggerlo.

La cosa strana è che Balmer abbia trovato il bug assolutamente semplice da sistemare, chiedendosi quindi per quale motivo non l’avesse fatto nessuno prima di lui, addirittura chi aveva incontrato problemi per quell’errore di programmazione ha preferito aggirarlo piuttosto che correggerlo.

Questa situazione fa comunque pensare: quanti altri bug insignificanti sono contenuti nei sistemi operativi che usiamo ogni giorno e da quanto sono presenti senza che l’utente finale se ne accorga mai?

Ma sopratutto: anche Mac OS X ne è affetto? In fondo Darwin non è una semplice distribuzione di BSD, ma è un sistema prodotto dall’unione del sistema operativo NeXT con FreeBSD, quindi potrebbe essere che le porzioni di codice errato non siano state incluse nel nostro sistema (oppure che siano state modificate come per Samba, rendendo nullo l’errore).
Infatti un commentatore del blog di Balmer ha creato un file con cui testare il problema, che se eseguito su Mac OS X restituisce un errore simile ma non identico.

Balmer ha segnalato il bug con relativa soluzione ai vari sviluppatori di sistemi derivati da FreeBSD, ora c’è da vedere se e quando Apple correggerà l’errore in Darwin.


[Via]

Emanuele L. Cavassa

View Comments

  • Ma poveri picci, gli altri programmatori avevano voluto tenersi un souvenir dal passato, Balmer non l'aveva mica capito.. :-P

Recent Posts

iPhone 15 Pro Max in sconto su eBay per la variante da 256GB

I dati di vendita dell’ultimo trimestre di Apple hanno evidenziato una certezza, i modelli di…

22 ore ago

iPhone 13 ricondizionato in sconto super su Amazon, l’offerta imperdibile

Su Amazon c’è un’offerta davvero imperdibile che riguarda l’iPhone 13 ricondizionato azzurro da 128GB di…

2 giorni ago

Vendite iPhone 15 inferiori all’iPhone 14, calo per Apple

La nuova famiglia di iPhone 15 non sembra avere entusiasmato più di tanto gli appassionati…

2 giorni ago

Nuovi iPad con processore M4, evento fissato per il 7 maggio

In programma per il 7 maggio c’è un evento Apple, denominato Let Loose, che riguarderà…

5 giorni ago

iPhone 13 nero da 128GB in super offerta su eBay

Avere tra le mani un iPhone ad un prezzo più ragionevole è possibile, ma ovviamente…

1 settimana ago

iPhone 16, addio totale ai tasti fisici?

Si parla da un po’ di tempo della possibilità che l’iPhone 16 possa arrivare senza…

2 settimane ago