當前位置:編程學習大全網 - 編程語言 - Forklinux網絡編程

Forklinux網絡編程

它提供了Windows操作系統下的UNIX環境,可以幫助程序開發人員將應用程序從UNIX/Linux移植到Windows平臺上(當然,它也是開發便於在Windows平臺移植的UNIX Linux代碼的強大工具集)。

附:壹、概述

標準的UNIX操作系統是壹個交互式分時系統,它提供了支持程序開發全過程的基礎和環境,可以支持40個最終用戶。UNIX系統是由at & amp;T)是由貝爾實驗室的兩位程序員在T)的帶領下於1969 ~ 1970開發的。UNIX自問世以來壹直很受歡迎。它運行在各種具有不同處理能力的機器上,從高端微型計算機到大型機。目前,UNIX不僅可以在DEC的PDP-11和VAX-11的各種型號上運行,還可以在IBM的370和3300系列計算機以及Amdahi的、Data General的和Hp的系列計算機上運行。近年來,幾乎所有的16位計算機和32位微型計算機都在競相移植UNIX。這種情況在操作系統發展史上極為罕見。隨著UNIX的普及,C語言的書寫系統也成為壹種引人註目的語言,並得到了廣泛的應用。

UNIX系統取得巨大成功,有其內在原因,也有客觀因素。客觀條件之壹是在UNIX出現之前已經成功開發了很多操作系統,其中有成功的經驗,也有失敗的教訓,UNIX的設計者經過深思熟慮做出了適當的取舍,使得UNIX站在了前人的肩膀上,取得了成功(MULTICS用了200人年才達到最初的目標,而UNIX只用了2人年);其次,因為當時人們需要壹個使用方便、開發環境好、規模適中的系統,UNIX恰逢其時;第三,UNIX是在PDP-11系列計算機上開發的,這些計算機已經在國際上廣泛使用,為UNIX的廣泛部署創造了條件。當然,UNIX成功的關鍵在於其自身的性能和特點。

UNIX的主要特點是:短小精悍,簡單有效,易於理解、擴展和移植。

UNIX的核心程序由大約10000行C語言代碼和1000行匯編語言代碼組成,分為44個可以獨立編譯匯編的文件,每個文件又分為若幹個進程。這些文檔可以分為以下三類:

⑴匯編語言文件:系統中只有兩個文件是用匯編語言編寫的,包括33個匯編子程序,以及與機器硬件直接相關的部分,如中斷處理、系統啟動等。為了提高效率,壹些常用的基本程序也是用匯編語言編寫的。

⑵C語言文件:* * * *有28個文件,包含了流程管理的主流程,可分為190個子程序。文件可以獨立編譯,由匯編程序連接匯編後執行。

⑶C語言全局變量文件:* * * * 14,包含結構的重要描述。這類文件不能獨立編譯,必須用C語言文件編譯。

二、UNIX操作系統的主要特點

1.精致的內核和豐富的實用層

UNIX系統在結構上分為內核層和實用程序層。核心層很小,但實用層很豐富。核心層包括流程管理、存儲管理、設備管理和文件系統。UNIX的核心層設計得非常簡潔,其主要算法都是經過反復推敲精心設計的。因此,核心層只需要占用很小的存儲空間,並且可以內存駐留,從而保證系統高效率的工作。

實用程序層是可以從核心層中分離出來的部分,它以核心外程序的形式出現,運行在用戶環境中。這些核外軟件包包含豐富的語言處理器。UNIX支持十幾種常用編程語言的編譯器和解釋器,如C、APL、FORTRAN77、PASCAL、SNOBOL、COBOL、BASIC、ALGOL68及其編譯器。還包括其他操作系統的常用實用程序,如編輯程序、調試程序、與系統狀態監控和文件管理相關的實用程序等。UNIX也有壹套強大的軟件工具,用戶可以很容易地使用它們來開發新軟件。這些軟件工具包括:用於處理文本文件的實用程序troff和源代碼控制程序SCC。

s(源代碼控制系統)、命令語言詞法分析器和語法分析器生成器Lex(音樂分析器生成器)和YACC(Ye)。

Tanothercompiler)等等。此外,UNIX命令解釋器Shel。

l也是核外項目。正是這些核外程序為用戶提供了壹個相當完整的編程環境。

UNIX的核心層為核心之外的程序提供了充分而強大的支持。核外程序基於內核,最終都使用內核層提供的底層服務,它們逐漸成為“UNIX系統”的壹部分。核心層和實踐層合二為壹,為用戶提供各種良好的服務。

2.使用靈活的命令編程語言外殼

Shell首先是壹種命令語言。UNIX的200多個命令對應200個實用程序。Shell也是壹種編程語言。它具有許多高級語言的控制流能力,如if、for、while、until、case語句,以及對字符串變量進行賦值、替換、替代參數和替換命令的能力。用戶可以使用這些函數用Shell語言編寫“Shell”程序,並保存在文件中。以後用戶只需要輸入相應的文件名就可以執行了。這種方法易於系統擴展。

3.分層文件系統

UNIX系統采用樹形目錄結構來組織各種文件和文件目錄。這種組織有利於輔助存儲空間的分配和快速的文件搜索,還可以為不同用戶的文件提供文件共享和訪問控制能力,保證用戶之間安全有效的協作。

4.統壹處理文件和設備

UNIX系統中的文件是非結構化的字節序列。默認情況下,文件是按順序訪問的,但如果需要,用戶可以為文件構建自己的結構,並且用戶還可以通過更改讀/寫指針來隨機訪問文件。

UNIX像對待文件壹樣對待外圍設備,外圍設備像磁盤上的普通文件壹樣被訪問,* * *享受和保護。用戶不必區分文件和設備,也不需要知道設備的物理特性就可以訪問它們。比如系統中行式打印機對應的文件名是//dev/lp。用戶可以通過寫文件從打印機輸出數據。這樣,在用戶面前,文件的概念簡單,使用方便。

5.良好的便攜性

所有的UNIX實用程序和90%的核心代碼都是用C語言編寫的,這使得UNIX成為壹個可移植的操作系統。操作系統的可移植性帶來了應用程序的可移植性,所以用戶的應用程序可以用於小型機和其他微機或大型機。從而大大提高了用戶的工作效率。

雖然UNIX系統取得了巨大的成功,但它也不是沒有缺點。總結起來,對UNIX的批評如下:

1的版本太多了。UNIX系統,這使得應用程序的可移植性沒有完全實現。

UNIX是用C語言寫的,所以很容易修改和移植。UNIX還鼓勵用戶使用UNIX工具開發適合自己需求的環境,導致UNIX版本太多。為了解決這個問題,目前,AT & T已經與四家重要的微型計算機制造商(Inte

r、摩托羅拉、Zilog和國家半導體)合作制定統壹的UNIX。

System V版本,這將對UNIX的標準化產生很大的影響。

2.UNIX系統缺乏實時控制、分布式處理和網絡處理能力。

這個缺點也在不斷改進。已經開發了基於UNIX的分布式系統和具有實時處理能力的系統,並且已經成功地開發了壹些。

3.3的核心。UNIX系統是無序的模塊結構。

UNIX系統90%的核心都是用C語言編寫的,但是它的結構沒有層次結構,所以非常復雜,很難修改和擴展。

UNIX系統的這些缺點與其成就相比是非常微小的,它的成功是輝煌的。

三、UNIX系統結構

UNIX操作系統采用以全局變量為中心的模塊結構,所以系統結構比較復雜,主要表現在:模塊之間的循環調用和文件之間的全局變量。

在結構上,UNIX可以分為核心層和外殼層。核心層分為最底層的帶硬件接口的設備驅動、物理存儲塊管理和下層實現存儲管理、文件管理、設備管理、進程管理等功能。內核的外層是系統調用,是UNIX內核的對外接口。最外層是用戶和UNIX系統之間的接口,其他各種實用程序和用戶程序也在這壹層運行。

系統結構如圖8.1所示。

1.殼

UNIX提供的用戶界面是壹種命令語言,叫做Shell,這種命令語言的解釋器也叫做Shell。系統初始啟動時,為每個用戶建立壹個Shell進程,每個Shell進程等待用戶輸入命令。最簡單的命令形式是命令行,它由命令名和幾個參數組成,用空格分隔。Shell在解釋和執行命令時,首先區分命令名和參數,然後根據命令名找到對應的文件,將文件讀入內存,根據給定的參數解釋和執行。

命令的執行由fork系統調用完成,Shell進程調用。

k之後,fork創建Shell進程的子進程,讓Shell進程等待。子進程解釋並執行命令。當命令被執行時,子進程調用exit系統調用來完成終止子進程和釋放父進程的工作。Shell進程釋放後,會給出壹個提示,允許用戶輸入下壹個命令行。該命令的基本執行過程如圖8.2所示。

UNIX的交互系統要求用戶等待上壹行命令的執行,在終端出現提示後再進入下壹行命令行。由於有些命令執行時間較長,為了減少用戶的等待時間,允許用戶使用Shell命令語言編寫程序來表示UNIX系統中壹組命令的執行順序,用命令語言編寫的程序稱為Shell程序。Shell程序存儲在壹個文件中,命令解釋器在必要時執行Shell程序中的命令。

2.系統調用

系統調用是用戶程序請求操作系統為其服務的唯壹方式。在UNIX中,系統調用被稱為程序員接口。UNIX規定用戶程序用trap指令請求系統服務,UNIX內核中的中斷陷阱程序根據陷阱類型轉向相應的處理程序。陷阱指令的形式如下:

UNIX版本6 * * *有41個系統調用,可以分為以下三類:

①與進程管理相關的系統調用,如建立子進程、等待子進程、睡眠、發信號、修改數據段大小等。

②與文件管理相關的系統調用,如創建文件、連接文件、打開文件、關閉文件、讀取文件、寫入文件、修改當前目錄、修改文件屬性等。

③其他系統調用,如取當前用戶號、取日歷時間、讀取進程運行時間、更改優先級號等。

在系統調用中,有兩種方法傳遞參數。第壹種方式:在程序中,通過trap指令後繼單元傳遞。這種方式分為直接方式和間接方式。在直接模式下,trap指令的後續單元最多允許放入5個參數;在間接模式下,trap指令的後續單元放壹個參數區指針,這個參數區可以存放更多的參數。第二種方法是通過寄存器R0和R1傳遞參數。

UNIX系統程序員接口,包括大量的庫子程序和標題文件。標題文件定義了系統調用中使用的復雜數據結構;庫子程序和庫函數為系統調用提供了額外的程序支持。

3.存儲管理

UNIX系統最初是在PDP-11上開發的。PDP-11是分段存儲器。在PDP-11中,壹個段稱為壹個頁面,每個頁面可以包含若幹個塊,每個塊64字節,主存以塊為單位分配。

存儲分配采用優先級自適應算法,利用空閑區表管理存儲空間。每個表有50個條目,每個條目有2個單元,其中壹個指向對應空閑區的起始塊號,另壹個指示空閑區的大小。表中項的順序是按照自由區的地址從低到高排列的,如果有兩個相鄰的自由區,就合並成壹個。表項內容為0,表示頁腳。

由於PDP-11不支持虛擬內存,所以UNIX中內存用戶區和磁盤交換區的分配和釋放由存儲管理模塊管理。在交換程序的管理下,內存用戶區和磁盤交換區合為壹體,起著虛擬內存的作用。掃描PCB表進行交換進程,如果輔助中有就緒進程,檢查內存中是否有空閑區,如果有空閑區,直接調入;否則,內存中的壹些進程應該被換出。如果內存中沒有可交換的進程,被交換的進程將處於等待狀態,直到某些事件發生,並在喚醒後再次工作。當輔助存儲器中有多個就緒進程時,根據FIFO將它們切換到存儲器中;當內存中有多個進程可以換出時,選擇可交換進程中優先級較低的進程進行換出。

當進程想要增加頁面長度時,可以通過申請新頁面,釋放舊頁面來實現。如果內存空間不夠,就在輔助內存中申請新的壹頁,同時把整個過程改到輔助內存中。

什麽是Linux?

1991年,芬蘭Helexin的學生LinusTorvalds開發了壹個類似Unix的運行在80386平臺上的操作系統,命名為Linux,供自己使用和學習。為了讓每個需要它的人都能方便使用,LinusTorvalds把它變成了“免費”軟件。

由於互聯網的快速發展,全世界的程序員都有了壹種全新而有效的交流方式。也要感謝幾年前RichardStallman主持的GNU項目。Linux在幾年後成為壹個完整的操作系統。它的能量被釋放出來,變得非常可靠,每天都有新的改進加入。

為了讓Linux好用,Linux也有很多發行版本,其實就是壹套完整的程序組合。現在有許多不同的Linux發行版及其版本號。為避免混淆,我們先解釋壹些常用術語。

當我們談到Linux時,我們壹般指的是“RealLinux”,即內核,它是所有UNIX操作系統的“心臟”。但是linux本身不能成為壹個可用的操作系統。還需要很多軟件包,編譯器,庫文件,Xwindow系統等等。因為組合方式不壹樣,面向用戶的對象不壹樣,這就是為什麽會有很多不同的Linux發行版。

Linux的特性

Linux操作系統在短短幾年內發展非常迅速,這與Linux的良好特性是分不開的。Linux包含了Unix的所有功能和特性。簡單來說,Linux有以下主要特性:

1.公開

開放性意味著系統遵循世界標準,尤其是OSI國際標準。所有根據國際標準開發的硬件和軟件都可以相互兼容,並且可以很容易地相互連接。

2.多用戶

多用戶是指系統資源可以被不同的用戶擁有和使用,即每個用戶對自己的資源(如文件和設備)都有特定的權限,互不影響。Linux和Unix都具有多用戶的特點。

3.多任務處理

多任務處理是現代計算機最重要的特征。是指壹臺計算機同時執行多個程序,每個程序獨立運行。Linux系統調度每個進程,平等地訪問微處理器。由於CPU的處理速度非常快,因此,啟動的應用程序似乎是並行運行的。實際上,處理器執行壹個應用中的壹組指令和Linux調度微處理器再次運行程序之間只有很短的時間延遲,所以用戶感覺不到。

4.良好的用戶界面

Linux為用戶提供了兩種界面:用戶界面和系統調用。Linux的傳統用戶界面是基於文本的命令行界面,也就是shell,在壹個文件上可以在線也可以離線使用。Shell具有很強的編程能力,用戶可以很容易地用它來編程,從而為用戶提供了壹種更先進的擴展系統功能的手段。可編程Shell是指多個命令組合成壹個Shell程序,可以獨立運行,也可以與其他程序同時運行。

系統調用為用戶提供了編程的接口。用戶可以在編程時直接使用系統提供的系統調用命令。系統通過這個接口為用戶程序提供低級高效的服務。Linux還為用戶提供了圖形用戶界面。它利用鼠標、菜單、窗口、滾動條等設施為用戶呈現壹個直觀、易操作、交互式的友好圖形界面。

5.設備獨立性

設備獨立性意味著操作系統將所有外部設備視為文件。只要安裝了它們的驅動程序,任何用戶都可以像操縱文件壹樣操縱和使用這些設備,而不知道它們的具體存在形式。

具有設備獨立性的操作系統將每個外圍設備視為壹個獨立的文件,從而簡化了添加新設備的工作。當需要添加新設備時,系統管理員會在內核中添加必要的連接。這種連接(也稱為設備驅動程序)確保每次調用設備提供服務時,內核都以相同的方式處理它們。當新的和更好的外設被開發並交付給用戶時,操作允許它們在連接到內核後立即被無限制地訪問。設備無關性的關鍵在於內核的適應性。其他操作系統只允許壹定數量或種類的外部設備連接。獨立於設備的操作系統可以容納任何種類和任何數量的設備,因為每個設備都是通過其與內核的專用連接獨立訪問的。

Linux是壹個設備獨立的操作系統,其內核具有很強的適應性。隨著更多的程序員加入Linux編程,更多的硬件設備將加入各種Linux內核和發行版。此外,由於用戶可以免費獲得Linux的內核源代碼,因此用戶可以修改內核源代碼以適應新增加的外部設備。

6.提供了豐富的網絡功能。

完善的內置網絡是Linux的壹大特色。Linux在通信和網絡功能上優於其他操作系統。其他操作系統不具備與內核緊密結合的網絡連接能力,也不具備內置這些網絡功能的靈活性。Linux為用戶提供了完善而強大的網絡功能。

支持互聯網是其網絡功能之壹。Linux免費提供大量支持互聯網的軟件。互聯網在Unix領域建立並蓬勃發展。在這方面使用Linux相當方便,用戶可以通過互聯網與世界上的其他人交流。

文件傳輸是它的第二個網絡功能。用戶可以通過壹些Linux命令傳輸內部信息或文件。

遠程訪問是它的第三個網絡功能。Linux不僅允許文件和程序的傳輸,還為系統管理員和技術人員提供了壹個訪問其他系統的窗口。通過這種遠程訪問功能,技術人員可以有效地為多個系統提供服務,即使這些系統位於很遠的地方。

7.可靠的系統安全性

Linux采取了許多安全技術措施,包括讀寫訪問控制、帶保護的子系統、審計跟蹤、核心授權等。,為網絡多用戶環境中的用戶提供必要的安全性。

8.良好的便攜性

可移植性是指將壹個操作系統從壹個平臺轉移到另壹個平臺,以便它仍能以自己的方式運行的能力。

Linux是壹個可移植的操作系統,可以運行在從微機到大型機的任何環境和任何平臺上。可移植性為運行Linux的不同計算機平臺提供了壹種方法,使它們能夠準確有效地與任何其他機器進行通信,而無需添加特殊且昂貴的通信接口。

為什麽要用Linux?

Linux是“免費”的,上面有那麽多“免費”軟件。為什麽不用呢?

Windows太不穩定,無法站立。換個平臺。

我想學UNIX,但是錢包裏沒多少錢。先說Linux。

想學操作系統,開源OS在哪裏?但也很積極,很有前途。

基於Linux的並行計算不僅成本低,而且功能強大,極具潛力。重要的是它有源代碼。

如果妳想成為壹名黑客(當然是壹種賽博人),Linux當然是最好的工具之壹。

Linux具有無限的潛在商業價值,性能好,穩定性好,取代商業操作系統是明智的選擇。

Oracle,Infomix,sysbase,IBM都支持Linux,用它做數據庫平臺挺好的。厭倦了壹次次購買許可證(奸商經常設置這樣的陷阱),Linux遵循公共版權許可證(GPL)正合我意。

Linux太適合Internet/Intranet了,通過網絡本身共同開發。網絡時代為什麽不用Linux?

采用Linux可以大大降低總擁有成本(TCO)。等待商業操作系統補丁的耐心是有限度的,不能忍受壹直被商家牽著鼻子走。開源Linux至少可以給用戶壹些控制權。開源允許用戶根據自己的需求添加或刪除某些功能,用戶可以自定義。太棒了!

使用開源的Linux,還可以開發路由器、嵌入式系統、網絡計算機、個人數字助理等等。GNU真的是壹個巨大的知識寶庫,為什麽不用呢?

倡導自由軟件的精神和夢想,貢獻自己的力量!

參考資料:

網絡世界

希望對妳有用!

  • 上一篇:沒有本錢怎麽賺錢
  • 下一篇:第八次發貼,尋找正確的路.
  • copyright 2024編程學習大全網