iT邦幫忙

linux相關文章
共有 751 則文章
鐵人賽 DAY 27
Linux kernel模組的開發 系列 第 27

技術 輸出訊息到當下 tty 的範例

tty (Teletype) 指的是跟系統溝通的輸出入介面,它可以是連接主機的 terminal (螢幕 + 鍵盤)、X-Window,或是網路連結的 ssh/...

鐵人賽 DAY 26
Linux kernel模組的開發 系列 第 26

技術 Blocking 與 Non-blocking I/O

允許 sleep/awaken 動作的 process 稱之為 blocking I/O,反之不允許 sleep 動作的稱之為 non-blocking I/O...

鐵人賽 DAY 25
Linux kernel模組的開發 系列 第 25

技術 Process wake up 的注意事項

當一個 sleep 的 process 再度被喚醒之後,有幾件事情也是必須注意的:我們無法預期 process 會 sleep 多久,也就是說 process...

鐵人賽 DAY 24
Linux kernel模組的開發 系列 第 24

技術 Process sleep 的注意事項

當 driver 無法當下回應 user space 的動作要求時,譬如說設備正在忙碌,或者是 buffer 滿了暫時無法寫入等等,driver 都必須讓 pr...

鐵人賽 DAY 23
Linux kernel模組的開發 系列 第 23

技術 IOCTL 範例

因為之前介紹的網站 (http://www.tldp.org/LDP/lkmpg/2.6/html/x892.html) 上所提供的例子有錯,所以在這邊舉另一個...

鐵人賽 DAY 22
Linux kernel模組的開發 系列 第 22

技術 系統呼叫的範例

因為原本參考的資料其例子有錯,所以特此列出來修正,同時說明實作系統呼叫的方法。 原本的例子 (syscall.c): http://www.tldp.org/L...

鐵人賽 DAY 2

技術 DIY學習OpenStack Juno / Icehouse , 要有什麼基礎?沒有預算,至少要幾台主機?什麼等級?

( 編輯中:2014-10-23 Am 02:08 ) 東看西想,最終確定「Just Do It !」,從最簡單「All-in-one」做起,打掉重來都不怕,「...

鐵人賽 DAY 21
Linux kernel模組的開發 系列 第 21

技術 執行系統呼叫

程式送出中斷來執行系統呼叫的時候,會帶一個系統呼叫標號,以指出將要執行的 kernel 動作是甚麼。然後 kernel 會去查表 (sys_call_table...

鐵人賽 DAY 20
Linux kernel模組的開發 系列 第 20

技術 系統呼叫 system call

所以程式與 kernel 進行溝通的動作,最後都是以系統呼叫 (system call) 的方式來進行,譬如程式需要開啟一個檔案、建立一個新的子行程、或是要求一...

鐵人賽 DAY 19
Linux kernel模組的開發 系列 第 19

技術 與設備溝通

在 Linux 中,所有設備在 kernel 中皆有一個 device 檔來代表他,而要透過該設備進行輸出或輸出的動作時,也就相當於對他的 device fil...

鐵人賽 DAY 18
Linux kernel模組的開發 系列 第 18

技術 寫入與讀取 /proc 檔案

上回介紹如何建立並從 /proc 檔案系統中讀取資料,這次來介紹如何寫入到自建的 /proc 檔案中。讀跟寫的基本動作一樣,都是令讀或寫的動作去執行對應的函數。...

鐵人賽 DAY 17
Linux kernel模組的開發 系列 第 17

技術 file_operations 資料結構

file_operations 資料結構是 Linux character device 的核心,程式呼叫到 kernel moduel 的動作時,實際上都是引...

鐵人賽 DAY 16
Linux kernel模組的開發 系列 第 16

技術 /proc 檔案系統

在 Linux 中 /proc 檔案系統可以用來做為 kernel module 傳送訊息給程式之用,也能夠記錄一些 kernel 的狀態,如 /proc/mo...

鐵人賽 DAY 15
Linux kernel模組的開發 系列 第 15

技術 在 kernel 中移除 (反註冊) driver

要移除使用中的 kernel module 應該要設法避免有其他程式正在使用他,因為這將會導致存取不到內容而出錯、或者引用到錯誤的 module 上。 之前採用...

鐵人賽 DAY 14
Linux kernel模組的開發 系列 第 14

技術 在 kernel 中註冊 driver

在系統中新增一個 driver,即代表是在 kernel 中註冊一個位置,此刻會在 /dev/ 目錄底下建立一個檔案,同時賦予這個 driver 相對的 mao...

鐵人賽 DAY 2

技術 除了OpenStack,要自建多主機架構的私有雲,還有哪些門派的系統?

除了OpenStack,要自建多主機架構的私有雲,還有哪些門派的系統? ( 更新編輯中:2014-10-15 Am 08:44 ) 上一篇:OpenStack的...

鐵人賽 DAY 13
Linux kernel模組的開發 系列 第 13

技術 Device driver

最常見的 kernel module 就是 device driver了,也就是各種硬體 (顯示卡、磁碟、serial port 等等) 的驅動程式。像是在 L...

鐵人賽 DAY 2

技術 OpenStack的學習資源在哪裡?什麼,OpenStack還有社員年度大會?

( 編輯中:2014-10-21 Am 06:43 ) 什麼,OpenStack還有社員年度大會? 是的,不僅有社員大會的高峰會,還有很多技術社群聚會,而且年...

鐵人賽 DAY 12
Linux kernel模組的開發 系列 第 12

技術 記憶體管理

當開始要執行一個程式的時候 (process 建立了),kernel 就會為這個 process 準備一塊記憶體讓他儲存執行程式所需要的變數、資料、stack...

鐵人賽 DAY 2

技術 OpenStack是免費的嗎?有沒有版本授權問題?什麼是Apache 2.0 license?

OpenStack是免費的嗎?有沒有版本授權問題?什麼是Apache 2.0 license? ( 編輯中:2014-10-11 Pm 23:58 ) 上一篇:...

鐵人賽 DAY 11
Linux kernel模組的開發 系列 第 11

技術 變數的命名空間

之前在談 function library 與 system call 的時候就有提到,位甚麼在寫 kernel module 時,不像寫一般程式一樣,需要對引...

鐵人賽 DAY 2

技術 為什麼開發與善用OpenStack,必須知道 ECO-System 生態系 是什麼意思?

為什麼開發與善用OpenStack,必須知道 ECO-System 生態系 是什麼意思? ( 編輯中:2014-10-21 Am 06:53 ) OpenSta...

鐵人賽 DAY 10
Linux kernel模組的開發 系列 第 10

技術 User space 與 kernel space

程式不外乎就是要利用系統的資源去完成他的指令動作,因為 Linux 是多功的作業系統,所以多個程式同時去競爭使用有限的 (如記憶體) 或是同一個 (對同一磁碟進...

鐵人賽 DAY 9
Linux kernel模組的開發 系列 第 9

技術 function library 與 system call

高階的 function library,是屬於 user mode 的函數,是給程式設計師方便使用的 API。而真正在 kernel 中運行的是低階的 sys...

鐵人賽 DAY 8
Linux kernel模組的開發 系列 第 8

技術 kernel module function 與 symbol

從之前的幾個例子,我們已經領略了 kernel module 是如何的去開始與結束,以及傳遞參數,看到他跟 user mode 程式在這部分有很大的差異。其實在...

鐵人賽 DAY 7
Linux kernel模組的開發 系列 第 7

技術 送參數到 module 中

當然可以在載入 module 的同時帶參數進去,只不過不是用傳統的 argc/argv 的方式。在 Linux kernel 中,必須藉助 module_par...

鐵人賽 DAY 6

技術 [Linux 安裝篇 #5] 上路吧!展開雙手歡迎Arch Linux!

前面講了這麼多,在今天終於要開始正式進入重頭戲了,也就是來安裝Linux作業系統吧 在前面有提過,各個Linux發行版本都有自己的優點,挑出適合自己的就好。在這...

鐵人賽 DAY 2

技術 OpenStack__不是新發明 OS,而是重新定義

OpenStack__不是新發明 OS,而是重新定義 ( 更新編輯中:2014-10-08 Am 05:03 ) 哇靠!這還真嚇人! OpenStack 「雲端...

鐵人賽 DAY 6
Linux kernel模組的開發 系列 第 6

技術 不同的 module init 與 cleanup 做法

在 Hello World 的例子中提到,init_module() 與 cleanup_module() 都是 kernel module 中兩個基本需要的函...

鐵人賽 DAY 5

技術 [Linux 安裝篇 #4] 規劃硬碟分割,整理出讓Linux進駐的地方

在安裝作業系統之前,必須在硬碟上分割上切一塊空間出來給要安裝的作業系統。 現在主流的硬碟分割表格式分為MBR和GPT,通常早期的電腦硬碟大都採用MBR格式(雖然...