|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Un sistema operativo: come lo si programma ?
Un sistema operativo... fa funzionare molti programmi... ma lo si dovrà pur programmare ? In che modo ? Naturalmente non coln i "normali" metodi e programmi... Ma allora come ?
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Ma guarda che la richiesta che hai fatto non è per niente semplice!!!! Hai pensato che dovrai gestire tutto l'hardware del tuo sistema (e non solo)..... Sicuro intendi proprio un sistema operativo?
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
Quote:
Posso solo dire che C/C++ sono gli strumenti base
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Per riuscire a fare qualcosa di guardabile (e sottolineo guardabile) devi conoscere bene l'assembly e il C(o il C++, un os può essere strutturato in modo tendente al divino se codato in un buon C++) e conoscere bene le strutture dati. Questa ovviamente e' solo la conoscenza pratica. Per quella teorica devi sciropparti libri di hardware e avere concetti come IRQ, DMA, interrupt, syscall e ovviamente conoscere a menadito il processore su cui stai lavorando (quindi studiarti ben bene il 1° e 3° manuale che l'Intel mette a disposizione degli sviluppatori). Infine devi procurarti un testo capibile e completo su come strutturare la progettazione e programmazione di un os e francamente non ce ne sono molti di questo livello.Queste sono solo le basi per poter fare un lavoro quanto meno sufficiente
Ciao |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 1209
|
ASM x86
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Un sistema operativo è composto da diverse parti...
Le 3 principali semplificando molto sono Loader, Kernel (Nucleo), Interprete dei comandi... Il Loader non è altro che un programma che viene mandato in esecuzione quando il BIOS va a cercarlo nel Master Boot Record del disco fisso... Per crearlo soltamente si fa in assembler...ma anche un misto assembler C/C++ va venissimo... L'importante è che l'esegibile non abbia riferimenti a system call del sistema operativo su cui è stato creato, ma solo a quelle messe a disposizione dal BIOS (o solo a quelle routine che lui stesso immette in memoria)... Il Loader non fa altro che caricare il kernel di cui ha un riferimento fisso sul disco fisso (visto che a questo punto dobbiamo accedere al disco in maniera molto basilare, senza la possibilità di sfruttare il file system)... Per caricare il Kernel solitamente deve conoscerne il sia la posizione sul disco che la dimensione (a meno che il Kernel non abbia un programma di caricamento a dimensione fissa che si occupa di caricare i vari moduli)...lo mette in memoria e trasferisce l'esecuzione al Kernel... Il Kernel è composto da vari moduli che mettono a disposizione "system call" sia ad altri moduli che ai programmi utente... I più importanti sono lo scheduler (in un SO avanzato si occupa di gestire l'esecuzione dei vari programmi utente permettendone l'avanzamento parallelo, il cosiddetto multitasking), il gestore del file system, il gestore della memoria... L'interprete dei comandi (o shell) non è altro che un programma utente che non fa altro che che comunicare con l'utente... Quando l'utente indicherà alla shell che vuole eseguire un programma non farà altro che indicare allo scheduler la posizione dell'eseguibile e lo scheduler pensaerà ad eseguirlo quando più gli torna opportuno... Anche per il Kernel vale lo stesso discorso del Loader, può usare solo le routine messe a disposizione dal BIOS, quelle messe da lui stesso in memoria o le system call... Può essere realizzato nella parte più interna (le system call che sono le parti più a contatto con l'hardware) con un misto assembler-C/C++ (o anche in qualsiasi altro linguaggio compilato che permetta l'escuzione diretta di codice assembler)... Mentre il resto viene programmato solamente in un linguaggio di alto livello senza usare l'assembler... La shell può essere programmata con qualsiasi linguaggio di alto livello... |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
Re: Un sistema operativo: come lo si programma ?
Quote:
http://www.dmi.unict.it/~pappalar/lab3/#xinu
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:38.


















