linux编程手册读书笔记第一章(20140329)

2)管道、FIFO、套接字、设备(比如终端、伪终端)都支持非阻塞模式。(因为无法通过open()来获取管道和套接字的文件描述符。所以要启用非阻塞标志,就必须使用fcntl()的F_SETFL命令)

3)指定O_EXCL 标志调用open(),这确保了调用者就是文件的创建者

4)指定O_APPEND标志调用open(),这确保了多个进程在对同一文件追加数据时不会覆盖彼此的输出

5fcntl()可以执行许多文件控制操作,其中包括:修改打开文件的状态标志、复制文件描述符

6dup()和dup2()系统调用也能实现文件描述符的复制功能。

7UNIX历史:

        AT&T发布了UNIX的第一版到第六版,没有新的衍生分支系统。但已经包括了许多沿用至今程序的雏形:arcatchmodchowncpdcedfindlnls 

        mailmkdirmvrmshsuwho

        AT&T发布了UNIX的第七版,携带了新的工具软件:awkmakesedtaruucpBourne shellFORTRAN 77编译器。第七版分裂出两大分支:BSDSystem V


        BSD:伯克利软件发布,Berkeley Software Distribution       包含新特性:C shellvi编辑器、伯克利快速文件系统、sendmailPascal语言编译器,以及新型

        Digtial VAX架构的虚拟内存管理机制。 19834.2BSD包含了完整的TCPIP实现,其中包括套接字API以及各种网络工具。1993年最终发布版本4.4BSD

        1994年经过与USLUNIX System Laboratories 派生自AT&T的子公司,目前被Novell收购)的庭外和解,修正版权后发布了4.4BSDLite


        SVR4 : 1982AT&T解体,AT&TUNIX支撑团队(UNIX Support Group--USG)于1989年发布System V Release4SVR4),纳入了BSD的诸多特性,

                 包含联网能力。

       

       商业性质的UNIX实现在各种硬件架构的应用:SUNSunOSSolarisHP Tru64 UNIXIBM AIX HPUXNeXTStepApple MacintoshAUX

       MicrosoftSCO联合为Intel x86-32架构开发的XENIX


       基于4.3BSB,将BSD移植到32位的X86 cpu上,命名为386/bsd;基于386/bsd衍生出NetBSDFreeBSD

       NetBSD侧重于对于大量硬件平台的可移植性;FreeBSD关注性能

       OpenBSDNetBSD分离出来,偏重于安全性

8UNIX标准:

        SUSSingle UNIX Specification

        POSIX标准:可移植操作系统Portable Operating System Interface,提升应用程序在源码级别的可移植性

        POSIX.1标准:操作系统应向程序提供调用各项服务的API

                            该标准基于UNIX系统调用和C语言库函数,但无需与任何特殊实现相关。这意味着任何操作系统都可以实现该接口,而不一定要是UNIX操作系统。

        POSIX.2标准:对Shell和包括C编译器命令行接口在内的各种UNIX工具进行了标准化。


        X/Open公司:多家国际计算机厂商所组成的联盟,致力于采纳和改进现有标准。

                           1994年发布的指导丛书---XPG4版本2

                           1993NovellUNIX的商标权转让给了X/Open,然后发布了重新包装指导丛书--SUSv1或称为UNIX95

                           1997年发布SUSv2规范(有时称为XPG5),经过该认证的UNIX称为UNIX98

       SUSv3标准 : 取代了SUSv2 POSIX.2;经过该认证的UNIX称为UNIX03

       

       XSI规范:X/Open系统接口,要想完全符合XSI规范,除了满足POSIX所有规定外,还要提供若干POSIX规范中的可选接口和行为,这样才可获得UNIX03称号


       XSI扩展:将XSI规范符合度达标所需的额外接口和行为统称为XSI扩展。这些扩展支持以下特性:线程、mmap()、munmap()、dlopen API、资源限制、

                     伪终端、System V IPCsyslog APIpoll()以及登录记账。

      

       SUSv4标准:废止了SUSv3中的某些函数,这包括asctime()、ctime()、ftw()、gettimeofday()、getitimer()、setitimer()、siginterrupt()

                         删除了SUSv3标记为作废的函数:gethostbyname()、gethostbyaddr()、vfork()


9Linux历史(内核0.0.2发布于1991年):

        GNUGNU’s not UNIX

        FSF:自由软件基金会

        GNU GPL:通用公共许可协议

        GNU项目成果:Emacs文本编辑器、GCCbash shellglibc;但没有系统内核

        Linux:只是指由Linus Torvalds和其他人所开发出的内核;该内核外加一大堆其他软件(工具和库)构成完整操作系统

        LSBLinux Standard Base  Linux标准规范

                遵循各种UNIX标准,尤其时符合POSIXSUS规范,是Linux(即内核、glibc以及工具)开发的总体目标。

        

        LSB推广的二进制可移植性(编译过的程序),只要硬件平台不一,便无法实现。          

        POSIX推广的是源码可移植性,指以C语言编写的程序可以在任何符合POSIX规范的系统上编译并运行。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值