unix网络编程——Posix与System V

UNIX演进与POSIX 在开始学习UNIX系统编程之前,了解UNIX的发展历史和POSIX标准的由来是必要的。这不仅能帮助我们理解为什么现代操作系统会有这样的设计,更能让我们明白跨平台编程的重要性。UNIX的诞生背景和核心理念System V和BSD两大分支的演变POSIX标准的制定过程和核心内容现代UNIX系系统的格局跨平台编程在今天的意义适用读者:对UNIX历史感兴趣的系统编程初学者、需要跨平台开发的工程师。 阅读详情

概念

System V

Posix是Portable Operating System Interface(可移植性操作系统接口)的简称,是一个电气与电子工程学会即IEEE开发的一系列标准,目的是为运行在不同操作系统的应用程序提供统一的接口,实现者是不同的操作系统内核。
Unix操作系统在操作风格上主要分为System V和BSD(目前一般采用BSD的第4个版本SVR4),前者的代表的操作系统有Solaris操作系统,在Solaris1.X之前,Solaris采用的是BSD风格,2.x之后才投奔System V阵营。后者的代表的操作系统有FreeBSD。

System V

System V它最初由AT&T开发,曾经也被称为AT&T System V,是Unix操作系统众多版本中的一支。在1983年第一次发布,一共发行了4个System V的主要版本,System V Release4,或者称为SVR4,是最成功的版本,该版本有些风格成为一些UNIX共同特性的源头,如下表格的初始化脚本/etc/init.d。用来控制系统的启动和关闭。
  BSD(Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,1970年代由伯克利加州大学(Uni Versity of California, Berkeley)开创。BSD用来代表由此派生出的各种套件集合。
  System V是unix的一种操作风格。

进程间通信

根据《Unix网络编程》第二卷,进程间通信方式有管道(pipe)、消息队列、信号量、共享内存,后三者均由Posix和System V两种风格。
具体区别如下:

效率

在信号量这种常用的同步互斥手段方面,POSIX在无竞争条件下是不会陷入内核的,而SYSTEM V则是无论何时都要陷入内核,因此性能稍差。

冗余

POSIX的sem_wait函数成功获取信号量后,进程如果意外终止,将无法释放信号量,而System V则提供了SEM_UNDO选项来解决这个问题。因此,相比而言,SystemV更加可靠。

应用

可能有小部分操作系统没有实现POSIX标准,System V更加广泛些,但是考虑到可移植性POSIX必然是一个趋势。在IPC,进程间的消息传递和同步上,似乎POSIX用得较普遍,而在共享内存方面,POSIX实现尚未完善,system V仍为主流。

多线程与多进程

在观察使用进程间通信手段后,会发现在多线程中使用的基本是POSIX标准提供的接口函数,而多进程则是基于System V

避坑指南:CesiumLab+ENVI处理Sentinel-2影像数据的完整流程 本文提供了一份详细的避坑指南,完整介绍了如何利用CesiumLab和ENVI工具链,将Sentinel-2卫星影像处理成可供Cesium三维地球引擎加载的离线瓦片数据。内容涵盖数据获取、SNAP预处理、ENVI影像增强合成以及CesiumLab切片配置等全流程实战步骤与关键参数优化,旨在帮助工程师高效构建自主可控的高精度离线地图服务。 阅读详情

相关推荐

PCB设计实践(三十二)PCB设计遇到大电流时的设计技巧

本文系统阐述10A至数百安培PCB设计的六大关键技术。载流能力优化强调铜厚选择(2-4oz)、线宽计算及并联结构;热管理提出散热孔阵列、铜基板嵌入等方案;布局策略包括功率分区和低阻抗路径设计;材料工艺推荐铝基板、陶瓷基板等高效解决方案;安全设计涵盖电气隔离与保护电路;验证环节需结合热仿真与实测。典型150A电机驱动板案例显示,通过4oz铝基板、散热孔阵列等设计,可实现温升≤45℃的稳定运行。核心在于铜厚线宽协同、主动散热及严格验证。

致力于硬件设计、人工智能知识及技术的分享,不断鞭策自己成长,共同进步! 4230

Unix网络编程学习笔记

unix网络编程,C语言,多线程,多进程,epoll,select

weixin_45045804的博客 2630

SAP 接口测试操作-业务顾问

业务顾问测试接口操作

weixin_43657667的博客 5158

Unix网络编程第一卷学习总结

简述和TCP/IP 如果要写一个简单的ipv6客户端程序,需要sockaddr_in6地址,其余用法和ipv4的用法一致, 先指定地址族,端口,ip地址,connect成功后,就可以发包收包

quinta2008,阳光风雨就是我 1875

遥感数据处理之MCD19A2数据的处理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 这一段时间一直在做modis气溶胶产品——MCD19A2这个数据的处理工作,总结了一些东西,在这里分享一下。 modis数据一般可以用MCTK和MRT这两个工具进行处理,下面先介绍一下用这两种工具处理MCD19A2的流程: 先解众惑:为什么使用MCD19A2数据处理出来的结果会有3个或4个或5个波段。 这里使用HDF Exploer这个软件,下载链接 1.使用MCTK处......

weixin_42176976的博客 1万+

F5 Shape逆向工程实战:从美西南航空到xbk的风控突破

本文以美西南航空和xbk为例,深入剖析了F5 Shape风控系统的逆向工程实战。文章拆解了其核心防线,包括通信加密、JSVMP逆向分析和无孔不入的环境指纹检测,并分享了定位Header生成入口、模拟算法输出及构建真实浏览器环境的系统性方法与思路,为合规的技术研究与测试提供参考。

weixin_29327525的博客 1389

UNIX网络编程

UNIX网络编程

weixin_45516025的博客 1596

eLabRadio软件无线电虚实结合仿真开发平台简介

在使用仿真平台时,不要关闭设备或断开设备与PC机之间的网络连接,否则,仿真平台将无法正常工作。注:采用eNodeX设备认证方式,当出现“设备不存在”的报错时,请检查计算机IP是否和硬件设备IP处于同一网段,或者是否是先连接好网线,再开启硬件设备的。①此登录方式下,需要先建立软件与硬件的通信:在登录窗口点击【网络配置】,参照下图输入设备IP,服务器地址无需设置,设置完成后点击确认,此时登录界面无需设置账号密码;,拷贝到电脑上,使用管理员权限运行setup.exe,下一步直到安装完成,桌面会生成快捷方式。

weixin_55349105的博客 6319

System V与POSIX的区别与联系

System V与POSIX的相关说明

威桑的博客 1303

手把手教你用Node.js模拟大麦APP下单请求(含滑块验证处理)

本文详细解析了如何使用Node.js模拟大麦APP下单请求的全流程,包括接口逆向、滑块验证处理和签名算法逆向等关键技术。通过实战案例和代码示例,帮助开发者掌握移动端API调用的核心要素,如动态参数构造、安全验证突破等,提升自动化下单的成功率和效率。

weixin_42569329的博客 353

【深度剖析】三一重工的数字化转型(中篇)

三一重工在数字化转型方面取得了提高效率、降低成本、加强研发创新和改善内控管理等多方面的成效。本研究旨在通过对三一重工数字化转型的深入分析,引导企业思考在第四次工业革命与第三次能源革命交汇的超级技术窗口期,如何进一步把握发展机遇,并为同行业其他企业提供探索性的建议。作为装备制造行业的佼佼者,三一重工的数字化转型受到了业界的广泛关注。作为行业内首批接触并实践数字化转型的企业之一,三一重工的转型经验不仅成功,而且积累了丰富的理论与实践,为其他制造业企业的数字化转型提供了可借鉴的范例。

领信卓越的博客 2306

IPC之System V vs POSIX

关于 SYSTEM V 和 POSIX的接口说明

老嵌入式程序员了,2009年入坑至今 1747

【Java开发者必看】LangChain4j实战指南:使用AIService轻松集成聊天记忆Chat Memory到SpringBoot应用,通过封装多轮复杂对话,使聊天记忆的实现变得简单

聊天记忆是指在与用户的多轮对话过程中,能够记住之前的交互内容,从而提供更加连贯和个性化的回复。LangChain4j支持通过ChatMemoryProvider接口实现聊天记忆功能。

Spring Boot-Common On With You 448

System V IPV & Posix IPC(摘自Unix网络编程卷2)

Poxis IPC 消息队列 信号量 共享内存区 头文件 <mqueue.h> <semaphore.h> <sys/mman.h> 创建、打开或删除IPC的函数 mq_open mq_close mq_unlink sem_open sem_close sem_unlink ...

weixin_30525825的博客 113

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

UNIX网络编程——Posix共享内存区和System V共享内存区

Posix提供了两种在无亲缘关系进程间共享内存区的方法: (1)内存映射文件:先有open函数打开,然后调用mmap函数把得到的描述符映射到当前进程地址空间中的一个文件。 (2)共享内存区对象:先有shm_open打开一个Posix IPC名字(也可以是文件系统中的一个路径名),然后调用mmap将返回的描述符映射到当前进程的地址空间。 两种方法多需要调用mmap,差别在于作为mm

rqc112233的专栏 1402

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

POSIX Vs System V

看《UNIX网络编程卷二: IPC》,基本是前一章介绍POSIX, 后一章就介绍 System V, 没有好好看各派的区别,懒得都看,搜索之,以解惑!显然,UNP对POSIX的介绍要详细得多,而 System V则显得比较轻。原来,POSIX是标准化组织推行的,适合系统之间移植,更简单一些。而System V 历史较为悠久,接口比较复杂。另一方面,可能有些系统尚未对POSIX做实现,而syst

violetfeeling的专栏 6739

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

UNIX网络编程 : 第2版. 第2卷, 进程间通信(中文版)

UNIX网络编程 : 第2版. 第2卷, 进程间通信(中文版) 基本信息 原书名: UNIX Network Programming, Volume 2: Interprocess Communications (2nd Edition) 原出版社: Prentice Hall 作者: (美)W. Richard Stevens 丛书名: 图灵计算机科学丛书 出版社:人民邮电出版社 IS...

yangzhiyong77 509

【Linux系统】汇总

01_buildroot的配置方法_哔哩哔哩_bilibiliYocto嵌入式Linux大杀器-合集_哔哩哔哩_bilibili。

qq_58358642的博客 61

UNIX网络编程卷2:进程间通信 阅读记录

进程间通讯 共享内存

weixin_46236517的博客 1190

《网络编程卷2:进程间通信》第三章:System V IPC 核心机制与实战详解

System V IPC 提供了强大而灵活的进程间通信机制,但其设计较为复杂,需开发者手动管理资源生命周期。本文通过代码实例详细解析了消息队列、信号量和共享内存的实现方法,并总结了其应用场景与注意事项。优先选择 POSIX IPC:若系统支持,优先使用更现代的 POSIX 标准。合理设计 IPC 对象:避免键值冲突,及时清理资源。掌握 System V IPC 是深入理解 UNIX 系统编程的重要一步,也为维护遗留系统提供了必要的基础。

SEU123WW的博客 1069

《网络编程卷2:进程间通信》第六章:System V消息队列深度剖析与工业级实践

System V消息队列作为UNIX IPC的基石,其设计思想深刻影响了后续的中间件系统。尽管在现代系统中逐渐被POSIX标准和分布式消息队列(如Kafka、RabbitMQ)取代,但在嵌入式、实时系统及遗留系统维护中仍不可替代。掌握其核心机制与调优技巧,是深入理解操作系统原理和构建高可靠系统的关键。未来演进方向与容器技术集成:在Docker/K8s环境中管理IPC命名空间。安全增强:结合SELinux实现强制访问控制。性能监控:通过eBPF实现实时队列状态追踪。

SEU123WW的博客 708

Posix和System V的比较及IPC函数简单总结

在W.Richard.Stevens的《UNIX 网络编程 卷二:进程间通信》一书中,对常见的三种IPC(消息队列、信号量、共享内存)分别讲解了posix和system V标准的解决方案。对于这两种标准,起初的目的都是为了解决IPC的问题而形成的一种协议和规范,它们都给出了各自的IPC类型所必须满足的特性和相关的命名规范,这是无关于任何具体系统实现的。posix相对于system V可以说是比较新...

paradox_1_0的博客 1511

unix网络编程进程间通讯第一章简介

#unix网络编程进程间通讯第一章简介 ####1.1简介 IPC是(internel process communication) 内核之间的进程通讯,不通进程之间的消息传递,因为像共享内存这样的比较新的通信方式需要某种形式的共同参与和运作 在unix高阶编程30年的演变过程中,消息传递经过了下面的几个阶段 1)管道,这是第一个广泛使用的ipc形式,既可以在程序中使用,也可以在shell中...

qq_32783703的博客 164

UNIX网络编程卷2进程间通信读书笔记汇总

UNIX网络编程卷2进程间通信读书笔记(一)—概述http://blog.chinaunix.net/u/22935/article_52711_2.html UNIX网络编程卷2进程间通信读书笔记(二)—管道 (1)http://blog.chinaunix.net/u/22935/article_52711_2.html UNIX网络编程卷2进程间通信读书笔记(二)

hanchaoman的专栏 1766
上一篇: linnux命令总结__red hat和dibian
下一篇: Manacher算法--来个空间换时间的算法
HappyHeavyRain
博客等级 码龄10年 4粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值