程式執行 - Linux

Joe avatar
By Joe
at 2009-11-04T15:04

Table of Contents

※ 引述《littleboypis (littleboypis)》之銘言:
: ※ [本文轉錄自 LinuxDev 看板]
: 作者: littleboypis (littleboypis) 站內: LinuxDev
: 標題: [問題] 程式執行
: 時間: Wed Nov 4 13:35:05 2009
: 想請教一下 一隻程式是怎麼在OS(Linux/Windows)執行的?
: 為何gcc hello.c後 就可以下
: ./a.out
: 在OS上執行
: 如果在沒有OS上的 又是怎麼一個情況?
: 謝謝

以下是綜合我知道的一些小東西 有錯誤的話還請其他前輩指教<(_ _)>

binary的可執行檔會有他自己的格式 例如在Linux上稱為ELF executable

在windows上我不敢確定 我都叫他Win32 executable @@"

可以用$ file filename 來取得檔案的相關資訊

而作業系統會有loader 負責讀取可執行檔的內容 並載入指令(instructions)

到記憶體中 接著才會去執行他(細節我也實在不清楚orz
我認為不只是把Program Counter指過去這麼簡單)

但是在load之前 當然需要shell的幫忙 不然OS怎麼知道你要執行哪個程式?

所以簡單流程就是:user下指令 -> shell解讀指令 -> system call -> OS load->exec

如果沒有OS的 那就是這個程式本身就要可以執行 細節我也不清楚XDDD

不過硬體都會設計剛啟動的時候 會從ROM的哪個地方開始執行

而你就必須以那個地方當作開頭來寫入你的程式(的那些指令)

最少最少也需要一個jump 讓PC可以跳指到你的程式的主區段

--
以上是綜合一些以前學過或了解的東西 有錯誤的話希望各位前輩可以指正 謝謝<(_ _)>

--
Tags: Linux

All Comments

Charlie avatar
By Charlie
at 2009-11-07T10:46
簡單來講沒錯 但細節忽略太多 Win32常用的是 PE

程式執行

Emma avatar
By Emma
at 2009-11-04T13:37
※ [本文轉錄自 LinuxDev 看板] 作者: littleboypis (littleboypis) 站內: LinuxDev 標題: [問題] 程式執行 時間: Wed Nov 4 13:35:05 2009 想請教一下 一隻程式是怎麼在OS(Linux/Windows)執行的? 為何gcc ...

如何查看/sbin/init執行時show出的訊息

Linda avatar
By Linda
at 2009-11-04T10:59
當kernel 偵測硬體與載入driver後,就會去執行/sbin/init這支程式, 我想要看這一支程式執行時show在螢幕上的訊息,可是太快了, 根本來不及看, 我試過dmesg,但是dmesg只能看到 kernel 偵測硬體與載入driver那一段的訊息, init之後的訊息完全沒有, 請教各 ...

GUI Framework

Faithe avatar
By Faithe
at 2009-11-04T09:04
※ 引述《MilchFlasche (實踐才能發光)》之: : 提醒一下, : Gnome 和 KDE 應該不是 GUI framework, : 而是分別建立在 Gtk+ 和 Qt 上的兩套桌面環境吧? : (結合視窗管理器、桌面元件、控制台公用程式等等) : 所以應該不會有「直接用 Gnome 和 KDE ...

如何在UBUNTU9.10上安裝KUBUNTU9.10

Edwina avatar
By Edwina
at 2009-11-04T07:12
聽說KUBUNTU介面很美 所以想要在UBUNTU為基本的架構上安裝KUBUNTU來玩玩 GOOGLE後習得一個簡單指令可以安裝後在開機登入選單時選KDE介面登入KUBUNTU 所以我在 terminla輸入 sudo apt-get install kubuntu-desktop 執行後出現了下面這些訊息 ...

CentOS 的帳號與密碼遺失

Lucy avatar
By Lucy
at 2009-11-03T23:45
謝謝您的協助,問題解決。感恩 ※ 引述《Maxsolar.bbsatOfO.twbbs.org (Astro v.s. Geo)》之銘言: : ※ 引述《mjubgt.bbsatptt.cc (Jhubei)》之銘言: : : 手上有一台Cent OS的PC : : 因同事離職,這一台電腦就懸在一旁無法使用 ...