Linux一些經典書籍

一、linux之路,路漫漫其修遠兮,吾將上下而求索!先上經典書籍!1.入門篇 《LINUX權威指南》書不錯,寫的很全面也比較廣,涉及的不深,做為入門書籍不錯,可以比較全面的瞭解linux 。另外比較熱門的也可以看看《鳥哥的私房菜》等書,偏管理類的書。如果想做server方向的可以找來看看。2.驅動篇 《LINUX裝置驅動程式 》就是網上說的“LDD”,經典之作,必備書籍。國產經典《Linux驅動詳細解》也是一本非常不錯的書,很實用,書中原始碼 分析比較多,基於2440的,對linux外圍驅動有很

《Linux核心設計與實現》讀書筆記(1)— Linux核心開發的特點

Linux核心開發的特點    相對於使用者空間內的應用程式開發,核心開發存在很多的不同,最重要的差異包括以下幾種:    1)核心編程時不能訪問C庫。    2)核心編程時必須使用GNU C。    3)核心編程時缺乏像使用者空間那樣的記憶體保護機制。    4)核心編程時浮點數很難使用。    5)核心只有一個很小的定長堆棧。    6)由於核心支援非同步中斷,搶佔和SMP,因此必須時刻注意同步和並發。    7)要考慮可移植性的重要性。 1.沒有libc庫   

《Linux核心設計與實現》讀書筆記(2)— 進程管理

進程管理1.進程描述符及任務結構    進程存放在叫做任務隊列(task list)的雙向迴圈鏈表中。鏈表中的每一項包含一個具體進程的所有資訊,類型為task_struct,稱為進程描述符(process descriptor),該結構定義在<linux/sched.h>檔案中。    Linux通過slab分配器分配task_struct結構,這樣能達到對象複用和緩衝著色(cache

《Linux核心設計與實現》讀書筆記(3)— 進程調度

進程調度1.策略    進程可以被劃分為I/O消耗型和處理器消耗型。前者指進程的大部分時間用來提交I/O請求或是等待I/O請求,常處於可運行狀態。後者把時間大多用在執行代碼上,除非被搶佔,否則一直不停地運行,調度器不應該經常讓它們運行。    調度演算法中最基本的一類就是基於優先順序的調度。這是一種根據進程的價值和其對處理器時間的需求來對進程分級的想法。優先順序高的進程先運行,低的後運行,相同優先順序的進程按輪轉方式進行調度。   

Google App Engine跨越長城[for linux]

我一直認為Google是一個很神奇的公司,雖然不怎麼藉助AppEngine開發,但是爬一爬長城還是可以的……在這個什麼都被牆的世界,我迫切希望出去享受一下純淨的天空!好吧,通過Google App Engine和GappProxy搭建本地Proxy 伺服器步驟:一、註冊Google App Engine帳號註冊Google App Engine:用Google賬戶登入Google App Engine後,點擊Create an

linux環境變數擷取

  shell裡可以直接用 `env` 或者 `echo $HOME` `export` 的形式擷取或設定環境變數,那麼c語言是如何?的呢?主要有兩個函數和一個 environ 變數(字串數組):char *getenv(const char *name)int putenv(const cahr *string)#include <stdlib.h>#include <stdio.h>extern char **environ;int main ( int argc,

Linux檔案許可權

文章目錄 用數字標記法修改許可權用文本標記法修改許可權 一、Linux檔案許可權每個Linux檔案具有四種存取權限:可讀(r)、可寫(w)、可執行(x)和無許可權(-)。利用ls

Linux下編寫簡單的動態連結程式庫

(1)Linux下編寫動態連結程式庫。通常靜態連結庫是編譯的時候和源檔案一起編譯產生可執行檔的。動態連結程式庫則不是,它是一個已經編譯好的檔案(靜態則不是),只有當程式啟動並執行時候(但是編譯的時候要將動態連結程式庫的資訊載入進來),它才去找動態連結程式庫拿它想用的一些函數。而且動態連結程式庫可以提高通用性,編寫一個動態連結程式庫可以讓很多人一起用。有點類似類?test_so.h#ifndef _TEST_SO_H#define _TEST_SO_H #include

10本Linux免費電子書

0. Advanced Linux programming | Linux進階編程  1. GNU Emacs manual | GNU Emacs 指南 2. GTK+/Gnome application development | GTK+/Gnome 應用開發(PDF) 3. Java application development on Linux | Linux 系統下的Java程式開發(PDF) 4. Linux device drivers | Linux 裝置驅動 5.

《Linux核心設計與實現》讀書筆記(4)— 中斷和中斷處理常式

中斷和中斷處理常式1.中斷    中斷本質上是一種特殊的電訊號,由硬體裝置發向處理器。處理器接收到中斷後,會馬上向作業系統反映此訊號的到來,然後由OS負責處理這些新到來的資料。硬體裝置產生中斷的時候並不考慮與處理器的時鐘同步,核心隨時可能因為新到來的中斷而被打斷。不同的裝置對應的中斷不同,都通過一個唯一的數位識別碼,稱之為插斷要求(IRQ)線。   

《Linux核心設計與實現》讀書筆記(5)— 下半部和推後執行的工作(1)

下半部和推後執行的工作1.下半部    下半部的任務就是執行與中斷處理密切相關但中斷處理常式本身不執行的工作,對於在上半部和下半部之間劃分工作,儘管不存在某種嚴格的規則,但還是有一些提示可供借鑒:    1)如果一個任務對時間非常敏感,將其放在中斷處理常式中執行。    2)如果一個任務和硬體相關,將其放在中斷處理常式中執行。    3)如果一個任務要保證不被其他中斷(特別是相同的中斷)打斷,將其放在中斷處理常式中執行。    4)其他所有任務,考慮放置在下半部執行。   

《Linux核心設計與實現》讀書筆記(6)— 下半部和推後執行的工作(2)

下半部和推後執行的工作4.tasklet    tasklet是通過非強制中斷實現的,它由兩類非強制中斷代表:HI_SOFTIRQ和TASKLET_SOFTIRQ。兩者唯一區別在於前者優先於後者執行。    tasklet由tasklet_struct結構體表示,每個結構體代表一個tasklet,在<linux/interrupt.h>中定義:struct tasklet_struct { struct tasklet_struct *next; /*

《Linux核心設計與實現》讀書筆記(7)— 核心同步方法(1)

核心同步方法1.原子操作    原子操作可以保證指令以原子的方式執行——執行過程不被打斷。核心提供了兩組原子操作介面,一組針對整數進行操作,另一組針對單獨的位進行操作。    針對整數的原子操作只能對 atomic_t 類型的資料進行處理。        除了原子整數操作外,核心還提供了一組針對位這一級資料進行操作的函數。位操作函數是對普通的記憶體位址進行操作的,它的參數是一個指標和一個位號,第0位是給定地址的最低有效位。       

《Linux核心設計與實現》讀書筆記(8)— 核心同步方法(2)

4.訊號量    Linux中的訊號量是一種睡眠鎖。如果一個任務試圖獲得一個已經被佔用的訊號量時,訊號量會將其推進一個等待隊列,然後讓其睡眠。這時處理器能重獲自由,從而去執行其他代碼。當持有訊號量的進程將訊號量釋放後,處於等待隊列中的那個任務將被喚醒,並獲得該訊號量。    訊號量和自旋鎖在使用上的差異:   

《Linux核心設計與實現》讀書筆記(9)— 定時器和時間管理(1)

定時器和時間管理    系統定時器是一種可程式化硬體晶片,它能以固定頻率產生中斷。該中斷就是所謂的定時器中斷,它所對應的中斷處理常式負責更新系統時間,還負責執行需要周期性啟動並執行任務。系統定時器和時鐘中斷處理常式是Linux系統核心管理機制中的中樞。    另外一個關注的焦點是動態定時器——一種用來延遲執行程式的工具。比如說,如果軟碟機馬達在一定時間內都未活動,那麼磁碟片驅動程式會使用動態定時器關閉軟碟機馬達。核心可以動態建立或銷毀動態定時器。 1.核心中的時間概念   

《Linux核心設計與實現》讀書筆記(10)— 定時器和時間管理(2)

6.實際時間    當前實際時間(牆上時間)定義在檔案 kernel/timer.c 中:struct timespec xtime;    timespec 資料結構定義在檔案<linux/time.h>中,形式如下:struct timespec { time_t tv_sec; /* 秒 */ long tv_nsec; /* 納秒 */};    xtime.tv_sec 以秒為單位,存放著自

《Linux核心設計與實現》讀書筆記(11)— 記憶體管理(1)

記憶體管理1.頁    核心把物理頁作為記憶體管理的基本單位。大多數 32 位體繫結構支援 4KB 的頁,而 64 位元體繫結構一般會支援 8KB 的頁。核心用 struct page 結構表示系統中的每個物理頁。該結構位於<linux/mm.h>中。struct page { page_flags_t flags; /* 表示頁的狀態,每一位表示一種狀態,定義在<linux/page_flags.h> */ atomic_t _count;

《Linux核心設計與實現》讀書筆記(12)— 記憶體管理(2)

6.slab層    為了便於資料的頻繁分配和回收,Linux核心提供了slab層(也就是所謂的slab分配器)。slab分配器扮演了通用資料結構緩衝層的角色。    slab層把不同的對象劃分為所謂快取(cache)組,其中每個快取都存放不同類型的對象。這些快取又被劃分為slab,slab由一個或多個物理上連續的頁組成。一般情況下,slab也就僅僅由一頁組成。每個調整緩衝可以由多個slab組成。   

[Linux]VI相關操作

About vivi編輯器學習vi編輯器有三種模式:命令模式、輸入模式和末行模式。無論在任何模式下按【Esc】都可以返回到命令模式。1、vi直接輸入vi可以查看vi的版本資訊2、vi [檔案名稱]若存在該檔案,則開啟存在檔案;若不存在,將建立檔案名稱為[檔案名稱]的檔案。3、儲存與退出在“末行命令”中輸入以下內容並按【Enter】可以執行不同的操作::q! 強制退出:w 儲存:w [檔案名稱] 另存新檔:wq 儲存並退出:wq!

Linux 上安裝Apache 2.4

我在ubuntu

總頁數: 4065 1 .... 128 129 130 131 132 .... 4065 Go to: 前往
Tags Index:

聯繫我們

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

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