從今天開始,我將開發作業系統了。我將她取名為'bear',小熊的意思,因為我的乙個朋友喜歡小熊,所以就用它了。其實'bear『還有另外乙個意思,就是'忍受',忍受學習的壓力和痛苦,這樣才會有所收穫。我模仿的linux0.11的核心源**,現在主要將它的string標頭檔案移植到x86系統上面。今天完成了7個字串操作函式。
分別為/*
本函式實現有限個字串的複製
要求:當count的數目大於等於陣列的最大長度時會產生runtime error錯誤,所以注意count的大小
*/extern inline char *pstrncpy(char *dest,const char *src,int count)
return dest;}/*
本函式實現字串的連線。
要求:使用時注意目的字串的長度要大於等於目的字串和源字串的長度之和。
*/extern inline char *pstrcat(char *dest,const char *src)
return dest;}/*
本函式實現字串的有限個數的連線,要求和pstrcat相同
*/extern inline char *pstrncat(char *dest,const char *src,int count)
return dest;}/*
本函式比較兩個字串的大小
str1 > str2 返回 1
str1 < str2 返回 -1
str1 == str2 返回0
*/extern inline int pstrcmp(const char *str1,const char *str2)
return result;}/*
實現兩個字串有限個字元的比較
要求:比較的字元數目要大於0
*/extern inline int pstrncmp(const char *str1,const char *str2,int count)
return result;}/*
本函式實現在乙個字串中查詢指定字元,如果找到返回該字元指標,否則返回null的操作
說明:當所查詢的字元在字串中時可以用(*strchr(str,c))來獲得字元,但是當該字元不
在字串中時,則不可以用這種方法。否則會出錯。
*/extern inline char *pstrchr(const char *string,int c)
return result;
}本源**是用vs2008編譯成功的。
作業系統開發 Hello OS 開始作業系統開發
在開發作業系統之前 我們需要知道從按下電源開機鍵開始 cpu 都做了什麼 第一步 按下電源鍵 cpu重置,開始工作 第二步 從記憶體位址為 0xfffffff0 的位置開始 讀取指令並執行 而這個位址對應的就是 bios basic input output system 第三步 bios 的pos...
作業系統開發之路(一)
作業系統是提供給計算機硬體的一組基本的程式設計指令,它們構成了計算機的大多數其他功能依賴存在的 程式設計層。程式設計 是作業系統的核心,稱為核心 kernel 核心這個術語是從unix作業系統中演化來的。在unix和linux系統中,連線核心的基本介面稱為外殼 shell 使用者可以在此執行命令。核...
作業系統開發系列 13 h 延時操作
計數器的工作原理是這樣的 它有乙個輸入頻率,在pc上是1193180hz。在每乙個時鐘週期 clk cycle 計數器值會減1,當減到0時,就會觸發乙個輸出。由於計數器是16位的,所以最大值是65535,因此,預設的時鐘中斷的發生頻率就是1193180 65536約等於18.2hz。我們可以通過程式...