原创 UcosII 就緒表的理解

爲了保證系統的實時性,在就緒表這一塊,內核設計者設計了一種算法,這個算法在O(1)的時間裏完成查找就緒表中最高優先級的任務(遍歷就緒表來查找最高優先級的做法是不能保證實時性要求的)。關於就緒表,這裏涉及到四個數據結構,分別是:OSRdyG

原创 vim寫程序常用技巧

   1.我們可以使用gf快捷鍵來進入任意一個被#include <header.h>的頭文件.        2.使用ctrl+O來回到使用gf之前的文件中。    3.找到的一個不錯的vimrc修改了一下可以自動更新ctags文件  

原创 linux0.12中文件系統的一些理解

在看文件系統始終覺得有點理解不了,今天偶有所悟還是趕緊記下來爲好!看文件系統時要搞清以下幾點: 1.文件系統是用專門的工具來格式化的,也就是說內核中文件系統的代碼是不含文件系統的初始化的。其實所謂的操作系統安裝就是通過一個工具來製作文件系

原创 我的debian下安裝 spb16.3的經歷

網上大多數都是在redhat系列機器的安裝的,我始終不成功: 整了好幾天總算能啓動了: 額外的安裝步驟如下:         1.安裝csh,ksh         2. cd /usr ln -s /tmp tmp        3.

原创 C語言編程好習慣(持續更新)

1.編程好習慣之變量定義: 定義變量時總是按變量類型所佔空間大小來排序是最好的! 如果是隻有某個函數使用些變量,而且你又需要在函數讓函數退出時不被銷燬,那麼就使用static吧 2.編程好習慣之函數定義: 如果我們定義的C函數僅在此

原创 關於linux0.12文件系統目錄大小的一個發現

今天看到empty_dir函數發現他並不是比較i_size==32來判斷是否爲空,而是去讀所有的塊來判斷是否爲空,然後就覺得很奇怪,不過總覺得事出必有因,翻來覆去的找了一下,終於有了點發現,去看了一下add_entry和sys_rmdir

原创 latex初學者的經驗

1.一定要及時換行,要不然latex是不會替你自動換行縮進的,相反如果我第幾十個字來換一次那麼它就會替我自動縮進下換行。 2.關於中文首段縮進問題可用 \usepackage{indentfirst} + \setlength{\pari

原创 關於linux0.12臨界資源的一點理解和猜測

       今天看代碼時突然發現,好像看到linus在寫代碼時的一些準則了,再根據趙博士的一句話"內核開發者不可能總是關注這些細節問題的!“,然後參照自己的理解總結出來一些準則,本人初學,如果有問題還請留言指正。        1.在關

原创 getopt得用法

getopt被用來解析命令行選項參數。 #include <unistd.h>      extern char *optarg;  //選項的參數指針      extern int optind,   //下一次調用getopt的

原创 uid gid euid egid詳解

由於用戶在UNIX下經常會遇到SUID、SGID的概念,而且SUID和SGID涉及到系統安全,所以用戶也比較關心這個問題。關於SUID、SGID的問題也經常有人提問,但回答的人一般答得不夠詳細,加上曾經回答過兩個網友的問題,還查了一些資料

原创 關於stm32的USB學習筆記之usbcore.c

#include <stm32f10x_lib.h> #include "usbreg.h" #include "usbcore.h" #include "usbuser.h" #include "usbcfg.h" #include "

原创 ramdisk與 initrd、initramfs的關係

1、ramdisk、initrd是什麼? ramdisk是一種基於內存的虛擬文件系統,通常用於放置內核的中間數據。 而initrd全稱爲"boot loader initialized RAM disk",也就是由啓動加載器所初始化的R

原创 關於重新編譯內核後VirtualBox不能使用的問題

      編譯完內核後進入linux3.0內核後,習慣性的打開virtualbox,然後突然發現virtualbox提示錯誤,然後又出現一個對話框,上面寫着: Nevertheless, there is no shortage of

原创 關於linux0.12中的add_entry中bread中的些猜測

今天看到文件系統namei.c中的add_entry部分了,發現一個問題 block = create_block(dir,i/DIR_ENTRIES_PER_BLOCK); if (

原创 關於stm32的USB學習筆記之USB_HW.c

#include <stm32f10x_lib.h> #include <stm32f10x_map.h> #include "usbreg.h" #include "usbuser.h" #include "usbcore.h" #in