Maison >interface Web >js tutoriel >Une brève analyse du standard POSIX de l'API Node.js

Une brève analyse du standard POSIX de l'API Node.js

青灯夜游
青灯夜游avant
2021-09-02 10:06:062249parcourir

Qu'est-ce que POSIX ? Qu'est-ce qui est inclus ? L'article suivant vous fera comprendre le standard POSIX de l'API Node.js et les caractéristiques de l'API Node.js. J'espère qu'il vous sera utile !

Une brève analyse du standard POSIX de l'API Node.js

[Apprentissage recommandé : "tutoriel Nodejs"]

Si vous avez utilisé l'API Node.js, trouverez-vous étrange pourquoi le nom de l'API est comme ceci :

Par exemple, créez un répertoire :

const fs = require('fs');

fs.mkdir('/a/b/c', { recursive: true }, (err) => {
  if (err) throw err;
});

Créer un processus :

const childProcess = require('child_process');

childProcess.fork('a/b/c.js');
childProcess.execFile('a/b/dddd');
childProcess.exec('"/path/to/test file/test.sh" arg1 arg2');
childProcess.spawn('ls', ['-lh', '/usr']);

mkdir, fork, exec, spawn, etc. D'où viennent ces noms ?

Si vous avez utilisé la commande Linux ou la bibliothèque de fonctions c, vous constaterez que ces API portent également ce nom dans la bibliothèque de commandes et de fonctions c.

Pourquoi est-ce ? Ces API sont-elles standards ?

Oui, c'est la norme POSIX

Qu'est-ce que POSIX

POSIX est l'abréviation de portable Operating System Interface (interface de système d'exploitation portable), x signifie Unix, qui est hérité d'Unix.

Parce que si les fonctions et les appels système fournis par différents systèmes d'exploitation sont différents, le code source de l'application de couche supérieure basée sur le système d'exploitation sera différent, ce qui signifie que le code écrit sur une plateforme ne peut pas être compilé sur une autre plateforme. .

Que faire ?

Et si l'API fournie par chaque système d'exploitation était la même ? Quelle que soit la manière dont le système d'exploitation sous-jacent implémente ces fonctionnalités, il lui suffit d'exposer la même API à l'application. De cette manière, le code source est multiplateforme et peut être exécuté après avoir été compilé sur différents systèmes d'exploitation.

Le standard pour les API exposées par ce système d'exploitation unifié est POSIX.

Ce standard POSIX peut être compris comme une interface définie en ts. Tant que l'API de cette interface est implémentée, elle est compatible avec le standard POSIX.

POSIX était à l'origine une extension d'Unix. Linux a implémenté cette norme POSIX. Plus tard, Windows a été contraint d'être compatible avec la norme POSIX en raison de la pression, sinon de nombreuses applications Linux ne fonctionneraient pas sous Windows. Il en va de même pour notre osx couramment utilisé.

Ainsi, POSIX est une interface standard permettant au système d'exploitation de fournir des fonctionnalités aux applications de niveau supérieur, notamment les appels système, les bibliothèques de fonctions C et les commandes shell.

Les soi-disant normes font référence à celles reconnues par l'Organisation internationale de normalisation ISO. Il s'agit d'une organisation internationale avec des membres dans divers pays et une organisation qui formule diverses normes internationales. POSIX est la norme ISO/IEC 9945 (IEC est l'organisme de normalisation pour l'électronique). En fait, POSIX a été proposé par l'IEEE, qui est un organisme de normalisation américain. Les normes qu'il propose sont reconnues par l'ISO et deviendront des normes internationales. Par exemple, POSIX est la norme IEEE Std 1003 qu'ils ont proposée, qui est désormais reconnue par l'ISO et. est devenue la norme ISO/IEC 9945.

Que contient POSIX ?

Jetons un coup d'œil aux appels système fournis par Linux qui prend en charge POSIX (les appels système font référence aux programmes fournis dans le code du noyau) :

Contrôle de processus :

  • fork Create a Nouveau processus
  • execv Exécuter le fichier exécutable
  • sortir Abandonner le processus

Fichier lire et écrire

  • ouvrir Ouvrir le fichier
  • fermer Fermer le descripteur de fichier
  • écrire Écrire le fichier
  • lire Lire le fichier
  • tronquer Tronquer le fichier
  • fsync écrit la partie du fichier en mémoire sur le disque

Lié au système de fichiers

  • l'accès détermine si le fichier est accessible
  • chdir modifie le répertoire de travail actuel
  • chown modifie le propriétaire ou le groupe d'utilisateurs du fichier
  • stat obtient les informations sur l'état du fichier
  • mkdir Créer un répertoire
  • symlink Créer un lien symbolique
  • unlink Supprimer le lien

etc.

Beaucoup de ces appels système ont des API du même nom dans Node.js, et les shells ont également des commandes avec le même nom :

Par exemple :

fs.stats
fs.access
fs.chown
fs.mkdir

fs.open
fs.close
fs.read
fs.write

child_process.fork
child_process.exec
child_process.execFile

Attendez

Caractéristiques de l'API Node.js

Node.js est un runtime js, basé sur la v8 pour injecter de nombreuses API qui fournissent des capacités du système d'exploitation pour les appels js, et beaucoup de ces API sont conçues pour utiliser directement POSIX. Noms d'API standard, pas beaucoup d'abstraction.

Le JRE (java runtime) de Java fournit également une abstraction des capacités du système d'exploitation, mais ces API n'ont pas grand-chose à voir avec les API OS POSIX et intègrent de nombreux modèles de conception, tels que le modèle de décorateur des flux io.

La caractéristique de l'API de Node.js est qu'il n'y a pas beaucoup d'abstractions, et de nombreux noms d'API sont très similaires aux commandes Linux, qui sont proches des standards POSIX. Par conséquent, lors de l'apprentissage de Node.js, vous devez toujours apprendre les commandes Linux. Les deux ont une certaine relation dans la conception.

Résumé

La norme POSIX est une norme relative aux capacités du système d'exploitation. Elle définit les API que le système d'exploitation doit exposer aux applications, y compris les commandes shell, les bibliothèques de fonctions C, les appels système et d'autres normes. La norme POSIX rend les applications portables sur plusieurs plates-formes au niveau du code source, simplement en les compilant sur différentes plates-formes.

POSIX est une norme internationale reconnue par l'ISO. Elle a été proposée pour la première fois par l'IEEE, une association de normalisation aux États-Unis. L'ISO est une organisation spécialisée dans l'adaptation des normes internationales, avec la participation de membres de nombreux pays.

L'API de Node.js ne fait pas beaucoup d'abstraction, et la plupart de ses noms sont similaires à l'API standard POSIX. En revanche, l'API exposée par JRE à Java fait beaucoup d'abstraction.

Étant donné que de nombreuses API de Node.js sont proches de la bibliothèque de fonctions C et des commandes shell, vous gagnerez davantage en apprenant Node.js combiné avec l'apprentissage des commandes shell, ou si vous connaissez le C, vous pouvez apprendre la bibliothèque de fonctions système. .

Comprendre POSIX est la condition préalable pour comprendre la conception de l'API Node.js et bien apprendre Node.js.

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéos de programmation ! !

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer