學習linux核心的四庫全書

==四庫全書==1.linux核心設計與實現

關於訂閱linux-kernel 郵件清單的問題

關於怎麼訂閱可以查看:http://blog.chinaunix.net/uid-26963688-id-3205007.html在訂閱的過程中碰到個回複郵件的格式問題,這個不解決,訂閱是不成功的。錯誤資訊:>>>> ---309136488-1687512366-1367655922=:73926**** Command '---309136488-1687512366-1367655922=:73926' not recognized.>>>>

linux–檔案合并和分割

轉自:http://www.2cto.com/os/201203/124813.html切割合并檔案在linux下用split和cat就可以完成。下面舉些執行個體進行說明。1.檔案切割檔案切割模式分為兩種:     文字檔     二進位模式。1.1文字模式文字模式只適用於文字檔,用這種模式切割後的每個檔案都是可讀的。文字模式又分為兩種:     按最大檔案大小切割;     按文本行數切割。1.1.1最大檔案大小切割split -C 5k duanxin

linux–Linux查看CPU和記憶體使用量情況

轉自:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html在系統維護的過程中,隨時可能有需要查看 CPU 使用率,並根據相應資訊分析系統狀況的需要。在 CentOS 中,可以通過 top 命令來查看 CPU 使用狀況。運行 top 命令後,CPU 使用狀態會以全屏的方式顯示,並且會處在對話的模式 -- 用基於 top 的命令,可以控制顯示方式等等。退出 top 的命令為 q (在 top 運行中敲 q

Linux下編譯Jsoncpp

下載軟體包:jsoncpp-src-0.5.0.tar.gz scons-2.1.0.tar.gz# tar zxvf scons-2.1.0.tar.gz# tar zxvf jsoncpp-src-0.5.0.tar.gz設定環境變數【關鍵】,絕對路徑# export MYSCONS=解壓的路徑# export SCONS_LIB_DIR=$MYSCONS/engine# cd jsoncpp-src-0.5.0# python $MYSCONS/script/scons platform=

Linux動態庫和靜態庫基礎

example: hello.c hello.h main.c1.靜態庫gcc -c hello.car cr libhello.a hello.o引用庫: -lhello2.動態庫gcc -c hello.cgcc -shared -fPCI -o libhello.so hello.o引用庫: -lhello3.指定標頭檔gcc main.c -o main -I includeinclude:標頭檔的存放路徑4.指定庫檔案gcc main.c -o main -L lib

如何編寫一個完整的Linux命令

作者:gzshun. 原創作品,轉載請標明出處!來源:http://blog.csdn.net/gzshun一個完整的Linux命令需要有以下幾個重要的部分組成:1.使用方法2.命令列參數3.移植性1.使用方法在每個命令當中,都需要提供一個usage函數,當然名稱不一定要用這個。看了很多開源軟體,幾乎都是使用usage命名。usage一般是在使用者輸入不規則的命令列參數才調用的,也就是列印出詳細的使用方法。比如我以下隨便給一個Linux命令傳入一個沒有被提供的參數,執行結果是這樣:gzshun@

Linux 下 如何打 PATCH 及製作 DIFF

 Linux下patch的製作和應用 引用[http://blog.csdn.net/qupanpan110/archive/2010/12/17/6082315.aspx]因為在u-boot移植過程中,有幾處通用檔案要修改,如果每次都要手動修改就太麻煩了。製作補丁可以解決這個問題。學習資料的收集比較簡單,方法一類似於這種初級問題網上資料非常豐富,google或者baidu搜尋一下,然後選擇有價值的資料,方法二是閱讀man線上文檔。完成收集工作,當然最終要在自己的Linux上作實驗,比較總結,消

編譯linux kernel3.0

http://hi.baidu.com/bzyy_2008/blog/item/bf8347221048cd5493580774.html第一次編譯 核心,在網路上找了教程~於是就懷著玩玩的心態試著編譯了核心。。。。反正我也不指望能夠編譯出多好,多小的核心。、當時的想法是能夠進入系統就不錯鳥~~~現在用著這個 3.0 的核心,一個字----爽。比之前系統內建的核心快多了~~比如開啟 LibreOffice 軟體,之前的核心大概需要 3秒,現在這個核心大概需要

LINUX裝置驅動(十七)—中斷(二)

頂半部和底半部Linux系統通過將中斷處理常式分成兩部分來解決這個問題。稱為“頂半部”的部分,是實際響應中斷的常式,也就是用request_irq註冊的中斷常式;而所謂的“底半部”是一個被頂半部調度,並在稍後更安全的時間內執行的常式。頂半部處理常式和底半部處理常式之間最大的不同,就是當底半部處理常式執行時,所有的中斷都是開啟的---這就是所謂的在更安全的時間內運行。典型的情況是頂半部儲存裝置的資料到一個裝置特定的換從去並調度它的底半部,然後退出。頂半部所做的操作是非常快的,然後,底半部執行其他必

linux 0.11串口程式分析

0.11核心維護著3個終端,一個顯示器和鍵盤,另外兩個是串口1,2.

linux裝置驅動學習(六)–並發與竟態2

自旋鎖:和訊號量不同,自旋鎖可以在不能休眠的代碼中使用,比如中斷處理常式。自旋鎖通常實現為某個整數值中的某個位。希望獲得某特定鎖的代碼測試相關的位。如果鎖可用,則鎖定位被設定,而代碼進入臨界區。相反,如果鎖定被其他人獲得,則代碼進入忙迴圈並重複檢查這個鎖。以上測試並設定的操作必須以原子方式進行。自旋鎖API使用自旋鎖必須包含標頭檔<linux/spinlock.h>,鎖的類型為spinlock_t類型定義同時完成初始化: spinlock_t my_lock = SPIN_LOCK_

linux裝置驅動學習(八)—阻塞式I/O與休眠

阻塞型I/O與休眠當一個進程被置入休眠時,他會被標記為一種特殊的狀態並從調度器的運行隊列調走(將該進程加入到等待隊列中,等待喚醒)。休眠中的進程會被擱置在一邊,等待喚醒。要想安全的進行休眠需要注意:1.永遠不要在原子上下文中進入休眠.原子上下文是指:在執行多個步驟時,不能有任何的並發訪問。對休眠來說,我們的驅動程式不能擁有自旋鎖、seqlock或者RCU鎖時休眠。如果我們已經禁止了中斷,也不能休眠。但在擁有訊號量時允許休眠。如果代碼在擁有訊號量時休眠,任何其他等待該訊號量的線程也會休眠,一次擁有

LINUX裝置驅動學習(十一)–裝置的存取控制

裝置檔案的存取控制:獨享裝置,限制每次只有一個使用者訪問(單使用者訪問),阻塞型使用者訪問,開啟時複製裝置。獨享裝置主要是讓驅動程式維護一個atomic_t變數,該變數初始化為1,表明可用,在open時會減小並測試scull_s_available,並在其他進程開啟該裝置時拒絕開啟該裝置。程式碼範例:static atomic_t scull_s_available = ATOMIC_INIT(1);static int scull_s_open(struct inode

linux塊裝置讀寫的底層實現

ll_re_block()函數:核心塊裝置讀寫都是通過該函數申請請求項來完成的。該函數首先建立請求項,並插入到指定塊裝置的請求隊列中,實際的讀寫操作則是用請求項函數request_fn()來完成的--對與硬碟來說是do_hd_request().該函數建立的請求項後,首先會檢查對應的請求項隊列是否為空白,如果為空白則設定該請求項為當前請求項,否則利用電梯演算法將該請求項加入請求項隊列。由於每個do_hd_request()在結束每個請求項處理後,都會通過終端回呼函數(read_intr和writ

linux裝置驅動學習(七)

進階字元裝置驅動一、ioctl大部分裝置除了讀寫能力,還可進行超出簡單的資料轉送之外的操作,所以裝置驅動也必須具備進行各種硬體控制操作的能力. 這些操作常常通過 ioctl 方法來支援,它有和使用者空間版本不同的原型:int (*ioctl) (struct inode *inode, struct file *filp,              unsigned int cmd, unsigned long

Linux SMP啟動過程

1.        SMP 硬體體繫結構:對於 SMP 最簡單可以理解為系統存在多個完全相同的 CPU ,所有 CPU 共用匯流排,擁有自己的寄存器。對於記憶體和外部裝置訪問,由於共用匯流排,所以是共用的。 Linux 作業系統多個 CPU 共用在系統空間上映射相同,是完全對等的。 由於系統中存在多個 CPU ,這是就引入一個問題,當外部裝置產生中斷的時候,具體有哪一個 CPU 進行處理?為此, intel 公司提出了 IO APCI 和 LOCAL APCI 的體繫結構。IO

LINUX裝置驅動i2c架構分析(一)

I2c是philips提出的外設匯流排.I2C只有兩條線,一條串列資料線:SDA,一條是時鐘線SCL.正因為這樣,它方便了工程人員的布線.另外,I2C是一種多主機控制匯流排.它和USB匯流排不同,USB是基於master-slave機制,任何裝置的通一:前言I2c是philips提出的外設匯流排.I2C只有兩條線,一條串列資料線:SDA,一條是時鐘線SCL.正因為這樣,它方便了工程人員的布線.另外,I2C是一種多主機控制匯流排.它和USB匯流排不同,USB是基於master-slave機制,任何

LINUX裝置驅動i2c架構分析(二)

四:i2c driver註冊在分析i2c driver的時候,有必要先分析一下i2c架構的初始化代碼如下:static int __init i2c_init(void){    int retval;     retval = bus_register(&i2c_bus_type);    if (retval)        return retval;    retval = class_register(&i2c_adapter_class);    if

LINUX裝置驅動i2c架構分析(三)

六:其它的擴充分析完adapter和i2c driver的註冊之後,好像整個架構也差不多了,其它,擴充的東西還有很多.我們舉一個legacy形式的例子,這個例子是在kernel中隨便搜尋出來的:在linux-2.6.26.3/drivers/hwmon/ad7418.c中,初始化函數為:static int __init ad7418_init(void){    return i2c_add_driver(&ad7418_driver);}i2c_driver

總頁數: 3662 1 .... 594 595 596 597 598 .... 3662 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.