Escriure

De CatuxWiki

Jump to: navigation, search

Versió *ja enviada* a http://pinux.info/fitxers/jornades-2004.pdf


Catux-USB

Introducció
Catux-USB és una distribució feta pel grup d'usuaris de Catux i que funciona sobre dispositius USB a partir de 256MB, originàriament pensada per dispositius Pendrive.

Catux, associació d'usuaris de la Catalunya Central, que va néixer als voltants del Setembre de 2003 i que durant la seva curta vida ha estat niu de diversos projectes prou interessants, ja siguin interns com pot ser la instal·lació i configuració d'un servidor, la realització amb PHP i des de l'inici d'un web per publicar-hi notícies i articles de GNU/Linux i informàtica en general o bé la ponència a les jornades de Wireless d'un Access Point realitzat amb GNU/Linux, la realització d'aquesta distribució, etc.

Catux-USB va néixer inicialment d'un buit a les distribucions: no n'hi havia cap que fos per USB i orientada a un entorn de servidor. Volíem fer (i hem fet) una distribució que es pot posar a pràcticament qualsevol PC i que d'una forma senzilla, permet tenir o bé un servidor d'emergència o bé un escriptori configurat al nostre gust.

L'arrencada de la Catux-USB s'inspira de la Flonix, els paquets i configuració de la DamnSmall Linux. Ambdues són derivades de la Knoppix que al seu torn prové de Debian.

A més, Catux-USB és una distribució lliure, tant pel què hem agafat d'altres distribucions com pels programes que hem desenvolupat nosaltres mateixos.

Finalment, hem escollit fer-ne dues versions, una més orientada a l'entorn de servidors i l'altra dedicada a l'usuari comú. Evidentment els paquets tant per a una com per l'altre són ben diferents, però el sistema d'arrencada, configuració automàtica, etc. són els mateixos.

Aquesta és la primera distribució USB on el sistema viu totalment al dispositiu USB i de cara a l'usuari és transparent, per tant, podem configurar-la de la mateixa manera com si es trobés al disc dur, actualitzar-la, etc. A més, està comprimida al dispositiu USB degut a l'elevat preu/MB que tenen aquests.

Això permet d'una forma molt còmoda i fiable tenir el mateix entorn de treball transportable. Fins ara, si volíem tenir el "nostre escriptori" (per exemple, un icewm, però amb el mozilla, el mutt, nmap, i les eines nostres de treball i personalitzacions) a qualsevol lloc havíem de recórrer inevitablement a un portàtil. A partir d'ara, podrem anar amb el nostre escriptori a la butxaca, i pràcticament qualsevol ordinador amb arquitectura x86 amb un port USB el podem fer servir com si fos el nostre (recordant que no hi ha problema amb actualitzar i instal·lar nous programes).

El mateix que abans però amb servidors, el podem portar, instal·lar i configurar (sobretot amb l'ajuda de seqüències i patrons ja preparats) de forma ràpida a qualsevol lloc.

Podem dir, per tant, que Catux-USB ens permet tenir a la butxaca un servidor 100% operatiu, o bé, el nostre escriptori "nòmada".

La distribució ens serà útil a partir de 256 MB de capacitat, tot i que si tenim un Pendrive de 512 MB ens hi cabran més programes i dades sense fer canvis substancials en la distribució. Cada cop els dispositius Pendrive són més grans i més econòmics.

Avantatges d'un dispositiu Pendrive USB
Evidentment un dispositiu tipus Pendrive té uns desavantatges clars: la capacitat, avui dia més reduïda que un disc dur tradicional i el preu/MB, molt més alt que en un disc dur. A més a més, té una velocitat més baixa.

Recentment l'empresa Transcend ha anunciat que trauria un Pendrive amb forma de tarja de crèdit amb 4Gb de capacitat, i segurament amb els pròxims 6 o 12 mesos aniran apareixent més dispositius d'aquestes característiques.

De totes maneres, un dispositiu Pendrive USB té una sèrie d'avantatges clars:

  • Molt fàcil de transportar (dispositiu extern).
  • Pes d'uns 15 grams en contra d'uns 500 o 600 grams d'un disc dur.
  • Volum reduït, 20cm^3 en contra de 400 cm^3 d'un disc dur.
  • Soroll: nul, un disc dur fa soroll.
  • Escalfament: pràcticament nul. Un disc dur produeix cert escalfament, en alguns entorns pot ser molt inadequat.
  • Pot aguantar xocs de fins a 1000G, un disc dur entre 63G (operant) i 350G (en repòs).
  • No té parts mecàniques.
  • Les característiques indiquen que té 1.000.000 d'escriptures, si ho escrivim cada dia 2 cops (depèn de l'ús) surt que ens dura de l'ordre de 1000 anys (molt més, en aquest supòsit, que el temps de vida mig d'un disc dur).
  • Consum: 0,85A en contra de 2,8A d'un disc dur (unes 3 vegades menys).

(nota: a la presentació durant les jornades ensenyarem una taula comparativa de tots els valors)

Tot això el fan adequat per varis usos. Ja sigui per transportar el nostre escriptori de manera còmoda entre ordinadors, ja sigui per dispositius petits que no poden tenir el pes, volum o consum d'un disc dur, ja sigui per muntar ordinadors totalment silenciosos.

Procés d'arrencada
El procés d'arrencada de la distribució s'intenta que sigui per USB, tot i que no totes les plaques suporten arrencada per USB. Si tenen arrencada amb USB, es crida a syslinux que es troba a la primera partició (un gestor d'arrencada que viu en FAT) i aquest arrencarà amb la configuració del fitxer syslinux.cfg. En el nostre cas estarem arrencant el nucli vmlinuz (2.4.26 amb pedaç per e2compr) amb el initrd anomenat miniroot.gz.

En el cas que la placa no tingui suport per arrencada amb USB disposem d'un CD per facilitar l'arrencada. Només farà servir el miniroot.gz i el nucli del CD, així que no es perden les característiques del sistema.

Fins i tot hem preparat un disquet (derivat de la distribució Puppy) que pot arrencar la nostra distribució.

En aquest miniroot.gz hi ha les utilitats i fitxers bàsics per l'arrencada: els mòduls USB de diferents models (UHCI, OHCI, USB2), el mòdul d'USB mass Storage, i alguna utilitat més necessària (ash, un sistema de muntatge d'unitats compilat en mode estàtic, etc.)

Un dels processos del miniroot.gz és muntar el fitxer /mnt/pendrive/knoppix/knoppix, aquest fitxer és un fitxer tipus ext2 comprimit amb el pedaç al nucli e2compr amb gzip compressió 8, així aconseguim un nivell de compressió força elevat sense un temps de procés excessiu. Dins d'aquest fitxer hi ha tot el sistema que farem servir a partir d'ara.

miniroot.gz muntarà aquest fitxer a /knoppix, i realitzarà els enllaços simbòlics de "/" a "/knoppix/etc" i els que facin falta per tal de tenir el sistema ja pràcticament operatiu.

Serà a partir d'aquest punt que s'inicia l'arrencada d'un sistema normal, amb la detecció de maquinari que realitza Knoppix, havent modificat alguns detalls per fer-lo més adaptat a dispositius USB o traient algun petit error de programació.

Al final tindrem 6 consoles per entrar, per defecte tenim l'usuari "catux" amb contrasenya "catux", o bé l'usuari "root" amb contrasenya "catux". Si arrenquem amb l'usuari "catux" ens demanarà si volem configurar les X o aprofitar la configuració anterior, i el mateix amb la xarxa.

Problemes amb el nucli i e2compr
Quan vam començar amb el mòdul e2compr (vam estar fent un intent de fer servir el mòdul cloop, de només lectura, junt amb un joc d'enllaços simbòlics fent servir LD_PRELOAD per interceptar les crides a sistema) ens vam trobar que l'apt-get es penjava sense remei.

Mirant amb strace, vam veure que es penjava fent una crida de sistema "msync", i més tard vam poder reproduir aquest error amb un programa simple d'unes 10 línies.

A partir d'aquí vam localitzar les crides del nucli que es feien a partir del msync, fins a arribar a veure que era un semàfor que el teníem "tancat" i un altre lloc esperàvem que estigués obert. A partir d'aquesta informació vam poder arranjar el problema. La llista de distribució e2compr ens va ajudar a entendre que havia estat al passar el pedaç del nucli 2.4.25 al 2.4.26 que hi havia hagut un problema.

Fer servir e2compr fins i tot pot fer augmentar la velocitat: el dispositiu USB és prou lent (sobretot amb la versió 1) i en haver de llegir o escriure menys cap al dispositiu podem incrementar la velocitat.

Hem fet proves amb el e2compr, comprimint tot plegat amb gzip, compressió 8 o bé amb bzip2. Curiosament la diferència total de mida és petita, així que hem optat per fer-ho amb gzip. També hem instal·lat el e2ratio per saber si un fitxer es comprimia molt o poc, etc.

Emmagatzemar les dades
El Pendrive estarà formatat amb el sistema de fitxers vfat, així segurament podem provar la Catux-USB sense haver de fer particions al Pendrive, i si té més capacitat hi podem desar altres fitxers.

Dins el sistema de fitxers, trobarem els fitxers necessaris per l'arrencada amb syslinux (syslinux.cfg, vmlinuz, miniroot.gz, etc.).

També trobarem un fitxer que ocupa uns 170 o 200 MB que és el fitxer amb format ext2 comprimit, on resideix tota la Catux-USB (paquets, configuracions, etc.). Si volem accedir a les dades d'aquest fitxer des d'una instal·lació de GNU/Linux que no sigui Catux-USB hauríem d'aplicar el pedaç d'e2compr al nucli que estiguem fent executar.

És força normal que tinguem la necessitat d'accedir a les dades del HOME de l'usuari sense arrencar la Catux-USB, per tant el HOME de l'usuari l'hem desat dins el fitxer catux-usb.ext2 del Pendrive. Aquest fitxer és senzillament un fitxer tipus ext2 que podem muntar des de qualsevol Linux mitjançant una ordre semblant a "mount -t ext2 -o loop /mnt/pendrive/catux-usb.ext2 /mnt/home_pendrive" sense haver de tenir el pedaç del nucli.

D'aquesta manera hem aconseguit un equilibri entre la compressió del sistema i l'accés de manera fàcil, ràpida i còmode del HOME de l'usuari.


Català
Estem fent un esforç de catalanització de la Catux-USB. L'objectiu és que tots els programes apareguin en català per defecte, a més a més estem traduint els que encara no ho estan, junt amb utilitats de la Knoppix que no són tan fàcilment "localitzables" al ser seqüències que no fan servir "gettext" per la traducció de l'aplicació.

Per tal de tenir disponibles les "locales" vam haver d'instal·lar el paquet "locales" (ocupant uns 10 MB junt amb una actualització de libc6). També s'ha hagut d'instal·lar el paquet xlibs, l'original de Damn Small no suportava el català a l'estar reduït.

Paquets
Com que derivàvem de Damn Small Linux, teníem una sèrie d'avantatges: partíem d'una distribució ja petita en mida. De totes maneres, Damn Small Linux per aconseguir aquesta mida, havia fet una sèrie de modificacions a la distribució que implicaven certs problemes i inconvenients a l'hora d'instal·lar nous paquets. Com per exemple que hi hagués algun paquet incomplet, que li faltessin alguns fitxers, etc.

Per exemple, es feia servir l'eina "busybox" que es va treure per petites incompatibilitats amb altres aspectes del sistema.

Igualment, diversos paquets estaven modificats, per exemple el xlibs-data no tenia suport per un idioma que no fos anglès i es va haver de posar l'estàndard, que tot i ocupar més té suport per català (entre altres idiomes) i a més, de cara a futures actualitzacions amb l'apt-get és senzill de seguir (això pensant en l'usuari).


Paquets instal·lats a la versió usuari
Hem deixat un sistema que es pot fer servir perfectament per l'usuari, ja que disposem de navegadors amb mode gràfic, clients de correu electrònic, clients de IRC, utilitats per escriure text, escoltar música, etc.

De totes maneres, l'usuari pot fer ús d'apt-get per tal d'instal·lar nous programes o desinstal·lar els que porta per defecte, així que la selecció de programes no és un procés tancat sinó totalment personalitzable per l'usuari.


Paquets instal·lats a la versió servidor
Aquí hem fet una selecció de programes de servidor, entre els quals destaquen Apache amb PHP, Postfix, Mysql, etc.

L'usuari pot desinstal·lar aquests i instal·lar uns altres sense problemes, de totes maneres proporcionem unes utilitats amb "dialog" (gràfic amb mode text) per fer una configuració bàsica de forma amena d'aquests servidors, a més de ser els que hem provat més: així que recomanem usar els que ja venen instal·lats.

Evidentment es poden configurar sense fer ús de les seqüències de configuració realitzades, les quals han estat fetes en Bash amb la utilitat dialog i per tant són fàcilment personalitzables i ampliables a gust de l'usuari.

Mètode de treball
Realitzar una distribució no és una tasca fàcil, i en aquest cas ha estat portada per diversos membres de Catux, que ens hem hagut de coordinar tot i no sempre poder quedar de forma física.

Els mètodes de treball per la coordinació ha estat una llista de correu (muntada per nosaltres amb Mailman al servidor de l'associació). Junt amb això hem fet servir un Wiki (PhpWiki), ja que la llista de correu per comunicació immediata és molt bona però per deixar-hi tasques a fer es perden entre els arxius de les llistes de forma massa fàcil.

També hem usat, tot i que en menor mesura, un servidor rsync per sincronitzar-nos canvis a la distribució: amb uns 3 o 4 minuts de connexió per mòdem podíem sincronitzar petits canvis de la distribució entre els components (una altra opció podria haver estat fer servir SVN però el nostre servidor no ho recomanava, per poca potència).

De tota manera, un dia a la setmana hem anat quedant per canviar impressions i prendre decisions "importants".

Encara podíem haver usat més mitjans de comunicació com pot ser Jabber, IRC, però no ha estat necessari.

La divisió de feines ha estat anàrquica, i cada un feia el que no estava fet en aquell moment, tenint en compte una mica les preferències de cadascú.

Conclusions
Hem tret varies coses positives al realitzar la distribució basada en USB.

Primer de tot, el fet d'adaptar altres distribucions a un entorn nou i que aquestes estiguin basades en Knoppix, ens ha dut a conèixer de forma prou profunda com treballa Knoppix per dins, podent ara personalitzar una Knoppix de forma força fàcil. Per tant, hem creat coneixement local.

El fet d'anar en compte amb els paquets ens ha fet prendre alternatives a paquets ja normalment coneguts per altres que ocupen menys (com poden ser navegadors alternatius a Mozilla o Konqueror, visualitzadors d'imatges, etc.)

També, el poder arranjar errors ja siguin de seqüències com de l'e2compr fa agrair un cop més la gran necessitat de disposar del codi font dels programes i poder-los modificar lliurement. Sense aquesta capacitat segurament no hagués estat possible realitzar la distribució, ja que de problemes als programes sempre n'hi ha (siguin propietaris o lliures) però amb els lliures els hem pogut anar arranjant, amb els propietaris haguéssim quedat esperant la solució de l'empresa.

Per acabar, i ja a dia d'avui Catux-USB s'està fent servir i és útil; i és una manera més de contribuir a la comunitat la creació de tants programes i eines, suport, etc. que hem tingut durant tant de temps.


Notes de la presentació

  • La presentació es farà amb la Catux-USB.
  • Acabada la presentació farem una petita demostració d'ús de la distribució.
  • Junt amb la presentació s'explicarà com usar la distribució i petits trucs (ajustar la mida de la distribució al Pendrive que tinguem).
  • Comentarem diverses decisions de disseny que hem pres.
  • Explicarem alguns problemes que hem trobat i com els hem solucionat.


Mario Molano, Daniel Rodríguez, Jordi Vilalta, Carles Pina

Catux http://catux.org

Personal tools