POSIX 是啥?有什么内容?

lxf2023-03-09 08:12:01

POSIX 是啥?有什么内容?下边本文带大家了解一下Node.js api的 POSIX 规范、Node.js api的特征,希望能帮助到大家!

POSIX 是啥?有什么内容?

【强烈推荐学习培训:《nodejs 教程》】

假如你使用过 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 (生命期的操作系统插口)的简称,x 是 unix 的意味,也是从 unix 传承而成。

毕竟不同电脑操作系统假如所提供的函数公式和系统进程不一样,那样根据操作系统的顶层应用软件的源码就不一样,这就导致一个平台所写的编码无法在另一个软件上编译程序。

该怎么办呢?

假如每一个电脑操作系统所提供的 api 一样呢?无论电脑操作系统最底层如何完成这种实力的,只需显现出相同的 api 给应用软件就可以,那样源码是混合开发的,在不同电脑操作系统上编译程序以后就可奔跑起来。

这一统一电脑操作系统可能存在的 api 的要求便是 POSIX。

能把这一 POSIX 规范解读为 ts 里边界定的一个 interface,只需完成了这一 interface 的 api 便是适配 POSIX 标准化的。

POSIX 最早是 unix 拓展而成,linux 完成了这一 POSIX 的要求,而之后 windows 迫于无奈,都不得不适配了 POSIX 规范,要不然许多 linux 的应用程序在 windows 就跑不下去。人们常用的 osx 都是。

所以,POSIX 是电脑操作系统向顶层运用给予实力的一些通信接口,包含系统进程、c 函数库、shell 指令。

所说的标准是指被 ISO 国际海事组织认可的,这是一个国际经济组织,组员遍及世界各国,是建立各种各样国家标准的部门。POSIX 便是 ISO/IEC 9945 规范(IEC 是电子方向的标准化组织)。实际上 POSIX 是 IEEE 提出的,这是一个美国标准化组织,并提出了的要求被 ISO 认可将会成为国家标准,例如 POSIX 就是他们所提出的 IEEE Std 1003 规范,已经被 ISO 认可,变成了 ISO/IEC 9945 规范。

POSIX 有什么内容

我们来看一下适用 posix 的 linux 带来了什么系统进程(系统进程是指在核心源代码中所提供的程序流程):

过程操纵:

  • fork 创建一个新过程
  • execv 运作可执行程序
  • exit 中断过程

文件读写

  • open 打开文档
  • close 关掉文件描述符
  • write 写文件
  • read 读文件
  • truncate 断开文档
  • fsync 把材料在运行内存的那一部分载入硬盘

文件目录有关

  • access 明确文档是否可以存储
  • chdir 更改各项工作文件目录
  • chown 更改文件信息属主或是用户群
  • stat 取文档配置信息
  • mkdir 创建目录
  • symlink 建立符号链接
  • unlink 删掉连接

这种系统进程许多人在 Node.js 里有同名的的 api,shell 也是有同名的的命令:

例如:

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

Node.js api 的特征

Node.js 是一个 js 的运行中,根据 v8 来引入许多给予电脑操作系统实力的 api 给 js 启用,但这些 api 设计大多都是立即使用的 POSIX 标准化的 api 名称,没做许多抽象化。

Java 的 JRE(java runtime) 也提供了电脑操作系统实力的抽象化,因为那些 api 却与电脑操作系统 POSIX 的 api 关联并不大,并且融进了许多程序设计模式的东西了,例如 io 流的装饰器模式。

Node.js 的 api 特点就是抽象化并不是很多,而且大部分 api 名称和 linux 指令都特别像,接近 POSIX 规范。因此学习培训 Node.js 的时候也要了解一下 linux 指令的,这二者外形设计有一定的关系。

汇总

POSIX 依据是电脑操作系统实力的规范,定义了电脑操作系统应当曝露哪些 api 给应用软件,包含 shell 指令、c 函数库、系统进程等规范。POSIX 规范促使应用软件在源代码方面是能够混合开发移植,各自在各个服务平台做编译程序就可以。

POSIX 是 ISO 认可的国际化标准,最开始是由美国的一个标准研究会 IEEE 所提出的。ISO 主要是用来订制国家标准的部门,有许多国家中的一员参加。

Node.js 的 api 并没多做一些抽象化,名称也很大一部分和 POSIX 标准化的 api 很像,这也是它的作用,比较之下,JRE 曝露给 java 的 api 则做了许多抽象化。

由于 Node.js 的 api 许多和 c 函数库、shell 指令非常接近,因此学习培训 Node.js 融合学习培训 shell 指令,甚至还会 c 的还可以再学习全面的函数库会有更多获得。

掌握 POSIX,是了解 Node.js api 设计方案,学精 Node.js 的前提条件。

大量程序编写基本知识,请访问:编程视频!!

以上就是关于浅谈Node.js api的 POSIX 标准化的具体内容,大量欢迎关注AdminJS其他类似文章!