# Dubbio da nuovo utente:)

## skyblaze

Ciao a tutti mi sto per accingere ad installare gentoo, vengo da slackware.

il mio dubbio è questo(dopo aver letto la doc per l'installazione):

perche, dopo aver creato le partizioni(con fdisk) e averci creato i file system, mi fa montare il tutto in /mnt/gentoo(per la partizione radice poi le altre /mnt/gentoo/boot ecc.) per poi subito dopo farmi fare un chroot della partizione in /mnt/gentoo?Con chroot faccio diventare una mia partizione qualsiasi "/" ossia partizione radice giusto?Allora perche prima mi fa montare la mia partizione principale(che ho creato con fdisk) in /mnt/gentoo per poi farmela diventare / poco dopo?

----------

## bsolar

Ciao.

La cosa è molto semplice, una volta create e formattate le partizioni per installarci lo stage di tua scelta e quindi poter effettuare il chroot e continuare l'installazione bisogna montarle da qualche parte, nel caso /mnt/gentoo.

chroot esegue un comando con una diversa root directory. Nel caso:

```
# chroot /mnt/gentoo /bin/bash
```

esegue (dal punto di vista del livecd) /mnt/gentoo/bin/bash solo che dal punto di vista della nuova shell che ho aperto (eseguendo bash appunto) /mnt/gentoo diventa '/' quindi in pratica mi ritrovo "dentro" un nuovo root.

Contorto vero?  :Razz: 

----------

## cerri

 *bsolar wrote:*   

> Contorto vero? 

 

Sfizioso, direi.   :Razz: 

----------

## maur8

E poi prima di fare il chroot devi per forza montare la partizione sennò di cosa lo fai il chroot?  :Smile: 

Ciao!

----------

## ScolaBirra

 *bsolar wrote:*   

> 
> 
> Contorto vero? 

 

E qua nasce la domandona: "E' nato prima l'uovo o la gallina?" 

Prima di conoscere Gentoo avevo provato la Linux From Scratch e anche li' si parte da un sistema Linux e si "chroota" per iniziare a compilare... Ma Linus come ha fatto per la prima versione di Linux? E' partito dalla partizione Minix?

Ciao

Scola

----------

## bsolar

 *ScolaBirra wrote:*   

> E qua nasce la domandona: "E' nato prima l'uovo o la gallina?" 
> 
> Prima di conoscere Gentoo avevo provato la Linux From Scratch e anche li' si parte da un sistema Linux e si "chroota" per iniziare a compilare...

 

Se avete paranoie da X-Files date un'occhiata qui e rifletteteci: dopotutto, anche compilando da source, da qualche parte si comincia con binari precompilati.

Meditate...  :Cool: 

Un'altra cosa interessante è il termine "bootstrap", che deriva dal "sollevarsi tirandosi per i lacci delle scarpe". Altro che uova e gallinacei...  :Very Happy: 

----------

## cerri

 *bsolar wrote:*   

> anche compilando da source, da qualche parte si comincia con binari precompilati.

 

ma chi ha compilato il primo compilatore???   :Rolling Eyes:   :Shocked:   :Confused: 

----------

## ScolaBirra

 *bsolar wrote:*   

> 
> 
> Se avete paranoie da X-Files date un'occhiata qui e rifletteteci: dopotutto, anche compilando da source, da qualche parte si comincia con binari precompilati.
> 
> 

 

Questo mi sa di paranoia allo stato puro...

----------

## ScolaBirra

 *cerri wrote:*   

> 
> 
> ma chi ha compilato il primo compilatore???    

 

eh eh eh... mi fa venire in mente una discussione di quasi due ore (davanti a qualche boccale di birra) che ho avuto con degli amici: ce n'era uno che non capiva come un compilatore buggato potesse compilare un compilatore senza passargli il bug... E quando ci vogliamo riferire a quella sera ci diciamo solo "Come si compila un compilatore?"

Ciao

Scola

----------

## bsolar

 *cerri wrote:*   

> ma chi ha compilato il primo compilatore???    

 

Immagino il primo compilatore sia stato il cervello di qualche mattoide degli albori dell'informatica...

----------

## cerri

Ok: ma allora:

1) ho bisogno di un OS per compilare un compilatore

2) ho bisogno di un compilatore per compilare un OS.

.

.

.

.

.

.

AIUTO

----------

## ScolaBirra

Penso che il percorso logico di base sia qualcosa del genere:

1) Qualche pazzoide scatenato si e' scritto il codice macchina di un assembler 

2) dall'assembler hanno programmato un OS di base (mono utente, mono task, con poco piu' che un file system)

3) hanno scritto il primo compilatore in assembler

4) una volta ottenuto il compilatore funzionante hanno riscritto il compilatore in quel linguaggio (per vedere lo stato di un progetto (stile compilatore o OS) si usa ogni tanto dire che il sistema puo' "autogenerarsi"; solitamente questo indica che il progetto e' in uno stato avanzato)

Ciao

Scola

----------

## shev

"In principio era binario"

Non sempre si è avuta la comodità di linguaggi ad alto (più o meno) livello; una volta ci si doveva mettere seduti con tanta pazienza e tradurre ogni cosa in binario (un incubo)... credo quindi che la frase iniziale sia quella che possa risolvere i dubbi: le macchine capiscono solo il binario (sintetizzando e semplificando oltre ogni limite), quindi si scriveva in binario. Compilatori, traduttori e derivati servono solo per trasformare l'input in linguaggio di alto (più o meno) livello in output a livello macchina. Anche gli OS sono venuti dopo.

E poi c'è gente che crede che la shell sia "complicata"  :Very Happy: 

----------

## skyblaze

 *bsolar wrote:*   

> Ciao.
> 
> La cosa è molto semplice, una volta create e formattate le partizioni per installarci lo stage di tua scelta e quindi poter effettuare il chroot e continuare l'installazione bisogna montarle da qualche parte, nel caso /mnt/gentoo.
> 
> chroot esegue un comando con una diversa root directory. Nel caso:
> ...

 Ma allora non potevo direttamente montarla all'inizio in /?Tanto ce la faccio diventare dopo con il comando chroot no?

----------

## skyblaze

e poi un altra cosa non mi è chiara; quando bostrappo da livecd lui si crea un disco ram che è una sorta di hd virtuale creato nella ramdi sistema giusto?E da questo disco ram legge dal cd rom giusto?Non capisco come si possano dare dei omandi di scrittura e cancellatura(come da guida quando ti fa cancellare qualcosa nella directory dove è montato il cdrom) nella directory dove è montato il cdrom essendo il cdrom un dispositivo di sola lettura  :Shocked: 

----------

## ScolaBirra

 *skyblaze wrote:*   

> Ma allora non potevo direttamente montarla all'inizio in /?Tanto ce la faccio diventare dopo con il comando chroot no?

 

Ma se nella tua partizione non c'e' nulla, come ci arrivi ad un sistema funzionante se la monti direttamente come /?

Il fatto e' che devi avere un sistema linux funzionante, dunque / c'e' gia'... perche' deve contenere i vari bin, sbin, usr, ... La tua partizione non puo' essere / ma solo una sottodirectory: da qui la necessita' di "chrootare"

Ciao

Scola

----------

## skyblaze

ok, cioè in / c'è gia l'hd virtuale(ramdisk) del livecd per i comandi base in /sbin /bin ecc. e quindi per questo non posso montarmi li giusto?

Ma con chroot non cambio il punto di montaggio /mnt/gentoo ma faccio solo "credere" (se cosi si puo dire grezzamente) al sistema di trovarmi nella directory radice giusto?

----------

## bsolar

 *skyblaze wrote:*   

> Ma con chroot non cambio il punto di montaggio /mnt/gentoo ma faccio solo "credere" (se cosi si puo dire grezzamente) al sistema di trovarmi nella directory radice giusto?

 

Si, solo una precisazione, non fai credere al sistema, fai credere al programma che lanci, nel nostro caso bash. Nota che quando esegui

```
chroot /mnt/gentoo /bin/bash
```

Non esegui /bin/bash ma esegui /mnt/gentoo/bin/bash. Per questo è necessario prima estrarre il tarball, altrimenti non c'è nessun bash da eseguire in quella locazione.

----------

## skyblaze

ok questa parte l'ho capita finalmente  :Rolling Eyes: 

Mi potresti togliere i miei dubbi sul ramdisk del livecd?

Il livecd si ricava una porzione della ram di sistema per crearsi un sistema operativo linux "live"?

----------

## jdoe

 *cerri wrote:*   

>  *bsolar wrote:*   anche compilando da source, da qualche parte si comincia con binari precompilati. 
> 
> ma chi ha compilato il primo compilatore???    

 

Beh, il compilatore pascal è stato scritto in pascal    :Cool: 

Il discorso dovrebbe essere più o meno:

parti con un qualcosa scritto in assembly che ti macina le prima cose di pascal (che ne so... diciamo gli if e i for e basta). Con quello (e con altri pezzi in assembly) scrivi un altro po'. E così via finchè non hai creato uno dei sw più cervellotici  :Very Happy: 

Lo stesso accade con gli os... part da una rom, carichi un mini kernel magari da floppy... hai solo il compilatore e inizi a creare supporto per il fs, e poi su su fino a farlo diventare uno dei sw più cervellotici (insieme a quelli di cui sopra :p)

Correggetemi se ho detto ca**ate,  :Smile: 

John

----------

## shev

 *jdoe wrote:*   

> parti con un qualcosa scritto in assembly che ti macina le prima cose di pascal [...]
> 
> Correggetemi se ho detto ca**ate, 

 

Ca*ate no, però qualche inesattezza si  :Razz: 

Non si può partire dall'assembly, perchè l'assembly stesso, per quanto di basso livello, non è linguaggio macchina. Ogni istruzione assembly produce esattamente una istruzione macchina, ma non sono uguali. Come dicevo qualche risposta più in su, si parte dal binario, con quello si scriveva in origine, con quello s'è scritto il primo mattone su cui poi s'è edificato il resto. Qualche personcina con i controcazzi s'è scritta il software di base in binario (esadecimale, fa lo stesso), poi è seguito il resto.

O almeno se non ricordo male i vari insegnamenti di architetture dei calcolatori ed esamini di tale simpatica fattura  :Very Happy: 

----------

## jdoe

dici giusto... l'assemblatore lo devi scrivere in codice macchina... 

davo per scontato che esistesse già  :Very Happy: 

John

----------

## ScolaBirra

 *Shev wrote:*   

>  Qualche personcina con i controcazzi s'è scritta il software di base in binario (esadecimale, fa lo stesso), poi è seguito il resto.
> 
> 

 

Quello che mi fa sorridere e' che ormai non ci sara' piu' nessuno che fara' una cosa simile (a meno di esercizio masturbativo mentale (o universitario)). Se si fa un computer da zero, tutto il software per quel computer (dall'os ai compilatori) verranno fatti in cross-compiling...

Ciao

Scola

----------

## skyblaze

 *skyblaze wrote:*   

> ok questa parte l'ho capita finalmente 
> 
> Mi potresti togliere i miei dubbi sul ramdisk del livecd?
> 
> Il livecd si ricava una porzione della ram di sistema per crearsi un sistema operativo linux "live"?

 si ma il mio dubbio del livecd?  :Rolling Eyes: 

----------

