Farà cosa de 2 anys (2003) vaig començar a fer una distribució de GNU/HURD que s'adeqües als meus gustos i necessitats, ja que l'unica alternativa és la de Debian i deixa bastant que desitjar IMHO.
Per tant vaig començar a crear un arbre del sistema per separar les dues cintes: el sistema base (/) i el d'usuari (/usr/) en dos tarballs separats el més reduits possible, vaig implementar el sistema d'arranc de NetBSD, vaig crear uns nous scripts d'arranc que em permetien autoconfigurar el sistema sense l'interacció de l'usuari.
Tot plegat va ser relesejat sota el nom de
Bee, nom en conya proposat per
alejandro de es.gnu, referent al fet d'anar de flor en flor agafant el millor de cada flor.
Si, moltes drogues, molta conya...
Pero al cap i a la fi, vaig relesejar un sistema base funcional, molt més estable que el de Debian, amb el temps,
k0ro va implementar el
neomach, una versió del gnumach amb suport per DMA y transferencies multipagina que duplicaven/triplicaven el rendiment general del sistema (build/file-copy-test).
Una altre idea interessant del projecte
Bee, era, a part de crear un sistema HURD a l'estil BSD el de permetre una completa llibertat a l'usuari, per escollir el sistema de paquets (Gentoo, PkgSrc o Debian).
Però ens vam centrar en pkgsrc, ja que era el que més s'adeqüva al projecte (encara que manteniem la llibertat d'elecció), aixi que junt amb k0ro vam portar pkgsrc al sistema GNU, malgrat algunes limitacions de la epoca (ara pkgsrc ja ho suporta) el nombre de paquets era bastant baix i implicava molts problemes, ja que no permetia mantenir el sistema base com a moduls separats.
Aixi que allà es va quedar i el port a HURD mai va ser enviat a PkgSrc.
One, Two, Foo...
Després de tot aquest temps d'inactivitat, ahir vaig decidir tornar-hi, el sistema de Bee (de 2 anys d'antiguitat) no esta tant desfassat de l'actual, ja que pocs canvis s'han integrat al tree que no tinguessim nosaltres (vaig posar el parche per suportar particions de >2GB, k0ro va implementar el suport de multipagina i el de DMA i vaig desactivar el suport de floppy disk en el kernel per defecte (ja que bloqueja l'arranc en maquines sense disquetera). Els ultims pegats son alguns fixes de panics, build support pel gcc4 i suport per la ethernet sis900.
Aixi que em vaig dispossar a instal.lar el qemu per botar una bee-base. El primer problema va ser que qemu no compila amb GCC4. Aixi que vaig haver de canviar temporalment cap a gcc3:
console:
rm /usr/bin/gcc
ln -s /usr/bin/gcc-3.3 /usr/bin/gcc
Aixi que em vaig posar a fer la imatge de disc on instal.lar el nou sistema, he fet un petit shellscript que us ajudara a crear imatges de disc, a part d'entendre els concepte de sectors, capçals i cilindres
console:
bytes=512 # 512 bytes per sector
sectors=63 # Es lo normal ens els discos IDE
heads=16 # 16 capçals
bpc=$((bytes*$sectors*$heads)) # Bytes Per Cylinder
size=800 # Size in MB (es la unica variable interessant per l'usuari)
cyl=$(( ($size*1024*1024)/$bpc )) # Cilindres autogenerats
# Create Image
dd if=/dev/zero of=hurd.img bs=$bpc count=$cyl
Un cop tinguem la imatge en blanc (0x00) creada, tocara fer les particions amb l'fdisk mateix desde GNU/Linux:
console:
# fdisk -u -C$cyl -S$sectors -H$heads hurd.img
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-409247, default 63):
Using default value 63
Last sector or +size or +sizeM or +sizeK (63-409247, default 409247):
Using default value 409247
Command (m for help): p
Disk hurd.img: 0 MB, 0 bytes
16 heads, 63 sectors/track, 406 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
hurd.img1 63 409247 204592+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 25: Inappropriate ioctl for device.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
# fdisk -l hurd.img
You must set cylinders.
You can do this from the extra functions menu.
Disk hurd.img: 0 MB, 0 bytes
16 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
hurd.img1 1 406 204592+ 83 Linux
#
Ara ens tocara formatejar la partició 1 de dins de la imatge de disc, per tant, com podem veure la primera partició no comença al principi del disc, ja que deixa espai pel MBR (podrem ficar-li el grub), aixi que haurem de calcular l'offset en bytes fins a la primer partició.
El calcul es força simple:
numero de sectors *
bytes per sector.: Usease 63 * 512 =
32256.
console:
## Asignem el loop device 0 a la imatge nostre
# losetup /dev/loop0 -o 32256 hurd.img
## Formatejem la partició (-o i -b son IMPORTANTS), els altres dos els podeu canviar
# mke2fs -L Bee/HURD -o hurd -b 1024 -O sparse_super /dev/loop0
# mkdir bee
# mount /dev/loop0 bee
# tar xzvfp bee-base-0.1.5b.tar.bz2 -C bee
# sync # mania meva
# umount bee
# losetup -d /dev/loop0
# losetup -f
/dev/loop0
Doncs encara que us sembli mentida ja tenim la Bee instal.lada

. Ara toca la part de qemu.
Aixi que descarregarem aquest LiveCD de GRUB
grub-94.iso. (662kB) - aquesta imatge l'he modificat amb el
heme per dir-li que em llenci el
gnumach13 enlloc del
gnumach.gz.
Ara podrem ja arrencar el nou sistema:
console:
# qemu -cdrom grub-94.iso -hda hurd.img -boot d
I podrem veure algo com aixo:
Entrem a la 3a opció que es la que he modificat per poder botar la
Bee, llavors el sistema hauria® d'arrencar perfectament i fer el primer stage d'autoinicialització que consisteix en establir tots els translators sobre el sistema de fitxers, ja que el GNU tar no implementa l'extensió per translators. Un cop acabat el sistema es reiniciarà en 3 segons i es disposarà a fer una segona configuració aquest cop sobre el sistema i ens apareixerà el prompt.
login> login root
#
I ja estem dins, perque per defecte no té cap password el root. Ara haurem de configurar l'arranc l'RC per tal d'acomodar el sistema als nostres gustos, i informar a Bee que ja s'ha acabat l'stage d'autoinicialització per que el sistema arrenqui un multiuser. Fent aquestes comandes:
console:
# echo rc_configured=YES >> /etc/rc.conf
# echo console=YES >> /etc/rc.conf
# echo hostname=Bee >> /etc/rc.conf
# echo swap=NO >> /etc/rc.conf
Ara ja podem reiniciar el sistema...i
voilà:
Si us heu quedat amb ganes de més podeu probar amb la
bee-0.2 beta.
HurdMeeting 2005
Ja vaig comentar en un altre post el tema del hurdmeeting, pero s'apropa la data i toca recordar-ho

ja que són els dies
5 i 6 de Novembre. I que
'pel que sembla'...em toca fer una install party xD...tampoc sabria que explicar sino.
Crec que aquestes jornades seràn importants, ja que amb tot el temps que porta HURD en
vida, mai s'ha fet cap kdd fisica. Cosa que espero que revisqui l'esperit del GNU, i que per fi es podran veure/fer xerrades sobre GNU/HURD tècniques sense tallar-se pel nivell / ambient. Tinc un TODO força gran pel cap sobre tot el que vull parlar per alla...
- Deixar els esforços de Bee per moure'ls cap a GNU
- Manteniment i seguiment dels pegats per tal d'integrar-los al sistema ràpidament. (i no com a parches de debian guarros)
- Integració del dmd (scritps d'arranc escrits en Scheme (aka dialecte de lisp) per sustituir als RC en shellscripts.
- Acabar l'script de build del sistema GNU, dissenyar-ne un de nou o utilitzar el de AMS.
- Proposar implementar suport de XEN a gnumach
- Proposar canvis sobre el pfinet
- Reorganitzar les llistes de correu, pagina web i wiki de hurd-es i bee.es.gnu
Doncs poca cosa més per avui... nanit x)
FMI:
>>
GNU/HURD
>>
GNU System Discuss
>>
HackersCentral hurd-es wiki
>>
Bee a GNU
>>
Bee a Nopcode
>>
Bee distribution releases
>>
Gentoo/HURD (irc)
>>
Debian GNU/HURD
>>
pkgsrc
[add comment] [view comments] (6)