issue190:c_c
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue190:c_c [2023/02/27 09:31] – auntiee | issue190:c_c [2023/02/28 11:53] (Version actuelle) – andre_domenech | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
**I was observing – not participating in – a discussion on shells and realizing there is a large gap in what a shell is, where it fits in, and what the perception is thereof. This issue, I want to explain the difference between the kernel and a shell. Imagine a three-layer cake. The bottom layer is your kernel, the middle layer is your shell, and the top layer is your application layer. The kernel is all about handling hardware. When I say handling hardware, what I mean is that it allocates memory or it handles input & output, say to your disk. In other words, it manages stuff. Something needs CPU time, the kernel will schedule that. All the security and protection also happens here, within the kernel. So, when a system call happens, it is what responds to that system call. This may not be of interest to you, but to understand what a system call is, think of it this way – when you ‘call’ the system to send a packet over the network, or ‘call’ the system to read a file from disk, or call the system to do some task for us, that is a system call. I don’t know how this makes sense to a native English speaker, but to me it made no sense at first, but instead of thinking of your mother calling you to come inside, think of it more of a telephone call where you order some sand to be delivered at your home, so you can mix cement to build a wall.** | **I was observing – not participating in – a discussion on shells and realizing there is a large gap in what a shell is, where it fits in, and what the perception is thereof. This issue, I want to explain the difference between the kernel and a shell. Imagine a three-layer cake. The bottom layer is your kernel, the middle layer is your shell, and the top layer is your application layer. The kernel is all about handling hardware. When I say handling hardware, what I mean is that it allocates memory or it handles input & output, say to your disk. In other words, it manages stuff. Something needs CPU time, the kernel will schedule that. All the security and protection also happens here, within the kernel. So, when a system call happens, it is what responds to that system call. This may not be of interest to you, but to understand what a system call is, think of it this way – when you ‘call’ the system to send a packet over the network, or ‘call’ the system to read a file from disk, or call the system to do some task for us, that is a system call. I don’t know how this makes sense to a native English speaker, but to me it made no sense at first, but instead of thinking of your mother calling you to come inside, think of it more of a telephone call where you order some sand to be delivered at your home, so you can mix cement to build a wall.** | ||
- | J’observais – je n’y participais pas – une discussion sur les shells et je me rendais compte du fait qu’il y ait un grand écart entre ce qu’est un shell, où il se place et la perception qu’en ont les gens. Dans ce numéro-ci, je veux expliquer la différence entre le noyau et un shell. Imaginez un gâteau qui a trois niveau. Le niveau du bas est le noyau, le niveau du milieu est le shell et le niveau du haut est celle des applications. Le noyau gère le matériel. Quand je dis cela, je veux dire qu’il répartit la mémoire ou qu’il gère les entrées et les sorties, disons de et vers votre disque. Autrement dit, il gère des trucs. Un truc a besoin d'un peu de temps du processeur et le noyau planifiera ce qui est nécessaire. Toute la sécurité et la protection a lieu à l’intérieur du noyau aussi. Ainsi, quand un appel système a lieu, c’est le noyau qui y répond. Cela peut ne pas vous intéresser, | + | J’observais – je n’y participais pas – une discussion sur les shells et je me rendais compte du fait qu’il y a un grand écart entre ce qu’est un shell, où il se place et la perception qu’en ont les gens. Dans ce numéro-ci, je veux expliquer la différence entre le noyau et un shell. Imaginez un gâteau qui a trois niveau. Le niveau du bas est le noyau, le niveau du milieu est le shell et le niveau du haut est celui des applications. Le noyau gère le matériel. Quand je dis cela, je veux dire qu’il répartit la mémoire ou qu’il gère les entrées et les sorties, disons de et vers votre disque. Autrement dit, il gère des trucs. Un truc a besoin d'un peu de temps du processeur et le noyau planifiera ce qui est nécessaire. Toute la sécurité et la protection a lieu à l’intérieur du noyau aussi. Ainsi, quand un appel système a lieu, c’est le noyau qui y répond. Cela peut ne pas vous intéresser, |
**The shell is an interface between the user and the system and the kernel is an interface between system calls and the actual hardware. | **The shell is an interface between the user and the system and the kernel is an interface between system calls and the actual hardware. | ||
Ligne 11: | Ligne 11: | ||
Le shell est une interface entre l’utilisateur et le système ; le noyau est une interface entre les appels système et le matériel. | Le shell est une interface entre l’utilisateur et le système ; le noyau est une interface entre les appels système et le matériel. | ||
- | Vous pouvez aussi entendre parler d’« espaces » - espace noyau et espace utilisateur. Cela ne fait que regrouper les trucs ensemble dans l’« espace » où ils « vivent ». Le lecteur VLC et Inkscape sont des applications qui vivent dans l’espace utilisateur. Vous, en tant qu’utilisateur, | + | Vous pouvez aussi entendre parler d’« espaces » - espace noyau et espace utilisateur. Cela ne fait que regrouper les trucs ensemble dans l’« espace » où ils « vivent ». Le lecteur VLC et Inkscape sont des applications qui vivent dans l’espace utilisateur. Vous, en tant qu’utilisateur, |
Nous pouvons voir combien de temps une commande passe dans chacun des espaces en utilisant la commande « time » dans le terminal. Tapez : time ls | Nous pouvons voir combien de temps une commande passe dans chacun des espaces en utilisant la commande « time » dans le terminal. Tapez : time ls | ||
Ligne 33: | Ligne 33: | ||
Vous verrez : | Vous verrez : | ||
- | •• | + | •• |
•• « user », | •• « user », | ||
•• « sys », | •• « sys », | ||
Ligne 39: | Ligne 39: | ||
Oui, je sais, mais restez avec moi, ma cible, ce sont les vrais débutants. | Oui, je sais, mais restez avec moi, ma cible, ce sont les vrais débutants. | ||
- | (J’ai découvert pourquoi j’ai dû refaire les semaines 47 & 48 l’année dernière...c’était évident). | + | (J’ai découvert pourquoi j’ai dû refaire les semaines 47 et 48 l’année dernière... c’était évident.) |
- | Faisons quelque chose un peu plus intensif pour avoir des valeurs partout. Si vous avez un répertoire avec des trucs dedans (inutile sur un répertoire vide !), tapez : time md5sum * | + | Faisons quelque chose d'un peu plus intensif pour avoir des valeurs partout. Si vous avez un répertoire avec des trucs dedans (inutile sur un répertoire vide !), tapez : time md5sum * |
Cela ne fait qu’imprimer le hash MD5 du fichier, avant d’imprimer le nom du fichier. Si vous ne savez pas ce qu’est un hash MD5, demandez. | Cela ne fait qu’imprimer le hash MD5 du fichier, avant d’imprimer le nom du fichier. Si vous ne savez pas ce qu’est un hash MD5, demandez. | ||
Ligne 53: | Ligne 53: | ||
That’s as short ‘n sweet as I can make it (with my brain running in a million directions, whilst I try to herd those 100 cats). If you still have trouble understanding what a shell is, and where it fits in with regards to the kernel, read that again. Just kidding, drop us a line on: misc@fullcirclemagazine.org** | That’s as short ‘n sweet as I can make it (with my brain running in a million directions, whilst I try to herd those 100 cats). If you still have trouble understanding what a shell is, and where it fits in with regards to the kernel, read that again. Just kidding, drop us a line on: misc@fullcirclemagazine.org** | ||
- | Cela peut donner une indication approximative de l’endroit où votre commande ou programme passe son temps. Allez-y, essayez avec, disons, Python (voir ci-dessous) | + | Cela peut donner une indication approximative de l’endroit où votre commande ou programme passe son temps. Allez-y, essayez avec, disons, Python (voir ci-dessous) ou le programme que vous voulez. |
Nous avons utilisé notre émulateur de terminal (une application qui vit dans l’espace utilisateur) pour utiliser le shell, dans mon cas bash, pour faire quelque chose (un appel système). | Nous avons utilisé notre émulateur de terminal (une application qui vit dans l’espace utilisateur) pour utiliser le shell, dans mon cas bash, pour faire quelque chose (un appel système). | ||
- | Le noyau a alloué de la mémoire, géré | + | Le noyau a alloué de la mémoire, géré |
C’est aussi précis et concis que possible pour moi (avec le cerveau qui court dans des milliers de directions pendant que j’essaie de rassembler les cent chats). Si vous ne voyez toujours pas ce qu’est un shell et sa place par rapport au noyau, relisez l’article. Je plaisante, écrivez-nous sur : | C’est aussi précis et concis que possible pour moi (avec le cerveau qui court dans des milliers de directions pendant que j’essaie de rassembler les cent chats). Si vous ne voyez toujours pas ce qu’est un shell et sa place par rapport au noyau, relisez l’article. Je plaisante, écrivez-nous sur : | ||
issue190/c_c.1677486710.txt.gz · Dernière modification : 2023/02/27 09:31 de auntiee