>  기사  >  웹 프론트엔드  >  Node.js API의 POSIX 표준에 대한 간략한 분석

Node.js API의 POSIX 표준에 대한 간략한 분석

青灯夜游
青灯夜游앞으로
2021-09-02 10:06:062128검색

POSIX란 무엇인가요? 무엇이 포함되어 있나요? 다음 글은 Node.js API의 POSIX 표준과 Node.js API의 특징을 이해하는 데 도움이 되기를 바랍니다.

Node.js API의 POSIX 표준에 대한 간략한 분석

【추천 학습: "nodejs tutorial"】

Node.js API를 사용해 본 적이 있다면 API 이름이 왜 다음과 같은지 이상하게 느껴지실 것입니다.

예를 들어 디렉토리를 생성하십시오:

const fs = require('fs');

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

생성 프로세스:

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 등. 이러한 이름은 어떻게 유래되었나요?

linux 명령이나 c 함수 라이브러리를 사용한 경우 이러한 api의 명령 및 c 함수 라이브러리에도 이 이름이 있다는 것을 알 수 있습니다.

이게 왜죠? 이러한 API는 표준인가요?

네, 이것이 POSIX 표준입니다

POSIX란 무엇입니까

POSIX는 Portable Operating System Interface(Portable Operating System Interface)의 약자이고, x는 unix를 의미하며 unix에서 상속되었습니다.

다양한 운영체제에서 제공하는 기능과 시스템 콜이 다르면, 운영체제 기반 상위 애플리케이션의 소스코드도 달라지기 때문에, 한 플랫폼에서 작성된 코드를 컴파일할 수 없게 되는 결과를 낳게 됩니다. 또 다른 플랫폼.

무엇을 해야 할까요?

각 운영체제에서 제공하는 API가 같다면? 기본 운영 체제가 이러한 기능을 어떻게 구현하든 동일한 API를 애플리케이션에 노출하기만 하면 소스 코드는 크로스 플랫폼이며 컴파일 후에 다른 운영 체제에서 실행될 수 있습니다.

이 통합 운영 체제에서 노출되는 API의 표준은 POSIX입니다.

이 POSIX 표준은 이 인터페이스를 구현하는 API가 POSIX 표준과 호환되는 한 ts에 정의된 인터페이스로 이해될 수 있습니다.

POSIX는 원래 unix의 확장이었습니다. Linux는 나중에 이 POSIX 표준을 구현했습니다. 나중에 Windows는 강제로 POSIX 표준과 호환되어야 했습니다. 그렇지 않으면 많은 Linux 응용 프로그램이 Windows에서 실행될 수 없습니다. 일반적으로 사용되는 osx도 마찬가지입니다.

그래서 POSIX는 시스템 호출, C 함수 라이브러리 및 셸 명령을 포함하여 상위 수준 애플리케이션에 기능을 제공하는 운영 체제용 표준 인터페이스입니다.

소위 표준이란 ISO 국제표준화기구가 인정한 표준을 말하며, 다양한 국가에 회원을 두고 있는 국제기구로, 다양한 국제표준을 제정하는 기관입니다. POSIX는 ISO/IEC 9945 표준입니다(IEC는 전자제품 표준화 조직입니다). 실제로 POSIX는 미국 표준화 단체인 IEEE에서 제안한 표준으로 ISO에서 인정을 받아 국제 표준이 될 예정이다. ISO/IEC 9945. 표준이 되었습니다.

POSIX에는 무엇이 포함되어 있나요?

POSIX를 지원하는 리눅스에서 제공하는 시스템 콜은 무엇인지 살펴보겠습니다(시스템 콜은 커널 코드에서 제공하는 프로그램을 말합니다):

프로세스 제어:

  • fork Create a 새 프로세스
  • execv 실행 파일 실행
  • exit 프로세스 종료

파일 읽기 및 쓰기

  • open 파일 열기
  • close 파일 설명자 닫기
  • write 파일 쓰기
  • read 파일 읽기
  • truncate 파일 자르기
  • fsync는 메모리에 있는 파일의 일부를 디스크에 씁니다

파일 시스템 관련

  • access는 파일에 액세스할 수 있는지 여부를 결정합니다
  • chdir은 현재 작업 디렉터리를 변경합니다
  • chown은 파일의 소유자 또는 사용자 그룹을 변경합니다
  • stat는 파일 상태를 가져옵니다. 정보
  • mkdir 디렉토리 생성
  • symlink 심볼릭 링크 생성
  • unlink 링크 삭제

이러한 시스템 호출 중 상당수는 Node.js에서 동일한 이름을 가진 API를 가지며 쉘에도 명령이 있습니다. 같은 이름:

예:

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

Wait

Features of Node.js api

Node.js는 js 호출에 운영 체제 기능을 제공하는 많은 API를 삽입하기 위해 v8을 기반으로 하는 js 런타임입니다. 이러한 API 중 다수는 추상화가 아닌 POSIX 표준 API 이름을 직접 사용하도록 설계되었습니다.

Java의 JRE(java 런타임)도 운영 체제 기능의 추상화를 제공하지만 이러한 API는 OS POSIX API와 거의 관련이 없으며 io 스트림의 데코레이터 패턴과 같은 많은 디자인 패턴을 통합합니다.

Node.js API의 특징은 추상화가 많지 않고 API 이름이 Linux 명령과 매우 유사하여 POSIX 표준에 가깝다는 것입니다. 따라서 Node.js를 배울 때에도 Linux 명령을 배워야 합니다. 둘은 설계상 일정한 관계가 있습니다.

요약

POSIX 표준은 운영 체제 기능에 대한 표준으로, 셸 명령, C 함수 라이브러리, 시스템 호출 및 기타 표준을 포함하여 운영 체제가 애플리케이션에 공개해야 하는 API를 정의합니다. POSIX 표준은 애플리케이션을 서로 다른 플랫폼에서 컴파일하는 것만으로 소스 코드 수준에서 플랫폼 간에 이식 가능하도록 만듭니다.

POSIX는 ISO가 인정한 국제 표준으로, 미국 표준 협회인 IEEE가 처음 제안했습니다. ISO는 국제표준 맞춤화를 전문으로 하는 조직으로, 다양한 국가의 회원들이 참여하고 있다.

Node.js의 API는 추상화를 많이 하지 않으며 대부분의 이름이 POSIX 표준 API와 유사합니다. 이에 비해 JRE가 Java에 노출하는 API는 추상화를 많이 합니다.

Node.js의 많은 API가 C 함수 라이브러리와 쉘 명령에 가깝기 때문에 쉘 명령 학습과 결합하여 Node.js를 배우면 더 많은 것을 배울 수 있고, C를 알면 시스템 함수 라이브러리를 배울 수 있습니다. .

Node.js API 디자인을 이해하고 Node.js를 잘 배우기 위해서는 POSIX를 이해하는 것이 전제 조건입니다.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 비디오를 방문하세요! !

위 내용은 Node.js API의 POSIX 표준에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.cn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제