導航:首頁 > 編程語言 > windows程序內部運行原理

windows程序內部運行原理

發布時間:2022-09-18 10:46:55

① Windows xp的操作原理是什麼

首先C屬於編譯型語言,Windows核心用C語言編譯
編譯型就是編譯的時候直接編譯成機器語言,可以執行的程序
//========================================================
80386處理器有3種工作模式:
實模式、保護模式和虛擬86模式。
保護模式是80386處理器的主要工作模式,Windows操作系統就運行在此模式下。保護主要是指對存儲器的保護。
//========================================================
CPU在保護模式下支持虛擬存儲,即虛擬內存。它可以幫助操作系統將磁碟空間當作內存空間來使用。在磁碟上應用於這一機制的文件被稱為頁文件(paging file),它包含了對所有進程都有效的虛擬內存。
//========================================================
32位windows支持最大的4G內存。
Windows將此空間的一半(4GB的前半部分,Ox00000000~Ox7FFFFFFF)留給進程作為私有存儲,
自己使用另一半(後半部分,Ox80000000~OxFFFFFFFF)來存儲操作系統內部使用的數據
//========================================================
內核對象是系統提供的用戶模式下代碼與內核模式下代碼進行交互的基本介面。(程序與windows內部通信用的)
//========================================================
程序、進程、線程的區別:
程序是一連串靜態的指令,而進程是一個容器。
線程負責執行該進程地址空間的代碼。

應用程序的啟動過程就是進程的創建過程,操作系統是通過調用CreateProcess函數來創建新的進程的。當一個線程調用CreateProcess函數的時候,系統會創建一個進程內核對象。此進程內核對象不是進程本身,僅僅是一個系統用來管理這個進程的小的數據結構。系統然後會為新的進程創建一個虛擬地址空間,載入應用程序運行時所需要的代碼和數據。
系統接著會為新進程創建一個主線程,這個主線程通過執行C/C++運行期啟動代碼開始運行,C/C++運行期啟動代碼又會調用main函數。如果系統能夠成功創建新的進程和進程的主線程,CreateProcess函數會返回TRUE,否則返回FALSE 。
//=================================================
//這就是windows如何響應用戶操作的全過程!!
//自己筆記里摘取的

② 軟體運行原理是什麼

有些軟體安裝完畢需要重啟計算機是因為安裝的軟體需要修改計算機現有且正在運行的某些軟體(或是系統自己)的組件,由於這些組件正在運行中,所以無法修改,只能等待重起的時候在它還沒有運行起來的時候修改。

計算機就象管家,注冊表就像帳單,運行的軟體就像管家買的東西,管家為了良好的管理並使用這些東西,就需要一個帳單來記錄這些東西的來源以及用途(在軟體來說就是版本以及運行時的參數)。這也是WINDOWS比LINUX設計優秀的一大體現,因為有些操作系統是沒有這個「帳單」的。

③ 計算機程序運行原理

計算機程序運行原理:計算機在運行時,先從內存中取出第一條指令,通過控制器的解碼,按指令的要求,從存儲器中取出數據進行指定的運算和邏輯操作等加工,然後再按地址把結果送到內存中去。接下來,再取出第二條指令,在控制器的指揮下完成規定操作。

依此進行下去。直至遇到停止指令。程序與數據一樣存取,按程序編排的順序,一步一步地取出指令,自動地完成指令規定的操作是計算機最基本的工作原理,這一原理最初是由美籍匈牙利數學家馮.諾依曼於1945年提出來的,故稱為馮.諾依曼原理。

(3)windows程序內部運行原理擴展閱讀:

計算機程序運行:為了一個程序運行,計算機載入程序代碼,可能還要載入數據,從而初始化成一個開始狀態,然後調用某種啟動機制。在最低層上,這些是由一個引導序列開始的。

在大多數計算機中,操作系統例如Windows等,載入並且執行很多程序。在這種情況下,一個計算機程序是指一個單獨的可執行的映射,而不是當前在這個計算機上運行的全部程序。

④ Windows Update 的工作原理是什麼

是微軟公司的升級和更新網站.
當然很重要。任何一個系統面世以後,不可能十全十美,況且病毒和木馬也是不斷更新,曾出不窮,update
和他們的關系就好比矛和盾,因此針對新病毒和木馬就要時常進行更新以抵禦他們的侵襲。安有殺毒軟體和防火牆
是不夠的。安微軟公司要求有三:1,防火牆開啟,2,不斷更新的殺毒軟體,3
開啟自動更新,安該公司每月公布的更新和升級項,即使更新和升級你的系統,使之永遠保持最新狀態。可安下操作:
點擊"工具=widows
update",系統即可自動掃描你的計算機為你選擇適合你系統升級和更新的項目.一切全自動.如提示無法打開升級,你可先檢查:開始-控制面版-管理工具-服務,找到:security
center,automayic
update「項,把他們的狀態和啟用類型設為:已啟用和自動,返回」控制面版-安全中心,看裡面的三項是否都處於「啟用」狀態?入未,點擊使其啟用。單擊工具-點擊widows
update-進入「update.microsoft"網頁後,安提示操作即可。
如升級成功,建議你自動更新設為自動.開始-控制面板-安全中心-自動更新,設為"自動",到時會在任務欄右下方出現圖標提醒你的.
下載時千萬別下載序號為887742,他是微軟驗證的工具,一旦下載,再升級,就先驗證,你的版本通不過,則無法生機了。如驗證失敗,你可:工具-管理載入項-把名為:windowa
genuine
advatage項禁用即可。

⑤ 介紹本關於 windows運行機制的書籍

推薦一本書: 程序員的自我修煉-鏈接,裝載和運行

本書主要介紹系統軟體的運行機制和原理,涉及在Windows和Linux兩個系統平台上,一個應用程序在編譯、鏈接和運行時刻所發生的各種事項,包括:代碼指令是如何保存的,庫文件如何與應用程序代碼靜態鏈接,應用程序如何被裝載到內存中並開始運行,動態鏈接如何實現,C/C++運行庫的工作原理,以及操作系統提供的系統服務是如何被調用的。每個技術專題都配備了大量圖、表和代碼實例,力求將復雜的機制以簡潔的形式表達出來。本書最後還提供了一個小巧且跨平台的C/C++運行庫MiniCRT,綜合展示了與運行庫相關的各種技術。
本書對裝載、鏈接和庫進行了深入淺出的剖析,並且輔以大量的例子和圖表,可以作為計算機軟體專業和其他相關專業大學本科高年級學生深入學習系統軟體的參考書。同時,還可作為各行業從事軟體開發的工程師、研究人員以及其他對系統軟體實現機制和技術感興趣者的自學教材。

目錄

第1部分 簡介
第1章 溫故而知新
1.1 從HELLO WORLD 說起
1.2 萬變不離其宗
1.3 站得高,望得遠
1.4 操作系統做什麼
1.5 內存不夠怎麼辦
1.6 眾人拾柴火焰高
1.7 本章小結
第2部分 靜態鏈接
第2章 編譯和鏈接
2.1 被隱藏了的過程
2.2 編譯器做了什麼
2.3 鏈接器年齡比編譯器長
2.4 模塊拼裝——靜態鏈接
2.5 本章小結
第3章 目標文件里有什麼
3.1 目標文件的格式
3.2 目標文件是什麼樣的
3.3 挖掘SIMPLESECTION.O
3.4 ELF 文件結構描述
3.5 鏈接的介面——符號
3.6 調試信息
3.7 本章小結
第4章 靜態鏈接
4.1 空間與地址分配
4.2 符號解析與重定位
4.3 COMMON 塊
4.4 C++相關問題
4.5 靜態庫鏈接
4.6 鏈接過程式控制制
4.7 BFD 庫
4.8 本章小結
第5章 WINDOWS PE/COFF
5.1 WINDOWS 的二進制文件格式PE/COFF 134
5.2 PE 的前身——COFF
5.3 鏈接指示信息
5.4 調試信息
5.5 大家都有符號表
5.6 WINDOWS 下的ELF——PE
5.7 本章小結
第3部分 裝載與動態鏈接
第6章 可執行文件的裝載與進程
6.1 進程虛擬地址空間
6.2 裝載的方式
6.3 從操作系統角度看可執行文件的裝載
6.4 進程虛存空間分布
6.5 LINUX 內核裝載ELF 過程簡介
6.6 WINDOWS PE 的裝載
6.7 本章小結
第7章 動態鏈接
7.1 為什麼要動態鏈接
7.2 簡單的動態鏈接例子
7.3 地址無關代碼
7.4 延遲綁定(PLT)
7.5 動態鏈接相關結構
7.6 動態鏈接的步驟和實現
7.7 顯式運行時鏈接
7.8 本章小結
第8章 LINUX 共享庫的組織
8.1 共享庫版本
8.2 符號版本
8.3 共享庫系統路徑
8.4 共享庫查找過程
8.5 環境變數
8.6 共享庫的創建和安裝
8.7 本章小結
第9章 WINDOWS 下的動態鏈接
9.1 DLL 簡介
9.2 符號導出導入表
9.3 DLL 優化
9.4 C++與動態鏈接
9.5 DLL HELL
9.6 本章小結
第4部分 庫與運行庫
第10章 內存
10.1 程序的內存布局
10.2 棧與調用慣例
10.3 堆與內存管理
10.4 本章小結
第11章 運行庫
11.1 入口函數和程序初始化
11.2 C/C++運行庫
11.3 運行庫與多線程
11.4 C++全局構造與析構
11.5 FREAD 實現
11.6 本章小結
第12章 系統調用與API
12.1 系統調用介紹
12.2 系統調用原理
12.3 WINDOWS API
12.4 本章小結
第13章 運行庫實現
13.1 C 語言運行庫
13.2 如何使用MINI CRT
13.3 C++運行庫實現
13.4 如何使用MINI CRT++
13.5 本章小結
附錄A
A.1 位元組序(BYTE ORDER)
A.2 ELF 常見段
A.3 常用開發工具命令行參考

⑥ 各位哥哥 請問電腦開機時內部程序是怎樣一步步執行的 比如先是什麼程序引導

第一步:當我們按下電源開關時,電源就開始向主板和其它設備供電,此時電壓還不太穩定,主板上的控制晶元組會向CPU發出並保持一個RESET(重置)信號,讓 CPU內部自動恢復到初始狀態,但CPU在此刻不會馬上執行指令。當晶元組檢測到電源已經開始穩定供電了(當然從不穩定到穩定的過程只是一瞬間的事情),它便撤去RESET信號(如果是手工按下計算機面板上的Reset按鈕來重啟機器,那麼松開該按鈕時晶元組就會撤去RESET信號),CPU馬上就從地址 FFFF0H處開始執行指令,從前面的介紹可知,這個地址實際上在系統BIOS的地址范圍內,無論是Award BIOS還是AMI BIOS,放在這里的只是一條跳轉指令,跳到系統BIOS中真正的啟動代碼處。

第二步:系統BIOS的啟動代碼首先要做的事情就是進行POST(Power-On Self Test,加電後自檢),POST的主要任務是檢測系統中一些關鍵設備是否存在和能否正常工作,例如內存和顯卡等設備。由於POST是最早進行的檢測過程,此時顯卡還沒有初始化,如果系統BIOS在進行POST的過程中發現了一些致命錯誤,例如沒有找到內存或者內存有問題(此時只會檢查640K常規內存),那麼系統BIOS就會直接控制喇叭發聲來報告錯誤,聲音的長短和次數代表了錯誤的類型。在正常情況下,POST過程進行得非常快,我們幾乎無法感覺到它的存在,POST結束之後就會調用其它代碼來進行更完整的硬體檢測。

第三步:接下來系統BIOS將查找顯卡的BIOS,前面說過,存放顯卡BIOS的ROM晶元的起始地址通常設在C0000H處,系統BIOS在這個地方找到顯卡 BIOS之後就調用它的初始化代碼,由顯卡BIOS來初始化顯卡,此時多數顯卡都會在屏幕上顯示出一些初始化信息,介紹生產廠商、圖形晶元類型等內容,不過這個畫面幾乎是一閃而過。系統BIOS接著會查找其它設備的BIOS程序,找到之後同樣要調用這些BIOS內部的初始化代碼來初始化相關的設備。

第四步: 查找完所有其它設備的BIOS之後,系統BIOS將顯示出它自己的啟動畫面,其中包括有系統BIOS的類型、序列號和版本號等內容。

第五步: 接著系統BIOS將檢測和顯示CPU的類型和工作頻率,然後開始測試所有的RAM,並同時在屏幕上顯示內存測試的進度,我們可以在CMOS設置中自行決定使用簡單耗時少或者詳細耗時多的測試方式。

第六步: 內存測試通過之後,系統BIOS將開始檢測系統中安裝的一些標准硬體設備,包括硬碟、CD-ROM、串口、並口、軟碟機等設備,另外絕大多數較新版本的系統BIOS在這一過程中還要自動檢測和設置內存的定時參數、硬碟參數和訪問模式等。

第七步: 標准設備檢測完畢後,系統BIOS內部的支持即插即用的代碼將開始檢測和配置系統中安裝的即插即用設備,每找到一個設備之後,系統BIOS都會在屏幕上顯示出設備的名稱和型號等信息,同時為該設備分配中斷、DMA通道和I/O埠等資源。

第八步: 到這一步為止,所有硬體都已經檢測配置完畢了,多數系統BIOS會重新清屏並在屏幕上方顯示出一個表格,其中概略地列出了系統中安裝的各種標准硬體設備,以及它們使用的資源和一些相關工作參數。

第九步: 接下來系統BIOS將更新ESCD(Extended System Configuration Data,擴展系統配置數據)。ESCD是系統BIOS用來與操作系統交換硬體配置信息的一種手段,這些數據被存放在CMOS(一小塊特殊的RAM,由主板上的電池來供電)之中。通常ESCD數據只在系統硬體配置發生改變後才會更新,所以不是每次啟動機器時我們都能夠看到"Update ESCD... Success"這樣的信息,不過,某些主板的系統BIOS在保存ESCD數據時使用了與Windows 9x不相同的數據格式,於是Windows 9x在它自己的啟動過程中會把ESCD數據修改成自己的格式,但在下一次啟動機器時,即使硬體配置沒有發生改變,系統BIOS也會把ESCD的數據格式改回來,如此循環,將會導致在每次啟動機器時,系統BIOS都要更新一遍ESCD,這就是為什麼有些機器在每次啟動時都會顯示出相關信息的原因。

第十步: ESCD更新完畢後,系統BIOS的啟動代碼將進行它的最後一項工作,即根據用戶指定的啟動順序從軟盤、硬碟或光碟機啟動。以從C盤啟動為例,系統BIOS 將讀取並執行硬碟上的主引導記錄,主引導記錄接著從分區表中找到第一個活動分區,然後讀取並執行這個活動分區的分區引導記錄,而分區引導記錄將負責讀取並執行IO.SYS,這是DOS和Windows 9x最基本的系統文件。Windows 9x的IO.SYS首先要初始化一些重要的系統數據,然後就顯示出我們熟悉的藍天白雲,在這幅畫面之下,Windows將繼續進行DOS部分和GUI(圖形用戶界面)部分的引導和初始化工作。

如果系統之中安裝有引導多種操作系統的工具軟體,通常主引導記錄將被替換成該軟體的引導代碼,這些代碼將允許用戶選擇一種操作系統,然後讀取並執行該操作系統的基本引導代碼(DOS和Windows的基本引導代碼就是分區引導記錄)。

閱讀全文

與windows程序內部運行原理相關的資料

熱點內容
如何提高網路扶貧的效果 瀏覽:654
飛車軟體文件夾叫什麼 瀏覽:242
刷ec用什麼編程器 瀏覽:765
方菱數控u盤文件格式 瀏覽:260
編程為什麼輸出兩個變數 瀏覽:490
衛星大鍋2017用升級嗎 瀏覽:113
玉米win10系統下載 瀏覽:134
fgo技能升級減cd嗎 瀏覽:129
什麼記賬app免費好用 瀏覽:441
網路檢測可以檢測到什麼 瀏覽:504
sip協議教程 瀏覽:832
編程哪裡可以接項目 瀏覽:119
孤島驚魂win10 瀏覽:246
網路HRV是什麼意思 瀏覽:918
word框中打勾 瀏覽:577
tcl筆試題java 瀏覽:467
win10怎麼登錄安全模式 瀏覽:679
除了archdaily還有什麼網站 瀏覽:567
數控下料圓形怎麼編程 瀏覽:785
安裝游戲在文件管理找不到怎麼辦 瀏覽:216

友情鏈接