Time of Update: 2018-12-06
這一章主要是原理性的,介紹了Linux檔案系統的運作原理。涉及到很多電腦群組成和作業系統的原理性知識,這部分知識很多都忘了,在這裡複習下。 我們只看本章第1,2節。---------------------------------------------------------------------------------------------------------------------------------------------------1 硬碟物理組成
Time of Update: 2018-12-06
被壓縮過的檔案,通常其附檔名都是『 *.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2 』 等等的,當你捉到某個壓縮檔時, 就需要知道壓縮他的是那個指令,好用來對照著解壓縮.目前一些常常見到的壓縮檔案的附檔名:*.Z compress 程式壓縮的檔案;*.bz2 bzip2 程式壓縮的檔案;*.gz gzip 程式壓縮的檔案;*.tar tar 程式打包的資料,並沒有壓縮過;*.tar.gz
Time of Update: 2018-12-06
下載並安裝Memcache伺服器端伺服器端主要是安裝memcache伺服器端.下載:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz另外,Memcache用到了libevent這個庫用於Socket的處理,所以還需要安裝libevent,libevent的最新版本是libevent-1.3。(如果你的系統已經安裝了libevent,可以不用安裝)官網:http://www.monkey.org/~provos/libevent/
Time of Update: 2018-12-06
一般來說,linux伺服器大多是通過ssh用戶端來進行遠端登陸和管理的,使用ssh登陸linux主機以後,如何能夠快速的和本地機器進行檔案的互動呢,也就是上傳和下載檔案到伺服器和本地; 與ssh有關的兩個命令可以提供很方便的操作: sz:將選定的檔案發送(send)到本地機器
Time of Update: 2018-12-06
嵌入式Linux作業系統學習規劃 ARM+LINUX路線,主攻嵌入式Linux作業系統及其上應用軟體開發目標: (1) 掌握主流嵌入式微處理器的結構與原理(初步定為arm9) (2) 必須掌握一個嵌入式作業系統 (初步定為uclinux或linux,版本待定) (3) 必須熟悉嵌入式軟體開發流程並至少做一個嵌入式軟體項目。 從事嵌入式軟體開發的好處是: (1)目前國內外這方面的人都很稀缺。這一領域入門門檻較高,所以非專業IT人員很難切入這一領域;另一方面,是因為這一領域較新,目前發展太快,大多數
Time of Update: 2018-12-06
一,快速鍵顯示案頭:Ctrl+Alt+D已最小化的視窗:Alt+F9已最大化的視窗:Alt+F10關閉當前視窗:Alt+F4二、Ubuntu NetBeans中文亂碼解決辦法在$JAVA_HOME/jre/lib/fonts目錄下建立一名為fallback的目錄將一可顯示中文的字型放到fallback目錄下,可以到Ubuntu字型目錄(/usr/share/fonts)去複製一份或者用ln命令做一個永久連結到該目錄(註:軟連結無效)再運行NetBeans(or
Time of Update: 2018-12-06
一,庫:一種可執行代碼的二進位形式,可以被載入記憶體執行。其中庫分為靜態庫、動態庫二,靜態庫和動態庫的區別 1)Linux 下靜態庫:名字一般為 lib***.a利用靜態函數庫編譯成的檔案比較大,因為整個 函數庫的所有資料都會被整合進目標代碼中,他的優點就顯而易見了,即編譯後的執行程式不需要外部的函數庫支援,因為所有使用的函數都已經被編譯進去了。當然這也會成為他的缺點,因為如果靜態函數庫改變了,那麼你的程式必須重新編譯。 2)Linux
Time of Update: 2018-12-06
系統允許一個進程建立新進程,新進程即為子進程,子進程還可以建立新的子進程,形成進程樹結構模型。整個linux系統的所有進程也是一個樹形結 構。樹根是系統自動構造的,即在核心態下執行的0號進程,它是所有進程的祖先。由0號進程建立1號進程(核心態),1號負責執行核心的部分初始化工作及進 行系統配置,並建立若干個用於快取和虛擬主存管理的核心線程。隨後,1號進程調用execve()運行可執行程式init,並演變成使用者態1號進程,
Time of Update: 2018-12-06
*索引節點對象由inode結構體表示,定義檔案在linux/fs.h中*/struct inode { struct hlist_node i_hash; /* 雜湊表 */ struct list_head i_list; /* 索引節點鏈表 */ struct list_head i_dentry; /* 目錄項鏈表 */
Time of Update: 2018-12-06
在linux下提供了兩種基本的Timer機制:alarm和settimer。 1、alarm #include <unistd.h> unsigned int alarm(unsigned int seconds); 這是個最簡單的Timer,當調用了alarm(n)時,等待n秒後,就會觸發一次SIGALRM訊號,故需要在調用alarm函數前先設定好
Time of Update: 2018-12-06
當Linux核心要尋找一個新的進程在CPU上運行時,必須只考慮處於可運行狀態的進程,(即在TASK_RUNNING狀態的進程),因為掃描整個進程鏈表是相當低效的,所以引入了可運行狀態進程的雙向迴圈鏈表,也叫運行隊列(runqueue)。運行隊列容納了系統中所有可以啟動並執行進程,它是一個雙向迴圈隊列該隊列通過task_struct結構中的兩個指標run_list鏈表來維持。隊列的標誌有兩個:一個是“空進程”idle_task、一個是隊列的長度。 有兩個特殊的進程永遠在運行隊列中待著:當前進程和空
Time of Update: 2018-12-06
Include的header檔案,連結資料庫,系統定義,總共有下列來源指定gcc去那找。 當初在編譯時間指定的(在~gcc/gcc/collect2.c:locatelib() 寫在specs內的 後來用-D -I -L指定的 gcc環境變數設定(編譯的時候) ld.so的環境變數(這是run time的時候) 一、標頭檔 gcc 在編譯時間如何去尋找所需要的標頭檔 : ※所以header file的搜尋會從-I開始
Time of Update: 2018-12-06
(1)系統調用號的定義在 /usr/include/asm/unistd.h 檔案中 (2)2.6.16的定義如下所示: #define __NR_restart_syscall 0 #define __NR_exit 1 #define __NR_fork 2 #define __NR_read 3 #define __NR_write 4 #define __NR_open 5 #define __NR_close 6 #define __NR_waitpid 7 #define __NR_
Time of Update: 2018-12-06
int clone(int (*fn)(void *), void *child_stack, int flags, void *arg);這裡fn是函數指標,我們知道進程的4要素,這個就是指向程式的指標,就是所謂的“劇本", child_stack明顯是為子進程分配系統堆棧空間(在linux下系統堆棧空間是2頁面,就是8K的記憶體,其中在這塊記憶體中,低地址上放入了值,這個值就是進程式控制制塊task_struct的值),flags就是標誌用來描述你需要從父進程繼承那些資源,
Time of Update: 2018-12-06
1.Linux連結概念Linux連結分兩種,一種被稱為永久連結(Hard Link),另一種被稱為符號連結(Symbolic Link)。預設情況下,ln命令產生永久連結。【硬串連】硬串連指通過索引節點來進行串連。在Linux的檔案系統中,儲存在磁碟分割中的檔案不管是什麼類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個檔案名稱指向同一索引節點是存在的。一般這種串連就是硬串連。硬串連的作用是允許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬串連到重要檔案,
Time of Update: 2018-12-06
GNC CC是一個功能非常強大的跨平台C編譯器,它對C 語言提供了很多擴充,這些擴充對最佳化、目標代碼布局、更安全的檢查等方面提供了很強的支援。本文把支援GNU 擴充的C 語言稱為GNU C。 Linux 核心代碼使用了大量的 GNU C 擴充,以至於能夠編譯 Linux 核心的唯一編譯器是 GNU CC,以前甚至出現過編譯 Linux 核心要使用特殊的 GNU CC 版本的情況。本文是對 Linux 核心使用的 GNU C
Time of Update: 2018-12-06
Linux是基於模組的,所有的驅動都是模組化的:管理模組的命令:1、列出系統中所有已經載入的模組的大小與名稱等:lsmod或者cat/proc
Time of Update: 2018-12-06
說是exec系統調用 ,實際上在Linux中,並不存在一個exec()的函數形式,exec指的是一組函數,一共有6個,分別是:#include <unistd.h>extern char **environ;int execl(const char *path, const char *arg, ...);int execlp(const char *file, const char *arg, ...);int execle(const char *path, const
Time of Update: 2018-12-06
據國外媒體報道,俗話說“一個成功男人的背後一定有一個偉大的女人”。同樣,一項偉大技術的背後一定有一名偉大人物在孜孜以求。以下為IT市場迄今為止最偉大的10名技術偉人:1. 李納斯·托沃茲(Linus Torvalds) — Linux之父 2. 史蒂夫·沃茲尼亞克(Steve Wozniak) — 蘋果聯合創始人 3. 提姆·伯納斯-李(Tim Berners-Lee) — 全球資訊網之父 4. 西摩·克雷(Seymour Cray) — 超級電腦之父 5. 馬克·安德森(Marc
Time of Update: 2018-12-06
Linux學習建議http://you.video.sina.com.cn/a/2141327-1320045357.htmlLinux學習建議1 http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=2141327&uid=1320045357&t=1#16520291Linux學習建議2