Tutto è iniziato a metà degli anni '80 con una Apple ][c che i miei genitori hanno acquistato per la nostra famiglia. Anche se mi piaceva giocare, sono subito rimasto affascinato dalla programmazione BASIC e da quanto potesse essere utile per lavoro e divertimento. Era un'epoca in cui i computer erano visti come poco più che macchine da scrivere, quindi le persone con "competenze informatiche avanzate" potevano facilmente usarli a proprio vantaggio.
Un esempio è stato l'utilizzo di BASIC e una stampante a matrice di punti per generare automaticamente le assegnazioni di punizione. Quando mi è stato assegnato di scrivere 200 volte alcune dichiarazioni di scusa, ho chiesto al mio insegnante se poteva essere dattiloscritto. Alla conferma, ho scritto un programma BASIC a 5 righe per generarlo per me. Un altro esempio di sottile inganno è stato l'utilizzo di elaboratori di testi non WYSIWYG, come AppleWorks per la micro-manipolazione di caratteri, interlinea e margini per "allungare" le tesine fino alla lunghezza richiesta.
La mia ossessione per i computer ha portato rapidamente a un Apple ][gs con una scheda RAM e una scheda coprocessore per PC x86. I modem e i BBS si stavano surriscaldando e avere un sistema dual-hardware come questo mi dava ogni sorta di opzioni per il software. Tuttavia, la velocità del modem di 2400 bps mette un vero freno all'ottenere qualcosa in più di pochi KB di download divertenti al giorno. Per un po' di tempo sono rimasto fedele alla Apple come hobby, ma presto sarebbe cambiato.
Avventurarsi in Unix
Il mio corso di laurea era BS in Computer Information Systems (CIS) e la mia laurea era MS in Computer Science. Il mio programma di istruzione universitaria mi ha inserito principalmente nei PC e un po' nei mainframe in multiproprietà. Il vero divertimento è iniziato nei miei programmi di laurea, in cui l'accesso dial-in a macchine Unix con connessioni Internet ha aperto un nuovo mondo di esplorazione. Anche se usavo ancora il mio doppio processore ][gs per lavorare con il modem e scrivere e stampare documenti, i sistemi Unix hanno davvero catturato la mia attenzione con i loro giochi basati su Telnet ad accesso generale, archivi FTP, e-mail online e programmazione C. Gopher era popolare e cresceva tra persone come me che erano legate a semplici interfacce di terminale.
Il mio corso di laurea ha preso una svolta fatale in meglio quando sono stato assegnato al dipartimento di informatica accademica, incaricato di gestire i servizi informatici per la scuola. Gli studenti hanno avuto accesso a sistemi basati su Ultrix con terminali X Window. La maggior parte erano in scala di grigi, poiché l'elaborazione del colore era quindi un'attività intensiva per la CPU e influiva davvero sulle prestazioni del sistema. I pochi sistemi di colore erano belli, ma quelle macchine si trascinavano.
Questo è stato un momento davvero divertente per me, poiché mi è stato concesso l'accesso come root ai sistemi e mi è stato assegnato la manutenzione del sistema e della rete. Ho avuto degli ottimi mentori e questo ha fortemente influenzato la mia decisione di dedicarmi all'amministrazione del sistema piuttosto che alla programmazione (anche se ancora oggi mi piace molto programmare).
Da Unix a Linux
La scarsità è la madre dell'invenzione e noi studenti spesso siamo diventati creativi quando abbiamo dovuto condividere le scarse risorse dei sistemi informatici della scuola. Avevamo da tre a cinque volte più studenti rispetto alle workstation Ultrix, quindi trovare risorse (soprattutto al momento della consegna del progetto) era spesso una sfida. C'era una banca di 56.000 modem PPP disponibili per l'accesso remoto al sistema quando non erano necessari display grafici. Tuttavia, la ricerca di una macchina con risorse di riserva e la condivisione del sistema per la compilazione dei sorgenti spesso comportavano lentezza nei progressi. Come la maggior parte, ho scoperto che lavorare di notte spesso aiutava, ma avevo bisogno di qualcos'altro che mi permettesse di ripetere più rapidamente.
Quindi uno degli amministratori di sistema della scuola mi ha suggerito di provare un sistema Unix che era disponibile gratuitamente. Questo era Linux, reso disponibile come immagini floppy da 3,5". Data la velocissima linea T1 della nostra scuola, è stato facile per me cercare newsgroup e altre fonti per imparare a scaricarlo. Era tutto basato su PC Intel a 32 bit, un classe di attrezzatura che non possedevo.
Fortunatamente, il mio lavoro a scuola mi ha permesso di accedere a pile di spazzatura di vecchi computer, quindi le ruote hanno iniziato a girare.
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Ho trovato abbastanza PC scartati per costruire un solido PC 80386 con una RAM decente (sono sicuro che ben meno di 1 GB), un display grafico funzionante, una scheda Ethernet (coassiale) a rete sottile e un disco rigido. Le immagini che avevo erano del kernel Linux 0.98 e non ricordo che facesse parte di una distribuzione ufficiale (potrebbe essere SLS). Quello che ricordo è che è arrivato su una serie di immagini floppy:la prima ha avviato il kernel e un programma di installazione minimo, poi ha formattato l'unità, e quindi ha chiesto a ciascuna immagine floppy successiva di installare le utilità GNU principali. Dopo che il core è stato installato e il sistema avviabile, dovresti scaricare e installare altre immagini del pacchetto, come compilatori e simili.
Questo è stato un serio vantaggio per me nella mia carriera accademica. Senza il display del server X Window in esecuzione, questo PC ha notevolmente superato le workstation Ultrix a cui avevo accesso a scuola. Mi è stato permesso di connettere questa macchina alla rete accademica, montare le condivisioni NFS (Network File System) degli studenti della scuola e accedere direttamente a Internet. Poiché il mio programma di laurea utilizzava GCC (e talvolta Perl 4) per la maggior parte del lavoro degli studenti, potevo svolgere il mio lavoro di sviluppo a livello locale. Questo mi ha dato l'accesso esclusivo a una risorsa chiave che mi ha permesso di ripetere più rapidamente i miei progetti.
Non tutto però era perfetto. L'hardware era un po' instabile (probabilmente il motivo per cui è stato scartato), ma potevo affrontarlo. Ciò che mi ha davvero colpito è stato quanto Linux e Ultrix differissero a livello di sistema operativo e libreria di sistema. Ho iniziato ad apprezzare cosa significasse portare il software su altre piattaforme; Ero libero di sviluppare dove volevo, ma dovevo consegnare i miei progetti come binari compilati Ultrix. Il codice C che funzionava perfettamente su una piattaforma andrebbe in crash sull'altra. Questo è stato molto frustrante, ma probabilmente il mio risveglio più brusco è stato la gestione del dereferenziamento del puntatore nullo da parte di Linux. Linux sembrava felice di ignorarli come un no-op virtuale, ma Ultrix ha prontamente scaricato il core su SIGSEGV. Questa è stata una cosa abbastanza da scoprire quando il mio primo porting sulla piattaforma di destinazione è avvenuto pochi giorni prima della scadenza del mio progetto! Ciò ha anche reso la mia esplorazione del C++ piuttosto impegnativa, poiché il mio uso incauto di malloc()/free() insieme all'elaborazione automatica del costruttore e del distruttore ha infuso i miei progetti con bombe puntatore nulle dappertutto.
Verso la fine del mio corso di laurea, sono passato a una vera e propria workstation:un Intel 486DX2 66MHz con dischi rigidi SCSI, un'unità CD-ROM, un monitor RGB 1024x768 e una scheda seriale UART 16550 perfettamente abbinata ai miei nuovi Stati Uniti Robotica V.Everything modem. Potrebbe eseguire il dual-boot di Windows e Linux, ma soprattutto, la scheda grafica e il processore consentivano un ambiente di sviluppo molto più piacevole (e più veloce). Il vecchio 386 era ancora in servizio a scuola, ma la maggior parte del mio lavoro pesante e dell'hacking ora avveniva a casa.
Simile alla storia di Mike Harris su Linux negli anni '90, sono davvero entrato in quei pacchetti di CD che erano popolari all'epoca. C'era un nuovo negozio di computer Micro Center vicino a dove vivevo, ed era una miniera d'oro di parti di PC per hobby, libri tecnici fenomenali e ogni possibile archivio di CD Linux (e Unix gratuito). Ricordo che Yggdrasil e Slackware erano alcune delle mie distribuzioni preferite. Ciò che è stato davvero incredibile è stata l'enorme dimensione dello spazio di archiviazione CD:650 MB! Questa era una risorsa essenziale per ottenere l'accesso al software. Sì, potresti scaricare i bit a 56k, ma era piuttosto limitante. Per non parlare del fatto che la maggior parte delle persone non poteva permettersi di archiviare così tanti dati inattivi per un'analisi successiva.
E fino ad oggi
Questo è ciò che ha dato il via ai miei oltre 25 anni di amministrazione di sistema e divertimento di software open source. Linux è stata una parte importante sia della mia carriera che del mio sviluppo personale. Al giorno d'oggi, sono ancora molto appassionato di Linux (principalmente CentOS, RedHat e Ubuntu), ma spesso mi diverto con artisti del calibro di FreeBSD e altre fantastiche offerte open source.
Le mie incursioni in Linux mi hanno portato a Opensource.com, dove spero di restituire un po' e aiutare a dare il via a nuove generazioni di divertimento pratico con il computer.