POSIX 是啥?有什么内容?下边本文带大家了解一下Node.js api的 POSIX 规范、Node.js api的特征,希望能帮助到大家!
【强烈推荐学习培训:《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 中断过程
文件读写
文件目录有关
- 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其他类似文章!