當前位置:首頁 » 操作系統 » 30天自製操作系統源碼

30天自製操作系統源碼

發布時間: 2022-05-07 06:06:55

❶ 30天自製操作系統;軟盤;u盤;文化格式;FAT12 OR FAT32;

軟盤換U盤,比鳥槍換大炮還麻煩,牽涉到的問題很多,不光光是更改FAT那麽單純。
把軟盤換成硬碟,那麽可能會簡單一些。
至於FAT12換成FAT32,相對來說,稍微單純一些,只要你能找到FAT32的原代碼換進去就行。網路上面,FAT32 的源代碼不少,你可以搜尋關鍵字 『FAT32 源代碼』。

❷ 誰有《30天自製操作系統》pdf電子書完整版

日文版《30天自製操作系統》光碟.iso

❸ 匯編語言 cpu 進入保護模式 虛擬機錯誤

我認為我能幫你捋一下思路(自己也遇到與描述類似的問題,還在解決)

(默認你已經會了基本指令)

我在進保護模式時,也遇到了CPU關閉的問題(如圖)

有錯的語句

其中的「OR EAX,0x00000001"就是設置保護模式的,CR0寄存器中的最後一位是保護模式標志位,這一個語句就是將其設為1(你應該知道CR0寄存器不能直接進行運算操作吧)


額……我能說的已經說完了,能幫多少幫多少吧

❹ 我買了30天自製操作系統,為什麼光碟的內容匯編代碼的注釋全是亂碼啊,我用了UE和notepad打開一樣的亂碼

反匯編之後就是這樣,那些字元不被編譯器支持,怎麼換都沒用,他並沒有給出asm源代碼文件,從實際上來說,這本書並不好,而且用的編譯器為nask,一般我們弄這個都用GNU組織編寫的gcc或者nasm,這幾個編譯器對匯編語言語法的支持用很大區別,傻子才會用機器語言去編程,他這樣寫只不過是增加趣味性而已,而且代碼並不符合規范,建議你最好在linux下進行這方面的學習,windows不是為了解底層原理的人准備的

❺ 給我一個操作系統源代碼的下載地址

我勸你要是製作操作系統的話不要依靠那些免費的資源,買幾本書比什麼都好。Linux源代碼我下載過,根本沒法看。你需要先明白操作系統的工作原理,熟練使用匯編+C語言才可能編寫出一個很爛的操作系統。給你推薦一本《30天自製操作系統》,不是打廣告,我看完也有很大收獲。裡面還有源代碼光碟。

你實在想要的話,可以用這個

網頁鏈接

這是Linux的內核代碼,你可以免費看。不過我估計你看到後已經崩潰了。

順便說一句,我其實早就看到過這個貼,而且我打賭你現在已經忘記這個了。

加油。

還有,在知道上提問,態度要好一點。

❻ 關於《30天自製操作系統》這本書的問題

你去下載 qemu
安裝
然後在cmd輸入qemu -fda obj -boot a obj就是你製作的系統文件名字
我以前就是這種方法 絕對可行
哈哈 給分吧

❼ 如何製作全新的操作系統(要使用全新的源代碼,脫離微軟和linux)

1.開發新的系統軟體一般需要幾年的時間(Windows是由團隊共同完成,且都是程序員中的精英,一般需3~5年);
2.具體人數沒有一定標准,微軟的Windows是團隊共同完成的,怎麼的也有十幾人到幾十人;
3.需要特別熟練的掌握編程技術;
4.具體的不好估算,百萬人民幣以上;
5.如果只在我國市場銷售的話,別指望能掙錢;
6.非常非常難,開發操作系統是軟體開發中最難的;
7.只靠一個人的話,差不多要幾十年;
8.需要學習編程,如果我國盜版嚴重的問題不能有效解決的話,我們自己的操作系統(自主知識產權)幾乎不能問世。
隨便說一下,對於系統軟體,我國的技術、資金等根本不是問題,問題就是市場不好,盜版太嚴重了。研發操作系統需要巨大的投入,而盜版這么嚴重,別說盈利,連收回成本都有問題。企業是要以盈利為目的的,不是慈善機構,所以根本沒有企業敢鋌而走險(微軟等國際企業根本不是通過我國市場盈利的)。你自己可以看一下,為什麼現在的單機游戲基本全是國外公司開發的?而我國游戲企業幾乎清一色在做網游?你自己應該可以看出原因吧?總之,解決的辦法就是要嚴厲打擊盜版,除了政府部門打擊外,我們用戶自己也要拒絕盜版,只有這樣我國的軟體業才會健康發展。

❽ 寫系統咋寫

如何動手製作這樣的引導扇區呢?這個過程十分簡單,
(1)首先按照要求寫一個合法的引導程序(通常用匯編,機器碼也可以,呵呵);
(2)然後將其通過匯編程序,如NASM匯編成二進制文件;
(3)最後,將這個二進制文件寫入到目標盤的第一個扇區。

第一步:寫代碼
; 文件名:boot.asm
; 代碼如下,注意,匯編中通常用「;」來表示注釋內容
; 此段代碼參考《自己動手寫操作系統》(於淵)
;
; 初始化函數
org 07c00h ; 告訴編譯器將此段程序載入
; 到內存0x0000:07C00處
mov ax, cs
mov ds, ax
mov es, ax
call PrintStr ; 調用屏幕列印函數
jmp $ ; 無限循環

PrintStr: ; 屏幕列印函數
mov ax, HelloWorld ; 將字元串拷貝到ax
mov bp, ax ; es:bp = 串地址
mov cx, 24 ; cx = 串長度
mov ax, 01301h ; ah = 13, al = 01h
mov bx, 000ch ; 頁號為0(bh = 0) 黑底紅字(bl = 0ch,高亮)
mov dl, 0
int 10h ; 10h號中斷
ret

HelloWorld: db "Welcome to Lee's OS *_*" ; 字元串負值
times 510-($-$$) db 0 ; 用0x0填充剩餘的空間使生成
; 的二進制代碼剛好為512位元組

dw 0xaa55 ; 結束標志
; 整個程序結束!很短吧

第二步:匯編
假設你已經安裝了NASM程序,那麼進入命令行模式,然後輸入以下命令:
C:[PATH]\ nasm boot.asm -o boot.bin
其中「C:[PATH]\」為boot.asm代碼文件所在位置。
現在如果不出意外的話,你已經擁有了boot.bin二進制文件,這個就是引導程序!

第三步:製作引導盤
由於不能隨便更改硬碟,否則系統無法進入原來的操作系統,所以我們用軟盤來試驗。
那麼,我們准備一張軟盤。
現在,我們要自己寫一個程序將我們匯編得到的二進制文件寫到軟盤的第一個扇區。
C語言程序代碼如下:

/***************START***************/
#include
#include

int main(void)
{
FILE *in;
unsigned char buffer[520];

if((in = fopen("boot.bin", "rb"))==NULL)
{
printf("Error loading file\n");
exit(0);
}

fread(&buffer, 512, 1, in);
while(biosdisk(3, 0, 0, 0, 1, 1, buffer));
fclose(in);

return 0;
}
/****************END****************/
注意,這個程序必須同boot.bin文件在同一目錄下,然後將軟盤放進軟碟機,運行此程序。

第四步:GOGOGO
好了,現在你擁有了一張從頭到尾完全自製的引導盤,由於有了她,你想運行你的電腦再也不需要微軟插手了,而且這很可能是你第一次能在裸機上運行一個自己的程序哦,哈哈!
重新啟動你的機器,記得把軟盤放進去,現在你看見什麼了?
一行醒目的紅字:
Welcome to Lee's OS *_*
列印在屏幕上!

❾ 寫一個操作系統內核有多難大概的內容,步驟是什麼

「一個好一點兒的計算機碩士畢業的學生。寫一個操作系統的內核絕對是應該辦到而且肯定可以辦到的事兒。」 ------這句話我們可以理解為」一個好的計算機碩士掌握的理論知識足夠他搭建起一個簡單的操作系統框架「。

我上操作系統課(大二)的第一天就問我的老師,學完了這門課可以自己實現一個操作系統了嗎?老師說:」你可以基本掌握操作系統中要處理的主要問題,但是即使實現最簡單的五臟俱全的操作系統還需要掌握很多很多東西,而且前提是你已經有很不錯的代碼能力。「

回到題目上來,我們要實現一個簡單的操作系統,最先需要解決的是哪些問題?這個問題我相信翻開任何一本操作系統書都可以得到答案,一般都是操作系統書的前五,六章內容(第一章基本是操作系統概念及發展歷史)。
包括:

進程管理
存儲管理
文件系統
輸入/輸出
這些大部分是討論理論類的書,比如我們上課用的書是西電湯子瀛老師的《計算機操作系統》,後來自己為了深入學習買了Andrew S. Tanenbaum的《Modern Operating Systems》。

如果想寫個操作系統,除了理論知識外,動手之前最好先看看操作系統源代碼,Linux的代碼都是開源的,可以先學習學習。不過對於我們這種初學者千萬不要看最新的Linux內核代碼,因為那是很多人的傑作,可能一輩子都看不完。最好先看看國內同濟大學趙炯基於0.11的《Linux完全注釋》,即使只看懂30%也至會讓自己懂很多之前不知道的東西。

理論類的書很少有提到Bootload問題的,就是加電之後從哪裡開始執行的部分。僅僅是這個步驟也需要花不少時間去了解CPU知識,匯編語言知識等,相當不容易。不話說回來,這部分如果能處理好之後會發現組成原理,匯編語言,微機原理的知識被自己運用到了,成就感巨大。這部分內容,可以參看MIT的課程6.828 Operating System Engineering的課程,Google一下就能搜到不少大牛關於這門課的博客。如果英語不太好我記得華中科技大學有一個叫32位操作系統實踐的課,資料都放到網上了,看起來很不錯。

過了這一關,用《深入理解計算機系統》加上《現代操作系統》看一下虛擬存儲器的內容,這兩本書這部分說得都很棒。虛擬存儲器的概念貫穿所有,如果能弄懂,對很多方面都有很大的幫助,不僅僅是操作系統這塊。有了虛擬存儲器概念之後對於鏈接,載入等知識理解就會深刻許多。 不過,這部分內容也需要對硬體部分有所了解,又是一坑。

之後回到進程上來之後,終於可以把工作重心從硬體部分轉移過來了。但是我們又將面對進程創建,進程調度,進程通信三大問題,既然是簡單實現,就先不考慮線程的事。演算法書中會給很多,不過這些演算法都是有一定的局限性,比如調度演算法,對應的調度演算法優劣差異很大,至於如何抉擇就看個人需求。不過話說回來,操作系統里的」演算法「和ACM里的演算法在難度上差很多,還是比較容易實現的。

內容太多了,就不完全展開了,後面就看自己「耐力」了,寫操作系統是需要堅持很長實踐+大量知識積累的。有些問題還涉及到哲學的觀點,這里推薦上海交大鄒恆明教授的《操作系統之哲學原理》。除了理論方面的書,現在市面上也有直接教如何實現一個操作系統的,比如《Orange'S:一個操作系統的實現》和《30天自製操作系統》(僅有的幾本「XX天XX」而不是爛書的書),起步階段跟著這些書來還是很不錯的。

總之,實現最最基本的功能也許可以做到。實現功能強大,魯棒性強的操作系統極難。

❿ 操作系統-cpu調度演算法設計

對等動態優先權演算法,進程調度過程掌握情況;考查學生的寫演算法和編程能力等;考查學生的分析問題和解決問題的能力;實驗報告的撰寫能力等。 設計思路: (1)先對就緒隊列,阻塞隊列,cpu的進行初始化。 (2)進行進程調度的選擇。 1)cpu,就緒...

熱點內容
編譯期錯誤提示 發布:2024-10-07 20:07:23 瀏覽:296
阿里雲伺服器打開慢 發布:2024-10-07 20:06:33 瀏覽:577
磁存儲行業的前景 發布:2024-10-07 20:01:29 瀏覽:548
android對象序列化 發布:2024-10-07 20:01:28 瀏覽:760
安卓上面的微信如何恢復 發布:2024-10-07 19:57:45 瀏覽:52
510低配包括哪些配置 發布:2024-10-07 19:38:21 瀏覽:556
ping伺服器地址一直丟包 發布:2024-10-07 19:37:34 瀏覽:588
怎麼去除手機鎖屏密碼 發布:2024-10-07 18:56:05 瀏覽:67
怎樣注冊手機貼吧賬號密碼是什麼 發布:2024-10-07 18:55:17 瀏覽:365
埠安全配置屬於什麼 發布:2024-10-07 18:41:01 瀏覽:794