Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo ThinkVision 3D 27, la steroscopia senza occhialini
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini
Primo contatto con il monitor Lenovo ThinkVision 3D 27 che grazie a particolari accorgimenti tecnici riesce a ricreare l'illusione della spazialità tridimensionale senza che sia necessario utilizzare occhialini
La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing
La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing
Abbiamo visto ancora una volta la Formula E da vicino, ospiti di Jaguar TCS Racing. In questa occasione però curve e rettilinei erano quelli di un circuito permanente, molto diverso dagli stretti passaggi delle strade di Roma
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming
Lenovo ha puntato forte sul gaming negli ultimi anni e lo testimoniano i marchi LEGION e LOQ, il primo per gli amanti delle massime prestazioni e dell'assenza di compromessi, il secondo per chi desidera soluzioni dal buon rapporto tra prestazioni e prezzo. Abbiamo provato due esponenti dell'offerta, così da capire l'effettiva differenza prestazionale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-01-2010, 16:52   #101
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da Z80Fan Guarda i messaggi
Fammi indovinare, AmigaOS-compliant e scritto in python?
No, AmigaOS non c'entrebbe nulla. Ma per lo più lo scriverei in Python.

Per quanto riguarda il driver VESA, ci sono due possibilità.

La prima è mettere nel primo MB di memoria delle apposite routine 8086 per richiamare i servizi int 10h del VESA. L'uso sarebbe il seguente:
- inizializzo un'opportuna zona di memoria coi dati condivisa e accessibile alla routine 8086;
- richiamo una routine per lo switch in real mode (dal protected mode) passandogli l'indirizzo della routine 8086 da eseguire;
- a questo punto viene eseguito il codice 8086 che richiama l'int 10h e memorizza nella zona di memoria "condivisa" i risultati;
- la routine 8086 richiama un'opportuna routine di servizio per il ritorno alla modalità protetta (nel punto successivo alla chiamata).

La seconda possibilità riguarda l'uso di task che gira in modalità Virtual 8086, che si occupa di eseguire il codice 8086 ivi compreso quello per richiamare i servizi VESA. In questo modo si eviterebbe lo switch del processo corrente dalla modalità protetta a quella reale, e poi il viceversa, perché verrebbe gestito tutto in maniera trasparente (e veloce, suppongo) dal processo Virtual 8086 e dal monitor Virtual 8086 (che gira in modalità protetta, ed è necessario per controllare il precedente processo).

Non ho scritto un monitor Virtual 8086, per cui non ti saprei aiutare per questa soluzione, ma in ogni caso preferirei la prima, che è molto più semplice da implementare, per i seguenti motivi:
- il codice per lo switch da e per la modalità reale è già disponibile;
- non devi richiamare in continuazione i servizi VESA (per ottenere l'indirizzo del frame buffer richiami una sola volta l'apposito servizio durante l'inizializzazione del driver; idem se vuoi ottenere l'elenco di tutte le modalità VESA disponibili, che puoi recuperare e inserire in una lista alla partenza del driver; l'impostazione di una modalità VESA la richiami una volta ogni morte di papa, per cui puoi benissimo eseguire lo switch protected <-> real una tantum, quando serve).
Quote:
Originariamente inviato da idt_winchip Guarda i messaggi
Ho lavorato in una azienda che sviluppa un sistema operativo embedded multipiattaforma opensource, BeRTOS
Quindi hai lavorato per Develer, suppongo. E magari mastichi qualcosina di Python.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 16:59   #102
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da khelidan1980 Guarda i messaggi
io avevo trovato un os scritto in java, jNode,purtroppo ancora non capisco come fanno con le virtual machine(non usavano GCJ o robe simili), a quanto ho capito se ne sono scritta loro, è una barriera d'ingresso troppo alta a mio avviso per scrivere un os a scopo didattico in un linguaggio che non sia C/C++
Mah. A naso non mi sembra così complicato (ormai mi sono fatto le ossa con la VM di Python ).

Una volta realizzata l'apposita VM, penso che la strada dovrebbe essere tutta in discesa. Per lo meno utilizzando il più possibile codice Python.

E sai perché? Perché dopo la VM metterei in piedi una shell interattiva Python che mi permetterebbe di sperimentare pezzi di codice dall'interno dello stesso s.o., senza quindi il classico processo di:
- edita il file;
- compila;
- aggiorna la partizione della macchina virtuale;
- fai partire la macchina virtuale;
- esegui il codice.

Ancora più interessante per me è la possibilità di scrivere facilmente una batteria di test sfruttando dei mock per simulare le parti critiche del s.o..

Insomma, non la vedo una cosa così difficile. Anzi.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 17:03   #103
khelidan1980
Senior Member
 
L'Avatar di khelidan1980
 
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Mah. A naso non mi sembra così complicato (ormai mi sono fatto le ossa con la VM di Python ).

Una volta realizzata l'apposita VM, penso che la strada dovrebbe essere tutta in discesa. Per lo meno utilizzando il più possibile codice Python.

E sai perché? Perché dopo la VM metterei in piedi una shell interattiva Python che mi permetterebbe di sperimentare pezzi di codice dall'interno dello stesso s.o., senza quindi il classico processo di:
- edita il file;
- compila;
- aggiorna la partizione della macchina virtuale;
- fai partire la macchina virtuale;
- esegui il codice.

Ancora più interessante per me è la possibilità di scrivere facilmente una batteria di test sfruttando dei mock per simulare le parti critiche del s.o..

Insomma, non la vedo una cosa così difficile. Anzi.
si l'idea è molto stuzzicante sopratutto perche ti permette si usare un linguaggio moderno (python ruby o chi per esso),utilizzare tecniche moderne come il TDD...l'unica cosa è appunto,che prima di partire con l'os,bisogna smazzarsi la macchina virtuale!E non una vm qualsiasi,una che possa essere eseguita in un contesto un po particolare,tipo senza sistema operativo!
__________________
Khelidan
khelidan1980 è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 17:21   #104
idt_winchip
Senior Member
 
L'Avatar di idt_winchip
 
Iscritto dal: Aug 2004
Città: Firenze - Campi B.
Messaggi: 2223
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Quindi hai lavorato per Develer, suppongo. E magari mastichi qualcosina di Python.
Grande! Non ti sfugge niente!
Eh basta vedere con cosa è stato fatto il wizard per bertos..
Oppure il PyCon..
idt_winchip è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 18:48   #105
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da khelidan1980 Guarda i messaggi
si l'idea è molto stuzzicante sopratutto perche ti permette si usare un linguaggio moderno (python ruby o chi per esso),utilizzare tecniche moderne come il TDD...l'unica cosa è appunto,che prima di partire con l'os,bisogna smazzarsi la macchina virtuale!E non una vm qualsiasi,una che possa essere eseguita in un contesto un po particolare,tipo senza sistema operativo!
Cheffà, stuzzichi?

In verità è da un bel po' che ci rifletto. Finito wpython magari faccio qualche esperimento, se ne ho ancora voglia.
Quote:
Originariamente inviato da idt_winchip Guarda i messaggi
Grande! Non ti sfugge niente!
Eh basta vedere con cosa è stato fatto il wizard per bertos..
Oppure il PyCon..


Dev'essere stata una bella esperienza.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 18:54   #106
M4rk191
Senior Member
 
L'Avatar di M4rk191
 
Iscritto dal: Sep 2008
Messaggi: 1224
Scrivere un SO che richiede una VM, non porterebbe a tempi di bootstrap lunghissimi? Il sistema risultante non sarebbe esageratamente lento?

Sicuramente sarà possibile implementare funzionalità avanzate in pochissimo tempo rispetto ai metodi tradizionali, ma le prestazioni?
__________________
MacBook 6,1|2,26 Ghz C2D|2GB 1067 Mhz DDR3|GeForce 9400M|Mac OSX 10.6.2
M4rk191 è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 19:14   #107
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53963
Quote:
Originariamente inviato da M4rk191 Guarda i messaggi
Scrivere un SO che richiede una VM, non porterebbe a tempi di bootstrap lunghissimi?
Non necessariamente.
Quote:
Originariamente inviato da M4rk191 Guarda i messaggi
Il sistema risultante non sarebbe esageratamente lento?

Sicuramente sarà possibile implementare funzionalità avanzate in pochissimo tempo rispetto ai metodi tradizionali, ma le prestazioni?
Questo è un argomento un po' controverso. Tutte le implementazioni attuali o sono leggere perché con poche funzionalità o sono esageratamente lente.
In teoria con un compilatore JIT le prestazioni potrebbero comunque essere degne. Bisogna vedere come si andrebbe ad integrare l'uso di un compilatore JIT con il kernel. Sicuramente ci sarebbe un overhead non piccolo per il garbage collecting (se implementato) e per le peculiarità del linguaggio usato (un piccolo esempio può essere il bound checking nell'uso dei vettori, sempre presente nei linguaggi di alto livello).
Fra gli altri problemi da gestire ci sarebbe sicuramente la gestione delle eccezioni del linguaggio.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 19:16   #108
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da M4rk191 Guarda i messaggi
Scrivere un SO che richiede una VM, non porterebbe a tempi di bootstrap lunghissimi? Il sistema risultante non sarebbe esageratamente lento?
No, non necessariamente. Prendi il WinUAE, che è un emulatore Amiga: AmigaOS emulato (che, come compito, è molto simile a una virtual machine: preleva opcode di un'architettura diversa da quella nativa, li decodifica, e li esegue uno alla volta) fa il boot in una manciata di secondi...
Quote:
Sicuramente sarà possibile implementare funzionalità avanzate in pochissimo tempo rispetto ai metodi tradizionali, ma le prestazioni?
Non sono tutto. E comunque con meccanismi come JIT sarebbero decenti.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 19:47   #109
Z80Fan
Senior Member
 
L'Avatar di Z80Fan
 
Iscritto dal: Sep 2009
Messaggi: 638
Quote:
Originariamente inviato da idt_winchip Guarda i messaggi
Ciao Z80Fan, ho visto il tuo progetto, leggendo il titolo così entusiasta mi son detto: "eccone un altro" , e invece vedo che sei stato bravo.
Ho lavorato in una azienda che sviluppa un sistema operativo embedded multipiattaforma opensource, BeRTOS , ho dato un occhiata al vostro sorgente, per aver fatto tutto da soli siete stati davvero bravi.
Complimenti.
Mi iscrivo al thread perchè sono curioso degli sviluppi, se non avessi fin troppi problemi di tempo mi sarebbe piaciuto contribuire.
Davvero bel progetto, bravi!
Grazie
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Per quanto riguarda il driver VESA, ci sono due possibilità.La prima è mettere nel primo MB di memoria delle apposite routine 8086 per richiamare i servizi int 10h del VESA. L'uso sarebbe il seguente:
- inizializzo un'opportuna zona di memoria coi dati condivisa e accessibile alla routine 8086;
- richiamo una routine per lo switch in real mode (dal protected mode) passandogli l'indirizzo della routine 8086 da eseguire;
- a questo punto viene eseguito il codice 8086 che richiama l'int 10h e memorizza nella zona di memoria "condivisa" i risultati;
- la routine 8086 richiama un'opportuna routine di servizio per il ritorno alla modalità protetta (nel punto successivo alla chiamata).
Esatto, era la mia stessa idea
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
La seconda possibilità riguarda l'uso di task che gira in modalità Virtual 8086, che si occupa di eseguire il codice 8086 ivi compreso quello per richiamare i servizi VESA. In questo modo si eviterebbe lo switch del processo corrente dalla modalità protetta a quella reale, e poi il viceversa, perché verrebbe gestito tutto in maniera trasparente (e veloce, suppongo) dal processo Virtual 8086 e dal monitor Virtual 8086 (che gira in modalità protetta, ed è necessario per controllare il precedente processo).
La vm86 la voglio completamente scartare, sia per la sua non semplicissima implementazione, sia perchè nei sistemi a 64bit non funziona.

Quote:
Originariamente inviato da cdimauro Guarda i messaggi
- il codice per lo switch da e per la modalità reale è già disponibile;
- non devi richiamare in continuazione i servizi VESA
Esatto. Vedo che quindi non abbiamo altra scelta

Aggiornamento
Mi servirebbero 2 favori:
- Qualcuno che legga velocemente come funziona il caricamento dei moduli da GRUB (la versione 1)
- Qualcuno che sappia leggere ed estrarre informazioni dai file ELF
Per fare ---> Caricamento moduli e inizio framework per kernel modulare
__________________
| Il mio "OS" (thread su HWU) | |
Z80Fan è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 20:01   #110
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Mah. A naso non mi sembra così complicato (ormai mi sono fatto le ossa con la VM di Python ).

Una volta realizzata l'apposita VM, penso che la strada dovrebbe essere tutta in discesa. Per lo meno utilizzando il più possibile codice Python.

E sai perché? Perché dopo la VM metterei in piedi una shell interattiva Python che mi permetterebbe di sperimentare pezzi di codice dall'interno dello stesso s.o., senza quindi il classico processo di:
- edita il file;
- compila;
- aggiorna la partizione della macchina virtuale;
- fai partire la macchina virtuale;
- esegui il codice.

Ancora più interessante per me è la possibilità di scrivere facilmente una batteria di test sfruttando dei mock per simulare le parti critiche del s.o..

Insomma, non la vedo una cosa così difficile. Anzi.
caro Cesare, é inutile che scrivi col tono di quello che ci sta riflettendo per la prima volta
lo sai perfettamente che i linguaggi managed sono il futuro anche nel settore dei sistemi operativi
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 20:03   #111
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da khelidan1980 Guarda i messaggi
l'unica cosa è appunto,che prima di partire con l'os,bisogna smazzarsi la macchina virtuale!E non una vm qualsiasi,una che possa essere eseguita in un contesto un po particolare,tipo senza sistema operativo!
finalmente un vero microkernel.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 20:07   #112
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Non sono tutto. E comunque con meccanismi come JIT sarebbero decenti.
in teoria mediamente uguali a quelle dei linguaggi compilati in codice nativo visto che alla fine sempre codice nativo vai ad eseguire, ma anche in virtu del fatto che la compilazione JIT si basa su profiling effettivo praticato in maniera automatica e sistematica a runtime.

poi certo, prima di giudicare in queste cose bisogna fare solamente una cosa: provare, vedere, misurare ed infine confrontare. ok, in effetti sono 4
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 20:08   #113
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da fero86 Guarda i messaggi
caro Cesare, é inutile che scrivi col tono di quello che ci sta riflettendo per la prima volta
lo sai perfettamente che i linguaggi managed sono il futuro anche nel settore dei sistemi operativi
Questo sì, ne sono più che convinto, ma il mio pallino rimane sempre Python, che pone delle sfide non di poco conto rispetto a C# o Java.
Quote:
Originariamente inviato da fero86 Guarda i messaggi
in teoria mediamente uguali a quelle dei linguaggi compilati in codice nativo visto che alla fine sempre codice nativo vai ad eseguire, ma anche in virtu del fatto che la compilazione JIT si basa su profiling effettivo praticato in maniera automatica e sistematica a runtime.

poi certo, prima di giudicare in queste cose bisogna fare solamente una cosa: provare, vedere, misurare ed infine confrontare. ok, in effetti sono 4
Dipende anche dal linguaggio.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2010, 20:16   #114
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da cionci Guarda i messaggi
(un piccolo esempio può essere il bound checking nell'uso dei vettori, sempre presente nei linguaggi di alto livello).
giustissimo, ma non vuol dire che non si possa risolvere. un buon inizio verso la soluzione a mio parere é fare la differenza tra vettore e buffer: chiamiamo vettore un array di dimensioni orientativamente piccole (per es. una dozzina di elementi) usato per scopi logici nel codice del programma, e chiamiamo buffer un array di dimensioni potenzialmente elevate il cui scopo é contenere dati, come ad esempio un'immagine, una sequenza audio o addirittura video (eventualmente tramite file mapping). é chiaro che il vettore deve essere gestito tramite bound checking mentre il buffer deve essere gestito tramite bulk operations efficienti (le stesse usate in NIO di Java).
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2010, 12:40   #115
Z80Fan
Senior Member
 
L'Avatar di Z80Fan
 
Iscritto dal: Sep 2009
Messaggi: 638
[OT]
Cose come queste non dovrebbero succedere in un sistema operativo "avanzato"
http://z80fan.altervista.org/immagin...oken-small.png
Possibile causa: il driver proprietario nvidia (lo schermo lampeggiava come se fosse stavo fuori sincronia, quindi presumo un errore nel driver)
Altro: mi sono sparite le icone del desktop ! Forse un bug nel server X.
Altro ancora: certe volte il sistema non risponde più ai comandi del mouse e tastiera, anche se il puntatore si muove correttamente. Sempre un possibile bug di X.
[/OT]
__________________
| Il mio "OS" (thread su HWU) | |

Ultima modifica di Z80Fan : 05-01-2010 alle 12:43. Motivo: sistemato link
Z80Fan è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2010, 13:36   #116
zulutown
Senior Member
 
Iscritto dal: Jul 2009
Messaggi: 1160
Quote:
Originariamente inviato da Z80Fan Guarda i messaggi
[OT]
Cose come queste non dovrebbero succedere in un sistema operativo "avanzato"
http://z80fan.altervista.org/immagin...oken-small.png
Possibile causa: il driver proprietario nvidia (lo schermo lampeggiava come se fosse stavo fuori sincronia, quindi presumo un errore nel driver)
Altro: mi sono sparite le icone del desktop ! Forse un bug nel server X.
Altro ancora: certe volte il sistema non risponde più ai comandi del mouse e tastiera, anche se il puntatore si muove correttamente. Sempre un possibile bug di X.
[/OT]
X non è un OS
__________________
Web2.0 Guides And Tutorials SLR: Canon 6D ZOOM: Canon EF 24-105mm f/4L IS USM FISSI: - Canon EF 28mm f/1.8 USM - Canon EF 40mm f/2.8 STM - Canon EF 50mm f/1.4 USM - Canon EF 100mm f/2 USM - Canon EF 200mm f/2.8L USM II ALTRO: Canon 430 EX II
zulutown è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2010, 13:42   #117
Z80Fan
Senior Member
 
L'Avatar di Z80Fan
 
Iscritto dal: Sep 2009
Messaggi: 638
Quote:
Originariamente inviato da zulutown Guarda i messaggi
X non è un OS
Io intendevo Ubuntu, infatti ho anche specificato "server X"
__________________
| Il mio "OS" (thread su HWU) | |
Z80Fan è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2010, 13:58   #118
Sgurbat
Senior Member
 
L'Avatar di Sgurbat
 
Iscritto dal: Aug 2002
Messaggi: 4371
Domanda da ignorante al cubo: come mai generalmente quando si progetta un OS vedo spesso che si usa un linguaggio "vecchio" e non OOP come C?

E' solo per questioni di prestazioni o ci sono anche altri motivi?

Ad esempio perchè non in C++, Java, Python, Ruby ecc.?

Tnx.
Sgurbat è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2010, 14:06   #119
M4rk191
Senior Member
 
L'Avatar di M4rk191
 
Iscritto dal: Sep 2008
Messaggi: 1224
Quote:
Originariamente inviato da Sgurbat Guarda i messaggi
Domanda da ignorante al cubo: come mai generalmente quando si progetta un OS vedo spesso che si usa un linguaggio "vecchio" e non OOP come C?

E' solo per questioni di prestazioni o ci sono anche altri motivi?

Ad esempio perchè non in C++, Java, Python, Ruby ecc.?

Tnx.
Java, Python e Ruby necessitano di una VM, se leggi i post di cdimauro, capisci. Il C++ è OOP, ma l'approccio che si intende usare dipende dal programmatore. Riguardo alle prestazioni, non credo ci sia molta differenza, i compilatori sono "maturi" ormai, e il C++ esiste da prima che il linguaggio C divenisse uno standard. Gli altri sapranno darti motivazioni più valide, ma dalla mia ignoranza, questo posso dirti
__________________
MacBook 6,1|2,26 Ghz C2D|2GB 1067 Mhz DDR3|GeForce 9400M|Mac OSX 10.6.2
M4rk191 è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2010, 14:27   #120
Z80Fan
Senior Member
 
L'Avatar di Z80Fan
 
Iscritto dal: Sep 2009
Messaggi: 638
Quote:
Originariamente inviato da Sgurbat Guarda i messaggi
Domanda da ignorante al cubo: come mai generalmente quando si progetta un OS vedo spesso che si usa un linguaggio "vecchio" e non OOP come C?

E' solo per questioni di prestazioni o ci sono anche altri motivi?

Ad esempio perchè non in C++, Java, Python, Ruby ecc.?

Tnx.
Come dice M4rk191, Python, Java, Ruby necessitano di una macchina virtuale per girare, in quanto sono linguaggi interpretati (non Java ma è sempre bytecode che deve essere interpretato), quindi bisogna sviluppare una macchina virtuale che è tale e quale un kernel che stiamo sviluppando noi.
Il c++ è compilato, quindi non ha questo problema, ma ha molte particolarità che non vanno bene per la scrittura di un kernel, ti rimando a questa pagina http://wiki.osdev.org/C%2B%2B. Sostanzialmente sono i vari costruttori e distruttori e gli operatori new e delete che necessitano un supporto del sistema operativo, si possono bypassare ma non avevo voglia.
Il C è cmq un'ottima scelta per scrivere un sistema operativo, anzi, è stato fatto apposta per scrivere sistemi operativi (lo hanno inventato per scrivere la primissima versione di Unix, viste le limitazioni del BCPL e del B). Oltre a non avere troppi fronzoli come linguaggio, ti permette di avere un elevato controllo sull'hardware, senza modifiche da parte di un interprete. Cmq un sistema operativo lo puoi scrivere in qualsiasi linguaggio, anche in Basic, basta che hai un compilatore che te lo traduce.

Il nostro kernel sarà scritto in C, ma questo non vuol dire che anche i moduli debbano essere scritti in C. Dopo aver finito il kernel base si può scrivere qualsiasi macchina virtuale Java-Python-Ruby per scrivere i moduli (per la felicità di cdimauro e RyUzAkI )
__________________
| Il mio "OS" (thread su HWU) | |
Z80Fan è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo ThinkVision 3D 27, la steroscopia senza occhialini Lenovo ThinkVision 3D 27, la steroscopia senza o...
La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing La Formula E può correre su un tracciato ...
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming Lenovo LEGION e LOQ: due notebook diversi, stess...
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione Nothing Ear e Ear (a): gli auricolari per tutti ...
Sony FE 16-25mm F2.8 G: meno zoom, più luce Sony FE 16-25mm F2.8 G: meno zoom, più lu...
Samsung: con la V-NAND di nona generazio...
roborock Q5 Pro+: robot aspirapolvere co...
iPhone 15 256 GB scende a 899€ e il mode...
Windows 11 24H2, nuova conferma: verrann...
AGCM apre istruttoria su Enel: presunte ...
Cuffie Sennheiser MOMENTUM 4 Wireless: q...
SSD 1080 PRO non è quello che pen...
Ring Intercom ed Echo Pop: sconto imperd...
ASML, intesa con il governo olandese: pi...
Portatile Low cost potentissimo: AMD Ryz...
I nuovi coupon nascosti di Amazon: ecco ...
Torna il super tablet da 109€ con displa...
Continuano le super offerte su Google Pi...
Meta copia Microsoft con Windows: il sis...
Blackmagic Design: arriva il nuovo softw...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:46.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www2v