日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

编译linux内核预备,Linux内核预备知识(1)

發布時間:2024/9/3 linux 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译linux内核预备,Linux内核预备知识(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[本博客連載并且會持續修正,轉載請注明出處:http://blog.chinaunix.net/uid-26583089-id-5729088.html]

我和很多朋友一樣,是為了擺脫對計算機的好奇學習內核的,“沒有生命的計算機是如何理解程序的”!

“理解”一詞,往往是我們揭不開計算機神秘面紗的主要原因。戳一下氣球,它會爆炸,就說明氣球能理解“戳”這個動作嗎,那它為什么不跑?這只是一種很基本的物理現象罷了,就如同生物界的“條件反射”,并沒有思考的過程。計算機也同樣,它對于人類指令的反應,只是一組硬件發生了連續的物理動作,而這種動作是人類事先安排的,即使是“鬧鈴”,那也是人類安排的一個定時器。

程序是什么?是一組開關狀態。光是把電腦屏幕理解為很多個燈的話,就不難理解為什么是一組開關,而不是一個。

那這組開關狀態又是怎么“鉆進”電腦的?BIOS里面的程序是“燒”進去的,可以理解為人工按進去的,其它的程序又是通過這段程序“拖”進去的。

高級程序由編譯器翻譯成二進制,世界上第一個編譯器自己由什么翻譯?不用翻譯,直接用開關編寫。

高級語言依賴文字,那么文字是怎么“寫進”電腦的?文字其實是一個開關矩陣,特殊電路根據矩陣中0或1的位置在屏幕轟擊,便是文字的形狀,也就是說往電腦“寫字”,其實還是按開關。另外,文字的集合,就是字庫,每個文字對應一個編號,使用文字是使用相應的編號,而不是對應文字開關的開關矩陣本身。

。。。

內核是什么?

任何程序都是加載進內存才可以執行,如果站在可以看見內存全貌的地方,就發現內存里有一份內核代碼,和各種不同的用戶程序代碼(暫且把代碼中使用的數據,也算做代碼),而有些進程只執行內核代碼中的指令,有些進程既執行內核代碼中的指令,又執行用戶程序中的指令。

如何區分內存中的一份代碼是內核代碼,還是用戶代碼?這就是“存儲管理”一節所要講述的,目的是讓學習者理解“內核空間/用戶空間”。

計算機的使命無非是執行內存中這些指令,雖然很多朋友目前對內核可能還一無所知,但至少了解內核的權限比普通程序的權限大吧,所以用戶代碼就不可能隨意調用內核函數了,否則就是“垂簾聽政”,用戶進程想干嘛就干嘛了。然后,內核程序的主要意義,就是為用戶程序封裝與硬件打交道的細節,用戶進程需要與某些硬件交互時,必須經由內核。怎么解釋這一對矛盾的問題呢?那就是“中斷、異常和系統調用”這一節的目的。

每個進程雖然有if、switch等,可以控制CPU“跳著”執行一些指令,但再怎么也跳不到別的進程,那是如何做到讓多個進程輪流著執行的呢?“進程與進程調度”一節正是解答這個問題。

進程間通信又是如何做到的?期待“Unix進程間通信”這一節吧。

上圖只畫了內存中的內容,除了內存,還有很多外置,比較重要的就是文件系統,所以專門有一節“文件系統”,用于解開文件系統的實現內幕。

學習完《Linux內核源代碼情景分析》上冊,理解以上的幾個問題后,自然就理解內核是什么了。而且如上圖所畫,我們不能只片面的問自己內核是什么,否則我們可能永遠得不到答案,我們要知道整個系統大致是如何運作的,并體會內核充當的是什么樣的角色。比如,沒見過汽車去想發動機是什么,我們可能會想得頭破血流,可能覺得它是從火星來的不明物體,也可能覺得它就是一堆廢鐵。。

總之,就是不要急于通過哪一篇文章就能一下子理解內核是什么,那是不可能的,我們需要對以上問題有一個比較全面的理解之后,才能體會內核是什么,并且腳踏實地的的花時間去搞懂這些問題,是一定能理解內核的,就放心的學習吧。

總結

以上是生活随笔為你收集整理的编译linux内核预备,Linux内核预备知识(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。