Programy to zwykłe pliki wykonywalne napisane w dowolnym języku (najczęściej C).
Powłoka przyjmuje wprowadzone polecenie, które jest po prostu ciągiem. Następnie wyszukuje określone sekwencje znaków, które mają specjalne znaczenie dla powłoki, takie jak zmienne środowiskowe, po których następuje słowo lub przekierowania, które są >
, po których następuje ścieżka. Po wcześniejszym zastąpieniu tej substytucji ma ciąg znaków, który jest dzielony na spacje w celu wygenerowania nazwy pliku wykonywalnego i parametrów. Powłoka następnie wyszuka plik wykonywalny na liście katalogów w zmiennej środowiskowej PATH. Powłoka następnie używa wywołań systemowych, aby utworzyć proces z pliku wykonywalnego z parametrami.
Na przykład, aby wykonać polecenie ls $HOME
powłoka musi najpierw uznać, że $HOME
jest zmienna na środowisko i zastąpić go do jego wartości w tym przypadku /home/user
opuszczającej polecenie ls /home/user
. Następnie dzieli polecenie na spację, aby uzyskać nazwę pliku wykonywalnego ls
i parametr /home/user
. Powłoka znajduje pierwszy plik wykonywalny, który pasuje do ls
zwykle /bin/ls
. Następnie używa ether wywołania systemowe spawn()/posix_spawn() lub fork() i exec() w celu utworzenia nowego procesu.
Jestem początkujący i bardzo się zdezorientowany. To może wyjaśnić mi w znacznie lepszy sposób. – CODError
Nie jestem pewien, ale myślę, że są napisane w językach Assembly. Sprawdź [tutaj] (http://en.wikipedia.org/wiki/Assembly_language), aby dowiedzieć się więcej na temat montażu. –