Linux核心設計與實現 總結筆記(第五章)系統呼叫
系統呼叫
核心提供了使用者程序和核心互動的介面,使得應用程式可以受限制的訪問硬體裝置。
提供這些介面主要是為了保證系統穩定可靠,避免應用程式恣意妄行。
一、核心通訊
系統呼叫在使用者空間程序和硬體裝置之間新增中間才能。作用有三:
- 為使用者空間提供一種硬體的抽象介面。無需理會物理結構是怎麼樣的。
- 系統呼叫保證了系統的穩定和安全。核心可以有選擇的對其訪問進行控制。
- 每個程序都執行在虛擬系統中,使用者空間和系統的其餘部分提供這樣一層公共介面。
二、API、POSIX和C庫
三、系統呼叫
相關推薦
Linux核心設計與實現 總結筆記(第五章)系統呼叫
系統呼叫 核心提供了使用者程序和核心互動的介面,使得應用程式可以受限制的訪問硬體裝置。 提供這些介面主要是為了保證系統穩定可靠,避免應用程式恣意妄行。 一、核心通訊 系統呼叫在使用者空間程序和硬體裝置之間新增中間才能。作用有三: 為使用者空間提供一種硬體的抽象介面。無需理會物理
Linux核心設計與實現 總結筆記(第六章)核心資料結構
核心資料結構 Linux核心實現了這些通用資料結構,而且提倡大家在開發時重用。 核心開發者應該儘可能地使用這些資料結構,而不要自作主張的山寨方法。 通用的資料結構有以下幾種:連結串列、佇列、對映和二叉樹 一、連結串列 1.1 單向連結串列和雙向連結串列 1.2 環形
Linux內核設計與實現 總結筆記(第五章)系統調用
總結筆記 其余 筆記 運行 six 應用 osi 虛擬系統 抽象接口 系統調用 內核提供了用戶進程和內核交互的接口,使得應用程序可以受限制的訪問硬件設備。 提供這些接口主要是為了保證系統穩定可靠,避免應用程序恣意妄行。 一、內核通信 系統調用在用戶空間進程和硬件設備之間
Linux內核設計與實現 總結筆記(第四章)進程調度
什麽 原則 好的 nic 調度系統 相交 中間 使用 就是 進程調度 調度程序負責決定將哪個進程投入運行,何時運行以及運行多長時間。 調度程序沒有太復雜的原理,最大限度地利用處理器時間的原則是,只要有可以執行的進程,那麽就總會有進程正在執行。 多任務 多任務系統可以劃分
Linux核心設計與實現 總結筆記(第二章)
一、Linux核心中的一些基本概念 核心空間:核心可獨立於普通應用程式,它一般處於系統態,擁有受保護的記憶體空間和訪問硬體裝置的所有許可權。這種系統態和被保護起來的記憶體空間,稱為核心空間。 程序上下文:當應用程式執行一條系統呼叫,通過系統呼叫執行在核心空間,而核心被稱為執行在程序上下文中。  
Linux核心設計與實現總結。
1.程序管理。 本章主要是介紹程序的一個靜態的狀態,包括系統如何組織程序。建立,啟動,到最後死亡的一個概念性認識,沒有更加深刻的知識。 2.程序排程。 本章比較重要。 1. 搶佔式排程策略。 2.
《深入理解Spark:核心思想與原始碼分析》(第2章)
《深入理解Spark:核心思想與原始碼分析》一書第一章的內容請看連結《第1章 環境準備》 本文主要展示本書的第2章內容: Spark設計理念與基本架構 “若夫乘天地之正,而御六氣之辯,以遊無窮者,彼且惡乎待哉?” ——《莊子·逍遙遊》 n本章導讀: 上一章,介紹了Spark環境的搭建,為方便讀
java-web學習筆記(第五章)
war 客戶 腳本元素 utf 輸出 PE 行動 包含 筆記 第五章:JSP語法 一:Servlet和JSP的區別和各自優勢? Servlet和JSP均基於java語言,Servlet以java類的形式體現,JSP以腳本語言形式體現,兩者均需要在web
不測的祕密:精準測試之路----讀書筆記(第五章)
五、精準化測試第三式:度量和分析閉環 1、如何衡量測試精準度:初步想法用程式碼覆蓋率來體現 程式碼覆蓋率:用來衡量程式碼被覆蓋程度的一種度量方式 語句覆蓋:度量被測程式碼中每個可執行語句是否執行到了 判定覆蓋:度量程式中每一個判定的分支(分支真、假)是否都被執行到了
《Linux核心設計與實現》讀書筆記(十三)- 虛擬檔案系統
虛擬檔案系統(VFS)是linux核心和具體I/O裝置之間的封裝的一層共通訪問介面,通過這層介面,linux核心可以以同一的方式訪問各種I/O裝置。 虛擬檔案系統本身是linux核心的一部分,是純軟體的東西,並不需要任何硬體的支援。 主要內容: 虛擬檔案系統的作用 虛擬檔案系統的4個主要物件
《Linux核心設計與實現》讀書筆記(十五)- 程序地址空間(kernel 2.6.32.60)
程序地址空間也就是每個程序所使用的記憶體,核心對程序地址空間的管理,也就是對使用者態程式的記憶體管理。 主要內容: 地址空間(mm_struct) 虛擬記憶體區域(VMA) 地址空間和頁表 1. 地址空間(mm_struct) 地址空間就是每個程序所能訪問的記憶體地址範圍。 這個地址
《Linux核心設計與實現》讀書筆記(十九)- 可移植性
linux核心的移植性非常好, 目前的核心也支援非常多的體系結構(有20多個). 但是剛開始時, linux也只支援 intel i386 架構, 從 v1.2版開始支援 Digital Alpha, Intel x86, MIPS和SPARC(雖然支援的還不是很完善). 從 v2.0版本開始加入了對 M
《Linux核心設計與實現》讀書筆記(十八)- 核心除錯
核心除錯的難點在於它不能像使用者態程式除錯那樣打斷點,隨時暫停檢視各個變數的狀態。 也不能像使用者態程式那樣崩潰後迅速的重啟,恢復初始狀態。 使用者態程式和核心互動,使用者態程式的各種狀態,錯誤等可以由核心來捕獲並顯示。 而核心是直接和硬體互動的,核心出錯之後整個系統就無法正常運行了,所以要想熟練的
《Linux核心設計與實現》讀書筆記(十四)- 塊I/O層
最近太忙,居然過了2個月才更新第十四章。。。。 主要內容: 塊裝置簡介 核心訪問塊裝置的方法 核心I/O排程程式 1. 塊裝置簡介 I/O裝置主要有2類: 字元裝置:只能順序讀寫裝置中的內容,比如 串列埠裝置,鍵盤 塊裝置:能夠隨機讀寫裝置中的內容,比如 硬碟,U盤 字元
《Linux核心設計與實現》讀書筆記(十七)- 裝置與模組
本章主要討論與linux的裝置驅動和裝置管理的相關的4個核心成分,裝置型別,模組,核心物件,sysfs。 主要內容: 裝置型別 核心模組 核心物件 sysfs 總結 1. 裝置型別 linux中主要由3種類型的裝置,分別是: 裝置型別 代表裝置
《Linux核心設計與實現》讀書筆記(二十)- 補丁, 開發和社群
linux最吸引我的地方之一就是它擁有一個高手雲集的社群, 還有就是如果能=為linux核心中貢獻程式碼, 一定是一件令人自豪的事情. 下面主要總結一些和貢獻程式碼相關的主要內容. 加入社群 編碼風格 提交補丁 總結 1. 加入社群 如果想為linux貢獻程式碼, 那麼加入linux
《Linux核心設計與實現》讀書筆記(十六)- 頁快取記憶體和頁回寫
好久沒有更新了。。。 主要內容: 快取簡介 頁快取記憶體 頁回寫 1. 快取簡介 在程式設計中,快取是很常見也很有效的一種提高程式效能的機制。 linux核心也不例外,為了提高I/O效能,也引入了快取機制,即將一部分磁碟上的資料快取到記憶體中。 1.1 原理 之所以通過快取能
【讀書筆記】《Linux核心設計與實現》程序管理與程序排程
大學跟老師做嵌入式專案,寫過I2C的裝置驅動,但對Linux核心的瞭解也僅限於此。Android系統許多導致root的漏洞都是核心中的,研究起來很有趣,但看相關的分析文章總感覺隔著一層窗戶紙,不能完全理會。所以打算系統的學習一下Linux核心。買了兩本書《Linux核心設計與實現(第3版)》和《深入理解Lin
Linux核心設計與實現(1)--核心開發的特點
1. 核心程式設計時既不能訪問C庫也不能訪問標準的C標頭檔案 其中的原因有很多種。其一,C標準庫的很多函式實現都是基於核心實現的,這核心編譯的時候都還沒有核心,所以就不存在這些函式,這個就是先有雞還是先有蛋這個悖論。其二,其主主要的的
《Linux核心設計與實現》 讀書筆記
linux核心簡介 Linux系統的基礎是核心,C庫(庫函式裡會有些系統呼叫),工具集和系統的基本工具。 通常一個核心由負責響應中斷的中斷服務程式,負責管理多個程序從而分享處理器時間的排程程式,負責管理程序地址空間的記憶體管理程式,和網路、程序間通訊等系統服務程