linux速成班
❶ 嵌入式linux怎麼學
作為一個新人,怎樣學習嵌入式Linux?被問過太多次,特寫這篇文章來回答一下。
在學習嵌入式Linux之前,肯定要有c語言基礎。匯編基礎有沒有無所謂(就那麼幾條匯編指令,用到了一看就會)。
C語言要學到什麼程度呢?越熟當然越好,不熟的話也要具備基本技能。比如寫一個數組排序、輸入數字求和什麼的。
學C語言唯一的方法是多寫程序多練習,編譯出錯沒關系,自己去解決;執行出錯沒關系,自己去分析。以前我是用
VC來練習C語言的,經常去嘗試著寫一些C語言競賽的題目。它們是純C、純數學、純邏輯的題目,不涉及界面這些東西,
很適合煅煉你的編程能力。
回到主題,首先我們要明白你的目的是什麼,大概來說所謂嵌入式Linux可以分為兩部分:底層系統、應用開發。
如果你是想做應用開發,那麼你去把C語言、數據結構、JAVA什麼的學好吧。嵌入式應用開發和PC上的
應用開發並沒有什麼特別要注意的。也許你說在嵌入式上要做些優化,是的,要優化,但是未經優化的程序
和PC上的程序開發沒什麼差別。另外,當你有能力去優化時,你已經不用來問這個問題了。具體到某個例子,
比如說開發界面,在PC上我們用VC;在嵌入式Linux里也許我們用QT也許用Android,這個時候你應該去學學QT、
Android的編程。但是基礎還是C或JAVA,在此基礎上去熟悉它們的介面。你學過VC的話,也是要花時間去了解
那些類、控制項的。
如果你的目的是想學習底層系統,這是我的專長,倒是可以說一點。
在回答這個問題之前,我先回答:不少人問我,到底是學驅動還是學應用?
我只能說憑興趣,並且驅動和應用並不是截然分開的
1. 我們說的驅動,其實並不局限於硬體的操作,還有操作系統的原理、進程的休眠喚醒調度等概念。
想寫出一個好的應用,想比較好的解決應用碰到的問題,這些知識你應該懂
2. 做應用門檻低,特別是現在的ANDROID,純JAVA。做應用的發展路徑個人認為就是業務純熟。
比如在通信行業、IPTV行業、手機行業,你了解行業的需求。所以,當領導的人,多是做應用的。
3. 做驅動,其實我不想稱為「做驅動」,而是想稱為「做底層系統」,做好了這是通殺各行業。我工作幾年,
做過手機、IPTV、會議電視,但是這些產品對我毫無差別,因為我只做底層。他們的業務跟我沒關系。
當應用出現問題,他們解決不了時,我就會從內核角度給他們出主意,給他們提供工具。
做底層的發展方向,個人認為是技術專家。
4. 其實,做底層還是做應用,之間並沒有一個界線,有底層經驗,再去做應用,你會感覺很踏實。
有了業務經驗,你再了解一下底層,很快就可以組成一個團隊。
回到怎麼學的問題上。嵌入式Linux底層系統包含哪些東西?不要急,舉一個例子你就知道了。
1. 電腦一開機,那些界面是誰顯示的?是BIOS,它做什麼?一些自檢,然後從硬碟上讀入windows,並啟動它。
類似的,這個BIOS對應於嵌入式Linux里的bootloader。這個bootloader要去Flash上讀入Linux內核,並啟動它。
2. 啟動windows的目的是什麼?當然是上網聊天什麼的了。這些上網、聊天工具在哪?
在C盤、D盤上。所以, windows要先識別出C盤、D盤。在Linux下我們稱為根文件系統。
3. windows能識別出C盤、D盤,那麼肯定能讀寫硬碟才行。這涉及的東西稱為驅動程序。當然不僅僅是硬碟,還有網卡、USB等等。
嵌入式Linux能從Flash上讀出並執行應用程序,肯定也得有Flash的驅動程序啊,當然也不僅僅是Flash。
先說到這里吧,嵌入式LINUX里含有bootloader, 內核, 驅動程序、根文件系統這4大塊。
一、bootloader:
它就是一個稍微復雜的裸板程序。但是要把這裸板程序看懂寫好一點都不容易。Windows下好用的工具弱化了我們的編程能力。
很多人一玩嵌入式就用ADS、KEIL。你能回答這幾個問題嗎?
1. 一上電,CPU從哪裡取指令執行?
答:一般從Flash上指令。
2. 但是Flash一般是只能讀不能直接寫的,如果我用到全局變數,這些全局變數在哪裡?
答:全局變數應該在內存里
3. 那麼誰把全局變數放到內存里去?
答:長期用ADS、KEIL的朋友,你能回答嗎?這需要"重定位"。在ADS或KEIL里,重定位的代碼是製作這些工具的公司幫你寫好了。
你可曾去閱讀過?
4. 內存那麼大,我怎麼知道把"原來存在Flash上的內容"讀到內存的"哪個地址去"?
答:這個地址用"鏈接腳本"決定,在ADS里有scatter文件,KEIL里也有類似的文件。但是,你去研究過嗎?
5. 你說重定位是把程序從Flash復制到內存,那麼這個程序可以讀Flash啊?
答:是的,要能操作Flash。當然不僅僅是這些,還有設置時鍾讓系統運行得更快等等。
先自問自答到這里吧,bootloader這一個裸板程序,其實有3部分要點:
1. 對硬體的操作
2. 對ARM體系處理器的了解
3. 程序的基本概念:重定位、棧、代碼段數據段BSS段什麼的。
對硬體的操作,需要看原理圖、晶元手冊。這需要一定的硬體知識,不求你能設計硬體,但是至少能看懂; 不求能看懂模擬電路,
但是要能看懂數字電路。這方面的能力我是在學校里學到的,微機原理、數字電路這2本書(書名忘了)就足夠了。但是我懷疑你有無耐
心把這2本書看完。我不知道現在有沒有更快捷的書。想速成的話,就先放掉這塊吧,不懂就問GOOGLE、發貼。
另外,晶元手冊是肯定要讀的,別去找中文的,就看英文的。開始是非常痛苦,以後就會發現那些語法、詞彙一旦熟悉後,
讀任何晶元手冊都很容易。
對ARM體系處理器的了解, 看杜春蕾的<ARM體系架構與編程>吧,裡面講有匯編指令,有異常模式、MMU等。也就這3塊內容需要你了解。
程序的基本概念,王道當然是去看編譯原理了。可惜,這類書絕對是天書級別的。勸你若非超級天才還是別去看了。就看我寫的
<嵌入式Linux應用開發完全手冊>和第1期視頻吧,別擔心,不用花錢。照著視頻把硬體相關的實驗做了,這些概念就清楚了。我還沒有
發現第2套講這些概念的書或視頻,允許我盲目吹噓一回。
對於bootloader,我學習時是先看了<ARM體系架構與編程>,然後自己寫程序把各個硬體的實驗都做了一遍,比如GPIO、時鍾、
SDRAM、UART、NAND。把它們都弄清楚了,組台在一起就很容易看懂u-boot了
總結一下,看懂硬體原理圖、看晶元手冊,這需要你自己去找資料。剩下的,就按<嵌入式Linux應用開發完全手冊>和第1期視頻的章
節目錄去學習吧。
二、內核:
想速成的人,先跨過內核的學習,直接學習怎麼寫驅動。
想成為高手,內核必須深刻了解。注意,我說的是了解,我沒奢望去寫出一個內核。
要對裡面的調度機制、內存管理機制、文件管理機制等等有所了解。
推薦兩本書:
1. 通讀<linux內核完全注釋>,請看薄的那本(浮燥的社會講求速度, 呵),
2. 選讀<Linux內核情景分析>, 想了解哪一塊就讀哪一節
三、驅動:
驅動包含兩部分:硬體本身的操作、驅動程序的框架。
又是硬體,還是要看得懂原理圖、讀得懂晶元手冊,多練吧。
說到驅動框架,有一些書介紹一下。LDD3,即<Linux設備驅動>,老外寫的那本,裡面介紹了不少概念,值得一讀。但是,它的作用
也就限於介紹概念了。我基本上是入門之前用它來熟悉一下概念,入門後就扔掉了。
驅動方面比較全的介紹,應該是宋寶華的<linux設備驅動開發詳解>了,老實說我只看過目錄,有不少人說好,這里推薦一下。
要想深入了解某一塊,<Linux內核情景分析>絕對是超5星級推薦。你別指望把它讀完,1800多頁,上下兩冊呢。我是某一塊不清楚
時,就去翻一下它。任何一部分,這書都可以講上2、3百頁,非常詳細。並且是以某個目標來帶你分析內核源碼。它以linux 2.4為例,
但是原理相通,同樣適用於其它版本的linux。
還有沒有其他介紹?呵呵,當然有了,韋東山Linux視頻第2期。<嵌入式Linux應用開發完全手冊>里對驅動講得不多,不夠深入。
於是我錄制了這期視頻。不僅僅教你怎麼寫怎麼改驅動,還教你為什麼這樣寫這樣改驅動。
每一個驅動都是現場編寫:
1. 用繪圖板畫圖講解──相當於學校里老師在黑板上畫圖講解,很直觀
絕對不是對著PPT念。
2. 用source insight當場寫程序,從第1行開始寫,每一課都是這樣。我講了20多個驅動,就寫了20多個程序。
3. 寫完就編譯、測試。
4. 很全面,字元設備驅動、塊設備、網卡驅動3大類齊全,硬體介紹、驅動框架分析、測試3大類齊全。
培訓機構里教的內容,遠不及這期視頻豐富。我在多個培訓機構講過課,從沒看到哪個老師敢每一課都當場講解當場編寫代碼
當場測試,除我之外!也沒看到哪個培訓機構講完這些內容──因為時間不夠,講完起碼要一個月,但是這部分基本只有2周授課時間。
把你手上的開發板所涉及的硬體,都去嘗試寫一個驅動吧。有問題就先"痛苦地思考",思考的過程中你會把很多不相關的知識
串聯起來,最終貫通。
四、根文件系統:
大家有沒有想過這2個問題:
1. 對於Linux做出來的產品,有些用作監控、有些做手機、有些做平板。那麼內核啟動後,掛載根文件系統後,應該啟動哪一個應用程序呢?
答:內核不知道也不管應該啟動哪一個用戶程序。它只啟動init這一個應用程序,它對應/sbin/init。
顯然,這個應用程序就要讀取配置文件,根據配置文件去啟動用戶程序(監控、手冊界面、平板界面等等)
這個問題提示我們,文件系統的內容是有一些約定的,比如要有/sbin/init,要有配置文件
2. 你寫的hello,world程序,有沒有想過裡面用到的printf是誰實現的?
答:這個函數不是你實現的,是庫函數實現的。它運行時,得找到庫。
這個問題提示我們,文件系統里還要有庫。
簡單的自問自答到這里,要想深入了解,可以看一下busybox的init.c,就可以知道init進程做的事情了。
當然,也可以看<嵌入式Linux應用開發完全手冊>里構建根文件系統那章。
說一下我的學習經歷吧。
1. 我在學校時讀的是物理電子專業,其實課程里沒有教怎麼設計電路,只是教了些電子電路方面的知識。PCB的設計
是在實驗室里自學的,只設計過2層板,現在忘記得差不多了。但是保留了看原理圖、看晶元手冊的能力。
2. 選修了軟體學位,對軟體設計挺感興趣,但是也只是學了C語言、資料庫而已。憑著興趣做了不少競賽題。沒能力去
參加競賽,但是把C語言練得很扎實。
3. 在實驗室、在第1家公司,就是設計些簡單的PCI卡,寫一下windows的驅動程序
4. 在第2家公司,用51單片機做車載電話,開始走上純軟體的道路。
5. 開始感到單片機的不足,辭職半年閉門學Linux,從red hat怎麼操作開始。步驟就是先看<ARM體系架構與編程>,
再自己寫裸板程序操作硬體,接著到分析u-boot。同時看<linux內核完全注釋>,對LINUX框架有所了解。
在寫裸板時,建議各位加強對中斷的理解,內核就是用中斷來完成各種功能的。
6. 分析完u-boot,就開始進行簡單的驅動編程了,這時候,能力還很弱。
7. 開始去中興上班,工作2年,編寫各類驅動、解決各類問題(驅動問題、幫助定位應用問題),能力得到煅煉。
總結一下:
1. 硬體方面的書: 微機原理、數字電路,高校里的教材。畢業多年,忘名了。
2. Linux方面的書:
<ARM體系架構與編程>
<嵌入式Linux應用開發完全手冊>
<Linux設備驅動>,老外寫的那本
<linux設備驅動開發詳解>
<linux內核完全注釋>
<Linux內核情景分析>
3. 視頻:
韋東山Linux視頻第1期(基於S3C2440錄制): ARM實驗,u-boot,文件系統,初級驅動
韋東山Linux視頻第1期(基於S3C6410錄制): 裸板程序
韋東山Linux視頻第2期: 高級驅動
❷ linux操作系統與windows操作系統相比,linux操作系統有哪些優點
linux操作系統與windows操作系統相比,linux操作系統有哪些優點
第一就是開源了,這點對於搞軟體開發的很給力 第二就是免費得 並且版本多 選擇性大 第三就是體積小 佔用內存小 第四就是安全(超級用戶的許可權很大) 第五就是穩定性 一般大型的伺服器 工作站都是用linux或unix 等等
更多關於Linux的系統,請關注《Linux就該這么學》這本書
簡述Linux操作系統與Windows操作系統相比具有哪些優點?(至少4點)
Linux速度比較快,安全性比windows好
但是有很多軟體只能在windows里運行
與Linux兼容的軟體正在開發中.
Linux適用在網路方面.
Linux以它的高效性和靈活性著稱。它能夠在 PC計算機上實現全部的 Unix特性,具有多任務、多用戶的能力。 Linux是在 GNU公共許可許可權下免費獲得的,是一個符合 POSIX標準的操作系統。 Linux操作系統軟體包不僅包括完整的 Linux操作系統,而且還包括了文本編輯器、高級語言編譯器等應用軟體。它還包括帶有多個窗口管理器的 X-Windows圖形用戶界面,如同我們使用 Windows NT一樣,允許我們使用窗口、圖標和菜單對系統進行操作
Linux操作系統和windows操作系統相比有什麼優點
開源,自由,透明,簡單!
Linux操作系統 與windows操作系統有何區別
Linux和Windows的區別
和Linux 一樣,Windows系列是完全的多任務操作系統。它們支持同樣的用戶介面、網路和安全性。但是,Linux和Windows的真正區別在於,Linux 事實上是Unix的一種版本,而且來自Unix的貢獻非常巨大。是什麼使得Unix如此重要?不僅在於對多用戶機器來說,Unix是最流行的操作系統,而且在於它是免費軟體的基礎。在Inter上,大量免費軟體都是針對Unix系統編寫的。由於有眾多的Unix廠商,所以Unix也有許多實現方法。沒有一個單獨的組織負責Unix的分發。現在,存在一股巨大的力量推動Unix社團以開放系統的形式走向標准化。另一方面Windows系列是專用系統,由開發操作系統的公司控制介面和設計。在這個意義上這種公司利潤很高,因為它對程序設計和用戶介面設計建立了嚴格的標准,和那些開放系統社團完全不一樣。一些組織正在試圖完成標准化Unix程序設計介面的任務。特別要指出的是,Linux完全兼容POSIX.1標准。
安全問題對於IT管理員來說是需要長期關注的。主管們需要一套框架來對操作系統的安全性進行合理的評估,包括:基本安全、網路安全和協議,應用協議、發布與操作、確信度、可信計算、開放標准。在本文中,我們將按照這七個類別比較微軟Windows和Linux的安全性。最終的定性結論是:目前為止,Linux提供了相對於Windows更好的安全性能,只有一個方面例外(確信度)。
無論按照什麼標准對Windows和Linux進行評估,都存在一定的問題:每個操作系統都不止一個版本。微軟的操作系統有Windows98、 Windows NT、 Windows 2000、 Windows 2003 Server和Windows CE,而Linux的發行版由於內核(基於2.2、2.4、2.6)的不同和軟體包的不同也有較大的差異。我們本文所使用的操作系統,都是目前的技術而不是那些"古老"的解決方案。
用戶需要記住:Linux和Windows在設計上就存在哲學性的區別。Windows操作系統傾向於將更多的功能集成到操作系統內部,並將程序與內核相結合;而Linux不同於Windows,它的內核空間與用戶空間有明顯的界限。根據設計架構的不同,兩者都可以使操作系統更加安全。
Linux和Windows安全性的基本改變
對於用戶來說,Linux和Windows的不斷更新引發了兩者之間的競爭。用戶可以有自己喜歡的系統,同時也在關注競爭的發展。微軟的主動性似乎更高一些――這是由於業界"冷嘲熱諷"的"激勵"與Linux的不斷發展。微軟將在下幾個月對Windows安全進行改觀,屆時微軟會發布Windows XP的WindowsXP Service Pack 2。這一服務包增強了Windows的安全性,關閉了原先默認開放的許多服務,也提供了新的補丁管理工具,例如:為了避免受到過多無用的信息,警告服務和信使服務都被關閉。大多數情況下,關閉這些特性對於增強系統安全性是有好處的,不過很難在安全性與軟體的功能性、靈活性之間作出折衷。
最顯著的表現是:微軟更加關注改進可用性的同時增強系統的安全性。比如:2003年許多針對微軟的漏洞攻擊程序都使用可執行文件作為電子郵件的附件(例如MyDoom)。Service Pack2包括一個附件執行服務,為Outlook/Exchange、 Windows Messenger和Inter Explorer提供了統一的環境。這樣就能降低用戶運行可執行文件時感染病毒或者蠕蟲的威脅性。另外,禁止數據頁的可執行性也會限制潛在的緩沖區溢出的威脅。不過,微軟在WindowsXP Service Pack 2中並沒有修改Windows有問題的架構以及安全傳輸的部分,而是將這部分重擔交給了用戶。
微軟的重點顯然是支持應用程序的安全性。WindowsXP Service Pack 2中增強的許多方面都是以Outlook/Exchange和Inter Explorer作為對象的。例如:Inter Explorer中有一個智能的MIME類型檢查,會對目標的內容類型進行檢查,用戶可以獲悉該內容中是否存在潛在的有害程序。不過這一軟體是不是能將病毒與同事的電子數據表區分開來呢?
WindowsXP Service Pack 2的另一個新特性是能夠卸載瀏覽器的多餘插件,這需要終端用戶檢查並判斷需要卸載哪些插件。Outlook/Exchange可以預覽電子郵件消息,因此用戶可以在打開之前就將電子郵件刪除。另一個應用安全的增強,防火牆在網路協議棧之前啟動。對於軟體開發者來說,遠方過程調用中許可權的改變,使得安全性差的代碼難以工作正常。
WindowsXP Service Pack 2也為Windows用戶提供了許多華麗的新特性,但是問題仍然存在:這些特性會不會對管理員甚至是終端用戶造成負擔?是不是在增加了Windows操作系統代碼安全性的同時讓系統變得更加復雜?
Linux 與 Windows 的不同
雖然有一些類似之處,但Windows和Linux的工作方式還是存在一些根本的區別。這些區別只有在您對兩者都很熟悉以後才能體會到,但它們卻是 Linux 思想的核心。
Linux 的應用目標是網路而不是列印
Windows最初出現的時候,這個世界還是一個紙張的世界。Windows的偉大成就之一在於您的工作成果可以方便地看到並列印出來。這樣一個開端影響了 Windows 的後期發展。
同樣,Linux 也受到了其起源的影響。Linux 的設計定位於網路操作系統。它的設計靈感來自於 Unix 操作系統,因此它的命令的設計比較簡單,或者說是比較簡潔。由於純文本可以非常好地跨網路工作,所以 Linux 配置文件和數據都以文本為基礎。
對那些熟悉圖形環境的人來說,Linux伺服器初看可能比較原始。但是Linux開發更多關注的是它的內在功能而不是表面上的東西。即使是在純文本的環境中,Linux同樣擁有非常先進的網路、腳本和安全能力。執行一些任務所需的某些表面上看起來比較奇怪的步驟是令人費解的,除非您認識到 Linux 是期望在網路上與其他 Linux系統協同執行這些任務。Linux的自動執行能力也很強,只需要設計批處理文件就可以讓系統自動完成非常詳細的任務。Linux 的這種能力來自於其基於文本的本質。
可選的 GUI
Linux有圖形組件。Linux支持高端的圖形適配器和顯示器,完全勝任圖形相關的工作。現在,許多數字效果藝術家在Linux工作站上來進行他們的設計工作,而以前這些工作需要使用IRIX系統來完成。但是,圖形環境並沒有集成到 Linux 中,而是運行於系統之上的單獨一層。這意味著您可以只運行 GUI,或者在需要時才運行 GUI。如果您的系統主要任務是提供Web應用,那麼您可以停掉圖形界面,而將其所用的內存和CPU資源用於您的服務。如果您需要在 GUI 環境下做一些工作,可以再打開它,工作完成後再將其關閉。
Linux 有圖形化的管理工具,以及日常辦公的工具,比如電子郵件、網路瀏覽器和文檔處理工具等。不過,在 Linux 中,圖形化的管理工具通常是控制台 (命令行) 工具的擴展。也就是說,用圖形化工具能完成的所有工作,用控制台命令同樣可以完成。同樣,使用圖形化工具並不妨礙您對配置文件進行手工修改。其實際意義可能並不是特別顯而易見,但是,如果在圖形化管理工具中所做的任何工作都可以以命令行的方式完成,這就表示那些工作也可以由一個腳本來實現。腳本化的命令可以成為自動執行的任務。Linux 同時支持這兩種方式,並不要求您只用文本或者只用 GUI。您可以根據您的需要選擇最好的方法。
Linux 中的配置文件是人類可讀的文本文件,這與過去的 Windows 中的 INI 文件類似,但與 Windows 的注冊表機制在思路上有本質的區別。每一個應用程序都有其自己的配置文件,而且通常不與其他的配置文件放在一起。不過,大部分的配置文件都存放於一個目錄樹 (/etc) 下的單個地方,所以看起來它們在邏輯上是在一起。文本文件的配置方式使得不通過特殊的系統工具就可以完成配置文件的備份、檢查和編輯工作。
文件名擴展
Linux不使用文件名擴展來識別文件的類型。相反,Linux根據文件的頭內容來識別其類型。為了提高人類可讀性您仍可以使用文件名擴展,但這對 Linux 系統來說沒有任何作用。不過,有一些應用程序,比如 Web 伺服器,可能使用命名約定來識別文件類型,但這只是特定的應用程序的要求而不是 Linux 系統本身的要求。
Linux通過文件訪問許可權來判斷文件是否為可執行文件。任何一個文件都可以賦予可執行許可權,這樣程序和腳本的創建者或管理員可以將它們識別為可執行文件。這樣做有利於安全。保存到系統上的可執行的文件不能自動執行,這樣就可以防止許多腳本病毒。
重新引導是最後的手段
如果您使用Windows已經很長時間了,您可能已經習慣出於各種原因(從軟體安裝到糾正服務故障)而重新引導系統。在Linux思想中您的這一習慣需要改變。Linux在本質上更遵循「牛頓運動定律」。一旦開始運行,它將保持運行狀態,直到受到外來因素的影響,比如硬體的故障。實際上,Linux系統的設計使得應用程序不會導致內核的崩潰,因此不必經常重新引導(與Windows系統的設計相對而言)。所以除了Linux內核之外,其他軟體的安裝、啟動、停止和重新配置都不用重新引導系統。
如果您確實重新引導了 Linux 系統,問題很可能得不到解決,而且還會使問題更加惡化。學習並掌握 Linux 服務和運行級別是成功解決問題的關鍵。學習 Linux 最困難的就是克服重新引導系統的習慣。
另外,您可以遠程地完成Linux中的很多工作。只要有一些基本的網路服務在運行,您就可以進入到那個系統。而且,如果系統中一個特定的服務出現了問題,您可以在進行故障診斷的同時讓其他服務繼續運行。當您在一個系統上同時運行多個服務的時候,這種管理方式非常重要。
命令區分大小寫
所有的 Linux 命令和選項都區分大小寫。例如, -R 與 -r 不同,會去做不同的事情。控制台命令幾乎都是小寫的。我們將在「 第 2 部分. 控制台速成班」中對命令進行更詳細的介紹。
我應如何定位 Linux?
從管理 Windows 到管理 Linux 的轉變是很麻煩的。不過,作為一個 Windows 管理員,您有自己的優勢。您對計算的工作方式的理解依然可用。能否成為一個成功的 Linux 管理員將取決於您對兩者區別的認識以及操作習慣的調整。
Linux相對於Windows的許多變化都是有益的。空閑的GUI的開銷被歸還給服務。任務可以腳本化並可以自動執行。配置文件基於文本並且人類可讀。在大多數情況下不必重新引導系統。實際上,您應該抑制重新引導系統的沖動。
Linux操作系統比Windows操作系統的好處
我列下提綱,你自己找資料做下擴充
1.開源代碼,質量有保證,安全性高,從破解xp和破解linux難度上就能看出來(辯論時這個是重點,推薦看看開源聖經《大教堂與集市》)
2.自由,可自己定製,從100多K到幾十個G的linux都存在
3.linux的網路性能好,誕生於網路也依託網路發展,適應未來的發展
4.文件系統種類多且優秀,fat和ntfs的性能實在是太差了,碎片多,速度慢
5.內存管理和調度方式優秀,有效利用一切硬體資源,即使cpu佔有100%也不會卡
6.用戶管理嚴格,安全性好,病毒運行時如果不能獲得root許可權的話,能產生的危害有限
7.linux是真正的多用戶多線程,而windows是單用戶偽多線程
8.模塊化,舉個例子,linux的桌面環境產生問題,就kill掉,在字元界面下操作,而且有幾十種桌面環境可選
windows的桌面環境是編譯進內核的,雖然這樣能提高響應速度,但是一旦卡住了就只能強行關機
linux的驅動安裝出錯不影響其他模塊,windows就藍屏了
9.linux支持世界上幾乎所有的cpu架構(大約有二十種常用的),而win僅支持x86,wince僅支持arm、ppc
10.成本低,只要自己有技術連服務費都不用花
11.負載量大,linux的伺服器常常一年都不用關機
運算速度快,很多公司都是用linux做運算單元,用員工的機器登錄到該伺服器,運算工作交給伺服器
12.發展速度快,91年0.01版,94年1.00,現在已經遍布世界每個角落了
Linux操作系統和Windows操作系統的區別
windows是基於nt內核的操作系統linux有幾千個發行版,都是基於linux內核linux和unix使用同樣的圖形界面,有幾十種,gnome、kde、*box、*wm。。。macos是bsd的一個變種,bsd是unix的一種macos的圖形界面是早期unix使用的,後來unix放棄它了,反而被蘋果開發對普通用戶來講,使用起來windows簡單,軟體豐富linux可定製性好,安全穩定,速度快,軟體豐富、但是不太好用,很多優秀軟體沒有名氣macos外表華麗,安全性不錯,速度一般
Linux是一個以開發者為中心的操作系統,Windows是以消費者為中心的操作系統。這是最根本的區別,為什麼這么說,因為功能和設計上還有用戶體驗上就充分體現了這一點,例如在windows下,想要什麼就有什麼(因為windows用的范圍廣,所以為用戶所用的軟體早已經有人給寫好了),而在linux下卻不一定是這樣,有些東西還得自己折騰。
其次就是寫系統用的語言不一樣,還有開源和閉源的和復雜程度的區別,這兩點也是不一樣的。
LINUX操作系統和WINDOWS操作系統的區別?
1.linux是開源的,windows不開源
2.linux也有圖形界面的,但是圖形窗口相當於運行的軟體,與底層代碼的分界相對明顯,而windows很多都是寫到內核中的。相對來說集成性高,可讀性非常低。代碼很多都是編譯過的,又不開源,所以能玩到注冊表差不多就是極限了。
3。linux的開放性使得我們可以接觸到所有的一切,從內核編譯,腳本編寫,配置更改,載入伺服器等等,但是圖形方面的功能做得比windows還是差很多的。
4。windows是賺錢的,公司經營,僱人寫代碼。linux更多的是大家在論壇上貢獻的,免費,自由。所以windows對於滿足人們一般人的需求還是比較好的,對於要理解電腦運作還是玩linux好
電腦Windows操作系統於Linux操作系統,游戲
linux不能原生的支持windows游戲,但也不是完全不能玩,方法主要有:
在linux下利用wine程序模擬運行windows可執行程序;
安裝虛擬機,在虛擬機中運行xp,再在xp下運行windows游戲。
有人成功在linux下運行了cs、wow和war3等大型游戲. 華夏聯盟論壇信息資源分享
❸ 誰知道linux操作系統和 windows 的優點 缺點 區別
分類: 電腦/網路 >> 電腦常識
問題描述:
誰知道linux操作系統和 windows 的優點 缺點 區別 ??
解析:
1. Linux的操作比較復雜,windows的比較簡單.
Linux速度比較快,安全性比windows好
但是有很多軟體只能在windows里運行
與Linux兼容的軟體正在開發中.
Linux適用在網路方面.
2. 什麼是Linux?
簡單地說, Linux是一套免費使用和自由傳播的類 Unix操作系統,它主要用於基
於 Intel x86系列 CPU的計算機上。這個系統是由世界各地的成千上萬的程序員
設計和實現的。其目的是建立不受任何商品化軟體的版權制約的、全世界都能自
由使用的 Unix兼容產品。 Linux的出現,最早開始於一位名叫 Linus Torvalds
的計算機業余愛好者,當時他是芬蘭赫爾辛基大學的學生。他的目的是想設計一
個代替 Minix(是由一位名叫 Andrew Tannebaum的計算機教授編寫的一個操作系
統示教程序)的操作系統,這個操作系統可用於 386、 486或奔騰處理器的個人
計算機上,並且具有 Unix操作系統的全部功能,因而開始了 Linux雛形的設計。
Linux以它的高效性和靈活性著稱。它能夠在 PC計算機上實現全部的 Unix特性,
具有多任務、多用戶的能力。 Linux是在 GNU公共許可許可權下免費獲得的,是一
個符合 POSIX標準的操作系統。 Linux操作系統軟體包不僅包括完整的 Linux操
作系統,而且還包括了文本編輯器、高級語言編譯器等應用軟體。它還包括帶有
多個窗口管理器的 X-Windows圖形用戶界面,如同我們使用 Windows NT一樣,允
許我們使用窗口、圖標和菜單對系統進行操作。
Linux與其他操作系統有什麼區別:
Linux可以與 MS-DOS、 OS/2、 Windows等其他操作系統共存於同一台機器上。它
們均為操作系統,具有一些共性,但是互相之間各有特色,有所區別。
目前運行在 PC機上的操作系統主要有Microsoft的 MS-DOS、 Windows、 Windows
NT、 IBM的 OS/2等。早期的 PC機用戶普遍使用 MS-DOS,因為這種操作系統對機
器的硬體配置要求不高,而隨著計算機硬體技術的飛速發展,硬體設備價格越來
越低,人們可以相對容易地提高計算機的硬體配置,於是開始使用
Windows、Windows NT等具有圖形界面的操作系統。 Linux是新近被人們所關注的
操作系統,它正在逐漸為 PC機的用戶所接受。那麼, Linux與其他操作系統的主
要區別是什麼呢?下面從兩個方面加以論述。
首先看一下Linux與 MS- DOS之間的區別。 在同一系統上運行 Linux和 MS-DOS
已很普遍,就發揮處理器功能來說, MS-DOS沒有完全實現 x86處理器的功能,而
Linux完全在處理器保護模式下運行,並且開發了處理器的所有特性。 Linux可以
直接訪問計算機內的所有可用內存,提供完整的 Unix介面。而 MS-DOS只支持部
分 Unix的介面。
就使用費用而言, Linux和 MS-DOS是兩種完全不同的實體。與其他商業操作系統
相比, MS-DOS價格比較便宜,而且在 PC機用戶中有很大的佔有率,任何其他 PC
機操作系統都很難達到 MS-DOS的普及程度,因為其他操作系統的費用對大多數
PC機用戶來說都是一個不小的負擔。 Linux是免費的,用戶可以從 inter上或
者其他途徑獲得它的版本,而且可以任意使用,不用考慮費用問題。 就操作系統
的功能來說, MS-DOS是單任務的操作系統,一旦用戶運行了一個 MS-DOS的應用
程序,它就獨佔了系統的資源,用戶不可能再同時運行其他應用程序。而 Linux
是多任務的操作系統,用戶可以同時運行多個應用程序。 再看一下 Linux與
OS/2、 Windows、 Windows NT之間的區別。
從發展的背景看, Linux與其他操作系統的區別是, Linux是從一個比較成熟的
操作系統發展而來的,而其他操作系統,如 Windows NT等,都是自成體系,無對
應的相依託的操作系統。這一區別使得 Linux的用戶能大大地從 Unix團體貢獻中
獲利。因為 Unix是世界上使用最普遍、發展最成熟的操作系統之一,它是七十年
代中期發展起來的微機和巨型機的多任務系統,雖然有時介面比較混亂,並缺少
相對集中的標准,但還是發展壯大成為了最廣泛使用的操作系統之一。無論是
Unix的作者還是 Unix的用戶,都認為只有 Unix才是一個真正的操作系統。
3. 首先你需要明白,Linux不是windows,它不是一個由一家商業公司維護的軟體
,
只有一個包裝。Linux是可以任意包裝自由配置的東西。任何一個人,一家公司
都可以按照自己的想法,比如加一點功能,加中文支持,作一個Linux出來。這些
Linux雖然核心部分都一樣,但是他們所帶的各種軟體,預設的配置都不一樣。區
別
是用一種Linux 發布 (不同的Linux我們叫做不同的發布)也許硬體很好配置,
各種軟體也好安裝,用另外一種也許速度快,再一種也許支持中文比較好。總之
沒有白吃的午餐,在windows下想當然的東西在linux下也許需要你熬夜才能得到
。
所以從一開始選擇distribution就必須非常小心,否則因為自己剛好隨某個雜志
得到一個Linux發布就以為所有的都一樣就開始安裝,等硬碟數據毀了,
或者網路哭天蹌地也配不出來的時候,就晚了。不是開玩笑,我知道windows下
安裝驅動程序就是滑鼠點幾下,可是在Linux下,為了驅動一個網卡,折騰一夜
是不希奇的 -- 當然,我覺得這是值得的。
所以,面對那麼多Linux distribution,你應當選擇哪個呢?
比較著名的Linux distribution有:
RedHat:最新版本6.2, 7.0beta。由於RedHat公司已經上市,獲得了很多
商業的支持,所以它在硬體軟體兼容性上很好。實際上它已經是Linux的
工業標准。想像一下如果你是一個比如Oracle這樣廠商的老闆,你需要為
Linux開發一個版本,而不同的Linux dist需要單獨開發維護,為成本考慮你
自然會只認准一個Linux。
Slackware(7.1)。很早就有的Linux,有很多老的忠實用戶,但現在越來越不行了
。
SuSe Linux,德國人做的,在歐洲很流行,有一些驅動上的優勢。
另外還有Debian,CorelLinux等dist,不一一介紹了。
還有你會看到國內媒體上吹捧的各種「中文Linux」,他們的優勢主要是有
中文處理。但是如前一篇文章提到的,想用中文,用windows 2000最好。實際上
我覺得一個老7字班的前輩跟我說的一句話很好:「(對我們來說)在計算機上看
到
中文本身就是一件很古怪的事情」。如果你是抱著學習計算機的目的而來,那麼
你不可能避免閱讀英文文檔。即使是microsoft的文檔,有關編程的文檔,最新的
也
全是英文。當然,要上BBS,看中文網頁等,用英文的dist一樣能做到
4. Linux和Windows的區別
和Linux 一樣,Windows系列是完全的多任務操作系統。它們支持同樣的用戶介面
、網路和安全性。但是,Linux和Windows的真正區別在於,Linux 事實上是Unix
的一種版本,而且來自Unix的貢獻非常巨大。是什麼使得Unix如此重要?不僅在
於對多用戶機器來說,Unix是最流行的操作系統,而且在於它是免費軟體的基礎
。在Inter上,大量免費軟體都是針對Unix系統編寫的。由於有眾多的Unix廠
商,所以Unix也有許多實現方法。沒有一個單獨的組織負責Unix的分發。現在,
存在一股巨大的力量推動Unix社團以開放系統的形式走向標准化。另一方面Windo
ws系列是專用系統,由開發操作系統的公司控制介面和設計。在這個意義上這種
公司利潤很高,因為它對程序設計和用戶介面設計建立了嚴格的標准,和那些開
放系統社團完全不一樣。一些組織正在試圖完成標准化Unix程序設計介面的任務
。特別要指出的是,Linux完全兼容POSIX.1標准。
安全問題對於IT管理員來說是需要長期關注的。主管們需要一套框架來對操作系
統的安全性進行合理的評估,包括:基本安全、網路安全和協議,應用協議、發
布與操作、確信度、可信計算、開放標准。在本文中,我們將按照這七個類別比
較微軟Windows和Linux的安全性。最終的定性結論是:目前為止,Linux提供了相
對於Windows更好的安全性能,只有一個方面例外(確信度)。
無論按照什麼標准對Windows和Linux進行評估,都存在一定的問題:每個操作系
統都不止一個版本。微軟的操作系統有Windows98、 Windows NT、 Windows 2000
、 Windows 2003 Server和Windows
CE,而Linux的發行版由於內核(基於2.2、2.4、2.6)的不同和軟體包的不同也
有較大的差異。我們本文所使用的操作系統,都是目前的技術而不是那些"古老"
的解決方案。
用戶需要記住:Linux和Windows在設計上就存在哲學性的區別。Windows操作系統
傾向於將更多的功能集成到操作系統內部,並將程序與內核相結合;而Linux不同
於Windows,它的內核空間與用戶空間有明顯的界限。根據設計架構的不同,兩者
都可以使操作系統更加安全。
Linux和Windows安全性的基本改變
對於用戶來說,Linux和Windows的不斷更新引發了兩者之間的競爭。用戶可以有
自己喜歡的系統,同時也在關注競爭的發展。微軟的主動性似乎更高一些――這
是由於業界"冷嘲熱諷"的"激勵"與Linux的不斷發展。微軟將在下幾個月對Window
s安全進行改觀,屆時微軟會發布Windows XP的WindowsXP Service Pack 2。這一
服務包增強了Windows的安全性,關閉了原先默認開放的許多服務,也提供了新的
補丁管理工具,例如:為了避免受到過多無用的信息,警告服務和信使服務都被
關閉。大多數情況下,關閉這些特性對於增強系統安全性是有好處的,不過很難
在安全性與軟體的功能性、靈活性之間作出折衷。
最顯著的表現是:微軟更加關注改進可用性的同時增強系統的安全性。比如:200
3年許多針對微軟的漏洞攻擊程序都使用可執行文件作為電子郵件的附件(例如My
Doom)。Service Pack2包括一個附件執行服務,為Outlook/Exchange、 Windows
Messenger和Inter Explorer提供了統一的環境。這樣就能降低用戶運行可執
行文件時感染病毒或者蠕蟲的威脅性。另外,禁止數據頁的可執行性也會限制潛
在的緩沖區溢出的威脅。不過,微軟在WindowsXP Service Pack
2中並沒有修改Windows有問題的架構以及安全傳輸的部分,而是將這部分重擔交
給了用戶。
微軟的重點顯然是支持應用程序的安全性。WindowsXP Service Pack 2中增強的
許多方面都是以Outlook/Exchange和Inter
Explorer作為對象的。例如:Inter Explorer中有一個智能的MIME類型檢查,
會對目標的內容類型進行檢查,用戶可以獲悉該內容中是否存在潛在的有害程序
。不過這一軟體是不是能將病毒與同事的電子數據表區分開來呢?
WindowsXP Service Pack 2的另一個新特性是能夠卸載瀏覽器的多餘插件,這需
要終端用戶檢查並判斷需要卸載哪些插件。Outlook/Exchange可以預覽電子郵件
消息,因此用戶可以在打開之前就將電子郵件刪除。另一個應用安全的增強,防
火牆在網路協議棧之前啟動。對於軟體開發者來說,遠方過程調用中許可權的改變
,使得安全性差的代碼難以工作正常。
WindowsXP Service Pack 2也為Windows用戶提供了許多華麗的新特性,但是問題
仍然存在:這些特性會不會對管理員甚至是終端用戶造成負擔?是不是在增加了W
indows操作系統代碼安全性的同時讓系統變得更加復雜?
Linux 與 Windows 的不同
雖然有一些類似之處,但Windows和Linux的工作方式還是存在一些根本的區別。
這些區別只有在您對兩者都很熟悉以後才能體會到,但它們卻是 Linux 思想的核
心。
Linux 的應用目標是網路而不是列印
Windows最初出現的時候,這個世界還是一個紙張的世界。Windows的偉大成就之
一在於您的工作成果可以方便地看到並列印出來。這樣一個開端影響了 Windows
的後期發展。
同樣,Linux 也受到了其起源的影響。Linux 的設計定位於網路操作系統。它的
設計靈感來自於 Unix 操作系統,因此它的命令的設計比較簡單,或者說是比較
簡潔。由於純文本可以非常好地跨網路工作,所以 Linux 配置文件和數據都以文
本為基礎。
對那些熟悉圖形環境的人來說,Linux伺服器初看可能比較原始。但是Linux開發
更多關注的是它的內在功能而不是表面上的東西。即使是在純文本的環境中,Lin
ux同樣擁有非常先進的網路、腳本和安全能力。執行一些任務所需的某些表面上
看起來比較奇怪的步驟是令人費解的,除非您認識到 Linux 是期望在網路上與其
他 Linux系統協同執行這些任務。Linux的自動執行能力也很強,只需要設計批處
理文件就可以讓系統自動完成非常詳細的任務。Linux 的這種能力來自於其基於
文本的本質。
可選的 GUI
Linux有圖形組件。Linux支持高端的圖形適配器和顯示器,完全勝任圖形相關的
工作。現在,許多數字效果藝術家在Linux工作站上來進行他們的設計工作,而以
前這些工作需要使用IRIX系統來完成。但是,圖形環境並沒有集成到 Linux 中,
而是運行於系統之上的單獨一層。這意味著您可以只運行 GUI,或者在需要時才
運行 GUI。如果您的系統主要任務是提供Web應用,那麼您可以停掉圖形界面,而
將其所用的內存和CPU資源用於您的服務。如果您需要在 GUI 環境下做一些工作
,可以再打開它,工作完成後再將其關閉。
Linux 有圖形化的管理工具,以及日常辦公的工具,比如電子郵件、網路瀏覽器
和文檔處理工具等。不過,在 Linux 中,圖形化的管理工具通常是控制台 (命令
行) 工具的擴展。也就是說,用圖形化工具能完成的所有工作,用控制台命令同
樣可以完成。同樣,使用圖形化工具並不妨礙您對配置文件進行手工修改。其實
際意義可能並不是特別顯而易見,但是,如果在圖形化管理工具中所做的任何工
作都可以以命令行的方式完成,這就表示那些工作也可以由一個腳本來實現。腳
本化的命令可以成為自動執行的任務。Linux 同時支持這兩種方式,並不要求您
只用文本或者只用 GUI。您可以根據您的需要選擇最好的方法。
Linux 中的配置文件是人類可讀的文本文件,這與過去的 Windows 中的 INI 文
件類似,但與 Windows 的注冊表機制在思路上有本質的區別。每一個應用程序都
有其自己的配置文件,而且通常不與其他的配置文件放在一起。不過,大部分的
配置文件都存放於一個目錄樹 (/etc) 下的單個地方,所以看起來它們在邏輯上
是在一起。文本文件的配置方式使得不通過特殊的系統工具就可以完成配置文件
的備份、檢查和編輯工作。
文件名擴展
Linux不使用文件名擴展來識別文件的類型。相反,Linux根據文件的頭內容來識
別其類型。為了提高人類可讀性您仍可以使用文件名擴展,但這對 Linux 系統來
說沒有任何作用。不過,有一些應用程序,比如 Web 伺服器,可能使用命名約定
來識別文件類型,但這只是特定的應用程序的要求而不是 Linux 系統本身的要求
。
Linux通過文件訪問許可權來判斷文件是否為可執行文件。任何一個文件都可以賦予
可執行許可權,這樣程序和腳本的創建者或管理員可以將它們識別為可執行文件。
這樣做有利於安全。保存到系統上的可執行的文件不能自動執行,這樣就可以防
止許多腳本病毒。
重新引導是最後的手段
如果您使用Windows已經很長時間了,您可能已經習慣出於各種原因(從軟體安裝
到糾正服務故障)而重新引導系統。在Linux思想中您的這一習慣需要改變。Linu
x在本質上更遵循「牛頓運動定律」。一旦開始運行,它將保持運行狀態,直到受
到外來因素的影響,比如硬體的故障。實際上,Linux系統的設計使得應用程序不
會導致內核的崩潰,因此不必經常重新引導(與Windows系統的設計相對而言)。
所以除了Linux內核之外,其他軟體的安裝、啟動、停止和重新配置都不用重新引
導系統。
如果您確實重新引導了 Linux 系統,問題很可能得不到解決,而且還會使問題更
加惡化。學習並掌握 Linux 服務和運行級別是成功解決問題的關鍵。學習 Linux
最困難的就是克服重新引導系統的習慣。
另外,您可以遠程地完成Linux中的很多工作。只要有一些基本的網路服務在運行
,您就可以進入到那個系統。而且,如果系統中一個特定的服務出現了問題,您
可以在進行故障診斷的同時讓其他服務繼續運行。當您在一個系統上同時運行多
個服務的時候,這種管理方式非常重要。
命令區分大小寫
所有的 Linux 命令和選項都區分大小寫。例如, -R 與 -r 不同,會去做不同的
事情。控制台命令幾乎都是小寫的。我們將在「 第 2 部分. 控制台速成班」中
對命令進行更詳細的介紹。
==========================
好了 ,,
❹ 自學嵌入式開發應該先要學些什麼
嵌入式開發的學習其實並沒有那麼難,只要了解學習的體系,掌握正確的學習方法,學習起來並不難。來講一下嵌入式開發都要學些啥!
嵌入式開發的主要學習內容:
C,Java核心編程:c語言核心編程,Java核心編程;
Linux核心操作與演算法:Linux系統使用,Linux-c編程核心技術,精品數據結構,Linux-c編程精髓;
核心操作與演算法:Linux系統編程,Linux網路編程核心技術,UI編程,Java核心編程,安卓核心技術;
ARM+Linux底層開發:數字電路,ARM編程核心,Linux系統開發,嵌入式Linux驅動開發;
大型項目實踐:每期安排各類型真實的項目
互聯網行業目前還是最熱門的行業,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有IT專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,建議實地考察對比一下。
祝你學有所成,望採納。
❺ 學習Linux的步驟是怎樣的
對於Linux的學習,可以分為四個階段,Linux初級入門階段→Linux中級進階→Linux高級進階→Linux資深方向細化階段
第一階段:初級階段
初級階段需要把linux學習路線搞清楚,任何學習都是循序漸進的,所以學linux也是需要有一定的路線。
1. Linux基礎知識、基本命令;
2. Linux用戶及許可權基礎;
3. Linux系統進程管理進階;
4. linux高效文本、文件處理命令;
5. shell腳本入門
第二階段:中級進階
中級進階需要在充分了解linux原理和基礎知識之後,對上層的應用和服務進行深入學習,其中說到服務肯定涉及到網路的相關知識,是需要花時間學習的。
1. TCP/IP網路基礎;
2. Linux企業常用服務;
3. Linux企業級安全原理和防範技巧;
4. 加密/解密原理及數據安全、系統服務訪問控制及服務安全基礎;
5. iptables安全策略構建;
6. shell腳本進階;
7. MySQL應用原理及管理入門
第三階段:Linux高級進階
1. http服務代理緩存加速;
2. 企業級負載集群;
3. 企業級高可用集群;
4. 運維監控zabbix詳解;
5. 運維自動化學習;
第四階段:Linux資深方向細化
1. 大數據方向;
2. 雲計算方向;
3. 運維開發;
4. 自動化運維;
5. 運維架構師
以上是Linux的一個學習方向和路線,對於Linux學習是一個需要堅持的過程,也許通過自學或者培訓,3至6個月都可以把基本知識學會,但是重在實踐,深入的思考和不斷的摸索,你會發現Linux更多的美!
❻ 作為一個新人,怎樣學習嵌入式Linux
你裝一個linux系統。當然虛擬機就行。先學習標准C、然後學習linux的Unix C當然這種C很相似。就是函數不太一樣。思想都是一樣的。
上面兩個網上都有教學視頻。把網上的教學視頻看完就差不多了。當然教程中要求練習的地方必須要動手做。只想大體思路是絕對不行的,這樣學到的東西很不扎實。
這兩個學習差不過了。就可以買一塊開發板玩了。
如果你趨向於裸跑的程序,可以買一個arm7、arm9的板子,當然可以用cortex-m系列的也就是stm32系列的單片機開發板。裸跑和單片機沒什麼區別了。就是arm的cpu比單片機寄存器復雜一些。這就看你閱讀cpu晶元手冊的能力了。當然這個平台上也能跑一些系統比如uCOS就是個很好的實時操作系統。
如果你趨向於操作系統,你可以上cortex-a8 、a9系列的cpu了。這個需要學習的東西比較多。學習操作系統的啟動代碼必須要學。現在最流行的是u-boot。
然後學習一下系統移植方面的東西:
1、文件系統製作 。流行的軟體是busybox
2、系統裁剪。這個你買的開發板都會帶平台代碼。也可以在www.kernel.org上下載源碼自己編譯。
這個時候你就可以用u-boot(類似我們常見的主板bios)啟動你的系統。載入你自己編譯好的linux內核。系統就啟動起來了。
最難學的是你要搞嵌入式系統的開發。基本要了解linux內核了。自己學的話需要在網上找一找相關教程看看。(這個我不知道有沒有視頻教程),沒有的話要買一個《linux內核高級編程》學習。這本書太難啃了。
要學習操作系統的嵌入式開發,還遠不止我說的那些。還有庫移植、makefile腳本也要學習。linux內核啟動原理(啟動過程載入那些文件、啟動參數)。arm啟動原理等等。
你可以邊工作邊學習,從事嵌入式周邊行業的(嵌入式應用方面)所以可以學一學嵌入式的圖形開發工具:QT,這個很有意思。然後慢慢的想嵌入式方向發展。這是一個漫長的過程。如果想速成也可以報班學習。
另外就是Unix c部分的網路編程很重要這個地方要學好。學好了也可以從事linux的網路協議棧相關工作。