Conseils aux débutants pour apprendre les appels système Linux
Ces dernières années, j'ai effectué beaucoup de travaux liés aux conteneurs. Précédemment, j'ai vu une excellente conférence de Julien Friedman, qui a écrit un framework de conteneurs en quelques lignes de Go. J'ai soudain compris qu'un conteneur n'est qu'une machine au sein d'un processus Linux restreint.
La création de cette vue restreinte implique de nombreux appels dans le package d'appels système Golang. Au début, je n'utilisais que les appels superficiels, mais au bout d'un moment, j'ai voulu éplucher la couche suivante de l'oignon et voir quels étaient ces appels système et comment ils fonctionnaient. Je partagerai ce que j'ai appris lors de mon discours à OSCON.
Comme leur nom l'indique, les appels système sont des appels système qui permettent de demander l'entrée dans le noyau Linux depuis l'espace utilisateur. Le noyau effectue un certain travail pour vous, comme créer un processus, puis retourne dans l'espace utilisateur.
Il existe un mécanisme commun qui fait passer tous les appels système vers le noyau, qui est géré par la bibliothèque libc. Le code de l'espace utilisateur définit certains registres, notamment l'ID de l'appel système qu'il souhaite et tous les arguments qu'il doit transmettre à l'appel système. Cela déclenche un "piège" pour transférer le contrôle au noyau.
C'est ainsi que le code de l'espace utilisateur envoie des requêtes au noyau, et Linux dispose également d'un pseudo système de fichiers, qui permet au noyau de transmettre des informations à l'espace utilisateur, et son contenu ressemble à des répertoires et des fichiers ordinaires.
Le répertoire/proc est un bon exemple. Jetez un œil à l’intérieur et vous trouverez toutes sortes d’informations intéressantes sur les processus exécutés sur la machine. Dans certains cas, comme les groupes de contrôle (groupes de contrôle), l'espace utilisateur peut configurer les paramètres en écrivant dans des fichiers sous ces pseudo-systèmes de fichiers.
Ce qui est particulièrement intéressant lorsque vous travaillez avec des conteneurs, c'est que le /proc de l'hôte contient toutes les informations sur le processus conteneurisé. Cela inclut les variables d'environnement, qui sont également enregistrées dans le pseudo-système de fichiers /proc, ce qui signifie que votre hôte a accès à l'environnement de tous les conteneurs en cours d'exécution. Si vous transmettez des secrets tels que des informations d'identification ou des mots de passe de base de données dans le conteneur via des variables d'environnement, cela peut avoir des conséquences en matière de sécurité.
De nombreux programmeurs qui écrivent des programmes réguliers peuvent ne pas avoir l'impression d'utiliser très souvent les appels système. Mais en fait, ils sont appelés fréquemment, car les activités quotidiennes telles que la création de fichiers ou la modification de répertoires impliquent des appels système Linux.
Vous n'avez pas besoin d'être un programmeur système pour profiter des appels système !
À propos de l'auteur :
Liz Rice - Liz Rice est évangéliste technique et experte en sécurité des conteneurs chez Aqua Security. Auparavant, elle a cofondé Microscaling Systems et développé son moteur de mise à l'échelle en temps réel, ainsi que le populaire site Web de métadonnées d'images MicroBadger.com. Elle possède une vaste expérience dans le développement, la gestion d'équipe et de produits de logiciels allant des protocoles réseau et des systèmes distribués, ainsi que dans les domaines de la technologie numérique tels que la VOD, la musique et la VoIP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les étapes pour démarrer Apache sont les suivantes: Installez Apache (Commande: Sudo apt-get install Apache2 ou téléchargez-le à partir du site officiel) Start Apache (Linux: Sudo SystemCTL Démarrer Apache2; Windows: Cliquez avec le bouton droit sur le service "APACHE2.4" et SELECT ") Vérifiez si elle a été lancée (Linux: SUDO SYSTEMCTL STATURE APACHE2; (Facultatif, Linux: Sudo SystemCTL

Lorsque le port Apache 80 est occupé, la solution est la suivante: découvrez le processus qui occupe le port et fermez-le. Vérifiez les paramètres du pare-feu pour vous assurer qu'Apache n'est pas bloqué. Si la méthode ci-dessus ne fonctionne pas, veuillez reconfigurer Apache pour utiliser un port différent. Redémarrez le service Apache.

Dans Debian Systems, les appels du système ReadDir sont utilisés pour lire le contenu des répertoires. Si ses performances ne sont pas bonnes, essayez la stratégie d'optimisation suivante: simplifiez le nombre de fichiers d'annuaire: divisez les grands répertoires en plusieurs petits répertoires autant que possible, en réduisant le nombre d'éléments traités par appel ReadDir. Activer la mise en cache de contenu du répertoire: construire un mécanisme de cache, mettre à jour le cache régulièrement ou lorsque le contenu du répertoire change et réduire les appels fréquents à Readdir. Les caches de mémoire (telles que Memcached ou Redis) ou les caches locales (telles que les fichiers ou les bases de données) peuvent être prises en compte. Adoptez une structure de données efficace: si vous implémentez vous-même la traversée du répertoire, sélectionnez des structures de données plus efficaces (telles que les tables de hachage au lieu de la recherche linéaire) pour stocker et accéder aux informations du répertoire

Pour redémarrer le serveur Apache, suivez ces étapes: Linux / MacOS: Exécutez Sudo SystemCTL Restart Apache2. Windows: Exécutez net stop apache2.4 puis net start apache2.4. Exécuter netstat -a | Findstr 80 pour vérifier l'état du serveur.

Ce guide vous guidera pour apprendre à utiliser Syslog dans Debian Systems. Syslog est un service clé dans les systèmes Linux pour les messages du système de journalisation et du journal d'application. Il aide les administrateurs à surveiller et à analyser l'activité du système pour identifier et résoudre rapidement les problèmes. 1. Connaissance de base de Syslog Les fonctions principales de Syslog comprennent: la collecte et la gestion des messages journaux de manière centralisée; Prise en charge de plusieurs formats de sortie de journal et des emplacements cibles (tels que les fichiers ou les réseaux); Fournir des fonctions de visualisation et de filtrage des journaux en temps réel. 2. Installer et configurer syslog (en utilisant RSYSLOG) Le système Debian utilise RSYSLOG par défaut. Vous pouvez l'installer avec la commande suivante: SudoaptupDatesud

Apache ne peut pas démarrer car les raisons suivantes peuvent être: Erreur de syntaxe du fichier de configuration. Conflit avec d'autres ports de demande. Problème d'autorisations. Hors de la mémoire. Traitement dans l'impasse. Échec du démon. Problèmes d'autorisations de Selinux. Problème de pare-feu. Conflit logiciel.

Internet ne s'appuie pas sur un seul système d'exploitation, mais Linux joue un rôle important. Linux est largement utilisé dans les serveurs et les appareils réseau et est populaire pour sa stabilité, sa sécurité et son évolutivité.

Les étapes pour corriger la vulnérabilité Apache incluent: 1. Déterminez la version affectée; 2. Appliquer des mises à jour de sécurité; 3. Redémarrez Apache; 4. Vérifiez la correction; 5. Activer les fonctionnalités de sécurité.
