国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - 圖解Linux系統的系統架構

圖解Linux系統的系統架構

2019-11-04 17:12Vamei Linux

這篇文章主要介紹了圖解Linux系統的系統架構,Linux系統由硬件、內核、系統調用、shell、庫函數構成,本文分別對他們做了講解,需要的朋友可以參考下

我以下圖為基礎,說明Linux的架構(architecture)。(該圖參考《Advanced Programming in Unix Environment》)

圖解Linux系統的系統架構

最內層是硬件,最外層是用戶常用的應用,比如說firefox瀏覽器,evolution查看郵件,一個計算流體模型等等。硬件是物質基礎,而應用提供服務。但在兩者之間,還要經過一番周折。

還記得Linux啟動。Linux首先啟動內核 (kernel),內核是一段計算機程序,這個程序直接管理管理硬件,包括CPU、內存空間、硬盤接口、網絡接口等等。所有的計算機操作都要通過內核傳遞給硬件。

為了方便調用內核,Linux將內核的功能接口制作成系統調用(system call)。系統調用看起來就像C語言的函數。你可以在程序中直接調用。Linux系統有兩百多個這樣的系統調用。用戶不需要了解內核的復雜結構,就可以使用內核。系統調用是操作系統的最小功能單位。一個操作系統,以及基于操作系統的應用,都不可能實現超越系統調用的功能。一個系統調用函數就像是漢字的一個筆畫。任何一個漢字都要由基本的筆畫(點、橫、撇等等)構成。我不能臆造筆畫。

在命令行中輸入$man 2 syscalls可以查看所有的系統調用。你也可以通過$man 2 read來查看系統調用read()的說明。在這兩個命令中的2都表示我們要在2類(系統調用類)中查詢 (具體各個類是什么可以通過$man man看到)。

系統調用提供的功能非常基礎,所以使用起來很麻煩。一個簡單的給變量分配內存空間的操作,就需要動用多個系統調用。Linux定義一些庫函數(library routine)來將系統調用組合成某些常用的功能。上面的分配內存的操作,可以定義成一個庫函數(像malloc()這樣的函數)。再比如說,在讀取文件的時候,系統調用要求我們設置好所需要的緩沖。我可以使用Standard IO庫中的讀取函數。這個讀取函數既負責設置緩沖,又負責使用讀取的系統調用函數。使用庫函數對于機器來說并沒有效率上的優勢,但可以把程序員從細節中解救出來。庫函數就像是漢字的偏旁部首,它由筆畫組成,但使用偏旁部首更容易組成字,比如"鐵"。當然,你也完全可以不使用庫函數,而直接調用系統函數,就像“人”字一樣,不用偏旁部首。

(實際上,一個操作系統要稱得上是UNIX系統,必須要擁有一些庫函數,比如ISO C標準庫,POSIX標準等。)

shell是一個特殊的應用。很多用戶將它稱為命令行 。shell是一個命令解釋器(interpreter),當我們輸入“ls -l”的時候,它將此字符串解釋為

1.在默認路徑找到該文件(/bin/ls),
2.執行該文件,并附帶參數"-l"。

我之前用>表示重新定向,用|表示管道 ,也是通過shell解釋&或者|的含義。Shell接著通過系統調,用指揮內核,實現具體的重定向或者管道。在沒有圖形界面之前,shell充當了用戶的界面,當用戶要運行某些應用時,通過shell輸入命令,來運行程序。shell是可編程的,它可以執行符合shell語法的文本。這樣的文本叫做shell腳本(script)。可以在架構圖中看到,shell下通系統調用,上通各種應用,同時還有許多自身的小工具可以使用。Shell腳本可以在寥寥數行中,實現復雜的功能。

UNIX的一條哲學是讓每個程序盡量獨立的做好一個小的功能。而shell充當了這些小功能之間的"膠水",讓不同程序能夠以一個清晰的接口(文本流)協同工作,從而增強各個程序的功能。這也是Linux老鳥鼓勵新手多用shell,少用圖形化界面的原因之一。

(shell也有很多種,最常見的是bash, 另外還有sh, csh, tcsh, ksh。它們出現的年代不同,所支持的功能也有差異。)


圖解Linux系統的系統架構

一個使用bash shell的終端

一個shell對應一個終端 (terminal)。曾經來說,終端是一個硬件設備,用來輸入并顯示輸出。如今,由于圖形化界面的普及,終端往往就像上圖一樣,是一個圖形化的窗口。你可以通過這個窗口輸入或者輸出文本。這個文本直接傳遞給shell進行分析解釋,然后執行。

最后,我們進入一般的應用。應用是一個程序,它可以

1.直接調用系統函數
2.調用庫函數
3.運行shell腳本

這些應用可以由多種語言開發。最常見的是C語言。

總結

Linux利用內核實現軟硬件的對話。

通過系統調用的這個接口,Linux將上層的應用與下層的內核分離,隱藏了底層的復雜性,也提高了上層應用的可移植性。

庫函數利用系統調用創造出模塊化的功能,

Shell則提供了一個用戶界面,并讓我們可以利用shell的語法編寫腳本,以整合程序。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 九九av| 夜夜操导航 | 国产成人一区二区啪在线观看 | 国产一区二区三区四区在线观看 | 午夜男人天堂 | 精品欧美乱码久久久久久1区2区 | 久久久精品综合 | 久久国产午夜 | 日韩一区电影 | 国产一区二区三区免费视频 | 黄色视屏在线免费观看 | 一区二区精品视频 | 国产精品成人在线观看 | 在线a电影 | 亚洲精品一区二区三区在线播放 | 日韩一区精品 | 欧美日韩在线免费观看 | 久久精品国产99国产精2020新增功能 | 免费成人在线网站 | 色综合色综合网色综合 | 成人精品在线观看 | 国产精品欧美久久久 | 午夜爱爱毛片xxxx视频免费看 | 蜜桃一区 | 日本一区二区不卡在线观看 | 成人福利视频 | 激情五月婷婷综合 | a一级免费视频 | 亚洲第一免费播放区 | 综合色导航 | 在线国产视频观看 | 亚洲专区 变态 另类 | 小视频免费在线观看 | 精品国产乱码久久久久久影片 | 日韩久草| 天堂色| 成人黄色在线观看 | 日本视频中文字幕 | 夜夜操天天操 | 中文字幕在线观看av | 国产一区免费视频 |