Qual è la relazione tra la riga di comando, il sistema operativo e il microprocessore? [chiuso]

-1

Non sono del tutto chiaro su come utilizzare la riga di comando differisce dal lavorare attraverso l'interfaccia del sistema operativo usando un editor per esempio. Ovviamente l'interfaccia utente è diversa, ma voglio capire come la riga di comando interagisce con il kernel e il microprocessore, e come questo si confronta con il kernel nell'interfaccia con la GUI del sistema operativo. So che mi mancano diversi livelli di astrazione, ma sarei grato che qualcuno lo spiegasse.

    
posta br3w5 29.09.2012 - 00:23
fonte

2 risposte

2

Per capire quale sia la linea di comando devi capire che nel sistema operativo moderno, in particolare i sistemi operativi kernel monolitici, come Linux, MacOSx e Windows. Questo tipo di sistemi operativi può essere descritto all'astrazione più semplice come separata in un "kernel" di base che esegue programmi critici di sistema che il sistema operativo dipende (gestione della memoria, gestori di interrupt [IE: quando si digita una chiave, questo è un esempio di l'hardware interrompe il sistema operativo deve essere interrotto per indirizzare immediatamente], ect) e una "shell" di userland in cui vengono eseguiti il desktop di Windows e tutti i programmi. (navigazione sul Web, giochi, ecc.)

Il tipico utente PC non si preoccupa mai di cosa succede nel kernel, perché tutto ciò con cui interagiscono viene fatto attraverso il software di interfaccia userland. Il sistema operativo dipende dal fatto che il software di esecuzione del kernel sia stabile per funzionare correttamente, pertanto l'utente è tipicamente completamente impedito o molto limitato dall'interazione diretta con il kernel.

Quindi la riga di comando consente di eseguire piccoli programmi userland chiamati strumenti. Questi strumenti forniscono un'interfaccia per chiamare nel sistema operativo tramite (chi avrebbe indovinato) le chiamate di sistema. Se stai scrivendo un programma e hai bisogno di un blocco di memoria. Si può pensare al malloc di C come chiamare il kernel per chiedere se è possibile controllare qualche memoria inutilizzata per un po '. Quindi, quando chiami Free su quella memoria, stai fondamentalmente lasciando che il sistema operativo sappia che hai finito e può riutilizzare quella memoria per altri thread di sistema che sono in esecuzione contemporaneamente (altri programmi che funzionano in background, ecc.)

Il kernel interagisce con la CPU disponendo istruzioni binarie di codice in memoria in modo che la CPU possa essere alimentata con le istruzioni successive necessarie per eseguire ogni ciclo di clock. (2,5 ghz = ~ 2,5 milioni di cicli di clock al secondo, che in un mondo teorico perfetto ~ = 2,5 milioni di istruzioni la CPU elabora / sec.)

Il modo in cui funziona il binario, è che ogni chip è progettato in un modo molto complesso in cui pattern diversi di 1 e 0 fanno sì che il chip instradi i dati in punti diversi sulla scheda madre.

E questo è in breve un computer. (boom-boom tish)

    
risposta data 29.09.2012 - 04:33
fonte
2

La riga di comando è solo un'altra interfaccia al sistema operativo. È più facilmente comprensibile se lo chiami interprete dei comandi . Ciò che fa è immettere comandi in forma di testo, analizzarli per determinarne il significato e effettuare chiamate al SO sottostante in base al significato.

Non è molto diverso da quello che fa un interprete di comandi grafico, come la shell "Explorer" di Windows. Inserisce comandi da tastiera e mouse, li interpreta in base alle regole dell'interfaccia utente per determinarne il significato e fa chiamate al SO sottostante in base al significato.

Ad esempio, se sono al prompt di DOS e scrivo myProgram.exe , cercherà la directory corrente e il percorso e, se trova myProgram.exe , effettua una chiamata alla funzione OS che avvia un nuovo processo, girando su un'istanza del programma.

L'operazione equivalente nella GUI consiste nel fare doppio clic sull'icona per myProgram.exe o su un collegamento ad essa. Poiché la posizione esatta del programma è già nota dal contesto, non è necessario cercare l'EXE; fa semplicemente una chiamata alla funzione OS che avvia un nuovo processo, facendo ruotare un'istanza del programma.

Nessuna di queste cose ha molto a che fare con il microprocessore, tranne nel senso che tutto gira sulla CPU. Se intendevi chiedere se i comandi inseriti dalla riga di comando parlano direttamente alla CPU, la risposta è no. Sono descritti in un linguaggio leggibile dall'uomo e, come ogni altro comando leggibile da un computer, (come i linguaggi di programmazione), devono essere analizzati in base alle regole grammaticali specificate in precedenza.

    
risposta data 29.09.2012 - 01:50
fonte

Leggi altre domande sui tag