< Enrera

14  Xoc de sistema operatiu



Els joves nord-americans que deixen el seu gran i poderós país homogeni i visiten alguna altra part del món sovint passen per diferents etapes de xoc cultural: d'entrada els corprèn un astorament que els deixa bocabadats. Després experimenten un intent de familiaritzar-se amb els costums, la cuina, el transport públic i els lavabos del país que culmina en un breu període en què tenen la fàtua confiança que ja són experts instantanis sobre el nou país. A mesura que la visita s'allarga, l'enyorança es comença a instal·lar i el viatger comença a adonar-se, per primera vegada, que al seu país d'origen moltes coses les donava per fetes. Alhora es comença a fer evident que moltes de les cultures i tradicions pròpies són essencialment arbitràries i que podrien haver estat diferents, com per exemple el fet de conduir per la dreta. Quan el viatger torna a casa i fa inventari de l'experiència, és possible que hagi après molt més sobre els EUA que sobre el país visitat.

 

És per aquests motius que val la pena provar el Linux. Certament és un país estrany, però no cal quedar-s'hi a viure: una breu estada és suficient per a fer-se una idea del lloc i, més important encara, per posar al descobert tot el que es dóna per fet (i tot el que es podria haver fet d'una altra manera) al Windows o al MacOS.

 

No es pot provar el sistema si no s'instal·la. La instal·lació dels altres sistemes operatius és una transacció senzilla: a canvi de diners, alguna empresa et dóna un CD-ROM i ja estàs a punt de marxa. Però en aquest tipus de transacció se sobreentenen moltes coses que s'han d'analitzar detalladament.

 

Als EUA ens agraden els tractes clars i les transaccions senzilles. Si aneu a Egipte i, per exemple, agafeu un taxi, passeu a formar part de la vida del taxista, que es negarà a acceptar els vostres diners perquè seria com menysprear la vostra amistat, us seguirà per la ciutat i li saltaran les llàgrimes quan pugeu a un altre taxi. En algun moment acabareu coneixent els seus fills i necessitareu molta mà esquerra per trobar la manera de compensar-lo sense ofendre el seu honor. És esgotador. A vegades trobes a faltar poder agafar un taxi a l'estil de Manhattan i prou.

 

Però perquè existeixi un sistema a l'estil americà, que permet sortir al carrer, cridar un taxi i posar-se en marxa, hi ha d'haver tot un engranatge ocult de llicències, inspectors, comissions, etcètera (cosa que és acceptable si els taxis són barats i estan sempre disponibles). Quan el sistema falla per alguna banda resulta opac i exasperant, i fa que persones altrament raonables es converteixin en teòrics de la conspiració. Però quan el sistema egipci falla, ho fa d'una manera transparent. Us quedareu sense taxi, però apareixerà el nebot del conductor, a peu, us donarà explicacions i us demanarà disculpes.

 

Microsoft i Apple fan les coses a l'estil de Manhattan, amagant una gran complexitat darrere el mur de la interfície. El Linux fa les coses a l'estil egipci, escampant una gran complexitat per tot el territori. Si acabes d'aterrar provinent de Manhattan, la teva primera reacció serà endur-te les mans al cap i exclamar "Ja n'hi ha prou! Que us heu begut l'enteniment!?" Però així no és com es fan amics al país del Linux, com tampoc no se'n fan a Egipte.

 

En teoria es podria reconstruir el Linux del no-res, com aquell qui diu, descarregant els fitxers correctes i col·locant-los al lloc adequat, però probablement no hi ha més d'uns pocs centenars de persones al món que puguin crear un sistema Linux funcional d'aquesta manera. El que realment cal és una distribució del Linux, que vol dir un paquet preparat de fitxers. Però les distribucions són una cosa diferent del Linux per se.

 

El Linux per se no és un conjunt determinat d'uns i zeros, sinó una subcultura autoorganitzada de la Xarxa. El resultat final de les seves elucubracions col·lectives és un gran corpus de codi font, gairebé tot escrit en C (el llenguatge més utilitzat en programació). Codi font és el programa informàtic tal com l'ha escrit i editat el hacker de torn. Si està escrit en C, el nom del fitxer probablement tindrà .c o .cpp al final, depenent del dialecte que es faci servir: si està escrit en algun altre llenguatge, tindrà un altre sufix. Aquest tipus de fitxers s'acostumen a trobar en un directori anomenat /src, que és la críptica abreviatura que els hackers fan servir per a source (”˜font').

 

Els fitxers font són inútils per a l'ordinador i de poc interès per a la majoria d'usuaris, però tenen un enorme significat cultural i polític, ja que Microsoft i Apple els mantenen en secret mentre que el Linux els fa públics. Són la joia de la corona. Són allò que a les pel·lícules de Hollywood s'utilitza com a recurs per a mantenir el suspens: el nucli de la bomba de plutoni, els plànols confidencials, la maleta de bons al portador, el rodet de microfilm. Si els fitxers font del Windows i el MacOS es publiquessin a la Xarxa, aquests sistemes operatius es convertirien en gratuïts, com el Linux, encara que no anirien tan bé, perquè no hi hauria ningú per a corregir problemes i respondre a preguntes. El Linux es programari de codi obert, la qual cosa vol dir que tothom pot fer còpies dels fitxers de codi font.

 

L'ordinador no necessita pas el codi font més que el mateix usuari: el que vol és codi objecte. Els fitxers de codi objecte solen tenir el sufix .o i són illegibles per a tothom, tret d'alguns humans ben estranys, ja que consten d'uns i zeros. En conseqüència, aquest tipus de fitxers s'acostumen a trobar en un directori anomenat /bin, que vol dir binari.

 

Els fitxers font són simples fitxers de text ASCII. ASCII designa una manera determinada de codificar les lletres en patrons de bits. Als fitxers ASCII, cada caràcter té vuit bits per a ell sol. Això crea un “alfabet” potencial de 256 caràcters diferents, ja que vuit dígits binaris poden formar tots aquests patrons diferenciats. A la pràctica, però, tendim a limitar-nos a les lletres i als dígits coneguts. Els patrons de bits utilitzats per a representar aquestes lletres i dígits són els mateixos que físicament perforava el teletip del meu institut a la cinta de paper, els quals al seu torn eren els mateixos que feia servir la indústria telegràfica durant les dècades anteriors. En altres paraules, els fitxers de text ASCII són telegrames i, com a tals, no porten floritures tipogràfiques. Però per aquest mateix motiu són eterns, perquè el codi no canvia mai, i universals, perquè qualsevol programa d'edició i processament de text els reconeix.

 

Per tant gairebé tots els programes permeten crear, editar i llegir fitxers de codi font. Aleshores els fitxers de codi objecte es creen a partir d'aquests fitxers font mitjançant un programa anomenat compilador, i posteriorment es converteixen en una aplicació executable amb un altre programa anomenat enllaçador.

 

La tríada d'editor, compilador i enllaçador junts formen el nucli d'un sistema de desenvolupament de programari. Ara bé, un es pot gastar molts diners en sistemes de desenvolupament empaquetats i comercialitzats amb vistoses interfícies gràfiques i diverses millores ergonòmiques. En alguns casos fins i tot pot ser una manera bona i raonable de gastar diners. Però en aquesta banda del carrer, per entendre'ns, el millor programari acostuma a ser el gratuït. L'editor, el compilador i l'enllaçador són per als hackers el mateix que els cavalls, els estreps i els arcs i fletxes eren per als nòmades mongols. Els programadors viuen a la sella del cavall i desentranyen les seves pròpies eines mentre les fan servir per a crear noves aplicacions. És força inconcebible que els informàtics de productes haguessin pogut crear a partir d'un full de paper en blanc aquestes eines de programació hacker superiors. Encara que fossin els millors informàtics del món, el que passa senzillament és que estan en franca minoria.

 

Al món del GNU/Linux hi ha dos grans programes d'edició de text: el minimalista vi (conegut en algunes implementacions com a elvis) i el maximalista emacs. Jo faig servir l'emacs, que es podria definir com un processador de textos termonuclear. El va crear Richard Stallman, i amb això ja està tot dit. Està escrit en Lisp, que és l'únic llenguatge informàtic qualificable de bonic. El programa és gegantí, i en canvi només serveix per a editar fitxers de text ASCII, és a dir, que no pots escollir tipus de lletra, ni negreta ni subratllat. Dit d'una altra manera, les hores d'informàtic que en el cas del Microsoft Word es van dedicar a funcions com ara combinar correu i incorporar pel·lícules senceres en notes d'empresa, en el cas de l'emacs es van canalitzar amb insistència maníaca cap a la resolució de l'enganyosament simple problema d'editar text. Si ets un escriptor professional (és a dir, si a algú altre li paguen per preocupar-se del format i la impressió de les teves paraules) l'emacs eclipsa la resta de programes d'edició aproximadament de la mateixa manera que la llum del sol de migdia no deixa veure els estels. No només és més gran i brillant, sinó que senzillament fa desaparèixer la resta de coses. Per a disseny i impressió de text es pot fer servir el programa TeX: un gran corpus de convencions tipogràfiques escrit en C que també es pot baixar de franc d'Internet.

 

En podria parlar molt, de l'emacs i el TeX, però acte seguit intentaré explicar una història sobre com es pot instal·lar el Linux en un equip determinat. La via dura de supervivència seria baixar-se un editor com l'emacs i les eines del GNU (el compilador i l'enllaçador), que estan tan perfeccionades com l'emacs. Amb aquest equipament, es podrien començar a baixar fitxers ASCII de codi font (/src) i compilar-los en fitxers binaris de codi objecte (/bin) que es podrien executar a l'ordinador. Però per poder arribar a aquest punt (poder executar l'emacs, per exemple) el Linux ha d'estar ja instal·lat i funcionant a la màquina. I fins i tot un sistema operatiu Linux mínim requereix milers de fitxers binaris treballant alhora, correctament disposats i vinculats.

 

És per això que diferents entitats s'han dedicat a crear “distribucions” del Linux. Si se'm permet estirar lleugerament l'analogia d'Egipte, aquestes entitats són una mica com els guies turístics que et trobes a l'aeroport, que parlen el teu idioma i que t'orienten durant el xoc cultural inicial. És obvi que els egipcis ho veuen d'una altra manera: els guies turístics existeixen per evitar que els matussers forasters es passegin per les mesquites i facin a tothom una i altra vegada les mateixes preguntes.

 

Alguns d'aquests guies turístics són organitzacions comercials, com Red Hat Software, que fa una distribució del Linux anomenada Red Hat amb un aire relativament comercial. En la majoria de casos, poses un CD-ROM de Red Hat a l'ordinador, reinicies el sistema i la resta és automàtic. De la mateixa manera que els guies turístics egipcis esperen alguna mena de compensació pels seus serveis, les distribucions comercials s'han de pagar. En la majoria de casos no costen gairebé res i valen la pena.

 

Jo faig servir una distribució anomenada Debian (el nom és una contracció de Deborah i Ian), que no és comercial. Està organitzada (o potser hauria de dir “s'ha autoorganitzat”) seguint els mateixos principis que el Linux en general, que vol dir que és fruit de voluntaris que col·laboren a través de la Xarxa, cadascun d'ells responsable de supervisar una part diferent del sistema. Aquesta gent ha compartimentat el Linux en diferents paquets, que són fitxers comprimits que es poden descarregar en un sistema Linux Debian ja funcional per després obrir-los i desempaquetar-los amb una aplicació d'instal·lació gratuïta. És evident que, com a tal, la Debian no té departament comercial ni cap mecanisme de distribució. Tots els paquets de la Debian es poden baixar d'Internet, però a la majoria de gent li agrada tenir-los en CD-ROM. Diferents empreses s'han dedicat a encabir tots els paquets actuals de la distribució Debian en CD-ROMs i a vendre'ls. Jo els compro a Linux Systems Labs. El preu d'un joc de tres discos, amb la Debian tota sencera, és de menys de tres dòlars. Tanmateix (i és important destacar-ho), ni un cèntim d'aquests tres dòlars va a parar a cap dels programadors que van crear el Linux ni a les persones que han preparat els paquets de la distribució. Van a parar a Linux Systems Labs i són per a pagar no el programari o els paquets, sinó el cost de fer les còpies en CD-ROM.

 

Totes les distribucions del Linux inclouen algun truc més o menys hàbil per passar per alt el procés normal d'arrencada i fer que l'ordinador, quan s'engega, s'organitzi no com a PC que funciona amb el Windows, sinó com a “hoste” que executa l'Unix. Això resulta lleugerament alarmant la primera vegada que ho veus, però és totalment inofensiu. Quan s'arrenca un PC, la màquina fa una petita autocomprovació rutinària, un inventari dels discos i la memòria disponibles, i després cerca un disc des d'on arrencar. Als ordinadors Windows normals aquest disc és el disc dur. Però si el sistema està configurat adequadament, primer buscarà un disquet o un CD-ROM i, si en troba un, arrencarà des d'aquest disc.

 

El Linux aprofita aquesta escletxa en les defenses. L'ordinador reconeix un disc d'arrencada a la unitat de disquets o de CD-ROM, llegeix part del codi objecte d'aquest disc i comença a executar-lo cegament. Però resulta que no es tracta de codi de Microsoft ni d'Apple, sinó de Linux, i aleshores l'ordinador es comença a comportar d'una manera molt diferent d'allò a què està acostumat l'usuari. La pantalla es comença a omplir de missatges críptics. Si s'arrenqués un sistema operatiu comercial, en aquest moment apareixeria un dibuixet de "Benvingut al MacOS" o una pantalla plena de núvols en un cel blau i el logotip del Windows. Però en el Linux apareix un llarg telegrama imprès en austeres lletres blanques sobre una pantalla negra. No hi ha missatge de benvinguda. La majoria del telegrama té l'aire amenaçador semi-indesxifrable de les inscripcions dels grafitis.

 

Dec 14 15:04:15 theRev syslogd 1.3-3#17: restart.
Dec 14 15:04:15 theRev kernel: klogd 1.3-3, log source = /proc/kmsg started.
Dec 14 15:04:15 theRev kernel: Loaded 3535 symbols from /System.map.
Dec 14 15:04:15 theRev kernel: Symbols match kernel version 2.0.30.
Dec 14 15:04:15 theRev kernel: No module symbols loaded.
Dec 14 15:04:15 theRev kernel: Intel MultiProcessor Specification v1.4
Dec 14 15:04:15 theRev kernel: Virtual Wire compatibility mode.
Dec 14 15:04:15 theRev kernel: OEM ID: INTEL Product ID: 440FX APIC at: 0xFEE00000
Dec 14 15:04:15 theRev kernel: Processor #0 Pentium(tm) Pro APIC version 17
Dec 14 15:04:15 theRev kernel: Processor #1 Pentium(tm) Pro APIC version 17
Dec 14 15:04:15 theRev kernel: I/O APIC #2 Version 17 at 0xFEC00000.
Dec 14 15:04:15 theRev kernel: Processors: 2
Dec 14 15:04:15 theRev kernel: Console: 16 point font, 400 scans
Dec 14 15:04:15 theRev kernel: Console: colour VGA+ 80x25, 1 virtual console (max 63)
Dec 14 15:04:15 theRev kernel: pcibios_init : BIOS32 Service Directory structure at 0x000fdb70
Dec 14 15:04:15 theRev kernel: pcibios_init : BIOS32 Service Directory entry at 0xfdb80
Dec 14 15:04:15 theRev kernel: pcibios_init : PCI BIOS revision 2.10 entry at 0xfdba1
Dec 14 15:04:15 theRev kernel: Probing PCI hardware.
Dec 14 15:04:15 theRev kernel: Warning : Unknown PCI device (10b7:9001). Please read include/linux/pci.h
Dec 14 15:04:15 theRev kernel: Calibrating delay loop.. ok - 179.40 BogoMIPS
Dec 14 15:04:15 theRev kernel: Memory: 64268k/66556k available (700k kernel code, 384k reserved, 1204k data)
Dec 14 15:04:15 theRev kernel: Swansea University Computer Society NET3.035 for Linux 2.0
Dec 14 15:04:15 theRev kernel: NET3: Unix domain sockets 0.13 for Linux NET3.035.
Dec 14 15:04:15 theRev kernel: Swansea University Computer Society TCP/IP for NET3.034
Dec 14 15:04:15 theRev kernel: IP Protocols: ICMP, UDP, TCP
Dec 14 15:04:15 theRev kernel: Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
Dec 14 15:04:15 theRev kernel: Checking 'hlt' instruction... Ok.
Dec 14 15:04:15 theRev kernel: Linux version 2.0.30 (root@theRev) (gcc version 2.7.2.1) #15 Fri Mar 27 16:37:24 PST 1998
Dec 14 15:04:15 theRev kernel: Booting processor 1 stack 00002000: Calibrating delay loop.. ok - 179.40 BogoMIPS
Dec 14 15:04:15 theRev kernel: Total of 2 processors activated (358.81 BogoMIPS).
Dec 14 15:04:15 theRev kernel: Serial driver version 4.13 with no serial options enabled
Dec 14 15:04:15 theRev kernel: tty00 at 0x03f8 (irq = 4) is a 16550A
Dec 14 15:04:15 theRev kernel: tty01 at 0x02f8 (irq = 3) is a 16550A
Dec 14 15:04:15 theRev kernel: lp1 at 0x0378, (polling)
Dec 14 15:04:15 theRev kernel: PS/2 auxiliary pointing device detected -- driver installed.
Dec 14 15:04:15 theRev kernel: Real Time Clock Driver v1.07
Dec 14 15:04:15 theRev kernel: loop: registered device at major 7
Dec 14 15:04:15 theRev kernel: ide: i82371 PIIX (Triton) on PCI bus 0 function 57
Dec 14 15:04:15 theRev kernel: ide0: BM-DMA at 0xffa0-0xffa7
Dec 14 15:04:15 theRev kernel: ide1: BM-DMA at 0xffa8-0xffaf
Dec 14 15:04:15 theRev kernel: hda: Conner Peripherals 1275MB - CFS1275A, 1219MB w/64kB Cache, LBA, CHS=619/64/63
Dec 14 15:04:15 theRev kernel: hdb: Maxtor 84320A5, 4119MB w/256kB Cache, LBA, CHS=8928/15/63, DMA
Dec 14 15:04:15 theRev kernel: hdc: , ATAPI CDROM drive
Dec 15 11:58:06 theRev kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Dec 15 11:58:06 theRev kernel: ide1 at 0x170-0x177,0x376 on irq 15
Dec 15 11:58:06 theRev kernel: Floppy drive(s): fd0 is 1.44M
Dec 15 11:58:06 theRev kernel: Started kswapd v 1.4.2.2
Dec 15 11:58:06 theRev kernel: FDC 0 is a National Semiconductor PC87306
Dec 15 11:58:06 theRev kernel: md driver 0.35 MAX_MD_DEV=4, MAX_REAL=8
Dec 15 11:58:06 theRev kernel: PPP: version 2.2.0 (dynamic channel allocation)
Dec 15 11:58:06 theRev kernel: TCP compression code copyright 1989 Regents of the University of California
Dec 15 11:58:06 theRev kernel: PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
Dec 15 11:58:06 theRev kernel: PPP line discipline registered.
Dec 15 11:58:06 theRev kernel: SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256).
Dec 15 11:58:06 theRev kernel: eth0: 3Com 3c900 Boomerang 10Mbps/Combo at 0xef00, 00:60:08:a4:3c:db, IRQ 10
Dec 15 11:58:06 theRev kernel: 8K word-wide RAM 3:5 Rx:Tx split, 10base2 interface.
Dec 15 11:58:06 theRev kernel: Enabling bus-master transmits and whole-frame receives.
Dec 15 11:58:06 theRev kernel: 3c59x.c:v0.49 1/2/98 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html
Dec 15 11:58:06 theRev kernel: Partition check:
Dec 15 11:58:06 theRev kernel: hda: hda1 hda2 hda3
Dec 15 11:58:06 theRev kernel: hdb: hdb1 hdb2
Dec 15 11:58:06 theRev kernel: VFS: Mounted root (ext2 filesystem) readonly.
Dec 15 11:58:06 theRev kernel: Adding Swap: 16124k swap-space (priority -1)
Dec 15 11:58:06 theRev kernel: EXT2-fs warning: maximal mount count reached, running e2fsck is recommended
Dec 15 11:58:06 theRev kernel: hdc: media changed
Dec 15 11:58:06 theRev kernel: ISO9660 Extensions: RRIP_1991A
Dec 15 11:58:07 theRev syslogd 1.3-3#17: restart.
Dec 15 11:58:09 theRev diald[87]: Unable to open options file /etc/diald/diald.options: No such file or directory
Dec 15 11:58:09 theRev diald[87]: No device specified. You must have at least one device!
Dec 15 11:58:09 theRev diald[87]: You must define a connector script (option 'connect').
Dec 15 11:58:09 theRev diald[87]: You must define the remote ip address.
Dec 15 11:58:09 theRev diald[87]: You must define the local ip address.
Dec 15 11:58:09 theRev diald[87]: Terminating due to damaged reconfigure.

 

L'única cosa llegible d'això, per a les persones normals, són els missatges d'error i els avisos. Tot i així cal destacar que el Linux no s'atura ni es penja quan es troba un error, sinó que deixa anar una queixa concisa, abandona els processos danyats i continua endavant. Sens dubte no es pot dir el mateix de les primeres versions dels sistemes operatius d'Apple i Microsoft, pel simple motiu que un sistema operatiu que no és capaç de caminar i mastegar xiclet alhora és impossible que es recuperi dels errors. Detectar i tractar els errors requereix un procés separat que s'executi en paral·lel al procés que ha errat. Com una mena de superego, si voleu, que vigila els altres i intervé quan un s'esgarria. Ara que el MacOS i el Windows poden fer més d'una cosa alhora, gestionen els errors molt millor que no pas abans, però en aquest sentit, al Linux i als altres sistemes Unix no els arriben ni a la sola de la sabata, i a més llur creixent complexitat els ha fet més vulnerables a nous tipus d'errors.





< Enrera
Pàgina generada del web www.culturalliure.cat per a ser impresa fàcilment el 05/12/2008.