⑴ 軟體能不能在沒有操作系統的情況下運行
當然可以,要看是什麼樣編寫的軟體,基於最底層的硬體指令的編程,就可以脫離操作系統,獨立運行。
其實操作系統就是專職管理電腦硬體和軟體資源的大型軟體,它的本質就是軟體,他是最基本的系統軟體。操作系統以及其他軟體最終還是要以機器指令來訪問和控制各種硬體資源,有了它,編程人員就可以脫離枯燥的對底層硬體的編碼。但是如果一個高級程序員,對系統底層硬體指令(這里可以是很多硬體平台)很熟悉,那麼他就可以脫離操作系統開發一個基於底層硬體操作的應用軟體。
其實現在很多嵌入式系統,有使用嵌入式操作系統的,也有直接基於硬體開發應用程序的,舉個例子,單片機應用程序的開發很多
就是直接編程,沒有操作系統,因為單片機的硬體資源有限,操作系統也要佔用一定的系統資源,而且要實現的功能也簡單,沒必要非要操作系統(單片機也可以開發操作系統,如uCOSII)。
⑵ 如何使用GCC編譯出不依賴操作系統的二進制目標
完全不依賴平台,是不可能的。。。。。。。。起碼要在相應的平台中編譯。。。。。。。。是否依賴平台,要看引用的庫。。。。。
⑶ 在早期沒有操作系統的前提下 匯編語言的編譯如何完成 我是說匯編語言剛剛誕生四時
人工查表,找出機器碼,再用開關輸入。
http://hi..com/do_sermon/item/ff7659828b91a7caee083d74
⑷ 如何在沒有操作系統的前提下編寫這個程序。
首先,windows不是唯一的操作系統,更不是最早的操作系統(dos也不是)。1969年,UNIX操作系統就誕生了。
沒有操作系統的計算機,需要用其他的辦法(如機械的)操縱計算機的輸入輸出,我了解的是早期的計算機人員用過紙帶。這時是有程序的概念的。只是設計程序的和跑程序的人的不一樣的,因為跑程序的人需要懂得他要使用的龐然大物是這樣工作的(這可不容易)。FORTRAN,一門用於科學計算的程序設計語言,就是在早期誕生的。
UNIX,是AT&T的兩個大牛寫的,最初是用B語言,後來使用C(一種移植性很好的語言)重寫了這個操作系統。這個操作系統簡潔高效,在實驗室逐漸流行,後來它的源代碼又免費的提供給大學。總之,UNIX逐漸流行,許多人也為它寫一些實用的工具(程序)。
1970年代吧,那是是沒有圖形界面的。人機交互的界面稱為shell,shell是一個命令解釋器,負責把人輸入的人可讀的命令(如復制是cp)翻譯給機器。如果你使用linux(它是Unix的克隆),你就很容易理解這一點。Linux有著強大的命令行,所以很多老手會經常在命令行下工作。(這樣高效)。編程自然不在話下,你可以用命令編輯代碼,編譯連接,調試,運行。。。
我截個終端編輯代碼的圖。更多內容請參考計算機、Unix歷史介紹。
⑸ c語言怎麼編寫脫離操作系統的軟體
這有點類似雞和蛋的關系。假定最開始有個匯編的編譯器,C語言之父用它開發了個最小的C語言編譯器,然後就可以用這最簡單的C語言開發復雜一點的C語言編譯器,這樣迭代開發。到了Linus的時候,GNU的創始人開發了gcc編譯器。已經是成熟的了。
⑹ 如何編寫不依賴操作系統的程序。就是裸機上可以運行的。匯編或c語言生成文件都是exe啊只能在win下
回答這個問題會在操作系統的定義上發生爭論:如果說windows,linux,unix......這些才算操作系統的話,那麼簡單, 首先你向各個硬體廠商拿到各個介面(如果你本身對這些硬體非常了解, 那麼自己寫硬體介面), 然後你在你的程序上直接對各個硬體介面進行直接控制; 而那些所謂的標准庫, 系統庫都用不到了;;;;
如果說操作系統的定義是: 硬體的整合; 那麼你程序本身就是自帶操作系統了;
要知道BOIS本身就是操作系統的一種(basic input output system); 所以關鍵是怎麼定義操作系統;;;;;
樓上那個回答是誤人子弟的,不知道為什麼會變為最佳答案, 所以我才回答;
⑺ 不同的操作系統如何編譯一段軟體的代碼
首先,准備好命令行和編輯器。針對主流操作系統分別做簡單的解釋:Linux:已經具備了命令行和一個叫GCC 的編輯器。在命令行中輸入gcc ,如果「command not found」,那麼請安裝GCC。Mac OS X:命令行是Terminal,位於Applications/Utilities。你需要下載XCode ,它包含Apple的編輯器。Windows:微軟在免費下載的Visual Studio Express中提供了編輯器,但是Cygwin 界面更友好。安裝中要注意的是:要選擇「Devel」部分中所有的安裝包。下載:基本上所有的源數據包都有.tgz或者.tar.gz的後綴,有文件名和版本號,比如example-3.2.8.tar.gz。建立一個名為「source」或者「build」的目錄,下載並放在該目錄中。解壓縮:從命令行進入工作目錄(用cd命令):cd source 最快的方法是:tar -xzvf example-3.2.8.tar.gz這會將所有的源代碼解壓到一個新的子目錄中,而且文件名跟應用是一樣的。進入目錄只需要敲:cd example-3.2.8讀文檔:在代碼的文件包中會有像README 和INSTALL之類的文件,一定要讀。你也可以使用less 命令在命令行中讀取:less INSTALL 或者直接用合適的格式打開它們,它們會告訴你要安裝哪些包、安裝指南、注意問題等。Building:雖然各有不同,但大抵方法如下:輸入:./configure 運行配置工具會告訴你缺少哪些軟體和重要的文件的位置。有時候你需要自己指明特定文件在你計算機上的位置,比如:./configure --ssl-dir=/usr/local/include Configuration 過程要用幾分鍾,當它完畢的時候,你就可以編譯了。如果出現錯誤,參考下面的Troubleshooting。編譯請輸入:make一切順利就開始編譯了。編譯會佔用一段時間而且當運行時會佔用你電腦的所有進程。不要擔心,當編譯結束的時候,如果你仍然沒有看到已錯誤,那你已經搞定了。剩下要做的只是將不同的文件放到文件系統中:make installTroubleshooting: 如果以上的步驟有遇到錯誤,有方法讓你知道問題所在。確認你是否嚴格地按要求執行以上步驟。【
⑻ C++編譯的程序怎樣才能在無系統環境下運行
當然可以了,AVR單片機的程序就可以用C++寫,當然軟體要用AVR studio,C++只是一種語言,他並不規定環境,你想在裸機環境下運行,前提要有一個支持某型號CPU的編譯器,不過裸機程序有點麻煩的,你必須知道這個CPU的基本構造,運行方式,以及外部電路有很深的了解才行,你要為你的電腦寫個裸機程序,你就必須連顯卡構造,主板構造,音效卡構造,內存卡構造,鍵盤碼,都需要知道,至於滑鼠,你就不能用了,因為沒有系統。。。。
電腦的CPU自然不會有支持C++裸機程序的編譯器,因為能裝系統,你不裝這是一種資源浪費,你讓一個高性能CPU全部精力去執行你一個1+1=2的小程序,不覺得大材小用嗎???無系統程序通常只存在三種,一種是低性能處理器,比如單片機,一種是高運算要求的處理器,比如DSP的程序,還有一種就是系統程序。。。。
⑼ 沒有操作系統的情況下,是否可以運行匯編器高級語言編譯器可否脫離操作系統運行
理論上應該是可以的。
操作系統也是程序。
匯編器、編譯器也可以運行在無操作系統狀態。
但不是現在的VC、BCB之類的。因為這些是連接成Windows、linux....平台的程序。
所以可以無操作系統運行的編譯器起碼要有自己的引導程序、文件管理器之類的功能。那也相當於一個操作系統了。
無操作系統的程序。自己本身就應該是一個操作系統了吧。
以上純屬我的理解。如有錯誤請指正。
⑽ 怎麼把同一個代碼編譯成不同操作系統下可運行的程序
匯編不行的。Windows下面的匯編是intel風格的,而linux的匯編是AT&T風格的,不一樣。實際上,匯編的移植性是非常差的。
這個和編譯器有關,而且還和你的代碼的編寫語言有關。一般來說,C語言移植性較好。Windows上運行的程序一般都會調用windows下的API、DLL等,所以推薦選擇Windows下的編譯器,比如說visual studio,turbo c等。linux下面也是這樣的啊,你用gcc編譯吧。
32位和64位。gcc有個-m64選項,用了這個選項就可以編出64位的程序。當然你還需要64位的系統庫。Windows下面也有相應的64位程序編譯器。
在這里要說明的是:如果本機是32位的,那麼編譯32位程序叫本機編譯,如果用32位機器編譯64位程序或者用64位機器編譯32位程序,那麼很明顯編譯好的程序不能在本機運行(最多是兼容運行),這種編譯方式叫做交叉編譯。
兄弟,建議你多看看編譯器、交叉編譯方面的材料。相信會有很大幫助的。