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

歡迎訪問 生活随笔!

生活随笔

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

windows

操作系统与操作系统内核

發布時間:2023/12/14 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统与操作系统内核 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前言

? ? 最近看了一篇將Unix和Linux歷史的帖子,雖然有點水,但是還是放個鏈接吧花了一天時間,終于把unix、linux、ios、android區別大致聯系搞清楚,好像很復雜的,這個帖子寫的比較口水話,但是對于了解Unix與Linux的發展與歷史還是蠻有幫助的,看了這篇帖子之后,盡管知道了Unix與Linux從無到有的過程,但是發現自己對操作系統這個東西的認識更加模糊了,因為前期大致讀過《深入理解計算機系統》和《操作系統》兩本書,了解過一些操作系統的內容,但由于是非科班出身,有很多本質的概念并不理解,所以這里就回顧了上面兩本書中的一些內容,再加上網上的一些資料,對操作系統和操作系統內核這兩個概念進行了整理。


二、操作系統理解

? ?一句話理解操作系統:操作系統就是為用戶(使用計算機的人)提供服務,使用戶能在計算機上使用各種應用程序(QQ、瀏覽器)來操作計算機資源(如QQ需要使用顯示器資源、用瀏覽器下載資料需要硬盤資源,同時所有這些應用程序都需要使用CPU這個最主要的資源)。

? ? 可以從兩方面理解上面這句話,一方面從操作系統本身來理解。其實說起操作系統這個概念,作為非科班出身的我們大多都是比較模糊的,同時感覺跟這個東西就很近,因為在每臺計算機中都有一個操作系統,你運行的任何應用軟件都離不開操作系統,為什么離不開操作系統呢?其實說白了,一臺計算機就是一組資源,你運行在計算機上的應用程序本質上是離不開計算機的各種資源(如處理器、內存、I/O設備等),只是為了方便,人們就構造了操作系統這種東西,因為每一臺計算機的各種資源都來自不同的廠家,它們有不同的標準,有不同的差別,所以你針對某一類的I/O設備開發的應用程序就不能在另一臺裝有不同I/O設備的計算機上運行,而操作系統就完美的消除了這種差別與無法擴展的缺點,所以從邏輯上來說,操作系統位于應用程序與計算機資源的中間層


? ? 同時,作為中間層,必須要干好中間層的工作,所以總的來說,操作系統有兩個基本功能

? ? ? ? (1)防止硬件被失控的應用程序濫用;

? ? ? ? (2)向應用程序提供簡單一致的機制來控制復雜而又通常大相徑庭的低級硬件設備

? ?另一方面,從計算機CPU(處理器)來看,操作系統實際上不過是一組計算機程序(可以理解成很多個應用程序的集合,而這些應用程序基本都是與硬件打交道的),與其他計算機程序類似(不管是你自己寫的HelloWord小程序還是像QQ這樣的應用程序,以及大型的服務器程序),它們都給處理器提供指令,然后處理器就執行這些指令,完成這些程序的功能,最大的區別在于操作系統和其他程序的意圖不同:操作系統程序通過控制處理器使用其他計算機資源,并控制其他程序的執行時機,這促使處理器完成系統任務的調度。但是(剛剛也說明了,操作系統除了和其他程序的意圖不同,其他都一樣,所以)處理器為了做任何一件這樣的事情(指的是執行另一個程序),都必須停止執行操作系統程序,轉而去執行其他程序(這其實是進程切換),因為既然操作系統也是一個程序(進程),而任何處理器同時只能處理一個進程,所以操作系統同樣和其他程序(進程)一樣需要調度,只是操作系統是處于主動調度的位置,而其他程序是被動的由操作系統的控制來實現調度。


三、操作系統內核

? ? 關于操作系統和操作系統內核這兩個概念,很多人嘗試去區分與解釋,但是發現很難得解釋的完全(包括我自己,這里只是把我自己的理解整理出來,有什么不對的地方,希望大家批評指正,共同進步)。

? ? 查看了一些網上和CS系列書籍中的關于操作系統內核的概念解釋,總結之后,我的理解是:

? ? ? ? (1)操作系統包括操作系統內核(這是必然的),也就是說內核程序是操作系統所包含的一組計算機程序中的一個子集,所以內核程序也是一組計算機程序,而這些內核程序是操作系統中最常使用基本模塊,直接與硬件打交道,主要由用于管理存儲器、文件、外設和系統資源的那些部分組成。

? ? ? ? (2)內核程序一直占據內存中的一段內存,這樣處理器可以隨時調用這些內核程序;

? ? ? ? (3)而操作系統除了內核程序外,還有包括其他一些基本組件,如文本編輯器、編譯器、用來與用戶進行交互的程序等

? ? 對于第(2)點,可以引入《深入理解計算機系統》這本書中關于“虛擬存儲器”(P12)解釋的一幅圖來說明,如下:


上圖中,關于進程的虛擬地址空間的說明中,最上面的子區域“內核虛擬存儲器”就是用來存儲內核程序和數據的,這個地址空間是一個固定的結構,所以對于每一個應用程序(進程)來說,都具有同樣結構的虛擬地址空間,這就可以保證每個進程都能調用操作系統內核程序來完成自己的功能。

? ? 下面再用一幅圖說明操作系統內核是操作系統的一組子程


上圖中,操作系統的內核包圍硬件,同時,其外層是系統調用接口,這就是操作系統中除內核以外的其他組件。

? ? 下面整理兩個網友關于操作系統與操作系統內核的解釋,個人覺得解釋的還是比較好的:

? ? ? ? (1)內核,是操作系統的基礎模塊,用于管理系統資源。例如提供對軟件層面的抽象(例如對進程、文件系統、同步、內存、網絡協議等對象的操作和權限控制),和對硬件訪問的抽象(例如磁盤,顯示,網絡接口卡(NIC));操作系統,在內核的基礎上有延伸,包括了提供基礎服務的系統組件。

? ? ? ? (2)內核,就是計算機學科意義上的操作系統,直接與硬件交互,提供CPU時間片管理、中斷、內存管理、IO管理等等;一般意義上的操作系統包含的東西要更多一些,至少要有用戶交互的基本程序,比如一個命令行界面和基本的指令(文件遍歷、進程管理等等),或者圖形界面的桌面和文件瀏覽器。


四、總結

? ? 總的說來,一個操作系統包含了內核(是一個提供硬件抽象層、磁盤及文件系統控制、多任務等功能的系統軟件)以及其他計算機系統所必須的組件(如函數庫、編譯器、調式工具、文本編輯器、網站服務器,以及一個Unix的使用者接口(Unix shell)等,這些都是操作系統的一部分,而且每一個模塊如編譯器都是一個單獨的進程,運行在操作系統中)。所以一個內核不是一套完整的操作系統,拿Linux來說,Linux這個詞本身只表示Linux內核,但現在大家已經默認的把Linux理解成整個Linux系統,這是由于歷史原因造成的(具體可以看本文前言中提到的那篇文章),也就是說人們已經習慣了用Linux來形容整個基于Linux內核,并且使用GNU 工程各種工具和應用程序的操作系統(也被稱為GNU/Linux),而基于這些組件的Linux軟件被稱為Linux發行版。一般來講,一個Linux發行版本出來包括Linux內核之外,還包含大量的軟件(套件),比如軟件開發工具,數據庫,Web服務器(例如Apache),X Window,桌面環境(比如GNOME和KDE),辦公套件(比如OpenOffice、org)等等。

總結

以上是生活随笔為你收集整理的操作系统与操作系统内核的全部內容,希望文章能夠幫你解決所遇到的問題。

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