前篇介紹的 hello-1.c 需要進行編譯成 kernel module 之後,才能夠載入執行,而編譯 kernel module 跟編譯一般程式有很大的不同...
上回介紹如何建立並從 /proc 檔案系統中讀取資料,這次來介紹如何寫入到自建的 /proc 檔案中。讀跟寫的基本動作一樣,都是令讀或寫的動作去執行對應的函數。...
允許 sleep/awaken 動作的 process 稱之為 blocking I/O,反之不允許 sleep 動作的稱之為 non-blocking I/O...
因為之前介紹的網站 (http://www.tldp.org/LDP/lkmpg/2.6/html/x892.html) 上所提供的例子有錯,所以在這邊舉另一個...
import與module 在介紹完方法、類別與裝飾器後要更進一步讓程序可以重複利用的方式就是把之前所教授撰寫出來的方法、類別以及裝飾器打包起來變成函式庫。不過...
回顧 昨天用ESLint,照顧程式碼風格,今天真的要來寫程式了 目標 ES6 有些讓人欲罷不能的語法,它們超超超…常用,不能不會: 模組(module) /...
在 Linux 中 /proc 檔案系統可以用來做為 kernel module 傳送訊息給程式之用,也能夠記錄一些 kernel 的狀態,如 /proc/mo...
當然可以在載入 module 的同時帶參數進去,只不過不是用傳統的 argc/argv 的方式。在 Linux kernel 中,必須藉助 module_par...
由於工作上的需求接觸到 Linux 系統模組的除錯,進而對 Linux 系統模組的運作產生興趣。藉此機會,想把自己在 Linux kernel module 上...
模組 在一個 .V 檔案裡面,可以有很多個 module,但是 Top Module 只會有一個,所以檔名必須以 Top Module.v 來命名來辨別 Top...
高階的 function library,是屬於 user mode 的函數,是給程式設計師方便使用的 API。而真正在 kernel 中運行的是低階的 sys...
在 Linux 中想要知道目前在入的 kernel module 有哪些,可以透過 lsmod 命令來取得,或是輸出 /proc/modules 的內容 ( 其...
編譯完成了 hello-1.ko 之後,接下來我們就要執行他,而在載入之前先透過 modinfo 命令確認一下他的內容: [root@Pomelo-14-61...
Modules Module是帶有@Module()裝飾器的class,@Module()裝飾器提供metadata,Nestjs用其來構建整個程式架構,使...
不免俗的,我們也以 "Hello World" 來作為 kernel module 程式設計的第一個嘗試: /* * hello-1...
所以程式與 kernel 進行溝通的動作,最後都是以系統呼叫 (system call) 的方式來進行,譬如程式需要開啟一個檔案、建立一個新的子行程、或是要求一...
程式不外乎就是要利用系統的資源去完成他的指令動作,因為 Linux 是多功的作業系統,所以多個程式同時去競爭使用有限的 (如記憶體) 或是同一個 (對同一磁碟進...
什麼是狀態機呢? 狀態機,其實是有限狀態機(finite-state machine(FSM))的簡稱,字面上來看可以知道它是有有限個狀態,並且可以按照著特定的...
最常見的 kernel module 就是 device driver了,也就是各種硬體 (顯示卡、磁碟、serial port 等等) 的驅動程式。像是在 L...
單一電腦多 CPU 核心是目前電腦的主流,而多個 CPU 的運作方式可分為不同 CPU 負擔不同工作的非對稱模式 (asymmetrical multi-pro...
在 Hello World 的例子中提到,init_module() 與 cleanup_module() 都是 kernel module 中兩個基本需要的函...
因為原本參考的資料其例子有錯,所以特此列出來修正,同時說明實作系統呼叫的方法。 原本的例子 (syscall.c): http://www.tldp.org/L...
在系統中新增一個 driver,即代表是在 kernel 中註冊一個位置,此刻會在 /dev/ 目錄底下建立一個檔案,同時賦予這個 driver 相對的 mao...
file_operations 資料結構是 Linux character device 的核心,程式呼叫到 kernel moduel 的動作時,實際上都是引...
從之前的幾個例子,我們已經領略了 kernel module 是如何的去開始與結束,以及傳遞參數,看到他跟 user mode 程式在這部分有很大的差異。其實在...
tty (Teletype) 指的是跟系統溝通的輸出入介面,它可以是連接主機的 terminal (螢幕 + 鍵盤)、X-Window,或是網路連結的 ssh/...
前言 在使用 React Native 的此時此刻,我們就已經站在巨人的肩膀上了。不過有時候官方並不一定有提供所有需要的功能,基於我們不該有勇無謀的重造輪子,這...
當 driver 無法當下回應 user space 的動作要求時,譬如說設備正在忙碌,或者是 buffer 滿了暫時無法寫入等等,driver 都必須讓 pr...
要移除使用中的 kernel module 應該要設法避免有其他程式正在使用他,因為這將會導致存取不到內容而出錯、或者引用到錯誤的 module 上。 之前採用...
Hi Da Gei Ho~ 我是 Winnie , 今天是文章的第二篇,在開始進入主題 Vite之前,此篇文章將切分上下文 簡單說說 什麼是 模組與模組化 與...