NoName Team 電腦資訊討論區

 找回密碼
 我要註冊
搜索
查看: 2729|回復: 3

[討論] 淺談 各環境(含開機)中 程式 的 執行核心 和 影響

[複製鏈接]
發表於 2016-6-3 16:13:37 | 顯示全部樓層 |閱讀模式
本帖最後由 阿達金田一 於 2016-6-4 02:06 編輯

這個主題... 猛一看... 可能很多人會看不懂
對一般人而言... 程式 就是 程式 ... 有什麼分別嗎

實際上... 依 程式 的 執行環境  不同... 是有差別的
執行環境 通常是指 硬體 和 系統核心

比較容易懂的說法就是
x86 和 x64 程式 ... 會一樣嗎...
Windows 程式 和 Linux 程式 ... 會一樣嗎

所以含包開機時...未載入 系統 前... 依賴 Bios 所執行的程式... (簡稱 Bios程式)
和會 Win程式 Linux程式 一樣嗎

結論是很明顯的

會提到這個話題... 主要是因為... 很多新手再接觸到 Grub4dos 時
都把 G4D 看成萬能... 不管什麼 ISO ... 好像都 map 就可以搞定

實際上... Grub4Dos 也只是一個 Bios程式 ... 和 Win Linux 並無直接關係
若要相互支援...還需要另外的一些動作 ... 有的是根本不支援

新手村 有看的人...應該知道我說過的 硬體開機 -> 系統開機
硬體開機 ... 就不說了...
系統開機 ... 不是一載入 系統開機檔... 就進入 系統 了
在直到轉換(交接) 系統核心 前...
都是 Bios系統 ( Bios 本來就叫 Base Input Output System ... 基本輸出入系統 )

所以 系統開機 可以在分成
Bios -> OS (操作系統)

而在進入 OS 前執行的 程式 大多都是依懶 Bios ... 因此我是都稱為 Bios 程式
當轉換 控制核心 給 OS 時 (說穿了...就是變成 OS 控管 硬體 或 Bios )
依據 OS 本身的作業方式... 前期的 Bios 程式... 不一定能 繼續作用 (因為是 OS 在 控管)
這個比較簡單的說法就是... OS 不相容不支援

如果要舉實際的例子... Linux 我是沒摸過...不會 ... 就不說了
拿  NT5.x (XP) 和 NT6.x ( Win 7/8/10 ) 來說好了

掛載映像 Grub4dos  是用 map 指令...
簡單的理解方法...可以想成
在 Bios 中 虛擬 出一個 硬體裝置 ... 也有 硬體識別碼 ( 詳細我也不懂...這是 Bios 的東東 )

情況1
在進入 NT5.x (XP) 時 ... G4D Map 的 虛擬裝置 ... 在 XP 中是存在的...不過和其它硬體一樣...要安裝 Driver 才能用

情況2
在進入 NT6.x (Win7/8/10) 時 ... G4D Map 的 虛擬裝置 ... 在 NT 6.x 中是不存在的... 因此無法使用
推測 OS 是會 清理 或 重置 Bios 或 硬體 資訊

不過 NT 6.x 本身是支援 Bootmgr 掛載 VHD , SDI+WIM ... 所以 bootmgr 可以用 VHD , SDI+WIM 啟動

所以實際上...對像 NT 6.x 來說
G4D Map 主要作用...只是在 轉換 OS 核心 前... 用來開機用的
因為在 轉換 OS 前 ... 都還算是 Bios 核心

拿 PE ISO 來說
ISO 中大概是
\bootmgr
\boot  ( bcd  , boot.sdi )
\sources\boot.wim  ( pe wim )

當用 G4D map Pe ISO 來啟動時... 流程
G4D -> PE ISO -> bootmgr -> bcd -> boot.sdi + boot.wim -> PE OS

從流程看...在 PE OS 前...都算是 Bios 控管 ... 因為 G4D Map ... 直到 PE OS 前...都是還有作用的
因此...可以用 G4D Map 來啟動 ISO 中的 PE
但進入 PE OS ... G4D Map 就失效了... 所以看不到 G4D Map 的虛擬裝置

對於這種情況...其實多是在 OS 中安裝 掛載程式(Driver) ... 像 FiraDisk
這樣看上去...可能就會讓一些 新手 搞不清楚 ... G4D Map 到底有沒有作用

比較容易理解的解釋就是

1. XP PE ... 未修改
G4D -> XP PE ISO -> setupldr.bin -> winnt.sif  -> PE OS IMG -> PE OS Text Mode -> 安裝 Driver -> PE OS -> G4D Map 裝置存在 , 但無 Driver 不可用

2. XP PE ... F6 安裝 Driver 方式
G4D -> F6 Driver IMG + XP PE ISO -> setupldr.bin -> winnt.sif  -> PE OS IMG -> PE OS Text Mode -> (F6) 安裝 G4D Map Driver -> PE OS -> G4D Map 裝置存在 , 可用

3. XP PE ... Driver 已直接加入到 PE OS 核心
G4D ->  XP PE ISO -> setupldr.bin -> winnt.sif  -> PE OS IMG -> PE OS Text Mode -> 安裝 G4D Map Driver  -> PE OS -> G4D Map 裝置存在 , 可用

4. NT6.x PE ... 未修改
G4D -> NT6.x PE ISO -> bootmgr  -> bcd  -> SDI + PE OS Wim -> PE OS  ->  G4D Map 裝置不存在 ,  不可用

5. NT6.x PE ... Driver 加入到 PE OS 核心
G4D -> NT6.x PE ISO -> bootmgr  -> bcd  -> SDI + PE OS Wim -> PE OS  ->  G4D Map 裝置不存在 , 不可用 -> Driver 另外掛載 ISO -> 掛載後可用 (但已不算是 G4D Map)

註1:
NoNXPE 是將 winnt.sif 改成  rxpe.sif

註2:
NT5.x 的 PE OS Text Mode 已算 轉換核心 到 PE OS ... 只是 PE OS 初期是 文字模式
文字模式 時主要是 依據 txtsetup.sif 中資訊 加載 Driver 和 F6 Driver

發表於 2016-6-3 21:43:29 | 顯示全部樓層
謝謝大大講解
發表於 2016-6-4 00:17:01 | 顯示全部樓層
所以很多人真的不知道,硬體設備開發人員所需要的技術,是同時需要有多種深入與相關連性的物理技術。
而且量產的硬體電路成品是無法像軟體只需要丟個修正檔就能補正,頂多只有韌體部份可以更新而以。

另外,BIOS 的階段是在作 P.O.S.T.
發表於 2016-6-22 00:10:35 | 顯示全部樓層
題外話:
1. Base Input Output System 這字眼感覺回到學生時代. 許久沒見過了.

2.現階段BIOS應該還是由組合語言卷寫. 好幾年前有聽過同業敘述, 日後將改成C++編寫.
    若改成C++去編寫, 那日後進入OS之前, 驅動已經準備好. 意思就是, 驅動就是寫在BIOS中.

3.由於 x86 的包袱, bios及記憶體管理對日後發展造成一定的不便, 所以才會產生g4d這類的軟體出現.
   G4D, Cover EFI, 諸如此類... 何時才能一統江山, 實在是難以想像...

X86的包袱究竟有多大, 相信從事此業的先進們應該感同身受.

回想當年微軟團隊如果堅持開發DEC版本用的Windows版, 相信今日Intel獨大的局面可能全面翻盤...
您需要登錄後才可以回帖 登錄 | 我要註冊

本版積分規則

小黑屋|手機版|NoName Team 電腦資訊討論區 |網站地圖

GMT+8, 2024-12-4 16:23 , Processed in 0.406771 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表