整理1.1~1.3
-------------------------------------------------------------------------------------
1 Introduction
01.作業系統的目標(Operating system goals):
-執行使用者的程式、解決使用者的問題
-讓電腦系統方便的被使用
-有效率的管理電腦硬體
-------------------------------------------------------------------------------------
1.1 What Operating Systems Do
02.電腦系統可被分為四個構成要素(Computer system can be divided into four components):
-硬體
-作業系統
-應用程式
-使用者(包含人、機器或其他電腦)
-------------------------------------------------------------------------------------
1.1.1 User View
1.1.2 System View
03.作業系統做什麼(What Operating Systems Do)
-Depends on the point of view
+User View
-Users want convenience, ease of use,Don’t care about resource utilization
-Handheld computers are resource poor, optimized for usability and
battery life
-......
+System View
-作業系統是一個資源分配者(OS is a resource allocator)
+管理所有的資源
+當需求互相衝突時,決定資源要配給何者
-作業系統是一個控制程式(OS is a control program)
+管理使用者程式的執行,避免錯誤與不合適(errors and improper)的使用電腦
-------------------------------------------------------------------------------------
1.1.3 Defining Operating Systems
04.定義作業系統(Operating System Definition)
-In general, we have no completely adequate definition of an operating system.
+In addition,wehave no universally accepted definition of what is part of
the operating system.
+operating system is the one program running at all times on the computer
called the kernel
-------------------------------------------------------------------------------------
1.2 Computer-System Organization
-------------------------------------------------------------------------------------
1.2.1 Computer-System Operation
05.電腦啟動
-電腦啟動時bootstrap program會被載入到記憶體中
-bootstrap program通常放在ROM或EPROM,作為韌體(firmware)存在
-初始化系統的各個層面
+初始化CPU的暫存器(CPU registers)
+初始化裝置控制器(device controllers)
+初始化記憶體的內容(memory contents)
-載入並執行作業系統的核心(kernel)
06.中斷(interrupt) (p8)
-軟體發出中斷
+executing a special operation called a system call
-硬體發出中斷
+sending a signal to the CPU, usually by way of the system bus
-中斷向量(interruptvector)
-------------------------------------------------------------------------------------
1.2.2 Storage Structure
07.Memory的種類
-DRAM(dynamic random-access memory)
-ROM(read-only memory)
+因為ROM不能被修改,只有static的程式,像是開機程式被存在那
-EEPROM(electrically erasable programmable read-only memory)
+EEPROM無法被頻繁的修改,通常放著不易改變的程式,以智慧型手機來說,
EEPROM存著原廠安裝的程式
08.Storage-device hierarchy
-根據速度價錢以及volatile/nonvolatile,可由高到低排成這樣的層級
+Register
+Cache
+Main memory(DRAM)
+SSD(solid-state disk)
+Magnetic disk
+Optical disk
+Magnitic tapes
-
09.volatile storage 與 nonvolatile storage
-volatile storage 在停止供電後,會失去所有儲存的資料
-nonvolatile storage 在停止供電後,不會失去儲存的資料
10.其他特殊設備
-NVRAM(nonvolatile random-access memory)
+透過DRAM+電池,擁有DRAM的速度,並能在斷電後保有資料(看電池能用多久)
-------------------------------------------------------------------------------------
1.2.3 I/O Structure
11.device controller 與 device driver (p12)
-每個device driver都是特定用於某個device controller上的
-device controller位於硬體上,擁有自己的Buffer與Register
-device driver會去適當的讀取device controller的Register,判斷要做甚麼
(such as “read a character from the keyboard”
-作業系統針對不同的device controller擁有不同的device driver
12.DMA(direct memory access)
-device controller不透CPU,直接把自己整個Block的Buffer傳輸到Main memory的某部分,
每傳完一個Block丟出一個interupt,通知device driver操作已經完成
-------------------------------------------------------------------------------------
1.3 Computer-System Architecture
-------------------------------------------------------------------------------------
1.3.1 Single-Processor Systems
13.Single-Processor Systems
-僅具有一個用來處理Instruction set的主CPU
-幾乎所有的Single-Processor Systems架構仍具有其他.special-purpose processors,
不過並不會因為有這些special-purpose processors,讓架構變成Multiprocessor systems
14.special-purpose processors
-They may come in the form of device-specific processors
+disk controllers
-a disk-controller microprocessor receives a sequence of requests
fromthe main CPU and implements its own disk queue and scheduling algorithm
+keyboard controllers
+graphics controllers
-------------------------------------------------------------------------------------
1.3.2 Multiprocessor Systems
15.Multiprocessor systems have three main advantages (p14)
-提高吞吐量(Increased throughput)
-更經濟(Economy of scale)
-增加可靠性(Increased reliability)
16.The multiple-processor systems in use today are of two types.
-不對稱多處理(Asymmetric multiprocessing)
+A boss–worker relationship. The boss processor schedules
and allocates work to the worker processors.
-對稱多處理(Symmetric multiprocessing , SMP)
+Each processor performs all tasks within the operating system
2014年3月16日 星期日
2014年3月15日 星期六
Beaglebone Black 使用USB音效卡(1)
由於想要把Beaglebone Black變成音樂撥放器,所以去研究了使用ALSA來進行LINUX的音訊處理,其中有遇到一些大大小小的問題,所以寫了此篇文章來分享,若小弟有哪裡做的不太對,歡迎大大留言指導,謝謝!
接著,把BBB重開機,並使用ssh連上它。
確認音效卡有被偵測到,我們切換到proc/asound的資料夾去檢查
若您連這個資料夾都沒有,可能代表您的kernel是不支援ALSA的。
使用ls觀察檔案結構,在這裡可看到,Black 與 card1 分別為兩個設備,
一個是BBB的HDMI音源輸出 (HDMI是有音源輸出的 ),另一個則是我們的USB音效卡,
若您沒有出現card1,可能是您的音效卡晶片是不被kernel支援的。
我們可透過cat pcm來顯示這些音訊設備的資訊
識別 裝置名稱 播放PCM 錄音PCM
00-00: HDMI nxp-hdmi-hifi-0 : : playback 1
01-00: USB Audio : USB Audio : playback 1 : capture 1
HDMI nxp-hdmi-hifi-0這個就是BBB的HDMI音源輸出,我們可以看到,他僅有playback,
並沒有 capture ,而 USB Audio : USB Audio就是我們的USB音效卡。
確認我們的音效卡都OK後,可幫音效卡接上耳機,準備測試撥放音樂。
隨便把一個wav檔案抓到BBB中 (看你要透過網路還是甚麼方式,反正弄個wav就是了)
*可不要拿mp3檔案喔,因為mp3是編碼過後的,是不能這樣直接撥的。
銀魂主題曲,我還滿喜歡的XD
我們目前先不自己寫程式去撥放音樂,先用現成的ALSA工具來做,
到時候我會再繼續延伸下去。
使用apt-get install alsa-utils來安裝Alsa-utils工具,接著測試這幾個指令是否能用
aplay ALSA的音樂播放工具 簡易用法指令 aplay <filename>
alsamixer ALSA的音效卡設定工具 簡易用法指令 alsamixer
到這裡你或許會很開心的,直接下aplay Pray.wav來撥放音樂。
程式會停在這不動,代表正在撥放,不過~~~~你會甚麼都聽不到!!!
為甚麼呢? 因為預設的音效卡是HDMI音源輸出喔~你的耳機總不會接在那上面吧!!
那該怎麼辦呢? 我們要對aplay下參數,讓他使用USB音效卡來撥放!
左邊的是音源輸出音量~~建議調到個位數喔...很大聲的 QQ
調整完按ESC關閉。
最後 下指令 aplay -D hw:1,0 Pray.wav 聽音樂了 !!
-----------------------------------------------------------------------------------------
正文結束
終於介紹完了 ((累
若過程中有遇到甚麼問題,歡迎提出來大家一起討論喔 ^^
在閱讀之前,您可能需要有下列的裝置:
1.安裝Ubuntu的Beaglebone Black (kernel版本別太舊)
要能上網 ,並且有電源供應器 (其實不一定,要看情況)
2.一張支援Linux的USB音效卡
在閱讀之前,您可能需要會下列的東西:
1.透過ssh指令連線進入beaglebone black (LINUX)
或是 透過putty連線進入beaglebone black (WINDOWS)
2.基本的Linux操縱
3.懂得使用Ubuntu的apt-get指令
正文
正文
-----------------------------------------------------------------------------------------
USB音效卡直接接到BBB的USB埠中,連接網路線、電源線、USB線,
我使用的USB音效卡是露天拍賣買的,$50一個 ( 比運費還便宜阿 = _= )
" USB Audio 音效卡 Windows8 32bit/64bit & Linux 免驅動光碟 "
而網路是使用具有DHCP功能的router,插著就能上網,電源是使用
5V2A的變壓器供電。
USB音效卡直接接到BBB的USB埠中,連接網路線、電源線、USB線,
我使用的USB音效卡是露天拍賣買的,$50一個 ( 比運費還便宜阿 = _= )
" USB Audio 音效卡 Windows8 32bit/64bit & Linux 免驅動光碟 "
而網路是使用具有DHCP功能的router,插著就能上網,電源是使用
5V2A的變壓器供電。
確認音效卡有被偵測到,我們切換到proc/asound的資料夾去檢查
若您連這個資料夾都沒有,可能代表您的kernel是不支援ALSA的。
使用ls觀察檔案結構,在這裡可看到,Black 與 card1 分別為兩個設備,
一個是BBB的HDMI音源輸出 (HDMI是有音源輸出的 ),另一個則是我們的USB音效卡,
若您沒有出現card1,可能是您的音效卡晶片是不被kernel支援的。
我們可透過cat pcm來顯示這些音訊設備的資訊
識別 裝置名稱 播放PCM 錄音PCM
00-00: HDMI nxp-hdmi-hifi-0 : : playback 1
01-00: USB Audio : USB Audio : playback 1 : capture 1
HDMI nxp-hdmi-hifi-0這個就是BBB的HDMI音源輸出,我們可以看到,他僅有playback,
並沒有 capture ,而 USB Audio : USB Audio就是我們的USB音效卡。
確認我們的音效卡都OK後,可幫音效卡接上耳機,準備測試撥放音樂。
隨便把一個wav檔案抓到BBB中 (看你要透過網路還是甚麼方式,反正弄個wav就是了)
*可不要拿mp3檔案喔,因為mp3是編碼過後的,是不能這樣直接撥的。
銀魂主題曲,我還滿喜歡的XD
我們目前先不自己寫程式去撥放音樂,先用現成的ALSA工具來做,
到時候我會再繼續延伸下去。
使用apt-get install alsa-utils來安裝Alsa-utils工具,接著測試這幾個指令是否能用
aplay ALSA的音樂播放工具 簡易用法指令 aplay <filename>
alsamixer ALSA的音效卡設定工具 簡易用法指令 alsamixer
到這裡你或許會很開心的,直接下aplay Pray.wav來撥放音樂。
為甚麼呢? 因為預設的音效卡是HDMI音源輸出喔~你的耳機總不會接在那上面吧!!
那該怎麼辦呢? 我們要對aplay下參數,讓他使用USB音效卡來撥放!
識別 裝置名稱 播放PCM 錄音PCM
00-00: HDMI nxp-hdmi-hifi-0 : : playback 1
01-00: USB Audio : USB Audio : playback 1 : capture 1
指令 aplay -D hw:1,0 Pray.wav , -D參數為選擇裝置,這裡我們使用 hw:1,0 是代表
01-00: USB Audio : USB Audio : playback 1 : capture 1 這個裝置 ( "01-00:" --> hw:1,0 )
不過~~希望您還沒把他撥放下去,因為......預設的音量絕對會穰您的耳朵感到不舒服....
我們能使用 alsamixer 指令進入設定畫面 :
輸入指令,alsamixer後應該會看到這畫面 (高級ㄟ~~居然不是純文字XD)
接著按下 F6 , 選擇我們的USB音效卡00-00: HDMI nxp-hdmi-hifi-0 : : playback 1
01-00: USB Audio : USB Audio : playback 1 : capture 1
指令 aplay -D hw:1,0 Pray.wav , -D參數為選擇裝置,這裡我們使用 hw:1,0 是代表
01-00: USB Audio : USB Audio : playback 1 : capture 1 這個裝置 ( "01-00:" --> hw:1,0 )
不過~~希望您還沒把他撥放下去,因為......預設的音量絕對會穰您的耳朵感到不舒服....
我們能使用 alsamixer 指令進入設定畫面 :
輸入指令,alsamixer後應該會看到這畫面 (高級ㄟ~~居然不是純文字XD)
左邊的是音源輸出音量~~建議調到個位數喔...很大聲的 QQ
最後 下指令 aplay -D hw:1,0 Pray.wav 聽音樂了 !!
-----------------------------------------------------------------------------------------
正文結束
終於介紹完了 ((累
若過程中有遇到甚麼問題,歡迎提出來大家一起討論喔 ^^
訂閱:
文章 (Atom)