Pourriez vous me dire où trouver les codes sources des commandes de base de linux ( echo , cd , exit...)
Merci par avance
PS: La distribution m'importe pas
Une partie sont la :
http://ftp.gnu.org/pub/gnu/coreutils/
Basile Starynkevitch [news]
Le 08-05-2004, olivier a écrit :
bonjour!
Pourriez vous me dire où trouver les codes sources des commandes de base de linux ( echo , cd , exit...)
Il faut savoir que cd et exit doivent nécessairement être implantés (builtin) dans l'interprete de commandes (bash, zsh etc...), puisqu'il interfacent les appels systèmes chdir(2) et _exit(2) qui doivent être executés par le processus shell lui-même.
En pratique, echo, time, printf sont aussi souvent dans l'interprete de commande, mais il peut exister des binaires /bin/echo etc... aussi
Je conseille donc la lecture d'un bon livre sur les appels systèmes Unix et la programmation système Unix.
-- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basile<at>starynkevitch<dot>net aliases: basile<at>tunes<dot>org = bstarynk<at>nerim<dot>net 8, rue de la Faïencerie, 92340 Bourg La Reine, France
Le 08-05-2004, olivier <thecrafty@hotmail.com> a écrit :
bonjour!
Pourriez vous me dire où trouver les codes sources des commandes de base de
linux ( echo , cd , exit...)
Il faut savoir que cd et exit doivent nécessairement être implantés
(builtin) dans l'interprete de commandes (bash, zsh etc...), puisqu'il
interfacent les appels systèmes chdir(2) et _exit(2) qui doivent être
executés par le processus shell lui-même.
En pratique, echo, time, printf sont aussi souvent dans l'interprete
de commande, mais il peut exister des binaires /bin/echo etc... aussi
Je conseille donc la lecture d'un bon livre sur les appels systèmes
Unix et la programmation système Unix.
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net
aliases: basile<at>tunes<dot>org = bstarynk<at>nerim<dot>net
8, rue de la Faïencerie, 92340 Bourg La Reine, France
Pourriez vous me dire où trouver les codes sources des commandes de base de linux ( echo , cd , exit...)
Il faut savoir que cd et exit doivent nécessairement être implantés (builtin) dans l'interprete de commandes (bash, zsh etc...), puisqu'il interfacent les appels systèmes chdir(2) et _exit(2) qui doivent être executés par le processus shell lui-même.
En pratique, echo, time, printf sont aussi souvent dans l'interprete de commande, mais il peut exister des binaires /bin/echo etc... aussi
Je conseille donc la lecture d'un bon livre sur les appels systèmes Unix et la programmation système Unix.
-- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basile<at>starynkevitch<dot>net aliases: basile<at>tunes<dot>org = bstarynk<at>nerim<dot>net 8, rue de la Faïencerie, 92340 Bourg La Reine, France
no_spam
On Sun, 09 May 2004 07:31:42 +0000, Basile Starynkevitch [news] wrote:
Le 08-05-2004, olivier a écrit :
bonjour!
Pourriez vous me dire où trouver les codes sources des commandes de base de linux ( echo , cd , exit...)
Il faut savoir que cd et exit doivent nécessairement être implantés (builtin) dans l'interprete de commandes (bash, zsh etc...), puisqu'il interfacent les appels systèmes chdir(2) et _exit(2) qui doivent être executés par le processus shell lui-même.
En pratique, echo, time, printf sont aussi souvent dans l'interprete de commande, mais il peut exister des binaires /bin/echo etc... aussi
POSIX dit exactement l'inverse: ces outils doivent impérativement exister en tant que binaires séparés (sinon, on ne peut pas les appeler en C) et peuvent éventuellement être implémentés en tant que builtin, généralement pour des raisons de performances: ça évite des multitudes d'appels systèmes fork();execve(); et d'accès aux disques lors de l'execution de scripts.
Les builtins minimums sont: alias, bg, cd, command, false, fc, fg, getopts, jobs, kill, newgrp, pwd, read, true, umask, unalias, wait. Mais ils doivent impérativement être également implémentés en tant qu'utilitaires à part: "all the standard utilities, including the regular built-ins in the table, but not the special built-ins described in Special Builltins Utilities, shall be implemented so that they can be accessed via the exec family of functions...". Les special builtins sont des fonctions qui n'ont un sens que dans un script shell: break, colon, continue, dot, eval, exec, exit, export, readonly, return, set, shift, times, trap, unset.
On Sun, 09 May 2004 07:31:42 +0000, Basile Starynkevitch [news] wrote:
Le 08-05-2004, olivier <thecrafty@hotmail.com> a écrit :
bonjour!
Pourriez vous me dire où trouver les codes sources des commandes de base de
linux ( echo , cd , exit...)
Il faut savoir que cd et exit doivent nécessairement être implantés
(builtin) dans l'interprete de commandes (bash, zsh etc...), puisqu'il
interfacent les appels systèmes chdir(2) et _exit(2) qui doivent être
executés par le processus shell lui-même.
En pratique, echo, time, printf sont aussi souvent dans l'interprete
de commande, mais il peut exister des binaires /bin/echo etc... aussi
POSIX dit exactement l'inverse:
ces outils doivent impérativement exister en tant que binaires séparés
(sinon, on ne peut pas les appeler en C) et peuvent éventuellement
être implémentés en tant que builtin, généralement pour des raisons
de performances: ça évite des multitudes d'appels systèmes
fork();execve(); et d'accès aux disques lors de l'execution de scripts.
Les builtins minimums sont:
alias, bg, cd, command, false, fc, fg, getopts, jobs, kill, newgrp, pwd,
read, true, umask, unalias, wait.
Mais ils doivent impérativement être également implémentés en tant
qu'utilitaires à part:
"all the standard utilities, including the regular built-ins in the table,
but not the special built-ins described in Special Builltins Utilities,
shall be implemented so that they can be accessed via the exec family of
functions...".
Les special builtins sont des fonctions qui n'ont un sens que dans
un script shell:
break, colon, continue, dot, eval, exec, exit, export, readonly, return,
set, shift, times, trap, unset.
On Sun, 09 May 2004 07:31:42 +0000, Basile Starynkevitch [news] wrote:
Le 08-05-2004, olivier a écrit :
bonjour!
Pourriez vous me dire où trouver les codes sources des commandes de base de linux ( echo , cd , exit...)
Il faut savoir que cd et exit doivent nécessairement être implantés (builtin) dans l'interprete de commandes (bash, zsh etc...), puisqu'il interfacent les appels systèmes chdir(2) et _exit(2) qui doivent être executés par le processus shell lui-même.
En pratique, echo, time, printf sont aussi souvent dans l'interprete de commande, mais il peut exister des binaires /bin/echo etc... aussi
POSIX dit exactement l'inverse: ces outils doivent impérativement exister en tant que binaires séparés (sinon, on ne peut pas les appeler en C) et peuvent éventuellement être implémentés en tant que builtin, généralement pour des raisons de performances: ça évite des multitudes d'appels systèmes fork();execve(); et d'accès aux disques lors de l'execution de scripts.
Les builtins minimums sont: alias, bg, cd, command, false, fc, fg, getopts, jobs, kill, newgrp, pwd, read, true, umask, unalias, wait. Mais ils doivent impérativement être également implémentés en tant qu'utilitaires à part: "all the standard utilities, including the regular built-ins in the table, but not the special built-ins described in Special Builltins Utilities, shall be implemented so that they can be accessed via the exec family of functions...". Les special builtins sont des fonctions qui n'ont un sens que dans un script shell: break, colon, continue, dot, eval, exec, exit, export, readonly, return, set, shift, times, trap, unset.