Come utilizzare un computer senza un sistema operativo? [duplicare]

6

Come può essere utilizzato un computer quando non esiste un sistema operativo?

Quali strumenti o conoscenze ho bisogno per farlo?

Devo dare a tutti i comandi in binario l'utilizzo delle risorse hardware del computer come un monitor?

    
posta user15460 15.07.2014 - 09:41
fonte

3 risposte

8

In caso di assenza di sistema operativo è necessario programmare il processore direttamente utilizzando un linguaggio che comprende. Questo non significa solo la CPU, ma anche altri, come processori di schede grafiche, processori di schede audio, ecc. Ogni processore ha una sorta di linguaggio di base che può capire chiamato set di istruzioni . I set di istruzioni variano tra i modelli di processore e consistono in indirizzamento della memoria, controllo del flusso, istruzioni logiche e aritmetiche. Le operazioni di livello superiore sono costituite da queste istruzioni di base. Il codice scritto utilizzando i set di istruzioni è chiamato codice macchina .

Da lì puoi accedere alle lingue di assemblaggio , che sono di nuovo specifiche per un determinato processore l'architettura e di solito si basa strongmente sulle istruzioni del processore. Questi rendono la scrittura del codice più facile per l'uomo e sono già considerati linguaggi di programmazione, anche se di basso livello. Il codice assembly viene tradotto in macchina utilizzando un assemblatore .

Quindi questi due sono ciò che devi sapere per iniziare a programmare direttamente i computer. Impara il set di istruzioni e il linguaggio di assemblaggio dei processori specifici a portata di mano e come creare operazioni significative utilizzando queste istruzioni di base. Puoi costruire alcune cose complesse usando un assembly da solo, inclusi i programmi di grafica, ad es. vedi link .

Da lì inizia a essere racchiuso in livelli, che forniscono tutte le astrazioni e le API al livello più basso: linguaggi, driver, kernel, SO e framework di livello superiore fino alle applicazioni client. Tutto questo codice di livello superiore si traduce in codice macchina alla fine, utilizzando compilatori e interpreti , in modo che il processore possa capire cosa fare.

    
risposta data 15.07.2014 - 10:15
fonte
1

È possibile scrivere codice senza sistema operativo, inserirlo su disco rigido, unità ottica o unità USB, all'indirizzo specifico ed eseguirlo. È anche possibile eseguire tale codice dalla rete (opzione di avvio di rete).

Inoltre è possibile eseguire il codice come un BIOS di estensione, beh, in effetti i jumper della CPU salgono al codice utente e né il BIOS né il sistema operativo funzionano, ma il codice utente lo fa.

Ecco alcuni esempi di schede PCI di sicurezza russe, che eseguono il proprio programma prima che qualsiasi sistema operativo possa assumere un controllo. Le schede, in breve, servono per l'identificazione e l'autenticazione degli utenti ed eseguono interfacce grafiche, possono funzionare con file system, ecc.

  • Crypton zamok

    
risposta data 15.07.2014 - 13:12
fonte
1

I computer non hanno bisogno di sistemi operativi, indipendentemente dalla lingua. (I computer girano sul codice nativo indipendentemente dal fatto che esista o meno un sistema operativo.)

Nei sistemi embedded, ci sono due modelli fondamentali: 1) Il lavoro termina in un interrupt e il tempo rimanente è in un ciclo in background. 2) Il lavoro termina nel loop in background e gli interrupt vengono utilizzati per attività veloci (come i timer incrementali e I / O).

Ci sono casi in cui un processore esegue il codice nella sua memoria {read-only}, quindi si spegne.

Ricorda che i PC desktop non sono gli unici computer. I forni a microonde, le lavastoviglie e i telecomandi TV sono tutti dotati di computer; così come le auto moderne. Alcune piattaforme sono troppo piccole per considerare un sistema operativo (come un forno a microonde o una lavastoviglie), mentre quelle più grandi hanno sistemi operativi Real-Time (RTOS) come stampanti e automobili.

Per quanto riguarda gli strumenti, è necessario un sistema di compilazione che possa prendere un linguaggio e compilarlo al processore del sistema di destinazione. È necessario in qualche modo ottenere quell'eseguibile nella piattaforma. Sarebbe anche utile un debugger "remoto". Questi sono gli strumenti di base. Puoi trovarli in un unico IDE o puoi ottenere pezzi diversi da diversi fornitori. In generale, gli strumenti dipendono dal processore di destinazione. Se la tua piattaforma di destinazione è un controller PIC, allora un IDE che crea programmi per un processore Pentium non ti è di alcuna utilità.

I comandi del debugger o del monitor in binario sono una scuola antica. La maggior parte dei "monitor" accettano i comandi attraverso una porta terminale e spesso includono sezioni di "aiuto" per quando si dimentica l'elenco dei comandi o la sintassi. Nei tempi moderni, il binario viene utilizzato principalmente per impostare e cancellare i bit nei registri hardware o nei campi in protocolli ben confezionati. Il binario non è amichevole e non efficiente. Quindi, in tempi di necessità di produrre codice in modo efficiente, il binario è stato messo da parte.

    
risposta data 16.07.2014 - 02:04
fonte

Leggi altre domande sui tag