[問題] 開機後進到程式

看板C_and_CPP作者 (QQ)時間16年前 (2009/12/03 22:28), 編輯推噓10(10022)
留言32則, 13人參與, 最新討論串1/1
請問如何使得電腦開機後 會直接load寫好的程式 而不是load XP 如果程式結束後就關機這樣 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.187.229

12/03 22:32, , 1F
自己寫loader到MBR裡
12/03 22:32, 1F

12/03 22:34, , 2F
要塞一堆assembly code作系統初始設定和切換protect mode
12/03 22:34, 2F

12/03 22:35, , 3F
細節很多,不是很好做
12/03 22:35, 3F

12/03 22:37, , 4F
而且沒有system call可以用,很難debug
12/03 22:37, 4F

12/03 22:37, , 5F
恩 謝謝ˊˋ.. 有沒有人知道捷徑阿 寫好的萬用loader
12/03 22:37, 5F

12/03 22:38, , 6F
或者XP有提供什麼指令之類的
12/03 22:38, 6F

12/03 22:39, , 7F
如果程式小 直接塞開機磁區
12/03 22:39, 7F

12/03 22:43, , 8F
聽起來有點像Asus的ExpressGate在做的事....@_@"
12/03 22:43, 8F

12/03 22:46, , 9F
恩 程式不大 要怎麼塞開機磁區@@?
12/03 22:46, 9F

12/03 22:50, , 10F
你應該是想用C或C++寫吧?直接告訴你,不能跑
12/03 22:50, 10F

12/03 22:51, , 11F
要寫ASM的話,可以去ASM版,有相關討論
12/03 22:51, 11F

12/03 23:08, , 12F
程式再小也不可能直接塞MBR...
12/03 23:08, 12F

12/03 23:09, , 13F
系統開機時是run在x86 mode下的
12/03 23:09, 13F

12/03 23:09, , 14F
你的C/C++ code根本沒辦法run
12/03 23:09, 14F

12/03 23:11, , 15F
嗯嗯 感謝大家回答~~
12/03 23:11, 15F

12/03 23:11, , 16F
一定要寫asm去切protect mode和設定好各個segment空間
12/03 23:11, 16F

12/03 23:13, , 17F
即使這樣C++很可能也不能run,只有純C可以跑
12/03 23:13, 17F

12/03 23:16, , 18F
過程很麻煩,完全是在考驗對整個計算機原理和x86的瞭解程度
12/03 23:16, 18F

12/03 23:59, , 19F
灌個小小linux然後看你想寫什麼就寫什麼..
12/03 23:59, 19F

12/04 00:08, , 20F
我比較好奇你要這玩意的用途為何
12/04 00:08, 20F

12/04 00:15, , 21F
其實他弄到一份DOS也就可以了,這門檻低多了
12/04 00:15, 21F

12/04 00:29, , 22F
つ《自己動手寫作業系統》 寫的很清楚XD 但不知道是不是
12/04 00:29, 22F

12/04 00:30, , 23F
原PO想要的東西XDD
12/04 00:30, 23F

12/04 00:37, , 24F
樓上推薦的確實是好書 不過離原po想要的「捷徑」有點遠XD
12/04 00:37, 24F

12/04 02:14, , 25F
再次感謝大家回答啊~
12/04 02:14, 25F

12/04 10:20, , 26F
為什麼「只有純C可以跑」?
12/04 10:20, 26F

12/04 10:47, , 27F
因為C++裡面那一堆class的建構要用到很多system call
12/04 10:47, 27F

12/04 11:10, , 28F
可以請樓上多說點嗎?class建構有用到system call?
12/04 11:10, 28F

12/04 13:20, , 29F
constructor 只是一個普通的 function 啊
12/04 13:20, 29F

12/04 16:08, , 30F
xp裡的啟動可以load寫好的程式
12/04 16:08, 30F

12/04 16:16, , 31F
樓上沒注意到原po不要load XP....XD
12/04 16:16, 31F

12/04 20:45, , 32F
那load linuxKernel
12/04 20:45, 32F
文章代碼(AID): #1B5yhp5Q (C_and_CPP)