Linux From Scratch

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
hashbang
Packager
Packager
Messaggi: 2034
Iscritto il: ven 4 giu 2010, 10:27

Linux From Scratch

Messaggio da hashbang »

Ciao a tutti,

sto intraprendendo una costruzione di un sistema operativo con Linux From Scratch.
Mi appassiona la possibilità di costruire un sistema su misura e soprattutto lo trovo molto istruttivo.

I Flag che sto passando al configure sono:
CFLAGS="-O2 -mcpu=athlonxp -march=i686 -mtune=i686"
CXXFLAGS="-O2 -mcpu=athlonxp -march=i686 -mtune=i686"

Le mie idee sull'OS futuro sono:
kernel Linux :P (indeciso tra latest stable (2.6.36) o versione LTS (2.6.32.x) )
pkgsrc di NetBSD
base del sistema installata nel prefix /usr e pacchetti extra (a partire da X.org) in /usr/local, come accade nei sistemi BSD
INIT BSD-style
Compilatore LLVM/Clang (non penso di farlo, sto seriamente pensando di rimanere con GCC)
Bootloader Grub (o Grub2, ancora è da vedere)
Desktop FluxBox (oppure OpenBox o openCDE)
Sistema operativo totalmente vanilla

Se il sistema base (dopo ovviamente opportune ricompilazioni, se necessarie) risulterà funzionante creerò un livecd per poterla installare senza compilare utilizzando i pkgtools della cara Slackware.

Che ne pensate?
Avete qualche idea?

Avatar utente
Blallo
Packager
Packager
Messaggi: 3302
Iscritto il: ven 12 ott 2007, 11:37
Nome Cognome: Savino Liguori
Slackware: 14.2 / 12.2
Kernel: 4.4.14-smp
Desktop: DWM
Località: Torino / Torremaggiore (FG)
Contatta:

Re: Linux From Scratch

Messaggio da Blallo »

1 )Per il kernel puoi usare tranquillamente l'ultimo
2 )Perchè pkgsrc?
3 )Io più che per un /usr/local, opterei per un altro path sempre in /usr (che so, /usr/base, o quel che ti pare), così la local la puoi "sporcare" più liberamente nel caso ti cogliesse la "folle idea" di compilare qualcosa senza impacchettarla :D
4 )l'init me lo sto riscrivendo un po' in stile BSD, appena ho in mano qualcosa di funzionante ti faccio un fischio
5 )Lascia stare grub2, è troppo instabile, fossi in te userei ancora LiLo (cosa che faccio :p )
6 )Ti consiglio openbox e SOLE applicazioni gtk, esteticamente si integrano che è una bellezza, meglio pure di fluxbox
7 )Praticamente vuoi creare una distro live e installabile?
8 )Se non hai una scheda grafica particolarmente performante (tipo quelle cagatine da 2MB di memoria video condivisa, messe li giusto per darti un output) prova a compilare kdrive, la versione "ridotta" del server X. Se trovo link utili li posso postare se vuoi

hashbang
Packager
Packager
Messaggi: 2034
Iscritto il: ven 4 giu 2010, 10:27

Re: Linux From Scratch

Messaggio da hashbang »

Ti rispondo con ordine :D

1) Si infatti il 2.6.36-ck2, lo sto testando da quando è stato rilasciato e sembra essere abbastanza stabile. Ovviamente la patch di con kolivas è d'obbligo. Sarà l'unica eccezione alla politica vanilla.
2) Non amo molto i pacchetti precompilati, ma amo molto i ports dei *BSD. E visto che pkgsrc è abbastanza portabile per le altre piattaforme (c'è anche un how-to sul nostro wiki), ho deciso di integrarlo. Inoltre aggiornandosi ogni 4 mesi, mi da la possibilità di non essere troppo bleeding-edge. Ecco perchè ero indeciso sul kernel.
3) Uhm...potrebbe essere una buona idea. Apprezzo molto la filosofia dei *BSD che non "mescolano" i pacchetti di base, con quelli extra....rende il tutto più ordinato.
4) Interessante. Aspetto notizie. ;) Io per l'init avevo in mente delle modifiche ai runlevel:
. Runlevel 0/1/6 = inalterati
. Runlevel 2 = runlevel 1+multiuser
. Runlevel 3 = runlevel 2+network
. Runlevel 4 = runlevel 3+script di init esterni. (intendo quelli che risiederanno /usr/(local)/etc/)
. Runlevel 5 = runlevel 4+X
5) Non mi piace molto LILO. Di grub-legacy che ne pensi?
6) Vada per openbox
7) No vorrei masterizzare la base del sistema operativo (per intenderci, solo ciò che è stato compilato in prefix /usr) e creare un installer* in modo da evitare di compilare i sorgenti di base (binutils, gcc ecc) in caso di reinstallazione. Il resto si compila :D
8 ) NVIDIA GeForce FX5200. Vecchiotta, ma funziona benissimo con gli nvidia proprietari...

EDIT: ho dimenticato una caratteristica.
Unico file di configurazione in stile BSD: /etc/rc.conf

*Per installer intendo uno script semplice che installi la piattaforma base e quella di sviluppo. Niente di elaborato e inutile. La preparazione del sistema (formattazione ecc.) si farà tutta a mano :D

Avatar utente
Blallo
Packager
Packager
Messaggi: 3302
Iscritto il: ven 12 ott 2007, 11:37
Nome Cognome: Savino Liguori
Slackware: 14.2 / 12.2
Kernel: 4.4.14-smp
Desktop: DWM
Località: Torino / Torremaggiore (FG)
Contatta:

Re: Linux From Scratch

Messaggio da Blallo »

Vedo subito come regolarmi per i runlevel
di grub in generale non mi piace la "dipendenza" dal file di configurazione sul disco (lilo se non sbaglio, una volta messo nel settore di boot, è indipendente)

In che senso unico file di configurazione? (Non conosco abbastanza il mondo *BSD)

hashbang
Packager
Packager
Messaggi: 2034
Iscritto il: ven 4 giu 2010, 10:27

Re: Linux From Scratch

Messaggio da hashbang »

Ti posto un esempio di file rc.conf di Arch Linux (che è senza dubbio ottimo)

Codice: Seleziona tutto

#
# /etc/rc.conf - Main Configuration for Arch Linux
#

# -----------------------------------------------------------------------
# LOCALIZATION
# -----------------------------------------------------------------------
#
# LOCALE: available languages can be listed with the 'locale -a' command
# HARDWARECLOCK: set to "UTC" or "localtime", any other value will result
#   in the hardware clock being left untouched (useful for virtualization)
# TIMEZONE: timezones are found in /usr/share/zoneinfo
# KEYMAP: keymaps are found in /usr/share/kbd/keymaps
# CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed for non-US)
# CONSOLEMAP: found in /usr/share/kbd/consoletrans
# USECOLOR: use ANSI color sequences in startup messages
#
LOCALE="en_US.UTF-8"
HARDWARECLOCK="localtime"
TIMEZONE="Canada/Pacific"
KEYMAP="us"
CONSOLEFONT=
CONSOLEMAP=
USECOLOR="yes"

# -----------------------------------------------------------------------
# HARDWARE
# -----------------------------------------------------------------------
#
# MOD_AUTOLOAD: Allow autoloading of modules at boot and when needed
# MOD_BLACKLIST: Prevent udev from loading these modules
# MODULES: Modules to load at boot-up. Prefix with a ! to blacklist.
#
# NOTE: Use of 'MOD_BLACKLIST' is deprecated. Please use ! in the MODULES array.
#
MOD_AUTOLOAD="yes"
#MOD_BLACKLIST=() #deprecated
MODULES=()

# Scan for LVM volume groups at startup, required if you use LVM
USELVM="no"

# -----------------------------------------------------------------------
# NETWORKING
# -----------------------------------------------------------------------
#
# HOSTNAME: Hostname of machine. Should also be put in /etc/hosts
#
HOSTNAME="myhost"

# Use 'ifconfig -a' or 'ls /sys/class/net/' to see all available interfaces.
#
# Interfaces to start at boot-up (in this order)
# Declare each interface then list in INTERFACES
#   - prefix an entry in INTERFACES with a ! to disable it
#   - no hyphens in your interface names - Bash doesn't like it
# 
# DHCP:     Set your interface to "dhcp" (eth0="dhcp")
# Wireless: See network profiles below
#

#Static IP example
#eth0="eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255"
eth0="dhcp"
INTERFACES=(eth0)

# Routes to start at boot-up (in this order)
# Declare each route then list in ROUTES
#   - prefix an entry in ROUTES with a ! to disable it
#
gateway="default gw 192.168.0.1"
ROUTES=(!gateway)
 
# Enable these network profiles at boot-up.  These are only useful
# if you happen to need multiple network configurations (ie, laptop users)
#   - set to 'menu' to present a menu during boot-up (dialog package required)
#   - prefix an entry with a ! to disable it
#
# Network profiles are found in /etc/network.d
#
# This now requires the netcfg package
#
#NETWORKS=(main)

# -----------------------------------------------------------------------
# DAEMONS
# -----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
#   - prefix a daemon with a ! to disable it
#   - prefix a daemon with a @ to start it up in the background
#
DAEMONS=(syslog-ng network netfs crond)
Per caricare un demone come hal cups ecc. basta inserirli nella sezione DAEMONS=(....)
È un file di configurazione comodissimo che permette di evitare sbattimenti inutili. In un file c'è tutto ciò che serve per configurare la distribuzione.

Meskalamdug
Iper Master
Iper Master
Messaggi: 3965
Iscritto il: ven 14 mag 2004, 0:00

Re: Linux From Scratch

Messaggio da Meskalamdug »

Non è così facile..LFS è per veri guru di Linux,ad esempio se ti tocca compilare un programma come
openvas sei in grado di fare a mano gli script di avvio?
Comunque buona fortuna.

hashbang
Packager
Packager
Messaggi: 2034
Iscritto il: ven 4 giu 2010, 10:27

Re: Linux From Scratch

Messaggio da hashbang »

Meskalamdug ha scritto:Non è così facile..LFS è per veri guru di Linux,ad esempio se ti tocca compilare un programma come
openvas sei in grado di fare a mano gli script di avvio?
Comunque buona fortuna.
Beh ovviamente ho messo in conto che il sistema non sarà operativo fin da subito. Ma è comunque un'esperienza da fare, in quanto è molto istruttiva. Poi magari col tempo e con miglioramenti si riuscirà a renderlo funzionante e successivamente anche stabile. È come la compilazione del kernel. Per uno che lo compila la prima volta, nell'80% dei casi andrà in panic. Poi col tempo, imparerà e alla fine lo compilerà ad occhi chiusi.
Riguardo agli script di avvio, non capisco dove sia il problema :-k Basta prendere uno script di init di una distro che usa un BSD style e adattarlo al sistema. Inserirlo in /usr/(local)/etc/rc.d e renderlo avviabile....La gestione degli script credo sia il problema minore. Più che altro, la parte più difficile sta nel creare una piattaforma stabile.
Inoltre il mio progetto prevede l'utilizzo dei ports. Pertanto gli script di INIT sono già predisposti per un posizionamento diverso rispetto a GNU/Linux.

Rispondi