Time of Update: 2018-07-22
最近同事的程式設計過程中用到了Linux的signal機制,從而引發了我對Linux中signal機制的思考。Signal機制在Linux中是一個非常常用的處理序間通訊機制,很多人在使用的時候不會考慮該機制是具體如何?的。signal機制可以被理解成進程的非強制中斷,因此,在即時性方面還是相對比較高的。Linux中signal機制的模型可以採用下圖進行描述。
Time of Update: 2018-07-22
o: 編譯的目標檔案 a: 靜態庫,其實就是把若干o檔案打了個包 so: 動態連結程式庫(共用庫) lo: 使用libtool編譯出的目標檔案,其實就是在o檔案中添加了一些資訊 la: 使用libtool編譯出的庫檔案,其實是個文字檔,記錄同名動態庫和靜態庫的相關資訊 1 libtool的工作原理 libtool
Time of Update: 2018-07-22
Linux ® 的最顯著特徵是靈活性和擴充性,例如它的虛擬檔案系統交換器(VFS)。您可以在各種裝置上建立檔案系統,包括傳統的磁碟、USB flash 驅動、記憶體以及其他儲存裝置。您還可以在另一個檔案系統環境中嵌入檔案系統。探索導致 VFS 如此強大的因素,並瞭解 VFS 的主要介面和進程。 Linux 檔案系統的靈活性和擴充性支援直接源於一組抽象介面。這組介面的核心就是虛擬檔案系統交換器(VFS)。 VFS 為上層應用程式提供一組標準介面,用於對不同的檔案系統執行檔案
Time of Update: 2018-07-22
首先擷取核心源碼www.kernel.org 1.在/home/下家裡linux 通過wget或crul或者直接下載核心源碼到此檔案夾下並解壓。 2.核心配置 make config (從頭開始) make defconfig (預設配置) 修改配置 make menuconfig make gconfig (GTK) make xconfig (Qt) make 3.使用多處理器 make -j4 (雙處理器)
Time of Update: 2018-07-22
Bash 曆史非常悠久,懂的怎樣使用它的拓展曆史將會讓你在Linux命令列的使用上極具創造性。 這篇文章解釋了15個使用Bash的例子: 實踐指示符----指曆史的特別命令 以 。開始。 單詞指示符----指特定的曆史入口。這個even指示符和word指示符都被空格分開 修飾符----修飾event或word描述符的結果 這篇文章是我的正在編寫的Bash Tutorial Series的一部分
Time of Update: 2018-07-22
driver/usb/core/hub.c :usb->hun_thread()->hub->events()->hub_port_connect_change()driver/usb/core/hub.chub_port_connect_change() //檢測到新裝置串連usb_new_device(udev)
Time of Update: 2018-07-22
最近在查關於Linux下時間編程的問題:1. Linux下與時間有關的結構體struct timeval{ int tv_sec; int tv_usec; }; 其中tv_sec是由淩晨開始算起的秒數,tv_usec則是微秒(10E-6 second)。 struct timezone{ int tv_minuteswest; int tv_dsttime; }; tv_minuteswest是格林威治時間往西方的時差,tv_dsttime則是時間的修正方式。 struct timespec
Time of Update: 2018-07-22
博創S3C2410板子使用執行個體: Linux的進程啟動都是根據啟動指令碼裡的指令進行的,主要有兩類: init 和bash. init 是所有指令碼的最頂端,首先被執行, 而bash一般是登陸shell 的時候才會被調用。 不同的檔案系統具體的啟動指令檔名稱是不一樣的。以我使用的檔案系統(yaffs)為例,/etc/init.d/rcS 作為init 的指令碼,如果你想開機時進入自己的應用程式,則在rcS裡面寫入就可以。
Time of Update: 2018-07-22
核心學習筆記,既然是筆記就記住關鍵的東西,雜七雜八的慢慢再說啦。下面介紹編譯核心的幾個簡單步驟: 1。到www.kernel.org下載核心去 2。mkdir /usr/src/linux-2.6.37 cp 2.6.37.tar.bz2 /usr/src/linux-2.6.37 (剛出來的) 3。解壓縮其他的情況不考慮了,具體問題具體分析 tar -jxvf
Time of Update: 2018-07-22
今天用了gedit感覺很不錯,雖然剛開始的時候感覺用tab鍵打空格太麻煩,實在沒辦法只好找辦法了,當時沒網,我就自己摸索,edit->preferences,在這裡給我找到了,可以選中那個選項,就可以自動產生空格了,哈哈,開心,現在用geidt可以好多好多語言,比那些整合式開發環境可好多了,不過做大項目的話,還是用整合式開發環境的好,省得麻煩,嘿嘿。 本人就是有點懶,不知道怎麼搞的,是越來越懶了,哈哈。
Time of Update: 2018-07-22
對於linux的癡迷越來越嚴重了,最近突然間迷上了嵌入式linux的開發,真的是一波三折阿,總之,興趣所在,我的腳步就跟到哪裡,沒有停留。哈哈。 在圖書館看了很多的嵌入式linux下的C語言,哎呀,沒什麼感覺,總覺得比較淺顯,於是開始看arm哇塞,硬體的東西阿,還有什麼彙編,DSP,噁心的電路板設計,QQ群裡的高手讓我買板試著移植系統,我本身也就是想學習linux下的驅動開發,應用程式編程而已,哈哈,這樣也好,我開始了我的程式設計之旅。
Time of Update: 2018-07-22
Linux 記憶體管理初探 Author:錢國正 記憶體管理(Memory Management ,'mm' for short )是軟體運行時對電腦記憶體資源的分配和 使用的技術,在 Linux 作業系統源碼中位於 mm 檔案夾下是作業系統的重要組成部分之一 (Linux 核心由 5 個模組構成:進程調度模組,記憶體管理模組,檔案系統模組,處理序間通訊模 塊,網路介面模組)。 首先,為什麼必須管理記憶體呢?記憶體是電腦的硬體組成部分之一,它是與 CPU 進行溝
Time of Update: 2018-07-22
檔案I/O:open creat close lseek read write dup dup2 sync fsync fcntl ioctl 所有函數都是針對檔案描述符。
Time of Update: 2018-07-22
Linux中多線程編程並傳遞多個參數執行個體是本文講解的內容,不多說,先來看內容。今天上午實驗了Linux下的多線程編程,並將多個參數傳遞給線程要執行的函數。在Linux環境下編譯通過後,還將它移到了Android的模擬器中。 以下是實驗程式的原始碼: pthread.c #include <stdio.h>
Time of Update: 2018-07-22
核心終於編過並且升級了,本來打算抓緊繼續往下學習。但是在老婆的鼓勵下,感覺還是停下來總結下比較好,這樣對自己對別人都有所協助。 0、環境介紹 我是在VirtualBox-3.1.6-59338-Win的虛擬機器上安裝了ubuntu-9.10-desktop-i386.iso。電腦本身是XP系統。 注意,在進行下面之前最好做以下工作: 1)
Time of Update: 2018-07-22
言:任何事情都一樣,原理弄清楚了,所有的問題將變得不再神秘。 學電腦的人都知道,在任何同一時刻,電腦只能執行一條指令,而且都是順序往下執行的(除非遇到跳轉指令)。 Linux的進程啟動都是根據啟動指令碼裡的指令進行的,主要有兩類:init 和bash. init 是所有指令碼的最頂端,首先被執行,而bash一般是登陸shell 的時候才會被調用。
Time of Update: 2018-07-22
1 先期tex包的安裝apt-get install tetex-bin tetex-base tetex-extra cjk-latex dvipdfm-cjk-cmap然後上http://learn.tsinghua.edu.cn/homepag.../programs.html下載gbkfonts的可執行檔,只要gbkfonts的那個靜態連結檔案就可以了,然後chmod +x gbkfonts && cp gbkfonts /usr/local/bin2
Time of Update: 2018-07-22
http://www.linuxidc.com/Linux/2012-03/57255.htm 主機平台:Gentoo 11.2 核心版本:Linux Kernel 3.2.1 1、首先下載OpenFetion原始碼 免費下載地址在 http://linux.linuxidc.com/ 使用者名稱與密碼都是www.linuxidc.com
Time of Update: 2018-07-22
git #emerge git gitosis-gentoo gitosis被masked 需要在/etc/portage/package.keyworlds 添加 dev-util/gitosis-gentoo (這種方法不行。要用下面的方法) 如果此時遇到下面這樣的錯誤: core2 ~ # emerge redmine * Last emerge --sync was 194d
Time of Update: 2018-07-22
當用mips64el-unknown-linux-gnu-gcc編譯一個t.c的檔案時, t.c的內容如下: #include<stdio.h> int main() { return 0; } mybox ~ # mips64el-unknown-linux-gnu-gcc -c t.c mybox ~ # mips64el-unknown-linux-gnu-ld -o