Petites questions concernant Linux

Plein de petites questions qui me sont sans réponses ...

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Avant toute chose je tient à presicer que les recherches sur google ont déjà été faites, soit les définition sont vagues ou carrément non comprehensible soit qu'elles n'apportent aucun détail(s)

Hello !

Aujourd'hui je reviens vers vous car j'ai des petites questions concernant Linux en général :

  • A quoi sert make vu que gcc fait exactement la meme chose soit compiler .
  • Qu'est-ce que le mode vfs ?
  • Qu'est-ce que cgroup ?
  • Pourquoi existe t-il des
1
mount -t tmpfs tmpfs /sys/fs/cgroup

(par exemple) ? Mount n'est pas réservé pour monter des support amovible ?

  • Qu'est-ce que systemd presicement ?

Voilà j'espère que vous pourriez m'éclairer sur ces petites questions !

Merci d'avance !

Édité par Arckazur

En fait c'est l'histoire d'un type qui à fait une blague à un parisien et il a pas ris voila voila

+0 -0
Staff

Cette réponse a aidé l'auteur du sujet

Salut,

Il y a beaucoup de questions qui ne sont pas simples à répondre de façon accessible et complète.

Voici déjà quelque pistes, qui devraient au moins t'aider à comprendre mieux ce que tu peux trouver par ailleurs :

A quoi sert make vu que gcc fait exactement la meme chose soit compiler

gcc fait un peu plus que compiler, mais c'est suffisant de se dire ça dans un premier temps. Mets toi juste dans un coin de la tête que tu as probablement des choses à creuser de ce côté là si ça t'intéresse. make en revanche ne compile pas du tout. Il lit un Makefile pour construire des cibles (target) à partir de règles (rules), en les mettant à jour lorsque leurs dépendances ont changés. On peut donc (et c'est un cas très courant) se servir d'un Makefile pour construire un fichier binaire (la cible) à partir de fichiers contenant le code source (les dépendances) en appelant gcc. L'appel à gcc sera alors la règle. Les avantages à utiliser un Makefile au lieu de taper directement les commandes GCC pour compiler un programme sont nombreux. Le plus évident, c'est probablement que l'on n'a pas à se taper les commandes plein de fois quand on a besoin de recompiler. make, ça va plus vite que gcc -c foo.c -o foo.o; gcc -c bar.c -o bar.o; gcc bar.o foo.o -o MyExe, et encore ce cas est extrêmement simple. Je bosse en ce moment sur un projet où il y a une centaine de fichiers pour compiler, et comme il y a des dépendances dans tous les sens, les commandes gcc sont parfaitement dégueulasses et très pénible à taper à la main. Puis, il faudrait pas que je rate une dépendance lorsque je modifie un seul fichier.

Bon en plus je te dit pas tout, j'utilise par dessus cmake pour pouvoir générer le Makefile automatiquement en fonction des bibliothèques que je trouve sur la machine pour laquelle je compile. Compiler le projet se résume à trois commandes courtes au lieu d'une bonne centaines bien longues et chiantes à taper. En plus, grâce aux Makefile (sous réserve qu'ils sont bien écrits), il est possible de compiler sur plusieurs processeurs à la fois, ça gagne du temps. ^^

Quesque le mode vfs ?

(c'est "qu'est-ce que", pas "quesque") Je suppose que tu parles du Virtual File System ? Ce n'est pas un mode. Tu peux voir ça comme une interface entre les programmes (ceux que tu écris, ton navigateur internet, etc.) et le disque dur et autre périphériques de stockage sur lesquels les programmes vont écrire des informations. En fait, le VFS ne constitue même qu'une partie de l'interface, comme le montre ce schéma (je te rassure, je comprends pas tout non plus :p ). Pour te guider, tu vois que le VFS se situe entre les applications (ton navigateur par exemple), et la "block layer", ainsi que les "drivers", avant d'arriver au final sur le matériel physique ou sera stockée l'information (par exemple, ton disque dur, HDD). Il faudra voir si quelqu'un peut te fournir une explication simple sur ces autres couches, mais ce n'est pas de mon resort.

Pour tes autres questions, je ne vois pas trop comment arriver à expliquer ça clairement de façon concise. Ce sont des questions trop vastes pour y répondre sur un poste de forum, j'ai l'impression. Il faudrait que tu en dises plus sur ce que tu as trouvé et en quoi c'est insuffisant, peu clair. Bref, donner des pistes pour diriger l'explication.

Édité par adri1

I don't mind that you think slowly, but I do mind that you are publishing faster. – W. Pauli

+5 -0
Auteur du sujet

Un grand merci pour ta réponse (et avoir pris du temps pour répondre :p ) !

qu'est-ce que corrigé x)

En fait c'est l'histoire d'un type qui à fait une blague à un parisien et il a pas ris voila voila

+0 -0

Cette réponse a aidé l'auteur du sujet

Qu'est-ce que cgroup ?

Les cgroups sont une fonctionnalité du noyau Linux qui font une abstraction générique des espaces de noms du noyau. Pour faire simple, un cgroup permet de grouper des processus ensembles. Le but du concept est de permettre de réaliser des règles entre ces groupes.

Par exemple, tu peux limiter les droits d'accès d'un groupe de processus pour les accès matériels ou logiciels (interdiction d'accéder à Internet ou à un répertoire), tu peux réguler leurs ressources (pas plus de 25% du temps CPU alloué à ce groupe, pas plus de 100 Mb/s de bande passante réseau), les groupes peuvent ne pas voir les autres groupes ou processus présents sur la machine, etc.

Cas d'usage typique, Linus Torvalds, créateur du noyau Linux, utilise les cgroups ainsi : git / make et gcc qui tournent en permanence chez lui sont dans un groupe à part de Firefox ou VLC. EN réglant correctement l'ensemble, il peut compiler le noyau Linux sans pour autant avoir des lenteurs pour le multimédia (essaye de voir un film en 1080p et en compilant un gros projet, ça va saccader souvent).

Note que Docker et LXC sont des alternatives ou une surcouche aux cgroups pour cloisonner les processus, et ils reposent de les espaces de nom du noyau.

(par exemple) ? Mount n'est pas réservé pour monter des support amovible ?

Non, mount sert à rattacher un système de fichier à la hiérarchie des fichiers de ta machine (qui débute forcément par /). Cela peut en effet servir à monter ton disque dur externe par exemple. Les cgroups, mais comme d'autres éléments internes au noyau Linux, reposent sur des systèmes de fichiers virtuels pour fonctionner. D'où le fait qu'ils sont montés.

Qu'est-ce que systemd presicement ?

systemd est un projet pour gérer les services de ton système. Un service peut être, le montage de tes partitions au démarrage, l'écran de connexion au lancement, un serveur web ou de base de données, un serveur SSH ou FTP…

Par conséquent, il gère le démarrage et l'extinction de ta machine en allumant ou coupant tous les services activés, et ce proprement. Pour gérer cela du mieux que possible, systemd contient également des utilitaires variés pour gérer un minimum le réseau, les logs, l'heure ou le matériel.

systemd remplace ce qu'on nommait avant SysV à savoir un ensemble de scripts shell pour gérer les services. Le soucis était que chaque distribution écrivait ces scripts de son côté, et souvent mal (par exemple pas de prise en charge de SELinux quand il était présent sur le système). De nombreux problèmes étaient également difficilement solubles avec ce dispositif. systemd a permis d'unifier cela.

Amateur de Logiciel Libre et de la distribution GNU/Linux Fedora.

+5 -0
Auteur du sujet

Bon ben la c'est bon ca m'a carrément éclairer ! Merci beaucoup pour ta réponse et comme pour adri1 merci d'avoir passé du temps pour m'aider !

Encore merci :)

En fait c'est l'histoire d'un type qui à fait une blague à un parisien et il a pas ris voila voila

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte