Program dapat dieksekusi biasa yang ditulis dalam bahasa apa pun (kebanyakan C).
Shell mengambil perintah yang dimasukkan yang hanya berupa string. Kemudian mencari urutan karakter tertentu yang memiliki arti khusus pada shell seperti variabel lingkungan yaitu $
diikuti dengan kata atau pengalihan yaitu >
diikuti dengan jalan. Setelah substitusi ini dibentuk sebelumnya, ia memiliki string yang dipisahkan pada spasi untuk menghasilkan nama yang dapat dieksekusi dan parameter. Shell kemudian akan mencari yang dapat dieksekusi dalam daftar direktori di PATH variabel lingkungan. Shell kemudian menggunakan panggilan sistem untuk membuat proses dari yang dapat dieksekusi dengan parameter.
Misalnya untuk menjalankan perintah ls $HOME
shell pertama-tama akan mengenali $HOME
itu adalah variabel lingkungan dan gantikan dengan nilainya dalam hal ini /home/user
meninggalkan perintah ls /home/user
. Itu kemudian membagi perintah ke ruang untuk mendapatkan nama yang dapat dieksekusi ls
dan parameter /home/user
. Shell menemukan executable pertama yang cocok dengan ls
biasanya /bin/ls
. Ia kemudian menggunakan panggilan sistem spawn()/ posix_spawn() atau fork() dan exec() untuk membuat proses baru.
Sebagian besar utilitas dasar di linux ditulis dalam C
.Ini dapat Anda verifikasi di busybox source code
yang mendukung sebagian besar utilitas perintah linux dasar yang ditulis dalam C
.Jadi perintah seperti ls,cd ...etc ada di c
Bagaimana shell akan menginterpretasikan tautan di bawah ini
dalam sebuah sistem operasi terdapat program khusus yang disebut shell. Shell menerima perintah yang dapat dibaca manusia dan menerjemahkannya menjadi sesuatu yang dapat dibaca dan diproses oleh kernel.
http://www.math.iitb.ac.in/resources/manuals/Unix_Unleashed/Vol_1/ch08.htm
Program-program ini sebagian besar ditulis dalam bahasa pemrograman C seperti halnya kernel linux.