linux内核结构介绍
參考:linux內核結構介紹、什么是shell
作者:丶PURSUING
發布時間: 2021-02-15 14:15:24
網址:https://blog.csdn.net/weixin_44742824/article/details/113814934?spm=1001.2014.3001.5502
本文為學習筆記,整合課程內容以及部分文章,參考的原文鏈接如下:
圖解linux系統的系統架構板塊:
參考:原文鏈接
作者:YF.Hao
目錄
- Linux內核結構框圖
- 圖解linux系統架構
- shell
- shell腳本
Linux內核結構框圖
對內核結構框圖有個總體的把握,有助于理解為什么驅動要這樣寫,為什么寫的應用程序所用的C庫接口能夠產生這么多的事情。
函數庫就像一個“黑匣子”,提供了一系列API支配內核運作,但你不知道內核發生了什么。
內核是一個很厲害的超級邏輯,把硬件底層的東西抽象化,對用戶來說只需要調API就好了,根本不需要管寄存器,協議,總線…(單片機會去直接操作),這些全部由操作系統做好。動不動寫個操作系統是不現實的。
能把字符設備,塊設備的設備驅動吃透,已經是一個很厲害的工程師了。
圖解linux系統架構
最內層是硬件,最外層是用戶應用,比如瀏覽器等等。硬件是物質基礎,而應用提供服務。
為了方便調用內核,Linux將內核的功能接口制作成系統調用(system call)。用戶不需要了解內核的復雜結構,就可以使用內核。系統調用是操作系統的最小功能單位。一個操作系統,以及基于操作系統的應用,都不可能實現超越系統調用的功能。
系統調用提供的功能非常基礎,所以使用起來很麻煩。一個簡單的給變量分配內存空間的操作,就需要動用多個系統調用。Linux定義一些庫函數(library routine)來將系統調用組合成某些常用的功能。上面的分配內存的操作,可以定義成一個庫函數,比如常用的malloc。
shell
shell(殼)是一個特殊的應用,也經常被稱為命令行 。可以理解為是一個命令解釋器
例如:當我們輸入“ls -l”的時候,它將此字符串解釋為
1.在默認路徑找到該文件(/bin/ls),
2.執行該文件,并附帶參數"-l"。
UNIX的一條哲學是讓每個程序盡量獨立的做好一個小的功能。而shell充當了這些小功能之間的"膠水",讓不同程序能夠以一個清晰的接口(文本流)協同工作,從而增強各個程序的功能。
一個shell對應一個終端 (terminal)。曾經來說,終端是一個硬件設備,用來輸入并顯示輸出。如今,由于圖形化界面的普及,終端往往就像下圖一樣,是一個圖形化的窗口。
你可以通過這個窗口輸入或者輸出文本,這個文本直接傳遞給shell進行分析解釋,然后執行,本質就是提供和內核交互的程序。
shell腳本
在沒有圖形界面之前,shell充當了用戶的界面,當用戶要運行某些應用時,通過shell輸入命令,來運行程序。shell是可編程的,它可以執行符合shell語法的文本,這樣的文本叫做shell腳本(script)。
總結
以上是生活随笔為你收集整理的linux内核结构介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LightOJ 1422 区间DP Ha
- 下一篇: 转:vim----复制粘贴