Au trecut 3 saptamini de la threadul anterior si dupa ce am studiat impreuna
cu oamenii de la GoboLinux si LinuxFromScratch am in fine un sistem de baza
functional cu urmatoarele:

* Kernel 2.6.0 cu patch de GoboHide (ascunderea de legacy dirs gen "/bin" de
operatiile de citire a continutului directorului -- sint accesibile in
continuare daca faci 'cd /bin'). Ca bootloader, Grub 0.93.

* gcc 3.3.1, make 3.80, binutils 2.14, util-linux 2.12, module-init-tools
0.9.14, procps 3.1.11, glibc 2.3.2.

* 50 de pachete in /Applications:

# ls /Applications
autoconf  e2fsprogs glibc         less              net-tools symlinux
automake  ed        grep          libtool           patch     tar
bash      file      groff         lilo              perl      texinfo
binutils  findutils grub          m4                procinfo  util-linux
bison     flex      gzip          make              procps    zlib
bzip2     gawk      inetutils     man               psmisc
ccache    gcc       joe           mc                readline
coreutils gettext   kbd           module-init-tools sed
diffutils glib      kernelheaders ncurses           shadow

Ca fapt divers, consola si toate aplicatiile care au treaba cu ea sint bazate
exclusiv pe ncurses, nu pe terminfo clasic.

* Iata arborele de fisiere "de baza":

.
|-- Applications
|-- LostFiles
|-- System
|   |-- Devices
|   |-- Kernel
|   |   |-- BootFiles
|   |   |   |-- grub
|   |   |   `-- lilo
|   |   |-- Images
|   |   |   `-- 2.6.0
|   |   |-- Interface
|   |   `-- Modules
|   |       `-- 2.6.0
|   |-- Links
|   |   |-- BonoboServers
|   |   |-- Headers
|   |   |-- InfoPages
|   |   |-- KConfig
|   |   |-- Libraries
|   |   |-- ManualPages
|   |   `-- Programs
|   |-- Mount
|   |-- Runtime
|   |-- Settings
|   `-- Temp
`-- UserFiles
    `-- root

* Iata arborele legacy, pentru aplicatiile care nu se lasa convinse altfel.
Toate de mai jos sint ascunse cu GoboHide si nu apar in mod normal.

.
|-- bin -> System/Links/Programs
|-- dev -> System/Devices
|-- etc -> System/Settings
|-- lib -> System/Links/Libraries
|-- proc -> System/Kernel/Interface
|-- root -> UserFiles/root
|-- sbin -> System/Links/Programs
|-- tmp -> System/Temp
|-- usr
|   |-- bin -> /System/Links/Programs
|   |-- include -> /System/Links/Headers
|   `-- lib -> /System/Links/Libraries
`-- var -> System/Runtime

* Administrarea pachetelor (de fapt mai mult a symlinkurilor din
/System/Links) si compilarea lor se face cu un script bash. Deocamdata isi
face treaba cu toate ca e cam rudimentar, cei de la GoboLinux au scripturi
mult mai destepte pentru asta dar tot aia e ideea.

* Am reusit sa bootez noul sistem si sa ma plimb prin el fara probleme.
Kernelul 2.6.0 e mai destept ca 2.4.x, daca nu ai init da singur drumul
la /bin/sh si are grija sa intercepteze el Ctrl-Alt-Del, no more panic.

* Marimea totala a sistemului in acest moment: vreo 350MB, practic doar
/Applications conteaza. Am pornit de la o partitie de 1 GB (care aproape s-a
umplut la anumite momente) si am construit un sistem LFS 5.0 (cu /tools si tot
tacimul) avind doar grija sa-mi impun propriile directoare in faza a 2-a.

* Marea majoritate a aplicatiilor s-au lasat convinse sa se instaleze si sa
lucreze unde am vrut eu fie prin optiuni la configure, fie prin optiuni in
Makefile, fie prin optiuni la runtime in fisiere de configurare sau ca
parametri. In foarte putine cazuri a fost nevoie sa umblu la surse. Niste
exemple negative ar fi shadow (care hardcodeaza /bin/passwd) respectiv
e2fsprogs (care hardcodeaza "lost+found", si inca la modul naspa, in mai multe
fisiere, nimic centralizat).

* Am ales sa tin fisierele de configurare (/System/Settings aka /etc)
respectiv cele de runtime (/System/Runtime aka /var) unificate pentru ca
altfel mi-ar fi facut mult mai multe belele diversele pachete. In plus in
felul asta pot sa montez /System/Runtime separat pe un reiser sau sa
impachetez /System/Settings si sa fug cu el. Cei de la Gobo pun Settings si
Runtime sub /Programs/numeapp/ dar nu m-a multumit ideea.

* Pachetele binare le pun in tarballs si le scriu pe CD-uri. Am incercat sa
folosesc de curiozitate pachete compilate pentru /opt de pe vechiul sistem dar
in unele cazuri dependentele de librarii sint diferite.

Cam asta e in momentul de fata, daca aveti intrebari va rog sa-mi spuneti.

=======================

Faza imediat urmatoare: gasirea unei solutii pentru init. Din pacate nimic
existent in momentul asta (daemontools, SystemV, rc.d, init, simpleinit,
runit) nu ma multumeste complet. Un colistas de pe GoboLinux a pus problema
foarte bine:

"Here's a quick list of goals/wants:
init agnostic
compatibility with /etc/init.d/foo [start|stop] style scripts
separation between Tasks and Daemons
runlevels
dependencies
themes"

Ideala ar fi o combinatie de SysV cu runit si un sistem de dependinte in
stilul lui simpleinit. Pe gobo-l revine subiectul mereu si n-ar fi exclus ca
de acolo sa rasara la un moment dat un sistem de bootscripts super marfa.

=======================

Faze din viitor:
* introducere de ACL's si GRSec in sistem
* conectare la Internet
* adaugare de aplicatii pina se ajunge la un sistem folosibil
* diverse alte experimente, cum ar fi Xouvert in loc de XFree

-- 
GZ

--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui