Maison >Opération et maintenance >exploitation et maintenance Linux >qu'est-ce que Linux avril
linux apr fait référence à la bibliothèque d'exécution portable Apache, et son nom complet en anglais est « Bibliothèques d'exécution portables Apache » ; elle fournit principalement des applications de couche supérieure avec une bibliothèque d'interface de support de niveau inférieur qui peut être utilisée sur plusieurs systèmes d'exploitation. plates-formes.
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.
Qu'est-ce que Linux Apr ?
Introduction à Apache apr
Le but de l'APR (Apache portable Run-time library, Apache portable Runtime library) est, comme son nom l'indique, principalement de fournir aux applications de couche supérieure un support de niveau inférieur qui peut être utilisé sur plusieurs plates-formes de système d'exploitation Bibliothèque d'interface. Dans les premières versions d'Apache, l'application elle-même devait être capable de gérer les détails de diverses plates-formes de système d'exploitation spécifiques et d'appeler différentes fonctions de traitement pour différentes plates-formes.
Avec le développement ultérieur d'Apache, l'organisation Apache a décidé de séparer ces fonctions communes et de les développer dans un nouveau projet. De cette manière, le développement d’APR est indépendant d’Apache, et Apache utilise uniquement APR. À l'heure actuelle, APR est principalement utilisé par Apache. Cependant, en raison de la meilleure portabilité d'APR, certains programmes C qui doivent être transplantés ont également commencé à utiliser des projets open source APR tels que Flood Loader (http://httpd.apache). .org/test/flood/, ce projet est utilisé pour les tests de stress du serveur, non seulement applicable à Apache), FreeSwitch (www.freeswitch.org), JXTA-C (http://jxta-c.jxta.org, C version de mise en œuvre de la plateforme point à point JXTA) ; les projets commerciaux incluent Blogline (http://www.bloglines.com/), covalent (http://www.covalent.net), etc.
APR déplace le traitement des détails de la plate-forme vers le bas. Pour les applications En d'autres termes, ils n'ont pas du tout besoin de prendre en compte la plate-forme spécifique. Qu'il s'agisse d'Unix, de Linux ou de Windows, l'interface d'exécution des applications est fondamentalement unifiée. Par conséquent, pour l'APR, la portabilité et le niveau supérieur unifié. -layer sont ses considérations. Un point important. Le but initial d'APR n'était pas celui-ci. Il voulait à l'origine fusionner tout le code utilisé dans Apache dans une base de code commune. Cependant, ce n'était pas une stratégie correcte, donc APR a changé par la suite. ses objectifs. Parfois, l'utilisation d'un code commun n'est pas une bonne chose. Par exemple, la façon de mapper une requête à un thread ou un processus est spécifique à la plate-forme, donc une seule base de code commune ne peut pas compléter cette distinction. L'objectif de l'APR est de fusionner en toute sécurité. toutes les capacités. Fusionnez le code sans sacrifier les performances.
L'un des premiers objectifs d'APR est de fournir une interface de fonction d'exploitation unifiée commune pour toutes les plates-formes (pas seulement pour certaines). objectif irréaliste. Il nous est impossible de prendre en charge toutes les fonctionnalités de toutes les plates-formes, c'est pourquoi APR ne prend actuellement en charge que toutes les fonctionnalités d'APR pour la plupart des plates-formes, notamment Win32, OS/2, BeOS, Darwin, Linux, etc. Dans ce but, APR est développé. Les auteurs doivent créer une série de macros de fonctionnalités (FEATURE MACROS) pour les fonctionnalités qui ne peuvent pas s'exécuter sur toutes les plateformes afin de distinguer ces fonctionnalités entre les plateformes. La définition de ces macros de fonctionnalités est très simple, généralement définie avec le paramètre APR_HAS_FEATURE. :
Si un certain Si la plate-forme dispose de cette fonctionnalité, cette macro doit être définie sur true. Par exemple, Linux et Windows ont des fichiers mappés en mémoire, et APR fournit donc une interface d'opération pour les fichiers mappés en mémoire. , la macro APR_HAS_MMAP doit être définie et ap_mmap_* La fonction doit mapper le fichier disque en mémoire et renvoyer le code d'état approprié. Si votre système d'exploitation ne prend pas en charge le mappage de mémoire, alors APR_HAS_MMAP doit être défini sur 0 et toutes les fonctions ap_mmap_*. peut ne pas être défini. La deuxième étape consiste à avertir ceux qui utilisent des fonctions non prises en charge dans le programme.
Les types de base actuellement pris en charge dans APR sont les suivants :
Tableau 3-1 Types de base pris en charge dans APR
Nom du type |
Nom du dossier |
Description |
atomic |
/apr/atomic |
opération atomique |
dso |
/apr/dso | Chargement dynamique des bibliothèques partagées |
fichier io |
/apr/file_io |
Traitement des E/S de fichier |
mmap |
/apr/mmap |
Fichier mappé en mémoire |
serrures |
/ apr/locks |
Mutex de processus et de threads |
memory |
/apr/memory |
Opérations de pool de mémoire |
network_io |
/apr/network_io Traitement des IO réseau | /apr/tablesTableau Apache ( pile) et les tables et tables de hachage |
process | /apr/threadproc | opérations de processus et de thread |
user |
/apr/user |
Opérations des utilisateurs et des groupes d'utilisateurs |
time |
/apr/time |
Opération temporelle |
string |
/apr/strings |
Opérations sur les chaînes |
password |
/apr/passwd |
Traitement du mot de passe du terminal |
divers |
/ avr /misc |
Hodgepodge, tout type d'apr qui n'appartient pas au reste des classes peut y être placé |
shmem |
/apr/shmem |
mémoire partagée |
random |
/apr/random |
Bibliothèque de génération de nombres aléatoires |
http://labs.mop.com/apache-mirror//apr/apr-1.4.6.tar.gz http://labs.mop.com/apache-mirror//apr/apr-util-1.4.1.tar.gz http://labs.mop.com/apache-mirror//apr/apr-iconv-1.2.1.tar.gz
Recommandations associées : "Tutoriel vidéo Linux"
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!