原创 Linux內核分析(四)

Linux內核分析 —— 【實驗四:系統調用 】 “計算機科學領域的任何問題都可以通過增加一箇中間層來解決。”這句名言幾乎概括了整個計算機體系架構的設計要點。我們都知道計算機由硬件系統和軟件系統構成,後者是建立在前者的基礎上。硬

原创 Linux內核分析(八)

Linux內核分析——【實驗八:進程調度與切換】 一 進程調度的時機 (1)中斷處理過程(包括時鐘中斷、I/O中斷、系統調用和異常)中,直接調用schedule(),或者返回用戶態時根據need_resched標記調用schedule

原创 時針分針重合問題

一天,小明正坐在沙發上看電視,無聊之餘看了一眼牆上的鐘,此時正好是十二點整,時針和分針恰好重合在一起,一個疑問出現在小明的腦海中——下一次重合會是在什麼時候呢? 分析: 分針每分鐘轉 6度 時針每分鐘轉 0.5度 ,一小時轉

原创 DES 算法

一、DES算法 DES全稱爲Data Encryption Standard,即數據加密標準,是一種使用對稱密鑰的分組加密算法,它是1972年由美國IBM公司研製的對稱密碼體制加密算法。 明文按64位進行分組,每次對一個分組進行加密

原创 Linux內核分析(心得篇)

Linux 內核分析——學習心得 經過這段時間的學習,我對linux的內核有了大致的瞭解。linux內核是個龐大的操作系統代碼,想要真正的弄清楚透徹決非一日之功,還必須循序漸進、持之以恆,可謂是任重而道遠。但是俗話說的好——“師傅領進門,

原创 Linux內核分析(五)

Linux 內核分析——【實驗五:系統調用運行機制】 前文提到系統調用是通過int 0x80來產生的,所以從本質上來說它是一種中斷。那麼什麼是中斷呢?中斷被定義爲一個事件,該事件改變了處理器執行的指令順序。在linux系統下設置了256

原创 Linux shell編程——查找

經常會碰到這樣一個問題,知道某個函數的用法,但是想要看看它的源代碼,知道它在某個目錄下,卻又不知道它在哪個文件裏。衆裏尋他千百度,,,百度不行再google,,, 事實證明:然並卵,還是自己寫一個函數,手動找找吧。 下面是用 Linu

原创 Linux內核分析(一)

Linux內核分析 —— 【實驗一:棧與程序 】 棧,是一種數據結構,是一種有限制的一維線性表。它的特點是“先進後出”,就像是一條只有一人寬的死衚衕,先進衚衕的人必須等後進衚衕的人全部離開後,才能離開。 但棧與程序之間又有什

原创 矩陣相乘(分治法)

一個簡單的分治算法求矩陣相乘 C=A * B ,假設三個矩陣均爲n×n,n爲2的冪。可以對其分解爲4個n/2×n/2的子矩陣分別遞歸求解: 遞歸分治算法: 算法中一個重要的細節就是在分塊的時候,採用的是下標的方式。 #inc

原创 Linux內核分析(七)

Linux 內核分析——【實驗七:如何裝載和啓動一個可執行程序】 一 什麼是可執行文件(程序) 在windows環境下,我們都知道只要雙擊一個.exe的文件就可以執行一個程序,這個以.exe結尾的文件就是一個可執行文件。在andri

原创 Linux內核分析(二)

Linux內核分析 —— 【實驗二:計算機工作機制 】 計算機作爲二十世紀以來最重要的發明之一,它已經完全融入到我們的生活,成爲我們工作、娛樂、學習等過程中必不可少的一部分。我們可以用它來瀏覽網頁、查詢資料、看電影、聽音樂、玩遊戲、聊天等

原创 Linux內核分析(六)

Linux內核分析——【實驗六:進程的描述與創建】 一 進程的概念 進程是程序執行的一個實例,它是最小的系統資源分配基本單元,在Linux內核代碼中,常把進程稱爲任務(task)或線程(thread)。當然,一個進程可以包含多個線程,

原创 Linux內核分析(三)

Linux 內核分析——【實驗三:初探Linux內核源代碼】 前面兩節介紹了計算機的基本工作方式,包括棧在程序執行過程中的作用,以及進程之前的調用。總的來說,有幾點必須要牢記的: 1)目前計算機採用的都是馮諾依曼體系結構,它的特點是“程