回覆列表
  • 1 # 使用者2337356620598

    exe裡面存放的不是彙編指令嗎?

    不是彙編指令,是二進位制指令,但是不僅僅只有指令,還包括各種控制資訊,以協助exe載入執行。如果儲存彙編指令,那就不是可執行程式了,將是彙編原始碼。

    x86下Windows編譯的EXE 為什麼不能在 x86下的Linux上執行?

    linux繼承了unix的ELF(Executable and Linkable Format)物件檔案的格式;windows採用自己獨有的exe(PE)格式,兩種格式都是系統緊耦合的,即exe的格式,linux無法解析載入執行;ELF格式window也不相容。兩家各自玩各自的格式。

    還是說Windows其實是一個大的虛擬機器 負責解釋EXE 如果是這樣的話 為什麼不直接把EXE推給CPU執行?

    window自身不是虛擬機器,它是作業系統。不要和虛擬機器混淆。只不過有兩種安裝方式,一種直接安裝到硬碟上並新增引導分割槽裡了,這也是最常見的開機加電就啟動系統的方式。另外一種,透過VM安裝的虛擬windows,即透過Vm軟體虛擬出一個計算機。不過可以忽略這個區別。因為對與使用者你來講,它都是一個可用的window系統,和window系統直接跑在硬體上還是間接跑在硬體上都和window怎麼載入執行exe無關。如果非要鑽個牛角尖的話,虛擬機器上的windows可能跑起來會有點卡頓的現象。

    為什麼不直接推給CPU,這個問題可大可小,大的講的話,需要把程序管理拉進來,對於初學者聽不懂。還是從小的給個概念原因吧,因為作業系統要全權管理程式的執行。這個執行不是指CPU指令的執行,而是管理程式怎麼開始執行,何時執行,執行多久,如何結束執行,以及資源(記憶體,頁表,CPU)如何分配和釋放等等。換言之,不能讓程式成為一個奔放的Mustang,上路了一直狂奔;作業系統需要給Mustang上了韁繩,聽從人的命令,有條不紊的奔向目的地。

    解釋執行不浪費效能嗎?

    lz好像是把程式的執行理解成解釋。其實不是,專業的講,換成解析可能更好一些。即解析exe中的命令到記憶體中,然後cpu從記憶體中逐條執行命令。

    程式語言可以分為編譯型和解釋型,不擴充套件了。

  • 中秋節和大豐收的關聯?
  • 鋼化玻璃是用什麼材質做的?