原创 《一個操作系統的實現》(四):讓操作系統走進保護模式

一個操作系統從開機到開始運行,大致經歷“引導->加載內核入內存->跳入保護模式->開始執行內核”這樣一個過程。 幾乎所有的文件系統都會把磁盤劃分爲若干層次以方便組織和管理,這些層次包括扇區(磁盤上的最小數據單元),簇(一個或多個扇區),分

原创 《一個操作系統的實現》(一):不到20行的操作系統代碼的解釋

最開始的一段操作系統代碼: org 07c00h ;告訴編譯器程序加載到7c00處 mov ax, cs mov ds, ax mov es, ax call DispStr ;調用顯示字符串例程 jmp $ ;無限循

原创 《一個操作系統的實現》(二):使用Bochs調試操作系統

在輸入bochs -f bochsrc後,還有幾個選項,只需要輸入6然後回車或直接按回車即可啓動操作系統,不過它仍然停在那裏而不是立刻執行。這時會出現<bochs:1>,等待我們操作。 首先按照書上給的例子模擬一遍過程。 <bochs:1

原创 外企求職講座聽後小記

昨天聽了一個關於外企求職的講座,今天把當時的筆記整理一下,發佈出來~ 求職信 求職信最好分爲四段,不要超過兩頁紙(一頁紙最好),四段格式如下: 一:意向職位 得知渠道 展現自己對公司以及該職位的興趣 二、三:自己擁有的經驗和技能 爲什麼和

原创 串的塊鏈存儲

Common.h #ifndef COMMON_H_INCLUDED #define COMMON_H_INCLUDED #include <stdio.h> #include <stdlib.h> #include <string.

原创 引用和指針的區別

最近寫用棧實現迷宮問題,用C語言實現的棧,但是發現怎麼調都調不通,指針指向的值老改,都把我改暈了。看了看嚴蔚敏的代碼,發現是拿C++實現的,使用引用而不是指針,於是上網查了一下引用和指針的區別,截取原文部分如下(還有另一篇也比較詳細的h

原创 Ubuntu下安裝與配置PHP

首先執行:sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server (我用su獲取root權限的時候出了一個問題:認證失敗。解決方法是執行sudo

原创 線性表的鏈式存儲

"Common.h" #ifndef COMMON_H_INCLUDED #define COMMON_H_INCLUDED #include <stdio.h> #include <stdlib.h> #include <strin

原创 《一個操作系統的實現》(零):搭建環境

環境:Ubuntu12.10 + bochs2.6.1 今天從圖書館借了本《一個操作系統的實現》,豆瓣評分挺高的,準備試試。拿到手後先翻了一下前幾頁,第一章1.1的準備工作裏寫着要一張軟盤,頓時傻眼,現在找臺有軟驅的電腦都難。連忙用手機百

原创 Ubuntu12.10安裝豆瓣FM(Banshee播放器)

安裝方法參考了這篇文章 作爲程序猿,寫代碼的時候開個瀏覽器只爲了聽豆瓣FM實在太不爽啦,果斷尋找解決方法~本來Ubuntu默認播放器是rhythmbox,也有人開發了豆瓣FM插件,不過我試了試,發現安裝後在插件裏找不到豆瓣FM(可能是更新

原创 使用VC++過程中總結的經驗~

MFC中的Left對應C++中的substr,ReverseFind對應rfind string轉換爲LPCSTR:str.c_str() 控制檯輸出wchar_t類型的:wcout.imbue(locale("chs"));wc

原创 《一個操作系統的實現》(三):2.保護模式進階

在之前的代碼中,程序從實模式跳到保護模式之後就開始死循環。這節會實現在程序結束時跳回實模式,也會實現對大地址內存的讀寫。 新建的段以5MB爲基址。而且每增加段都要用Descriptor描述它的段基址、段界限、屬性,而且還要加上對應的選擇子

原创 《一個操作系統的實現》(三):1.認識保護模式

進入第三章的學習~第三章開始每章內容變多了,所以以後每學習一節寫一篇文章~ 順便注一句:書上“用來生成描述符的宏”只是節自光盤中的pm.inc文件的,我照書上敲了那短短一段發現編譯的時候報錯- -不過我相信大家的眼睛都比我雪亮 因爲引導扇

原创 《一個操作系統的實現》(三):3.頁式存儲

首先說一下頁的概念~頁就是一塊內存。下文只討論頁大小爲4KB的情況。 在未打開分頁機制時,線性地址等同於物理地址,即可以認爲邏輯地址通過分段機制直接轉換成物理地址。但開啓分頁時分段機制將邏輯地址轉換成線性地址,線性地址再通過分頁機制轉換成

原创 串的順序存儲

Common.h #ifndef COMMON_H_INCLUDED #define COMMON_H_INCLUDED #include <stdio.h> #include <stdlib.h> #include <string.h