乙個程式執行的過程是什麼樣的?
如果簡單說,就是編譯器將**編譯成彙編**,然後彙編**再通過彙編器變成機器碼,這樣cpu就可以執行這些機器碼了。
上面的過程簡化了很多,如果詳細分析,要分為兩個部分:
程式最終是通過裝載器變成指令和資料的,所以其實生成的可執行**也並不僅僅是一條條的指令。
在linux下,可執行檔案和目標檔案所使用的都是一種叫elf(execuatable and linkable file format)的檔案格式,中文名字叫可執行與可鏈結檔案格式elf檔案格式把各種資訊,分成乙個乙個的section儲存起來。elf有乙個基本的檔案頭(file header),用來表示這個檔案的基本屬性,比如是否是可執行檔案,對應的cpu、作業系統等等。除了這些基本屬性之外,大部分程式還有這麼一些section:這裡面不僅存放了編譯成的彙編指令,還保留了很多別的資料。
為什麼同樣乙個程式,在linux下可以執行而在windows下不能執行了。其中乙個非常重要的原因就是,兩個作業系統下可執行檔案的格式不一樣。
我們今天講的是linux下的elf檔案格式,而windows的可執行檔案格式是一種叫作pe(portable executable format)的檔案格式。linux下的裝載器只能解析elf格式而不能解析pe格式。
linux上執行windows命令
場景 在pipeline指令碼整合部署中需要新增dns a記錄,dns是windows上搭建的,指令碼跑在linux上,跨平台執行命令,方案如下 首先實現在windows系統中命令列執行新增dns a記錄 dnscmd dns recordadd 域 主機名 a ip c users adminis...
Windows上執行linux命令
什麼都不做的時候,提示這個。在彈出的 啟用和關閉windows功能 然後在電腦的商店中搜尋bash 彈出的這些都是可以在windows上執行linux命令的軟體,第乙個評分最高,所以我就選第乙個了。然後點選安裝 安裝的過程中,配置一下使用者名稱和密碼就行了。安裝執行之後,發現執行的shell的介面的...
Windows執行機理 視窗和控制代碼
windows執行機理這系列文章都是來至於 零基礎學qt4程式設計 吳迪,個人覺得寫得很好,所以進行了搬運和個人加工 1.視窗 視窗是windows應用程式中乙個非常重要的元素,乙個windows應用程式至少要有乙個視窗,稱為主視窗,視窗是指現在是螢幕上面的一快矩形區域,是windows應用程式與使...