原创 x86從 start_kernel 開始的中斷初始化

以下主要看了 linux 3.2 中,從 start_kernel() 開始的一些跟中斷有關的初始化代碼,並做了一點點簡單的分析。start_kernel() 在 init/main.c 中,其中和中斷有關的大概就有這樣一些函數: /*

原创 Linux C SQLite3 編程

SQLite3         SQLite是一個輕量級的數據庫。和常用的MySQL大同小異。和MySQL相比,數據類型基本一樣,只是sqlite的指令都是以"."開頭(如:mysql中查看當前有哪些數據庫是“show databases

原创 POSIX消息隊列 發送接收簡單子

Linux的函數庫提供有兩種消息隊列,一種是POSIX消息隊列,另一種是SYS V消息隊列。這裏介紹POSIX消息隊列。 涉及到的函數主要有: mq_open() - 創建消息隊列mq_close() - 關閉消息隊列mq_send()

原创 Bash - the shell (1)

1. 什麼是shell?        shell是一種用戶接口,我們可以通過shell來與計算機進行通信,或者說可以通過shell來操作計算機。所以任何可以操作計算機的程序應該都可以叫做shell。事實上,shell是一個循環執行的程

原创 iptables IP轉發

有兩臺服務器: A:219.246.xxx.yyy。這是一個內網地址,外網無法訪問。B:202.201.aaa.bbb。這是一個公網地址,它和xxx.lzu.edu.cn這個域名綁定。兩臺服務器上都跑了一個HTTP的服務,他們之間可以互

原创 結構體中的零長度數組

參考:http://hi.chinaunix.net/?uid-21744621-action-viewspace-itemid-48823 struct node { int len; int arra

原创 PowerPC OpenFirmware

參考:Documentation/devicetree/booting-without-of.txt OF 是在 PowerPC 上,用於在系統加點或者重啓時,初始化設備的,這些都是爲操作系統的啓動做準備工作。bootloader 會把

原创 initrd 和 initramfs

原文:https://www.linux.com/learn/linux-training/92607-the-kernel-newbie-corner-qinitrdq-and-qinitramfsq-whats-up-with-tha

原创 Archlinux conky配置

conky 是一個輕量級的系統監視器,可以實時反映出系統的相關信息。 參考: http://www.linuxidc.com/Linux/2011-02/32508.htm 有圖有真相 代碼主要和參考中的一致,只是天氣那塊我是自己用

原创 PowerPC 堆棧

        PowerPC 在處理器級別上是沒有實現堆棧操作的,也就是說,在 PowerPC 架構中,沒有專門的堆棧操作彙編命令。但事實上 PowerPC 又使用到了堆棧,比如在函數調用、傳參、返回錯誤碼等操作。         在講

原创 在enum中的宏定義

轉自:http://bbs.chinaunix.net/thread-795201-1-1.html     今天在代碼裏看到有一點很奇怪的代碼,代碼定義了一個枚舉類型,但是這個枚舉類型沒有變量名,而且在其中包含了宏定義,宏定義也是自己

原创 U-Boot: inflate() error 和 unable to open an initial console

        最近開始做 PowerPC 上的一些東西,在編譯內核,啓動內核的過程中遇到了很多問題,這兩天都塊搞屎我了……         不過最終還是解決了,現在把我遇到的問題和解決辦法貼在這裏,可以供大家參考,也方便我下次遇到同樣

原创 container_of -- 巧妙的宏定義

內核中的 container_of() 宏定義 container_of() 宏的功能就是通過結構體中的一個元素,來找到這個結構體的首地址。先來看看他的代碼: // include/linux/kernel.h #define co

原创 Linux 內核DMA機制

DMA控制器硬件結構 DMA允許外圍設備和主內存之間直接傳輸 I/O 數據, DMA 依賴於系統。每一種體系結構DMA傳輸不同,編程接口也不同。 數據傳輸可以以兩種方式觸發:一種軟件請求數據,另一種由硬件異步傳輸。 在第一種情況下,調用的

原创 Bash - the shell (2)

1. 更改bash爲vi模式        bash默認是使用emacs模式,就是說在命令行編輯命令的很多快捷鍵是和emacs一樣的(快捷鍵《bash-the shell(1)》中講過了)。但是除了emacs,另外一個神器就是vi(vim