linux编程手册读书笔记第一章(20140329)
(2)管道、FIFO、套接字、設(shè)備(比如終端、偽終端)都支持非阻塞模式。(因?yàn)闊o法通過open()來獲取管道和套接字的文件描述符。所以要啟用非阻塞標(biāo)志,就必須使用fcntl()的F_SETFL命令)
(3)指定O_EXCL 標(biāo)志調(diào)用open(),這確保了調(diào)用者就是文件的創(chuàng)建者
(4)指定O_APPEND標(biāo)志調(diào)用open(),這確保了多個(gè)進(jìn)程在對(duì)同一文件追加數(shù)據(jù)時(shí)不會(huì)覆蓋彼此的輸出
(5)fcntl()可以執(zhí)行許多文件控制操作,其中包括:修改打開文件的狀態(tài)標(biāo)志、復(fù)制文件描述符
(6)dup()和dup2()系統(tǒng)調(diào)用也能實(shí)現(xiàn)文件描述符的復(fù)制功能。
(7)UNIX歷史:
? ? ? ? AT&T發(fā)布了UNIX的第一版到第六版,沒有新的衍生分支系統(tǒng)。但已經(jīng)包括了許多沿用至今程序的雛形:ar、cat、chmod、chown、cp、dc、ed、find、ln、ls、?
? ? ? ? mail、mkdir、mv、rm、sh、su、who
? ? ? ? AT&T發(fā)布了UNIX的第七版,攜帶了新的工具軟件:awk、make、sed、tar、uucp、Bourne shell,FORTRAN 77編譯器。第七版分裂出兩大分支:BSD、System V
? ? ? ? BSD:伯克利軟件發(fā)布,Berkeley Software Distribution ? ? ? 包含新特性:C shell、vi編輯器、伯克利快速文件系統(tǒng)、sendmail、Pascal語(yǔ)言編譯器,以及新型
? ? ? ? Digtial VAX架構(gòu)的虛擬內(nèi)存管理機(jī)制。 1983年4.2BSD包含了完整的TCP/IP實(shí)現(xiàn),其中包括套接字API以及各種網(wǎng)絡(luò)工具。1993年最終發(fā)布版本4.4BSD
? ? ? ? 1994年經(jīng)過與USL(UNIX System Laboratories 派生自AT&T的子公司,目前被Novell收購(gòu))的庭外和解,修正版權(quán)后發(fā)布了4.4BSD-Lite
? ? ? ? SVR4 : 1982年AT&T解體,AT&T的UNIX支撐團(tuán)隊(duì)(UNIX Support Group--USG)于1989年發(fā)布System V Release4(SVR4),納入了BSD的諸多特性,
?? ? ? ? ? ? ? ? 包含聯(lián)網(wǎng)能力。
? ? ? ?
?? ? ? 商業(yè)性質(zhì)的UNIX實(shí)現(xiàn)在各種硬件架構(gòu)的應(yīng)用:SUN的SunOS和Solaris;HP Tru64 UNIX;IBM AIX; HP-UX;NeXTStep;Apple Macintosh上A/UX、
?? ? ? Microsoft和SCO聯(lián)合為Intel x86-32架構(gòu)開發(fā)的XENIX
?? ? ? 基于4.3BSB,將BSD移植到32位的X86 cpu上,命名為386/bsd;基于386/bsd衍生出NetBSD和FreeBSD
?? ? ? NetBSD側(cè)重于對(duì)于大量硬件平臺(tái)的可移植性;FreeBSD關(guān)注性能
?? ? ? OpenBSD從NetBSD分離出來,偏重于安全性
(8)UNIX標(biāo)準(zhǔn):
? ? ? ? SUS:Single UNIX Specification
? ? ? ? POSIX標(biāo)準(zhǔn):可移植操作系統(tǒng)Portable Operating System Interface,提升應(yīng)用程序在源碼級(jí)別的可移植性
? ? ? ? POSIX.1標(biāo)準(zhǔn):操作系統(tǒng)應(yīng)向程序提供調(diào)用各項(xiàng)服務(wù)的API;
? ? ? ? ? ? ? ? ? ? ? ? ? ? 該標(biāo)準(zhǔn)基于UNIX系統(tǒng)調(diào)用和C語(yǔ)言庫(kù)函數(shù),但無需與任何特殊實(shí)現(xiàn)相關(guān)。這意味著任何操作系統(tǒng)都可以實(shí)現(xiàn)該接口,而不一定要是UNIX操作系統(tǒng)。
? ? ? ? POSIX.2標(biāo)準(zhǔn):對(duì)Shell和包括C編譯器命令行接口在內(nèi)的各種UNIX工具進(jìn)行了標(biāo)準(zhǔn)化。
? ? ? ? X/Open公司:多家國(guó)際計(jì)算機(jī)廠商所組成的聯(lián)盟,致力于采納和改進(jìn)現(xiàn)有標(biāo)準(zhǔn)。
?? ? ? ? ? ? ? ? ? ? ? ? ? 1994年發(fā)布的指導(dǎo)叢書---XPG4版本2
?? ? ? ? ? ? ? ? ? ? ? ? ? 1993年Novell將UNIX的商標(biāo)權(quán)轉(zhuǎn)讓給了X/Open,然后發(fā)布了“重新包裝”指導(dǎo)叢書--SUSv1或稱為UNIX95
?? ? ? ? ? ? ? ? ? ? ? ? ? 1997年發(fā)布SUSv2規(guī)范(有時(shí)稱為XPG5),經(jīng)過該認(rèn)證的UNIX稱為UNIX98
?? ? ? SUSv3標(biāo)準(zhǔn) : 取代了SUSv2和 POSIX.2;經(jīng)過該認(rèn)證的UNIX稱為UNIX03
? ? ? ?
?? ? ? XSI規(guī)范:X/Open系統(tǒng)接口,要想完全符合XSI規(guī)范,除了滿足POSIX所有規(guī)定外,還要提供若干POSIX規(guī)范中的可選接口和行為,這樣才可獲得UNIX03稱號(hào)
?? ? ? XSI擴(kuò)展:將XSI規(guī)范符合度達(dá)標(biāo)所需的額外接口和行為統(tǒng)稱為XSI擴(kuò)展。這些擴(kuò)展支持以下特性:線程、mmap()、munmap()、dlopen API、資源限制、
?? ? ? ? ? ? ? ? ? ? 偽終端、System V IPC、syslog API、poll()以及登錄記賬。
?? ? ?
?? ? ? SUSv4標(biāo)準(zhǔn):廢止了SUSv3中的某些函數(shù),這包括asctime()、ctime()、ftw()、gettimeofday()、getitimer()、setitimer()、siginterrupt()
?? ? ? ? ? ? ? ? ? ? ? ? 刪除了SUSv3標(biāo)記為作廢的函數(shù):gethostbyname()、gethostbyaddr()、vfork()
(9)Linux歷史(內(nèi)核0.0.2發(fā)布于1991年):
? ? ? ? GNU:GNU’s not UNIX
? ? ? ? FSF:自由軟件基金會(huì)
? ? ? ? GNU GPL:通用公共許可協(xié)議
? ? ? ? GNU項(xiàng)目成果:Emacs文本編輯器、GCC、bash shell、glibc;但沒有系統(tǒng)內(nèi)核
? ? ? ? Linux:只是指由Linus Torvalds和其他人所開發(fā)出的內(nèi)核;該內(nèi)核外加一大堆其他軟件(工具和庫(kù))構(gòu)成完整操作系統(tǒng)
? ? ? ? LSB:Linux Standard Base? Linux標(biāo)準(zhǔn)規(guī)范
? ? ? ? ? ? ? ? 遵循各種UNIX標(biāo)準(zhǔn),尤其時(shí)符合POSIX和SUS規(guī)范,是Linux(即內(nèi)核、glibc以及工具)開發(fā)的總體目標(biāo)。
?? ? ? ?
? ? ? ? LSB推廣的二進(jìn)制可移植性(編譯過的程序),只要硬件平臺(tái)不一,便無法實(shí)現(xiàn)。 ? ? ? ? ?
? ? ? ? POSIX推廣的是源碼可移植性,指以C語(yǔ)言編寫的程序可以在任何符合POSIX規(guī)范的系統(tǒng)上編譯并運(yùn)行。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的linux编程手册读书笔记第一章(20140329)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有名管道和无名管道的区别
- 下一篇: Linux编程手册读书笔记第二章(201