OS chapter2 OS Structure

Josephjojo
5 min readNov 30, 2020

--

OS Services

這章節只有簡單介紹User interface 以及 Communication 剩下會在後面提到

User interface

CLI (Command Line Interface):

基本上GUI可能做得事情CLI都可以做, 因為GUI是建立在CLI上!

Shell: 提供CLI的API(Command-line interpreter "CSHELL, BASH")

為何還需要再多一層(shell)? 為了讓不同User做不同的事! 舉個例子: 在Window中閱覽目錄的command 叫 "dir", 而在Liunx中 叫做 "ls" 簡單一點就是依照使用者的喜好可以做調整, 因為可以做修改所以她並不屬於OS的一部分!

GUI (Graphic User Interface):

就是現在大家常見的介面

Communication Models

指的就是電腦裡(資料與資料) 與 電腦外(電腦與電腦),但是不管是哪一個層面都可以簡單地透過memeoy的使用分成兩大類, 為何是memory? 因為CPU能夠directly access的東西只有memory 這邊講的就是如何透過memory是兩隻程式可以溝通(交換data), 這裡衍生出兩種溝通概念 message pass and shared memory.

Message pass: 就像大家寫E-mail溝通一樣, 以下圖為例A程式將溝通資訊copy到 kernal(os memory)然後再由kernal copy到B程式 (壞處 很慢)

Shared memory: 有一塊memory用來儲存A程式與B程式溝通的訊息, 不同的程式要shared同一塊memory也是要告知OS 透過system call 去craete (壞處 deadlock and synchronization)

OS-Application Interface

“API” and System call!! 在繼續閱讀前 記住這兩個東西是不一樣的!

System call

先前已經描述了OS(提供 Service 的 software) 這些OS所提供的服務, 先釐清一下上述我們提到的CLI與GUI 是 User 與 Program 之間, 這邊指的是Program 與 OS(當Program要執行在一系統上時只能透過OS提供的function call), 而這些OS所提供的 Function call(不同的Service, 也就是system call)

System call and API

System call: OS 提供的唯一的interface, 所以在OS上面會定義一層System call layer (a part of OS!!)

它其實就是Software interrupt, why? 因為才有機會去改變User mode and Kernal mode 所以當System call 發生時System 一定進入Kernal mode, 由於system call是組合語言寫的, 這是為使Pregram能方便的適用system call, 所以在System call上再加了一層API layer(就是在一個電腦系統上的application)當我們要去program 這個application 所適用的interface, 簡而言之API是為了programming的方便 以及方便application設計的!

API: Application Program Interface

一個而言大部分電腦API始由C or jave撰寫

因為API與System call分成兩層所以目的也完全不同, 也就是一個API的function call 可能會變成很多個System call才能完成它(一對多) 也有能是一對零,因為兩者之間是分開的沒有任何關係!, API的目的是為了方便User做Programming, 就當有code要使用OS時才會touch到System call, 而interrupt的產生只有再touch到system call時才會發生(你呼叫API他並不會進入system call除非他呼叫到System call 才會間接地進入kernal mode)

System Call : Passing Parameters

System Structure

Layered OS Architecture

當OS執行由許多的Program互相溝通完成(外層可以呼叫內層 內層不能呼叫外層)

Virtual Machine:

連結自己看

--

--