作業系統
抽象是管理複雜性的關鍵
資訊科技中,微電子是基礎,計算機和通訊設施是載體,而軟體是核心,是計算機的靈魂,而軟體中的作業系統就更是核心了,它為豐富的應用環境奠定了最堅實的基礎。
第一次把微電子,通訊,軟體三個相近的專業領域的分工搞清楚誒,一直覺得這些專業都學差不太多的專業課,做差不提多的專案(尤其是有了機器學習和深度學習之後),找差不太多的工作,所以說不清楚區別,原來他們的分工是這樣的。硬體系統是由電,磁,光,機械等原理構成的各種物理部件的組合,是系統賴以工作的實體。
軟體系統是各種程式和檔案,指揮整個系統按要求工作。分為三層:
這三層之間有分工也有結合,不可分割。
作業系統是一層軟體,是配置在計算機硬體上的第一層軟體,是對硬體系統的第一次擴充,是硬體和軟體的介面,是計算機系統的硬軟體資源的總指揮部。他是軟體技術的核心,是所有軟體的基礎執行平台。
作業系統是執行在計算機上最重要的一種軟體,它管理計算機的資源和程序以及所有的硬體和軟體。它為計算機硬體和軟體提供了一種中間層
它的任務是:
作業系統是系統軟體,其他所有軟體,比如編譯程式,資料庫管理系統程式以及所有的應用軟體,都要建立在作業系統之上,依賴於作業系統的支援。
程式設計師並不想過多涉足磁碟等具體硬體的操作,他們需要的是簡單的高度抽象的處理。硬體是醜陋的,os會隱藏硬體,呈現給使用者、程式設計師乙個清晰優雅的抽象。
計算機有兩種執行模式:核心態和使用者態。
os是軟體中最基礎的部分,它執行於計算機的核心態,執行在裸機上,為其他所有軟體提供基礎的執行環境。
os的實際客戶是使用者程式,而非使用者,即實際上是在為使用者程式服務,這些使用者程式在和os以及os提供的抽象打交道。終端使用者/人是在和使用者程式介面提供的抽象打交道,比如命令列shell或者gui。
使用者介面程式,處於使用者態程式的最底層,包括shell或gui。
shell,「外殼」,是和使用者互動的基於文字的程式,他並不是os的一部分,但是能體現出很多os的特性。
gui,graphic user inte***ce,是和使用者互動的基於影象介面的程式。
有經驗的程式設計師往往更偏好於基於命令的介面而非gui。
第一台數字計算機是英國數學家charles babbage(1792-1871)設計的,花了一生的時間和財產建造「分析機」,但所在時代無法生產高精度輪子,齒輪等,這台純機械的數字計算機最終沒有製造出來。charles僱傭了乙個女孩作為程式設計師,她是ada lovclace,是英國詩人lord byron的女兒,程式語言ada就是以她命名。
第二次世界大戰刺激了計算機的**性發展。人們陸續製造出了一些計算機,但都是機器語言程式設計,也只能用於最簡單的數字運算,如製造正弦表,對數表等。
20世紀50年代,電晶體的發明又把計算機往前推了一把。設計,生產,操作,程式人員,維護第一次有了明確分工。人們製造了大型機,mainframe,鎖在有專用空調的房間裡,由專業操作人員執行,主要用於科學和工程計算,如解偏微分方程。
後面就是積體電路的發明把計算機技術狠狠往前踹了一腳,從大型機不斷減小體積,直到pc個人計算機的出現。2023年,intel 8080,第一代通用8位cpu出現,intel公司請他們的顧問gary kildall編寫了乙個基於磁碟的作業系統,主要用於測試目的。後來發生了很多不想寫了,總之bill gates和ibm合作,他買了一家計算機公司seattle computer products的磁碟作業系統dos,disk operating system。到此為止的所有os,都是通過鍵盤輸入命令的。
20世紀60年代斯坦福研究院的doug engelbart發明了圖形使用者及面,包括視窗,選單,滑鼠,圖示,xerox parc的研究人員把gui的思想用在了他們的機器中。steve jobs訪問parc的時候一眼就看出了gui的價值,於是jobs設計了有gui的蘋果計算機,非常user friendly,於是大熱。微軟於是也模仿macintosh,開發了名為windows的基於gui的系統,然後又逐漸發布了win95(這才是有真正os功能的os,之前的windows只是執行在dos上的乙個圖形環境而已,並沒有完成os的使命),win98,winme(千年版),winxp(2023年發布,壽命為6年,基本替代了windows所有的原先版本),2023年發布了windows vista···
多執行緒multithreading:
也叫超執行緒hyperthreading,多執行緒允許計算機保持兩個不同的執行緒狀態,在ns級的時間尺度來回切換。執行緒是一種輕量級的程序,也就是乙個執行中的程式。比如,某個程序需要從記憶體裡讀資料,由於記憶體比cpu慢100多倍,所以要花費多個時鐘週期,多執行緒的cpu則可以切換到另乙個執行緒。但是多執行緒並沒有提供真正的並行處理,乙個時刻仍然只有乙個程序在執行。
儲存器層次結構:
暫存器是用和cpu相同的材料製作的,和cpu一樣快,訪問他們沒有時延。
usb,膠卷都是快閃儲存器。
30天自製作業系統day1
一 先說說書中的軟體 cons 9x.bat檔案 和 cons nt.bat作用相同,只是用於windows95平台,所以相應的程式為command。run.bat檔案 內容是copy helloos.img z tools qemu fdimage0.bin 此句是將helloos.img複製為f...
作業系統day1 中斷
pc 程式計數器,指向馬上要執行的那一條指令 中斷號 系統分配給每個中斷源的代號,以便識別和處理 斷點 檢測到中斷時,處理機剛執行完的那條指令位址 恢復點 斷點的邏輯後續指令位址 現場資訊 中斷那一刻確保被中斷程式能繼續執行的有關資訊,如pc,通用暫存器,其他特殊暫存器等 ps 處理機狀態字,寄存處...
《30天自製作業系統》day1
自製作業系統day1 途中遇到的問題 按書上說明做好第乙個helloos.img的時候作者提供的16位軟體不相容,想用vm裝,一上午死活裝不上去,甚至想強行把.img變成.iso,後來才知道img是軟盤映像,不能新增cd或者硬碟的驅動。解決之後成功hello world。dw 1 beginning...