什麼是linux系統程式設計

2021-06-17 00:05:24 字數 1308 閱讀 7646

本文**:

談到系統程式設計,我們常常會拿應用程式設計與之相比,它們有不同點,也有共同點。系統程式設計最突出的特點是要求系統程式設計師必須對他工作的系統硬體和作業系統有深入和全面的了解,而應用程式設計則不需要,因為應用程式設計往往是面向更上層的庫來進行開發的。

系統程式設計

在作業系統之上利用系統呼叫、c庫進行對系統資源進行訪問。如apache 、gcc、gdb等

應用程式設計

在更高層次的程式設計介面或者庫之上構建應用程式。如android程式(android sdk)、iphone程式(iphone sdk)、qt程式設計(qt)、mfc程式設計(mfc)

系統資源

處理器(processor)

程式是由指令構成的,處理器是執行指令的硬體裝置,乙個系統可能有多個處理器。核心能夠安排乙個程式何時開始執行,何時暫時停止、恢復執行,何終止執行。

輸入輸出(i/o)

程式中所有輸入/輸出的資料、終端的輸入/輸出資料還有硬碟輸入/輸出資料,都必須流經核心,這種集中的處理方式有以下優點:正確性,資料流不會流錯地方;有效性,程式設計師無需考慮不同裝置之間的差異;安全性,資料資訊不會被未授權的程式非法訪問。

程序管理(process management)

程序指程式的一次執行,每個程序都有自己的資源,如記憶體、開啟的檔案和其他執行時所需的系統資源。核心中與程序相關的服務有新建乙個程序、中止程序、程序設等。

記憶體(memory)

記憶體是計算機系統中很重要的資源,程式必須被裝載到記憶體中才可以執行。核心的職責之一是記憶體管理,在需要的時候給程式分配記憶體,當程式不需要的時候**記憶體,核心還能夠保證記憶體不被其他的程序非法訪問。

裝置(device)

計算機系統中可以有各種各樣的外設,如磁帶機、光碟機、滑鼠、掃瞄器和數碼攝像機等,它們的操作方式各不相同,核心能遮蔽掉這種差異,使得對裝置的操作方式簡單而統一。例如,乙個程式想要從數碼照相機中取出**儲存在計算機中,它只需向核心提出操作該資源的請求即可。

定時器(timers)

程式的工作與時間有關,有的需要定時被觸發,有的需要等一段時間再開始某個動作,有的需要知道某乙個操作消耗的時間,這些都涉及定時器,核心可以通過系統呼叫向應用程式提供計時器服務。

程序間通訊(interprocess communication)

在現實生活中人們通過**、e-mail、信件、廣播、電視等互相通訊,在計算機的世界中,不同的程序也需要互相通訊,核心提供的服務使程序間通訊成為可能。就像電信和郵政提供的服務,通訊也是資源。

網路(networking)

網路之間的通訊可以看作是程序間通訊的特殊形式,通過網路,不同主機上的程序,即使使用的是不同作業系統,也可以互相通訊。網路通訊也是核心提供的服務。

Linux 系統程式設計

1 i o操作 2 檔案和目錄管理 3 記憶體管理 1 建立匿名記憶體對映 2 對映 dev zero檔案 類unix 作業系統中,dev zero是乙個特殊的檔案,當你讀它的時候,它會提供無限的空字元 null,ascii nul,0x00 其中的乙個典型用法是用它提供的字元流來覆蓋資訊,另乙個常...

Linux系統程式設計

1.linux程序 守護程序 脫離終端的後台程序 2.linux程序 殭屍程序 3.linux 下程序通訊 其中setsockopt server sockfd,sol socket,so reuseaddr,on,sizeof on 因為每乙個連線都由本地位址和遠端位址的組合唯一確定,所以只要遠端...

Linux系統程式設計 Linux系統呼叫

linux 系統呼叫 庫函式 目錄 系統呼叫概述 系統呼叫的實現 系統呼叫和庫函式的區別 系統呼叫,顧名思義,說的是作業系統提供給使用者程式呼叫的一組 特殊 介面。使用者程式可以通過這組 特殊 介面來獲得作業系統核心提供的服務,比如使用者可以通過檔案系統相關的呼叫請求系統開啟檔案 關閉檔案或讀寫檔案...