Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
Abbiamo provato per diverse settimane il nuovo Magic V5 di HONOR, uno smartphone pieghevole che ci ha davvero stupito. Il device è il più sottile (solo 4.1mm) ma non gli manca praticamente nulla. Potenza garantita dallo Snapdragon 8 Elite, fotocamere di ottima qualità e batteria in silicio-carbonio che garantisce un'ottima autonomia. E il Prezzo? Vi diciamo tutto nella nostra recensione completa.
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro)
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro)
Google Pixel 10 Pro XL è il top di gamma della serie Pixel, presentando un ampio display Super Actua da 6.8 pollici insieme alle novità della serie, fra cui la ricarica wireless magnetica Pixelsnap e le nuove funzionalità AI avanzate. Il comparto fotografico include un sistema a tripla fotocamera con zoom Pro Res fino a 100x, mentre il processore Tensor G5 con 16GB di RAM garantisce prestazioni percepite molto elevate su Android.
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Forte della piattaforma Qualcomm Snapdragon X, il notebook Lenovo IdeaPad Slim 3 riesce a coniugare caratteristiche tecniche interessanti ad uno chassis robusto, con autonomia di funzionamento a batteria che va ben oltre la tipica giornata di lavoro. Un notebook dal costo accessibile pensato per l'utilizzo domestico o in ufficio, soprattutto con applicazioni native per architettura ARM
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-07-2007, 23:03   #1
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
[c] compilazione a basso livello sistemi operativi

Essendo un sistema operativo un ' entita multistrato con diramazioni a livello molto basso fino alla comunicazione diretta con l' hardware,per quello che si puo dire su un sistema molto complicato oltre al lingiaggio macchina e al c oggi quali altri linguaggi si utilizzo per lo sviluppo di un SO.Quali ambienti di sviluppo si utilizzano e come avviene la compilazione e l' integrazioni di entità molto differenti.Mi incuriosce molto la compilazione di una struttura che poi dovrà essere la primaria sulla macchina.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2007, 10:07   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Dipende da che "livello" parti.
Se hai già un sistema operativo compatibile con quello che vuoi compilare si tratta solo di andare ad utilizzare la libreria precompilata per quel dato sistema operativo.
Se invece crei per la prima volta un sistema operativo, mettiamo di essere a livelli moooolto bassi, cioè sulla macchina non c'è niente, devi far uso di un altro sistema operativo e fare un cross compiling per la macchina ospite.

Prima di tutto non puoi fare uso della libreria standard del C o del C++ per tutte quelle cose che accedono al sistema operativo.
Quindi devi cominciare riscrivendoti delle routine di base che sfruttino inizialmente le routine messe a disposizione dal bios per permetterti di fare un minimo di debug visuale (in particolare output di testo). Quando si è arrivati a mettere la macchina ospite nello stato necessario per avviare il nostro sistema operativo (modalità del processore e della memoria desiderata) bisogna cominciare a scrivere le nostre routine di gestione delle interruzioni. In questo modo si creano le fondamenta sulle quali si baseranno tutte le system call del nostro sistema operativo. Le operazione basilari riguardano principalmente l'allocazione e la deallocazione di memoria e l'output.
In questo modo sarà possibile andare a cominciare a creare un kernel base del sistema operativo.
Successivamente si aggiungeranno man mano le altre routine di gestione delle interruzioni insieme ai rispettivi driver di periferica. Ad esempio la routine di gestione dell'input da tastiera dovrà appoggiarsi al driver della tastiera.
Si va avanti così, ingrandendo sempre più il sistema.
Inizialmente il sistema sarà completamente caricato in memoria in maniera monolitica dal disco di avvio, poi verrà implementato un file system (almeno inizialmente il più semplice possibile, magari mappato in memoria) ed a questo punto sarà possibile implementare una shell.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2007, 11:33   #3
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Essendo un sistema operativo un ' entita multistrato con diramazioni a livello molto basso fino alla comunicazione diretta con l' hardware,per quello che si puo dire su un sistema molto complicato oltre al lingiaggio macchina e al c oggi quali altri linguaggi si utilizzo per lo sviluppo di un SO.
nessuno: i linguaggi usati sono quelli. i kernel odierni sono scritti in C con piccole parti di assembly necessarie ad effettuare nelle prime fasi di avvio i settaggi del processore (per esempio per farlo entrare in modalità protetta), nonché per fare I/O diretto sull'hardware. so di un solo kernel scritto in C++, ed era quello di BeOS. dicono che si trattasse di un ottimo sistema operativo e non esito a crederlo, ma purtroppo è fallito.

Quote:
Quali ambienti di sviluppo si utilizzano e come avviene la compilazione e l' integrazioni di entità molto differenti.
come ambiente di sviluppo usi quello che ti pare: puoi usare Blocco Note come puoi usare Visual C++ 2005, ma ti servirà solo come editor di testo perché poi la compilazione avverrà a parte, tipicamente tramite makefiles. conosci l'utility make?

Quote:
Mi incuriosce molto la compilazione di una struttura che poi dovrà essere la primaria sulla macchina.
la compilazione di un sistema operativo consiste semplicemente nella compilazione di tante comunissime immagini eseguibili. Windows per esempio è costituito da normalissimi files .exe e .dll
l'unica piccola eccezione a ciò è la compilazione del bootloader: il bootloader è costituito essenzialmente da due parti, un piccolo pezzo di codice eseguibile in formato binario puro (ci sono le istruzioni di assembly e basta) ed un altro eseguibile più grosso che può essere in vari formati a seconda delle scelte progettuali di chi scrive il bootloader. il primo pezzo altro non è che quello che va a finire direttamente nei primi settori della partizione su cui è installato il sistema operativo, e deve essere in formato binario puro perché la CPU al caricamento lo legge in RAM e lo esegue così com'è. tuttavia programmare in quelle condizioni (cioè in assembly in modalità reale a 16 bit) è estremamente scomodo, e di conseguenza questa prima parte del bootloader deve fare il meno possibile: si occupa di entrare in modalità protetta a 32 bit, di organizzare un memory model decente, di leggere dal disco il resto del bootloader vero e proprio, e di lanciare quello. il resto del bootloader è più comodo da programmare perché a quel punto può essere scritto tranquillamente in C a 32 bit. su Windows il bootloader si trova nel file NTLDR (senza estensione), il quale deve essere localizzato alla radice della partizione in cui è installato il sistema (tipicamente il file è C:\NTLDR, per vederlo in Esplora Risorse devi impostare l'opzione per visualizzare i files nascosti e i files di sistema).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2007, 11:38   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da 71104 Guarda i messaggi
Windows per esempio è costituito da normalissimi files .exe e .dll
aggiungo: in effetti non ci sono solo .exe e .dll, come estensioni puoi trovare anche .sys (estensione tipica per i drivers), .ocx (gli ActiveX), ed .scr (gli screensavers). ma il succo del discorso non cambia perché exe, dll, sys e quant'altro sono tutti esattamente la stessa cosa: sono immagini eseguibili, e sono memorizzate nello stesso identico formato (a meno di un unico bit nel'header che dice se quell'eseguibile può essere lanciato in maniera diretta, come gli exe e come gli scr).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2007, 11:40   #5
W.S.
Senior Member
 
L'Avatar di W.S.
 
Iscritto dal: Nov 2005
Messaggi: 1868
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Mi incuriosce molto la compilazione di una struttura che poi dovrà essere la primaria sulla macchina.
Se vuoi "toccare con mano" buttati su linux, puoi ricompilarlo, modificarlo, studiarlo come ti pare.
__________________
[ W.S. ]
W.S. è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2007, 12:21   #6
sukoy27k
Senior Member
 
Iscritto dal: May 2003
Città: Napoli
Messaggi: 1344
Quote:
Originariamente inviato da 71104 Guarda i messaggi
come ambiente di sviluppo usi quello che ti pare: puoi usare Blocco Note come puoi usare Visual C++ 2005, ma ti servirà solo come editor di testo perché poi la compilazione avverrà a parte, tipicamente tramite makefiles. conosci l'utility make?
uno solo appunto...in Visual Studio....tasto destro sul progetto Configuration Properties->General->Configuration Type->MakeFile...un batch farebbe la stessa cosa ma perchè farlo se già c'è
sukoy27k è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 07:33   #7
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Il salto di qualita' e' stato fatto, appunto, introducendo i linguaggi ad alto livello per la scrittura del sistema operativo e riducendo le parti scritte in assembler al minimo indispensabile.

Oltre ai linguaggi gia' citati, discreti successi sono stati ottenuti utilizzando i linguaggi PASCAL e JAVA.
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 07:35   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da sottovento Guarda i messaggi
e JAVA.

Per quale sistema operativo ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 07:38   #9
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da cionci Guarda i messaggi

Per quale sistema operativo ?
So di molti tentativi (riusciti), anche da Apple e Sun stessa. Ho letto diversi articoli in proposito. Se ho tempo, posto una lista di cosa si puo' trovare in giro...
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 07:47   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ok
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 08:02   #11
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
Quote:
Originariamente inviato da sottovento Guarda i messaggi
So di molti tentativi (riusciti), anche da Apple e Sun stessa. Ho letto diversi articoli in proposito. Se ho tempo, posto una lista di cosa si puo' trovare in giro...
intendi una roba del genere?
http://www.tuxjournal.net/?p=15
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 08:12   #12
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da recoil Guarda i messaggi
intendi una roba del genere?
http://www.tuxjournal.net/?p=15
Non lo conoscevo. Beh, pero' mi permette di giustificare quello che ho scritto .

Comunque posso riportare anche
http://en.wikipedia.org/wiki/Object-...erating_system

che mi fa venire in mente che abbiamo dimenticato di citare, fra i linguaggi, l'Objective-C, che so essere molto usato da un assiduo (e simpatico) frequentatore di questo forum
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 08:14   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da recoil Guarda i messaggi
intendi una roba del genere?
http://www.tuxjournal.net/?p=15
Un kernel C/C++ con applicazioni Java a quanto sembra...

Comunque mi sembra che non si riesca in ogni caso ad usare solo Java e assembly, ma serve sempre anche un terzo linguaggio, virtual machine a parte ovviamente (questa deve essere scritta sempre in C o C++).

Ultima modifica di cionci : 02-08-2007 alle 08:16.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 10:23   #14
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Il salto di qualita' e' stato fatto, appunto, introducendo i linguaggi ad alto livello per la scrittura del sistema operativo e riducendo le parti scritte in assembler al minimo indispensabile.

Oltre ai linguaggi gia' citati, discreti successi sono stati ottenuti utilizzando i linguaggi PASCAL e JAVA.
E come farebbe un codice Java puro a gestire direttamente la memoria?

Mi sono sempre chiesto come si potrebbe fare a scrivere la JVM in Java.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 11:22   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Mi sono sempre chiesto come si potrebbe fare a scrivere la JVM in Java.
Ovviamente non si può
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 11:25   #16
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Mi sono sempre chiesto come si potrebbe fare a scrivere la JVM in Java.
beh potresti pure scriverla in Java, ma ti servirebbe un compilatore in grado di generare codice eseguibile su quella macchina, altrimenti avresti bisogno di una VM sulla quale far girare la JVM
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 14:22   #17
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da recoil Guarda i messaggi
beh potresti pure scriverla in Java, ma ti servirebbe un compilatore in grado di generare codice eseguibile su quella macchina, altrimenti avresti bisogno di una VM sulla quale far girare la JVM
Per scrivere la JVM in Java dovresti avere la possibilità all'interno del linguaggio di gestire direttamente la (de)allocazione della memoria, l'algoritmo di GC ad un certo punto dovrà fare una "delete" che non è una operazione contemplata da Java.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 14:35   #18
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Per scrivere la JVM in Java dovresti avere la possibilità all'interno del linguaggio di gestire direttamente la (de)allocazione della memoria, l'algoritmo di GC ad un certo punto dovrà fare una "delete" che non è una operazione contemplata da Java.
eh già sei sempre lì...
ma poi a che pro scrivere una JVM in Java?

come prossimo step propongo un sistema operativo in Perl (qualcuno pare ci abbia provato)
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 14:37   #19
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Per scrivere la JVM in Java dovresti avere la possibilità all'interno del linguaggio di gestire direttamente la (de)allocazione della memoria, l'algoritmo di GC ad un certo punto dovrà fare una "delete" che non è una operazione contemplata da Java.
o per meglio dire, sarebbe un'operazione che verrebbe affidata al garbage collector del linguaggio, il quale di conseguenza dovrebbe essere implementato automaticamente dal compilatore quando genera il codice eseguibile per la macchina. troppo complicato, è molto meglio realizzare una virtual machine in C++ e poi scrivere tutto il resto in Java.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 15:01   #20
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da recoil Guarda i messaggi
eh già sei sempre lì...
ma poi a che pro scrivere una JVM in Java?

come prossimo step propongo un sistema operativo in Perl (qualcuno pare ci abbia provato)
Se non puoi scrivere la JVM, non puoi scrivere neanche un sistema operativo in Java.
Tutto perchè era stato postato di sistemi operativi scritti in Java, in realtà sono OS nel cui kernel è integrata una JVM ed esguono programmi Java.
tomminno è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli Recensione OnePlus Watch 3 43mm: lo smartwatch c...
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura BOOX Note Air4 C è uno spettacolo: il tab...
3 minuti: è il tempo per vedere l...
Gli Amazfit sono ora gli smartwatch più ...
Rowenta alza la posta: scopa elettrica s...
6 robot per le pulizie completi in offer...
Friggitrice ad aria Cecofry Full InoxBla...
iPhone 16 Pro Max a 10€ in più del minim...
Una chiavetta USB, ma SanDisk Ultra Slid...
La bolla dell'AI: perché l'econom...
Lo smartphone dovrebbe essere usato solo...
SpaceX: i video e le foto dello spettaco...
Anche a Pescara si passa ai fatti: e-bik...
La One UI 8 è pronta: Samsung con...
Xiaomi annuncia l'arrivo in Italia dei R...
La Cina stupisce ancora: test per la tur...
L'iconico iMac G3 diventerà un set LEGO?...
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: 04:42.


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