Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[OT] Come programmare una shell?
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano
View previous topic :: View next topic  
Author Message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Thu Dec 09, 2004 9:20 am    Post subject: [OT] Come programmare una shell? Reply with quote

Chiedo anticipatamente venia per l'OT.... spero che gli dei/moderatori siano clementi

In ogni caso saro' breve... sono circa 2/3 giorni che cerco in internet e non trovo nulla
di nulla.... cercavo una guida/tutorial sulla programmazione di una shell.

Ora: NON sulla programmazione in shell (bash script, etc.) ma sulla programmazione di shell,
ovvero come scrivere una shell.

Qualcuno sa aiutarmi???
Grazie mille.

Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31455
Location: here

PostPosted: Thu Dec 09, 2004 9:29 am    Post subject: Reply with quote

Ma intendi il terminale che poi si bash su sh, bash, csch,... oppure proprio il "linguaggio"
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Thu Dec 09, 2004 9:30 am    Post subject: Re: [OT] Come programmare una shell? Reply with quote

mouser wrote:
Ora: NON sulla programmazione in shell (bash script, etc.) ma sulla programmazione di shell,
ovvero come scrivere una shell.


Parti dall'inizio.
Che linguaggio vuoi usare? Cosa dovrebbe fare questa shell?
_________________
Ciao da me!
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Thu Dec 09, 2004 11:21 am    Post subject: Reply with quote

OK, OK sono stato un po' frettoloso.....

Sto scrivendo un simil-OS basato su MINIX, e il libro che sto leggendo parla della programmazione del OS e della procedura di boot, ma non della shell.

Vorrei utilizzare l'amatissimo C 8)

Scusate ancora la poca chiarezza.
Grazie mille.


Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Thu Dec 09, 2004 11:23 am    Post subject: Reply with quote

In sostanza devi scrivere una shell?
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Thu Dec 09, 2004 11:26 am    Post subject: Reply with quote

mouser wrote:
Sto scrivendo un simil-OS basato su MINIX, e il libro che sto leggendo parla della programmazione del OS e della procedura di boot, ma non della shell.

Vorrei utilizzare l'amatissimo C 8)


In linea di massia la shell "base" é semplicemente un loop "leggi_comando/esegui_comando".

Lavorando in C puoi definire la grammatica per i comando interni con flex/bison e implementare l'editing di linea con le librerie readline/history

IMHO é meglio se ricicli la bash ;-)
_________________
Ciao da me!
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Thu Dec 09, 2004 11:27 am    Post subject: Reply with quote

Concordo con randomaze per riciclare la bash. Ti ritrovi molto del lavoro fatto ;)
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31455
Location: here

PostPosted: Thu Dec 09, 2004 11:28 am    Post subject: Reply with quote

randomaze wrote:
IMHO é meglio se ricicli la bash ;-)

Concordo... o almeno all'inizio usare quella
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
Ferdinando
Veteran
Veteran


Joined: 25 Nov 2003
Posts: 1027
Location: Gaeta (LT) - Italy

PostPosted: Thu Dec 09, 2004 12:23 pm    Post subject: Reply with quote

Beh, la bash e` buona ma un po' complicata all'inizio: io ad esempio preferirei ripartire from scratch che dovermi leggere qualche migliaio di righe di codice (+ 5 o 6 patches), soprattutto visto che e` banale. In effetti tutti i comandi sono programmi esterni, ad eccezione di un paio, di cui gli unici fondamentali da reimplementare sono cd, che si traduce in una sola system call, e la definizione delle variabili di ambiente, che si traduce nell'allocazione e la manutenzione delle strutture dati; mi pare null'altro... Beh, certo, prima di lanciare ogni programma occorre forkarsi e poi execve mentre il padre attende il figlio, ma mi pare ci fosse una system call per fare tutto questo in automatico, quindi una shell molto semplice si potrebbe fare in poche righe di codice.

EDIT: ah gia`, si dovrebbe anche mettere su la ricerca in $PATH per ogni comando esterno...

my 2 eurocents

ciao
_________________
La risposta, non la devi cercare fuori, la devi cercare dentro di te: e però è SBAGLIATA!
-- Corrado Guzzanti, "Pippo Chennedy Show", 1997


Last edited by Ferdinando on Thu Dec 09, 2004 12:28 pm; edited 1 time in total
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Thu Dec 09, 2004 12:26 pm    Post subject: Reply with quote

Ringrazio tutti per i suggerimenti.....

pensavo che una shell fosse piu' che un masticatore di comandi e system-call.

Comunque credo implementero' qualcosa come bash, tanto per iniziare, dopodiche' magari leggo un po' di codice

Grassie mille a tutti, ne'

Ciriciao
mouser :wink:

PS. Devo mettere il tag risolto anche se alla fine non era proprio un problemone??????
Back to top
View user's profile Send private message
zUgLiO
l33t
l33t


Joined: 12 Aug 2003
Posts: 754
Location: Ferrara (Italy)

PostPosted: Thu Dec 09, 2004 12:31 pm    Post subject: Reply with quote

Per il corso di Sistemi Operativi I ci hanno fatto implementare una shell rudimentale, supportava cd, & && > < >> >> | .

Questo è il link del corso, secondo me puoi trovare qualcosa di interessante :)
http://www.fe.infn.it/~didomeni/LabSisOp2004.html
_________________

voglio poi dire che il tempo mi avrà fatto abituare,

ma io non trovo nemmeno brutta la stiva buia di questa nave
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum