I programmi sono normali eseguibili scritti in qualsiasi linguaggio (principalmente C).
La shell accetta un comando immesso che è solo una stringa. Quindi cerca alcune sequenze di caratteri che hanno un significato speciale per la shell come le variabili ambientali che sono $
seguito da una parola o reindirizzamenti che sono >
seguito da un sentiero. Dopo che questa sostituzione è stata eseguita, ha una stringa che viene suddivisa in spazi per generare un nome di un eseguibile e parametri. La shell cercherà quindi l'eseguibile nell'elenco delle directory nella variabile ambientale PATH. La shell utilizza quindi le chiamate di sistema per creare un processo dall'eseguibile con i parametri.
Ad esempio per eseguire il comando ls $HOME
la shell riconoscerà prima quel $HOME
è una variabile ambientale e sostituiscila con il suo valore in questo caso /home/user
lasciando il comando ls /home/user
. Quindi suddivide il comando nello spazio per ottenere il nome dell'eseguibile ls
e parametro /home/user
. La shell trova il primo eseguibile che corrisponde a ls
di solito /bin/ls
. Quindi utilizza ether le chiamate di sistema spawn()/ posix_spawn() o fork() ed exec() per creare il nuovo processo.
La maggior parte delle utilità di base in Linux sono scritte in C
.Questo puoi verificarlo in busybox source code
che supporta la maggior parte delle utilità di comando linux di base che sono scritte in C
.Quindi comandi come ls,cd ...etc sono in c
Come la shell interpreterà il check-in sotto il link
in un sistema operativo c'è un programma speciale chiamato shell. La shell accetta comandi leggibili dall'uomo e li traduce in qualcosa che il kernel può leggere ed elaborare.
http://www.math.iitb.ac.in/resources/manuals/Unix_Unleashed/Vol_1/ch08.htm
Questi programmi sono principalmente scritti nel linguaggio di programmazione C così come il kernel Linux.