侧边栏壁纸
  • 累计撰写 218 篇文章
  • 累计创建 59 个标签
  • 累计收到 5 条评论

进程间通信01:POSIX 标准和 unistd.h 头文件

barwe
2022-07-08 / 0 评论 / 0 点赞 / 806 阅读 / 984 字
温馨提示:
本文最后更新于 2022-07-14,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

POSIX

Kernel

内核是操作系统中最基础的那部分软件,为操作系统中其他功能提供最基本的支持。

内核负责操作系统中最基本的功能,例如

  • 中断处理程序
  • 设备驱动程序
  • 时钟管理和进程调度等基本、公共或者运行频率较高的模块
  • ……

这些基本程序是操作系统的基石,它们往往需要常驻内存,而且需要保护起来,这部分内容一般叫做内核。

System Call

内核是操作系统的一部分,除了操作系统外一般还存在用户空间。

每个用户一般都拥有自己的应用程序,这些应用程序最终都需要调用系统的内核。

不同的操作系统都拥有自己独特的内核,也会提供独特的接口给高级的应用程序调用。

内核提供给用户应用调用的接口仍然属于操作系统的一部分,这层接口就叫做 系统调用

POSIX

对于同一套硬件,不同的公司可能提供了不同的操作系统,这些操作系统都可以安装到这一套硬件上。

对于应用开发者,基于其中一个系统开发的用户应用,很难直接移植到其他的操作系统上,因为内核提供的接口(系统调用)大概率不一样。移植应用需要修改原码使其兼容新的操作系统,然后重新编译打包。需要移植的操作系统越来越多,应用代码越来越丑陋。

POSIX 解决了上述问题,其全称是 可移植操作系统接口 (Portable Operating System Interface of UNIX)

兼容 POSIX 的操作系统都会提供一套完全一样的接口给用户应用,用户应用开发者完全不需要关注内核怎么实现某个功能,只需要按照事先约定的标准(POSIX 标准),调用指定的接口即可。

不同的操作系统通过兼容 POSIX 标准,为开发者提供了一个统一的接口,用以调用某个系统功能。操作系统按照 POSIX 接口功能的需要,调用自己的内核(通过系统调用)来实现对应接口的功能。

我们可以将实现了 POSIX 标准的操作系统称之为 POSIX 操作系统,例如 Linux,Mac OS,就连 WIndows 现在也支持了 POSIX。

从目前来看,不实现 POSIX 标准的用户操作系统是没有前途的,因为应用移植困难,没有开发者写应用,就没有用户使用。

unistd.h

在 C/C++ 程序设计中,unistd.h 头文件提供了 POSIX 操作系统的接口名称,unistd 意为 Unix Standard。

所有遵循 POSIX 标准的操作系统和编译器都需要提供这个头文件。

https://zh.m.wikipedia.org/zh-hans/Unistd.h

0

评论区