martedì 17 dicembre 2013

Delirii e BSD - Terzo Episodio

Riepilogo delle puntate precedenti: il nostro eroe è ancora impegnato nell'arduo compito di trasformare una workstation SUN Ultra 1 in un gateway internet con DHCP e DNS aggiornato dinamicamente dal DHCP stesso. Letta la documentazione il nostro ha convertito il suo laptop personale in un server RARP con TFTP in grado di fornire le immagini del kernel di OpenBSD e del ramdisk di installazione...

Terzo Episodio: L'installazione.

La porta seriale RS-232 è una reliquia del passato, una testimone di un'epoca in cui dominavano le telescriventi: grosse, lente e rumorose queste macchine sono state per anni l'unica interfaccia uomo-macchina che fosse considerata amichevole. Non stupisce se si tiene in conto che l'alternativa erano le schede perforate.

Molte delle idiosincrasie legate a quelle macchine hanno avuto un'influenza diretta sullo sviluppo del linguaggio C e della shell UNIX: quando dovete passare 8 ore al giorno a battere tasti su una macchina la cui tastiera è appena un pelo meno dura di un blocco di granito apprezzate molto ogni singola battuta che potete risparmiare. Per questa ragione il C non usa BEGIN e END per delimitare i blocchi di istruzioni ma fa uso delle parentesi graffe { e }. Sempre per la stessa ragione nella shell UNIX "list" diventa "ls", "copy" diventa "cp", "remove" diventa "rm" e "move" diventa "mv".

Per ragioni simili il primo editor di testi ("ed") operava su una riga di testo alla volta e costringeva l'utente a passare di modalità tra movimento, inserimento e comando. Le telescriventi stampavano il testo su carta e se avessero stampato tutto il testo ogni volta che veniva operata una modifica lo spreco di carta sarebbe stato immenso.

Lo standard RS-232 nasce in quegli anni, gli anni '60, proprio sulle telescriventi assieme ad un altro standard che segnerà il mondo dell'informatica nei decenni a venire: l'American Standard Code for Information Interchange (ASCII). Se osservate i primi 32 caratteri ASCII noterete infatti che non sono caratteri stampabili ma che si tratta di comandi che le telescriventi inviavano, ad esempio per informare il calcolatore che la carta era finita (carattere 25: EM - End of Medium), oppure che ricevevano da parte del calcolatore (ad esempio il carattere 7 - BEL - faceva suonare la campanella della telescrivente).

Un bel giorno qualcuno decise che i tempi erano maturi per sostituire la carta con un tubo a raggi catodici, simile a quelli usati per le televisioni. Da quel momento in poi la maggiorparte degli informatici fu costretta ad usare abbondante collirio ed a portare gli occhiali...

Trent'anni dopo l'epoca delle telescriventi l'ASCII era stato esteso con una serie di codifiche mutualmente incompatibili che fornivano i caratteri accentati, i caratteri con le dieresi (o umlaut), i caratteri greci e quant'altro e la porta seriale RS-232 era passata da un connettore a 25 piedini ad uno a 9 piedini subendo alcune semplificazioni dal lato hardware e alcune complicazioni dal lato software. Non collegava più telescriventi o terminali al computer ma serviva per collegare il computer ad altri computer: sia direttamente che indirettamente tramite la linea telefonica ed un MODEM. Si era negli anni '90: gli anni dei Power Rangers e della nascita del World Wide Web.

Ed è in quegli anni che la nostra Ultra 1 fece il suo debutto sul mercato. Con il suo processore RISC a 64 bit, il suo disco rigido da 300 megabyte e una dotazione di RAM pari a ben 64 megabyte faceva tremare i 486 dell'epoca ed impensieriva i primi Pentium. Costava anche 10 volte tanto un PC IBM compatibile con DOS 6.22 e Windows 3.11, ma era pensata per il CAD in tre dimensioni ed il calcolo scientifico: chi ne aveva bisogno per lavoro solitamente si poteva permettere una simile spesa.

I più folli ne compravano addirittura una ventina, le mettevano in rete grazie alla scheda ethernet a 100 megabit integrata e sfruttavano NIS e NFS (sviluppati per prima da SUN per Solaris) per condividere dati e credenziali di accesso degli utenti.

Ma tutto questo appartiene alla gloria passata: Microsoft tirò fuori dal cilindro Windows 95 e fece una campagna di marketing martellante come non si era mai vista. Pochi sapevano cosa fosse realmente Windows 95, ma TUTTI sapevano che esisteva. Il resto, come si dice, è storia.

Una delle ragioni che ha convinto il nostro eroe ad utilizzare OpenBSD su questa Ultra 1 (oltre al fatto che è supportata ufficialmente) è l'installer del Sistema Operativo interamente testuale strutturato in una serie predefinita di domande che, per l'architettura sparc, vengono replicate anche sulla console seriale. Non c'è bisogno di uno schermo per installare OpenBSD: basta un terminale seriale per portare a termine l'installazione. Cosa che torna molto comoda al nostro che si vede sprovvisto di uno dei rarissimi monitor con collegamento compatibile SUN.

Un'installazione non grafica effettuata mediante console seriale potrà far storcere il naso a molti di voi. Con la notevole eccezione di qualche fanatico che utilizza distribuzioni oltremodo oscure e con un concetto di user friendliness particolarmente restrittivo in merito a chi sono gli utenti degni di questo nome. A costoro dico solo una cosa: se passate a Trieste fatemi un fischio e berrò volentieri una birra assieme a voi.

Se non siete ancora fuggiti urlando in preda al delirio procederò a spiegarvi perché una simile scelta si rivela essere una scelta vincente: un'installazione testuale che non faccia uso delle librerie ncurses è più leggera e può essere effettuata anche meccanicamente mediante l'uso di script e di un link seriale, oppure da remoto tramite ssh. L'installazione di Ubuntu richiede che l'utente inserisca il disco nel lettore e sia fisicamente presente davanti alla macchina con una tastiera e un mouse funzionanti (il mouse è opzionale, ma è molto comodo). Ci sono casi in cui questo non è possibile ed un esempio lampante è questa scheda della Alix: http://pcengines.ch/alix2d3.htm

Ha una CPU AMD Geode LX800 compatibile x86, 256 megabyte di RAM, uno slot per Compact Flash che viene visto come un disco IDE, due prese USB e fin qui non c'è nulla che le impedisca di far girare Ubuntu Linux... Ma non ha la scheda video! Ha solamente una console seriale e Ubuntu richiede una scheda video per poter essere installato.

Lo ammetto: è un caso molto particolare. Ma potreste voler provare a sperimentare con una di queste schede: magari crearvi un router o un Access Point WiFi su misura o un sistema per il controllo di macchinari industriali. Sono tutte situazioni in cui avreste a che fare con macchine limitate che, pur montando una CPU x86, non hanno una scheda video.

La scelta operata dagli sviluppatori di OpenBSD è ben precisa: che tu stia operando su di un server privato virtuale, sul tuo laptop o una scheda della Alix l'installazione di OpenBSD sarà sempre uguale. E fidatevi quando vi dico che è un gran bel vantaggio sfruttare i meccanismi che il nostro cervello attua quando abbiamo formato un'abitudine. Si lavora molto efficientemente e in maniera del tutto automatica.

Non vi dirò come si procede all'installazione di OpenBSD. In primo luogo perché la rete è piena di tutorial e howto, a cominciare dal sito ufficiale del progetto OpenBSD. In secondo luogo perché credo che se avete letto fin qui non siete tanto interessati a come si faccia a fare certe cose quanto piuttosto a capire le ragioni che hanno portato gli sviluppatori di OpenBSD a compiere determinate scelte. Oppure siete morbosamente attratti dai miei tremendi aneddoti su un'epoca oscura in cui gli uomini erano Uomini e le donne erano Uomini... In tal caso vi consiglio di iscrivervi ad Ingegneria Elettronica, Ingegneria Informatica o Ingegneria delle Telecomunicazioni.

Alla prossima con la Configurazione di pf!