Time of Update: 2018-12-03
一、原始碼#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static __init int hello_init(void){ printk(KERN_ALERT "Hello world/n"); return 0;}static __exit int hello_exit(void){
Time of Update: 2018-12-03
linux中的find命令功能非常強大,他可以根據各種不同的參數搜尋硬碟尋找檔案或目錄。他的基本命令格式如下:find [PATH] [option] [action]一、選項1、與時間有關的參數-atime n: n為數字,含義為在n天之前的“一天之內”訪問(access)過的檔案。-ctime n: n為數字,含義為在n天之前的“一天之內”修改(change)過z狀態的檔案。 -mtime n:
Time of Update: 2018-12-03
1、什麼是檔案系統當前的作業系統大多數是從硬碟讀取資料的,每個作業系統使用的硬碟在x86架構上都是一樣的,都是同樣的硬碟。但是每種作業系統都有其獨特的讀取檔案的方法,也就是作業系統對硬碟讀取的方法不同,這就產生了不同的檔案系統。例如windows檔案系統有FAT16,FAT32和NTFS。linux有ext2、ext3等。2
Time of Update: 2018-12-03
linux關機命令,首先要切換到root使用者下。 1.直接關機shutdown -h now 2.三分鐘後關機shutdown -h +3【+3】代表三分鐘後關機 3.三分鐘後關機並且顯示資訊給使用者shutdown -h +3 "system will shutdown after 3 minutes" 4.直接重啟電腦的命令shutdown -r now. 同理,三分鐘後重啟,並且帶資訊提示: shutdown -r +3 "system will restart after 3
Time of Update: 2018-12-03
目前Linux下常見的壓縮檔副檔名:*.Z compress程式壓縮的檔案(最早期使用),壓縮後取代源檔案; *.zip 一個誇平台的檔案打包程式,適用於Linux、windows和Mac OS系統; *.bz2 bzip2程式壓縮的檔案; *.gz gzip程式壓縮的檔案; *.tar tar程式打包的檔案,並沒有壓縮; *.tar.gz
Time of Update: 2018-12-03
驅動開發過程中,首先要記住的規則是,你的資源不止一個進程在訪問,只要可能,就應該避免資源的共用。驅動開發中,經常把訊號量來當互斥器使用,一個訊號量本質就是一個整數。他和一對兒函數配合使用,通常稱為PV操作。linux訊號量的使用首先要包含,相關的類型是struct semaphore;1、建立訊號量:void sema_init(struct semaphore *sem, int
Time of Update: 2018-12-03
本文源地址:http://blog.21ic.com/user1/4132/archives/2010/67653.html 核心空間和使用者空間是作業系統理論的基礎之一,即核心功能模組運行在核心空間,而應用程式運行在使用者空間。現代的CPU都具有不同的操作模式,代表不同的層級,不同的層級具有不同的功能,在較低的層級中將禁止某些操作。Linux系統設計時利用了這種硬體特性,使用了兩個層級,最進階別和最低層級,核心運行在最進階別(核心態),這個層級可以進行所有操作,而應用程式運行在較低層級(使用
Time of Update: 2018-12-03
Valgrind是一個GPL的軟體,用於Linux(For x86, amd64 and ppc32)程式的記憶體調試和代碼剖析。你可以在它的環境中運行你的程式來監視記憶體的使用方式,比如C 語言中的malloc和free或者 C++中的new和
Time of Update: 2018-12-03
原文地址:http://www.cnblogs.com/raymon/archive/2012/02/18/2357608.htmlhttp://blog.csdn.net/kesalin/article/details/3887368 1.
Time of Update: 2018-12-03
一。查看核心版本命令:1) [root@SOR_SYS ~]# cat /proc/versionLinux version 2.6.18-238.el5 (mockbuild@x86-012.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) #1 SMP Sun Dec 19 14:22:44 EST 2010[root@SOR_SYS ~]#2)[root@SOR_SYS ~]# uname -r2.6
Time of Update: 2018-12-03
Linux持續維護相關的資料結構(諸如runqueue、prio_array),不斷更新進程的動態優先順序,並相應的調整時間片,從而實現了O(1)複雜度的進程調度演算法,可以在常量時間內調度新進程上台運行,而不受系統中進程總數的影響。我覺得這至少能佐證三個道理:(1)效益可以來自於平時點點滴滴地積累(功夫都在平時,而並非只針對schedule()函數本身做“天才的設計”);(2)維持秩序固然需要成本,卻可以帶來可觀的收益(如果不是一直維護著井然有序的隊列,進程調度演算法的複雜度恐怕很難優於O(N
Time of Update: 2018-12-03
最近做一個通訊端編程的應用,伺服器使用Unix。對於通訊端非同步選擇,一般有兩種模式,一種是對每個新到來的串連都建立一個線程(pthread),可以使用線程池對其進行管理;另外一種是使用單進程下的非同步I/O,通過函數select()來實現;select()函數可以完成非阻塞方式工作的程式,它能夠監視我們需要監視的檔案描述符的變化情況——讀寫或是異常這裡的非阻塞是指進程或線程執行此函數時不必非要等待事件的發生,一旦執行肯定返回,以傳回值的不同來反映函數的執行情況如果事件發生則與阻塞方式相同;若事
Time of Update: 2018-12-03
應用程式層開發的,可以看看《Linux Application Development》《Advanced Linux Programming》第二本廢人同學曾經翻譯過,譯稿可從這裡擷取。另外Linux和Unix淵源極深,因此,應用程式層開發也可以看看《Advanced Programming in the Unix Environment》《The Art of UNIX Programming》核心開發的,可以看看《Linux Kernel
Time of Update: 2018-12-03
cp命令 該命令的功能是將給出的檔案或目錄拷貝到另一檔案或目錄中,同MSDOS下的copy命令一樣,功能十分強大。 文法: cp [選項] 源檔案或目錄 目標檔案或目錄 說明:該命令把指定的源檔案複製到目標檔案或把多個源檔案複製到目標目錄中。該命令的各選項含義如下:- a 該選項通常在拷貝目錄時使用。它保留連結、檔案屬性,並遞迴地拷貝目錄,其作用等於dpR選項的組合。- d 拷貝時保留連結。- f 刪除已經存在的目標檔案而不提示。- i 和f選項相反,在覆蓋目標檔案之前將給出提示要求使用者確認。
Time of Update: 2018-12-03
Linux裡面有兩套管理網路連接的方案:1、/etc/network/interfaces(/etc/init.d/networking)2、NetworkManager兩套方案是衝突的,不能同時共存。第一個方案適用於沒有X的環境,如:伺服器;或者那些完全不需要改動串連的場合。第二套方案使用於有案頭的環境,特別是筆記本,搬來搬去,網路連接情況隨時會變的。-------------他們兩個為了避免衝突,又能共用配置,就有了下面的解決方案:1、當NetworkManager發現/etc/networ
Time of Update: 2018-12-03
問題起因:linux下C++採用utf-8編碼方式,因此char類型不是單純的一個字元一個位元組。一個英文字元佔一個位元組,而一個中文字元則不只佔了一個位元組(具體查看Unicode編碼方案簡介及實現一文)。如下所示,分別輸出中文的“王子”和其中文拼音的“wangzi”代碼: char name[16]={0}; strcpy(name, "WangZi"); //strcpy(name, "王子");在Linux環境下,記憶體中分別表示如下:print name$1 =
Time of Update: 2018-12-03
參照:http://www.linuxdiyf.com/viewarticle.php?id=81130常用的資料類型time_t 一般用來儲存國際化時間,用time()函數可直接擷取到;結構體:tm 一般用來儲存本地時間,可通過將time_t格式轉化而來;結構體:time_val 一般用來儲存計數型的時間(秒/毫秒);有些也用struct
Time of Update: 2018-12-03
轉載自:http://www.cnblogs.com/feisky/archive/2010/03/20/1690561.html使用定時器的目的無非是為了周期性的執行某一任務,或者是到了一個指定時間去執行某一個任務。要達到這一目的,一般有兩個常見的比較有效方法。一個是用linux內部的三個定時器:ITIME_REAL,ITIMER_VIRTUAL,ITIME_PROF;另一個是用sleep, usleep函數讓進程睡眠一段時間;其實,還有一個方法,那就是用gettimeofday(),
Time of Update: 2018-12-03
這篇文章只講述下條件變數pthread_cond_t的作用和理解,函數已在別的文章中給出。互斥鎖一個明顯的缺點是它只有兩種狀態:鎖定和非鎖定。而條件變數通過允許線程阻塞和等待另一個線程發送訊號的方法彌補了互斥鎖的不足,它常和互斥鎖一起使用。(1)等待機制使用時,條件變數被用來阻塞一個線程:當條件不滿足時,線程往往解開相應的互斥鎖並等待條件發生變化;一旦其它的某個線程改變了條件變數,系統將通知相應的條件變數喚醒一個或多個正被此條件變數阻塞的線程。這些線程將重新鎖定互斥鎖並重新測試條件(檢測條件必須
Time of Update: 2018-12-03
****************裝Fedora的災禍****************前幾天用了Ubuntu 很不爽,於是改裝了Fedora 11, 想不到在安裝過程中,本來應該按ignore的,一不小心按了 Re-initialize the drive,