Time of Update: 2018-12-04
一. Bootloader 二.Kernel引匯入口 三.核心資料結構初始化--核心引導第一部分 四.外設初始化--核心引導第二部分 五.init進程和inittab引導指令 六.rc啟動指令碼 七.getty和login 八.bash 附:XDM方式登入 作者:楊沙洲 本文以Redhat 6.0 Linux 2.2.19 for Alpha/AXP為平台,描述了從開機到登入的 Linux 啟動全過程。該文對i386平台同樣適用。 一.
Time of Update: 2018-12-04
隨性寫的,不夠完整,暫時先記著,還有一些沒搞清楚呢!~ 近日在做新版核心的移植工作,將原來的BSP弄進最新核心2.6.31-rc7中(已經又出新的了)。 在改寫系統定時器(sys_timer)部分時,發現總缺少什麼東西,我也不知道少什麼,老大的提議+參考大牛的代碼,發現這個BSP竟然沒有clock管理的代碼,不過也對,他們是本著能跑的理念來完成這個BSP,沒有用到的就省略了,也不能怪他們。那我們就得自己實現咯!硬體、時鐘對我來說還是比較吃力的,原理至今還不太清楚,參看了幾塊板子的核心代碼和dat
Time of Update: 2018-12-04
好久沒有隨筆了,帖下昨天的一部分筆記吧,現在在研究 linux bridge 部分,希望實現與硬體switch的完美結合。以下是核心 bridge 模組初始化部分分析,核心版本是 2.6.23.9。只涉及到進入點,STP部分及其他細節部分沒有在這裡談及。通過這些入口,大致可以瞭解 linux bridge部分的流程了。Hope its useful. Any comment is welcome. 1. 模組入口(br_init)該函數初始化橋接器模組及進入點函數。1.1.
Time of Update: 2018-12-04
這篇說一下電腦的啟動過程,主要是PC系統上Linux的啟動過程,嵌入式的稍微提到一下,這上面的東西不一定非常正確,大多從網上相關的技術文章中擷取的資訊,以及查閱了部分Linux的代碼。總的來說這個文章定位於學習交流的性質,如果您覺得有不對的地方請一定指出來。本文開始:系統複位完成後,CPU從一個確定的地址開始執行代碼,PC就是從BIOS中開始執行。嵌入式CPU則是在複位後從一個位於快閃記憶體或者ROM的已知地址處開始執行,具體這個地址在哪兒應該去查閱所使用CPU的datasheet,一般上面都有
Time of Update: 2018-12-04
關於linux 的 spinlock 互斥手段的選擇,不是根據臨界區的大小,而是根據臨界區的性質,以及 有哪些部分的代碼,即哪些核心執行路徑來爭奪。 從嚴格意義上說,semaphore和spinlock_XXX屬於不同層次的互斥手段,前者的 實現有賴於後者,這有點象HTTP和TCP的關係,都是協議,但層次是不同的。 先說semaphore,它是進程級的,用於多個進程之間對資源的互斥,雖然也是在 核心中,但是該核心執行路徑是以進程的身份,代表進程來爭奪資源的。如果 競爭不上,會有context
Time of Update: 2018-12-04
簡介: 本文描述了Linux系統中一些與計時相關的問題和解決方案。因為在學習和研究的過程中我們經常需要統計程式或程式段的耗時,評估它們的效能好壞。因而這些問題對於我們來說,經常會遇到。掌握多種計時方法對於開發人員或科研工作者來說都是必須掌握的一項技能。本文解決了在Linux計時當中經常會遇到的一些技術問題,相信會對他人的工作有所協助。實際上,可能還會有其它一些方法可以完成本文討論的任務。我僅討論了我所使用的方法,這並不意味著除此之外的其它方法就很差勁,只不過對我來說這些方法相對簡單有效而已。Li
Time of Update: 2018-12-04
Linux shell編程之awk的用法 1. awk的使用 準系統:在檔案或字串中基於指定規則瀏覽和抽取資訊。awk抽取資訊後,才能進行其他文本操作。完整的awk指令碼通常用來格式化文字檔資訊。 調用方式: 1. 命令列方式 2. 將所有awk命令插入一個檔案,並使awk程式可執行,然後使awk命令直譯器作為指令碼的首行,以便通過鍵入指令碼名稱來調用它。 3. 將所有的awk命令插入一個單獨檔案,然後調用。 選項說明:-F 域符號 預設為空白格 -f 指明awk指令碼 2
Time of Update: 2018-12-04
現在做的這個藍芽項目要在arm-linux上跑一個服務端,監聽請求,為了自動化一點,我想讓板子啟動自動載入初始化的程式以及server程式.找了半天找到/usr/etc/rc.local這個檔案.把載入模組,初始化藍芽以及server程式放進去,開機倒是有反應,模組確實載入了,但是後邊2步就提示找不到所需的庫檔案.由於的一步加在模組用的命令insmod是系統命令,後邊的都是自己的程式,所以懷疑庫檔案放置的位置不對.想把庫檔案從/usr/lib挪到/lib下邊去,但是不能寫入.這才知道了這部分根
Time of Update: 2018-12-04
本文收集於一個答疑帖:http://bbs.csdn.net/topics/380197703按照Linux(Unix)的設計,所有的裝置都是檔案。比如印表機是檔案,一塊硬碟是一個檔案,這塊硬碟上的一個分區也是檔案,音效卡是檔案。這種表示一個裝置的檔案叫做裝置檔案。裝置檔案儲存在/dev這個目錄裡。如果你把資料儲存到印表機這個裝置檔案裡,印表機就開始列印;如果你把音頻輸入到音效卡這個裝置檔案裡,電腦就開始唱歌了。而硬碟的裝置檔案就有意思了。一塊硬碟是一個裝置檔案,一般是/dev/sda(第一塊)
Time of Update: 2018-12-04
linux diff功能說明:diff以逐行的方式,比較文字檔的異同處。所是指定要比較目錄,則diff會比較目錄中相同檔案名稱的檔案,但不會比較其中子目錄。SYNOPSIS diff [options] from-file to-file語 法:diff [-abBcdefHilnNpPqrstTuvwy][-<行數>][-C <行數>][-D <巨集名稱>][-I <字元或字串>][-S <檔案>][-W <寬度&
Time of Update: 2018-12-04
最近在linux做項目,是一個關於藍芽的東東,用手機上的藍芽遠端控制嵌入式裝置.說是項目其實目前就我一個人在做.藍芽的通訊問題已經基本解決了,剩下的任務就是控制命令的解析了,我採用二進位的命令格式,在x86 linux下用tcp的通訊類比藍芽的環境.這樣使我的工作順利了許多.
Time of Update: 2018-12-04
以前一直用date設定,這次參考網上資料,終於整了個全的。Linux時鐘分為系統時鐘(System Clock)和硬體(Real Time Clock,簡稱RTC)時鐘。系統時鐘是指當前Linux Kernel中的時鐘,而硬體時鐘則是主板上由電池供電的時鐘,這個硬體時鐘可以在BIOS中進行設定。當Linux啟動時,硬體時鐘會去讀取系統時鐘的 設定,然後系統時鐘就會獨立於硬體運作。Linux中的所有命令(包括函數)都是採用的系統時鐘設定。在Linux中,用於時鐘查看和設定
Time of Update: 2018-12-04
1. 最常用的命令列表下面列出十個在使用linux過程中使用頻率最高的命令。這裡只作簡單介紹,具體用法請參考後面內容。cat,顯示檔案內容。cd,改變目錄路徑。cp,複製檔案。find,尋找檔案。grep,搜尋、過濾資訊。ls,列出目錄資訊。more,分頁顯示。rm,刪除檔案或目錄。vi,調用vi文字編輯器。who,顯示登入使用者資訊。2. chmod----改變一個或多個檔案的存模數式(mode)chmod [options] mode
Time of Update: 2018-12-04
最近在arm-linux下做個項目,需要在本地記錄一些資料,日誌之類的東西.本來準備隨便用文字檔記錄下完事,突然看到了rss,於是想起了xml.自己還沒有用過xml,於是打算用xml來存放這個寫資料,算是練個手.
Time of Update: 2018-12-04
啟動和關閉系統 Linux 的shells 使用Bash shell at----安排,檢查,刪除隊列中的工作 cat----串連檔案並列印到標準輸出 cd----改變目錄,能處理絕對和相對路徑 chmod----改變檔案保護許可權 chown----改變檔案的屬主和組 clear----清除螢幕(象DOS中的cls) cp----拷貝檔案 crontab----操作每個使用者的精靈和執行的時間表 date----列印或設定系統日期和時間 dd----拷貝一個檔案(並可以同時轉化它) df---
Time of Update: 2018-12-04
線程(thread)技術早在60年代就被提出,但真正應用多線程到作業系統中去,是在80年代中期,solaris是這方面的佼佼者。傳統的Unix也支援線程的概念,但是在一個進程(process)中只允許有一個線程,這樣多線程就意味著多進程。現在,多線程技術已經被許多作業系統所支援,包括Windows/NT,當然,也包括Linux。 為什麼有了進程的概念後,還要再引入線程呢?使用多線程到底有哪些好處?什麼的系統應該選用多線程?我們首先必須回答這些問題。 使用多線程的理由之一是和進程相比,它是一種
Time of Update: 2018-12-04
ps:查看系統中的進程,Linux中可以使用ps -aux查看所有進程 參數w表示加寬顯示的命令列,參數w可以寫多次,通常最多寫3次,表示加寬3次,這足以顯示很長的命令列了。例如:ps -auxwww top:顯示系統記憶體、cpu使用方式,並可自動重新整理進程列表 vmstat:顯示當前的記憶體使用量情況 netstat:顯示網路狀況,使用參數p可以查看對應的進程號及程式名, 通常使用參數a(顯示所有串連情況)和n(不反查網域名稱和服務名),例如:netstat -anp。
Time of Update: 2018-12-04
1 核心 (1) 核心的彈性 Linux的核心表現出了高度的可配置性和獨立性,主要是完成:IO驅動裝置管理,TCP/IP,以及任務調度.Linux的標準核心發布版本有40~50MB,而我 現在在一些評估板上實驗的嵌入式Linux系統(使用Arm或M68K系列的CPU) 只用到了2MB,同樣實現了網路功能和完整的任務調度,這使得Linux可以適 用於從高端伺服器到嵌入式應用的各個等級的計算平台上,與之相比, windows
Time of Update: 2018-12-04
Fedora Core 6 Linux安裝配置詳細介紹面對3G多的FC6這個龐然大物,我下了極大的決心才決定下載它。 我是通過BT方式下載的DVD版iso,每天在家有時間開機BT不止,如此這般陸續下載了3、4天吧。 儘管期間出現過斷電造成的電腦自動關機現象,但所幸還好拖回來後校正sha1的結果令人滿意。 ^__^ 我原來使用FC3的時間比較長,後來由於安裝FC4時分區與SELinux之間的問題造成硬碟資料嚴重丟失,所以FC4安裝完後很快就被我format了。也因此,對FC系統開始有了不良印象。
Time of Update: 2018-12-04
linux limits.conf 配置 limits.conf 檔案實際是 Linux PAM(插入式認證模組,Pluggable Authentication Modules)中 pam_limits.so 的設定檔,而且只針對於單個會話。limits.conf的格式如下:username|@groupname type resource