常用 dpkg-reconfigure 記錄

Debian 和 Ubuntu 使用 dpkg 來執行 Debian 套件 (.deb) 的安裝與刪除等功能,等同於 RHEL 和 fedora 的 rpm 指令。dpkg 也被作為高階安裝指令如 apt (advance package tool) 等程式的底層呼叫。對於 dpkg 的指令用法,本文就不贅述了。但有部分套件在安裝過後需要透過  dpkg-reconfigure 指令,讓使用者更簡單的去變更設定。在此列出部分常用 dpkg-reconfigure 指令做為參考。 繼續閱讀

使用 pidstat 取得指定行程的 CPU 使用率

當一支行程在運行時,我們要如何取得該行程的所佔的 CPU 使用率,或是讀寫 I/O 的速率等資訊?top 指令可以同時看到目前系統上正在運行的所有行程,但是無法針對單一行程做追蹤。pidstat 指令則可以幫我們完成以上任務。 繼續閱讀

使用libmodbus實作Modbus協定

Modbus 是一個簡單且實用的工業用的網路協定,因為標準開放且容易實作,非常廣泛的應用於許多工業設備如PLC, AMI, … 等。Modbus協定目前由 Modbus Organization 維護,可以到該網站下載相關 specifications。Modbus 在 OSI 分層架構中屬於應用層,多數建構於串列傳輸 Serial (RS-232/RS-485) 或乙太網 (TCP/IP) 之上。(關於 Modbus 也可以參考小弟的拙於 slideshare) 即便 Modbus 協定相當容易實作,但基於"不要重新製造輪子"的立場,使用 libmodbus 函式庫來幫助我們快速開發,降低錯誤率與減少偵錯時間是個明智的選擇。

繼續閱讀

創建 Daemon 程式

Daemon 的原意其實就是小精靈(或是小惡魔),一般人是看不見的。而 Daemon 程式是指常駐在 Linux(或 Unix/Unix-Like)作業系統背景中執行的行程,無法被使用者直接操作或控制。這些 Daemon 可能是個 Server 在等待與處理 Client 端的請求,也可能是系統的維護程式。 繼續閱讀

實作 System V Shared Memory in Linux User Space

System V Shared Memory

在撰寫 process 時,有時會希望一些數值或是資料結構可以在不同 process 之間傳遞或是修改。但是資料結構儲存於虛擬記憶體中,不同 process 之間的記憶體區塊都是各自獨立的,無法存取到其他 process 的記憶體位置。如果要實現不同 process 之間存取相同一塊記憶體這樣的功能,就必須使用共享記憶體 (shared memory) 了。 繼續閱讀

Dave Jones: Kernel hacking mini-howto (中譯)

寫在前面

無意間我看到 Dave Jones 寫給 kernel 新手的這篇文章(Dove Jones 是 red hat 公司 Fedora Kernel team 的 leader,也參與過不少計畫與專案),覺得很有意思,也頗為受用。於是就乾脆把他翻成中文,給想要研究 Linux Kernel 的入門者與我自己,作為參考。先聲明我並不是專業的翻譯,若有錯誤還請輕虐(跪)! 繼續閱讀