modem編譯
1. android modem模塊怎麼編譯
(1)MT6577以及之前的chip平台(如MT6575,73等) 的modem編譯環境和MTK的Feature Phone的編譯環境一樣,即Windows+RVCT
(2)從MT6589開始,modem編譯環境已經切換到linux OS + GCC[KEYWORD]modem編譯[SOLUTION]
(1)MT6577以及之前的chip平台的modem編譯環境文檔,請到DCC上搜索
MTK_MakeBuild_Design_Customer.docx
,該文檔詳細介紹環境搭建和編譯流程介紹。
(2)MT6589以及後續chip的modem編譯環境參考文檔,請到DCC上搜索
該文檔詳細介紹環境搭建和編譯流程介紹。
2. 電腦的組成'。。要簡潔
計算機是由硬體和軟體組成的。
硬體
(1)電源
電源是電腦中不可缺少的供電設備,它的作用是將220V交流電轉換為電腦中使用的5V,12V,3.3V直流電,其性能的好壞,直接影響到其他設備工作的穩定性,進而會影響整機的穩定性。 手提電腦中還自帶鋰電池,便於在無交流電的情況下,為手提電腦提供有效電源。
(2)主板
主板是電腦中各個部件工作的一個平台,它把電腦的各個部件緊密連接在一起,各個部件通過主板進行數據傳輸。也就是說,電腦中重要的「交通樞紐」都在主板上,它工作的穩定性影響著整機工作的穩定性。
(3)CPU
CPU即中央處理器,是一台計算機的運算核心和控制核心。其功能主要是解釋計算機指令以及處理計算機軟體中的數據。CPU由運算器、控制器、寄存器、高速緩存及實現它們之間聯系的數據、控制及狀態的匯流排構成。作為整個系統的核心,CPU 也是整個系統最高的執行單元,因此CPU已成為決定電腦性能的核心部件,很多用戶都以它為標准來判斷電腦的檔次。
(4)內存
內存又叫內部存儲器或者是隨機存儲器(RAM),分為DDR內存和SDRAM內存,(但是SDRAM由於容量低,存儲速度慢,穩定性差,現在已經被DDR淘汰了)內存屬於電子式存儲設備,它由電路板和晶元組成,特點是體積小,速度快,有電可存,無電清空,即電腦在開機狀態時內存中可存儲數據,關機後將自動清空其中的所有數據。 內存有DDR、DDR II、DDR III三大類,容量1-64GB。
(5)硬碟
硬碟屬於外部存儲器,機械硬碟由金屬磁片製成,而磁片有記憶功能,所以儲到磁片上的數據,不論在開機,還是關機,都不會丟失。硬碟容量很大,目前已達TB級,尺寸有3.5、2.5、1.8、1.0英寸等,介面有IDE、SATA、SCSI等,SATA最普遍。移動硬碟是以硬碟為存儲介質,強調便攜性的存儲產品。目前市場上絕大多數的移動硬碟都是以標准硬碟為基礎的,而只有很少部分的是以微型硬碟(1.8英寸硬碟等),但價格因素決定著主流移動硬碟還是以標准筆記本硬碟為基礎。因為採用硬碟為存儲介質,因此移動硬碟在數據的讀寫模式與標准IDE硬碟是相同的。移動硬碟多採用USB、IEEE1394等傳輸速度較快的介面,可以較高的速度與系統進行數據傳輸。固態硬碟用固態電子存儲晶元陣列而製成的硬碟,由控制單元和存儲單元(FLASH晶元)組成。固態硬碟在產品外形和尺寸上也完全與普通硬碟一致但是固態硬碟比機械硬碟速度更快。
(6)音效卡
音效卡是組成多媒體電腦必不可少的一個硬體設備,其作用是當發出播放命令後,音效卡將電腦中的聲音數字信號轉換成模擬信號送到音箱上發出聲音。
(7)顯卡
顯卡在工作時與顯示器配合輸出圖形,文字,顯卡的作用是將計算機系統所需要的顯示信息進行轉換驅動,並向顯示器提供行掃描信號,控制顯示器的正確顯示,是連接顯示器和個人電腦主板的重要元件,是「人機對話」的重要設備之一。
(8)網卡
網卡是工作在數據鏈路層的網路組件,是區域網中連接計算機和傳輸介質的介面,不僅能實現與區域網傳輸介質之間的物理連接和電信號匹配,還涉及幀的發送與接收、幀的封裝與拆封、介質訪問控制、數據的編碼與解碼以及數據緩存的功能等。網卡的作用是充當電腦與網線之間的橋梁,它是用來建立區域網並連接到Internet的重要設備之一。
在整合型主板中常把音效卡、顯卡、網卡部分或全部集成在主板上。
(9)數據機
英文名為「Modem」,俗稱「貓」,即數據機。是通過電話線上網時必不可少的設備之一。它的作用是將電腦上處理的數字信號轉換成電話線傳輸的模擬信號。隨著ADSL寬頻網的普及,數據機逐漸退出了市場。
(10)軟碟機
軟碟機用來讀取軟盤中的數據。軟盤為可讀寫外部存儲設備,與主板用FDD介面連接。現已淘汰。
(11)光碟機
電腦用來讀寫光碟內容的機器,也是在台式機和筆記本攜帶型電腦里比較常見的一個部件。隨著多媒體的應用越來越廣泛,使得光碟機在計算機諸多配件中已經成為標准配置。目前,光碟機可分為CD-ROM驅動器、DVD光碟機(DVD-ROM)、康寶(COMBO)和刻錄機等。讀寫的能力和速度也日益提升,4× 16× 32× 40× 48×。
(12)顯示器
顯示器有大有小,有薄有厚,品種多樣,其作用是把電腦處理完的結果顯示出來。它是一個輸出設備,是電腦必不可缺少的部件之一。分為CRT、LCD、LED三大類,介面有VGA、DVI兩類。
(13)鍵盤
常見計算機鍵盤
鍵盤是主要的人工學輸入設備通常為104或105鍵,用於把文字、數字等輸到電腦上,以及電腦操控。
(14)滑鼠
當人們移動滑鼠時,電腦屏幕上就會有一個箭頭指針跟著移動,並可以很准確切指到想指的們位置,快速地在屏幕上定位,它是人們使用電腦不可缺少的部件之一。 鍵盤滑鼠介面有PS/2和USB兩種。硬體的滑鼠分
常見計算機滑鼠
為光電和機械兩種(機械已被光電淘汰)。
(15)音箱
通過音頻線連接到功率放大器,再通過晶體管把聲音放大,輸出到喇叭上,從而使喇叭發出電腦的聲音。一般的電腦音箱可分為2、2.1 、3 .1、4、4.1、5.1、7.1這幾種。音質也各有差異。
(16)列印機
列印機
通過它可以把電腦中的文件列印到紙上,它是重要的輸出設備之一。目前,在列印機領域形成了針式列印機、噴墨列印機、激光列印機三足鼎立的主流產品,各自發揮其優點,滿足各界用戶不同的需求。
(17)視頻設備
如攝像頭、掃描儀、數碼相機、數碼攝像機、電視卡等設備,用於處理視頻信號。
(18)USB介面
USB ,英文Universal Serial BUS通用串列匯流排的縮寫,而其中文簡稱為「通串線,是一個外部匯流排標准,用於規范電腦與外部設備的連接和通訊。是應用在PC領域的介面技術。USB介面支持設備的即插即用和熱插拔功能。USB是在1994年底由英特爾、康柏、IBM、Microsoft等多家公司聯合提出的。
常見硬體技術指標
軟體
(1)系統軟體
系統軟體由一組控制計算機系統並管理其資源的程序組成,其主要功能包括:啟動計算機,存儲、載入和執行應用程序,對文件進行排序、檢索,將程序語言翻譯成機器語言等。實際上,系統軟體可以看作用戶與計算機的介面,它為應用軟體和用戶提供了控制、訪問硬體的手段,這些功能主要由操作系統完成。此外,編譯系統和各種工具軟體也屬此類,它們從另一方面輔助用戶使用計算機。下面分別介紹它們的功能。
1)操作系統(Operating System,OS)
操作系統是管理、控制和監督計算機軟、硬體資源協調運行的程序系統,由一系列具有不同控制和管理功能的程序組成,它是直接運行在計算機硬體上的、最基本的系統軟體,是系統軟體的核心。操作系統是計算機發展中的產物,它的主要目的有兩個:一是方便用戶使用計算機,是用戶和計算機的介面。比如用戶鍵入一條簡單的命令就能自動完成復雜的功能,這就是操作系統幫助的結果;二是統一管理計算機系統的全部資源,合理組織計算機工作流程,以便充分、合理地發揮計算機的效率。
2)語言處理系統(翻譯程序)
人和計算機交流信息使用的語言稱為計算機語言或稱程序設計語言。計算機語言通常分為機器語言、匯編語言和高級語言三類。如果要在計算機上運行高級語言程序就必須配備程序語言翻譯程序(下簡稱翻譯程序)。翻譯程序本身是一組程序,不同的高級語言都有相應的翻譯程序。翻譯的方法有兩種:
一種稱為「解釋」。早期的BASIC源程序的執行都採用這種方式。它調用機器配備的BASIC「解釋程序」,在運行BASIC源程序時,逐條把BASIC的源程序語句進行解釋和執行,它不保留目標程序代碼,即不產生可執行文件。這種方式速度較慢,每次運行都要經過「解釋」,邊解釋邊執行。
另一種稱為「編譯」,它調用相應語言的編譯程序,把源程序變成目標程序(以.OBJ為擴展名),然後再用連接程序,把目標程序與庫文件相連接形成可執行文件。盡管編譯的過程復雜一些,但它形成的可執行文件(以.exe為擴展名)可以反復執行,速度較快。運行程序時只要鍵入可執行程序的文件名,再按Enter鍵即可。
對源程序進行解釋和編譯任務的程序,分別叫做編譯程序和解釋程序。如FORTRAN、COBOL、PASCAL和C等高級語言,使用時需有相應的編譯程序;BASIC、LISP等高級語言,使用時需用相應的解釋程序。
3)服務程序
服務程序能夠提供一些常用的服務性功能,它們為用戶開發程序和使用計算機提供了方便,像微機上經常使用的診斷程序、調試程序、編輯程序均屬此類。
4)資料庫管理系統
資料庫是指按照一定聯系存儲的數據集合,可為多種應用共享。資料庫管理系統(Data Base Management System,DBMS)則是能夠對資料庫進行加工、管理的系統軟體。其主要功能是建立、消除、維護資料庫及對庫中數據進行各種操作。資料庫系統主要由資料庫(DB)、資料庫管理系統(DBMS)以及相應的應用程序組成。資料庫系統不但能夠存放大量的數據,更重要的是能迅速、自動地對數據進行檢索、修改、統計、排序、合並等操作,以得到所需的信息。這一點是傳統的文件櫃無法做到的。
資料庫技術是計算機技術中發展最快、應用最廣的一個分支。可以說,在今後的計算機應用開發中大都離不開資料庫。因此,了解資料庫技術尤其是微機環境下的資料庫應用是非常必要的。
(2)應用軟體
為解決各類實際問題而設計的程序系統稱為應用軟體。從其服務對象的角度,又可分為通用軟體和專用軟體兩類。
3. 計算機軟考初級程序員的考試內容有哪些
初級程序員考試:考試科目1:計算機硬軟體基礎知識
1. 計算機科學基礎
1.1 數制及其轉換
二進制、十進制和十六進制等常用數制及其相互轉換
1.2 數據的表示
數的表示(原碼、反碼、補碼表示,整數和實數的機內表示方法,精度和溢出)
非數值表示(字元和漢字的機內表示、聲音和圖像的機內表示)
校驗方法和校驗碼(奇偶校驗碼、海明校驗碼)
1.3 算術運算和邏輯運算
計算機中二進制數的運算方法
邏輯代數的基本運算和邏輯表達式的化簡
1.4 數學應用
常用數值計算(矩陣、方程的近似求解、插值)
排列組合、應用統計(數據的統計分析)
1.5 常用數據結構
數組(表態數組、動態數組)、線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)、隊列、棧、樹(二叉樹、查找樹)、圖的定義、存儲和操作
1.6 常用演算法
常用的排序演算法、查找演算法、數值計算、字元串處理、數據壓縮演算法、遞歸演算法、圖的相關演算法
演算法與數據結構的關系,演算法效率,演算法設計,演算法描述(流程圖、偽代碼、決策表)
2. 計算機系統基礎知識
2.1 硬體基礎知識
2.1.1 計算機系統的組成,硬體系統、軟體系統及層次結構
2.1.2 計算機類型和特點
微機、工作站、伺服器、大型計算機、巨型計算機
2.1.3 中央處理器CPU
運算器和控制器的組成,常用的寄存器、指令系統、定址方式、指令執行控制、處理機性能
2.1.4 主存和輔存
存儲器系統
存儲介質(半導體、硬碟、光碟、快閃記憶體、軟盤、磁帶等)
主存儲器的組成、性能及基本原理
Cache的概念、虛擬存儲的概念
輔存設備的類型、特性、性能和容量計算
2.1.5 I/O介面、I/O設備和通信設備
I/O介面(匯流排、DMA、通道、SCSI、並行口、RS232C、USB、IEEE1394)
I/O設備的類型和特性(鍵盤、滑鼠、顯示器、列印機、掃描儀、攝像頭,以及各種輔存設備)
I/O設備控制方式(中斷控制、DMA)
通信設備的類型和特性(Modem、集線器、交換機、中繼器、路由器、網橋、網關)及其連接方法和連接介質(串列連接、並行連接,傳輸介質的類型和特性)
2.2 軟體基礎知識
2.2.1 操作系統基礎知識
操作系統的類型和功能
操作系統的內核(中斷控制)和進程概念
處理機管理、存儲管理、設備管理、文件管理、作業管理
漢字處理
圖形用戶界面及其操作方法
2.2.2 程序設計語言和語言處理程序基礎知識
匯編、編譯、解釋系統的基礎知識
程序設計語言的基本成分(數據、運算、控制和傳輸)
過程(函數)調用
2.3 網路基礎知識
網路的功能、分類、組成和拓撲結構
網路體系結構與協議(OSI/RM,TCP/IP)
常用網路設備與網路通信設備,網路操作系統基礎知識和使用
Client/Server結構、Browser/Server結構
LAN基礎知識
Internet基礎知識
2.4 資料庫基礎知識
資料庫管理系統的主要功能和特徵
資料庫模型(概念模式、外模式、內模式)
數據模型,ER圖
數據操作(關系運算)
資料庫語言(sql)
資料庫的主要控制功能
2.5 多媒體基礎知識
多媒體基礎概念,常用多媒體設備性能特徵,常用多媒體文件格式類型
簡單圖形的繪制,圖像文件的基本處理方法
音頻和視頻信息的應用
簡單多媒體應用製作方法
2.6 系統性能指標
響應時間、吞吐量、周轉時間等概念
可靠性、可維護性、可擴充性、可移植性、可用性、可重用性、安全性等概念
2.7 計算機應用基礎知識和常用辦公軟體的操作方法
信息管理、數據處理、輔助設計、自動控制、科學計算、人工智慧等概念
文字處理基礎知識和常用操作方法
電子表格處理基礎知識和常用操作方法
演示文稿製作方法
電子郵件處理操作方法
網頁製作方法
3. 軟體開發和運行維護基礎知識
3.1 軟體工程和項目管理基礎知識
軟體工程基本概念
軟體開發各階段的目標和任務
軟體過程基本知識
軟體工程項目管理基本知識
面向對象開發方法基礎知識
軟體開發工具與環境基礎知識(CASE)
軟體質量管理基礎知識
3.2 軟體需求分析、需求定義及軟體基礎知識
結構化分析概念(數據流圖(DFD)、實體關系圖(ER))
面向對象設計、結構化設計基礎知識
模擬設計、代碼設計、人機界面設計要點
3.3 程序設計基礎知識
結構設計程序設計,程序流程圖,NS圖,PAD圖
程序設計風格
面向對象設計基礎知識、可視化程序設計基礎知識
3.4 程序測試基礎知識
黑盒測試、白盒測試、灰盒測試基礎知識
測試工作流程
3.5 軟體開發文檔基礎知識
3.6 軟體運行和維護基礎知識
軟體運行基礎知識
軟體維護基礎知識
4. 安全性基礎知識
安全性基本概念
計算機病毒的防治,計算機犯罪的防範
訪問控制
加密與解密基礎知識
5. 標准化基礎知識
標准化基本概念
國際標准、國家標准、行業標准、企業標准基礎知識
代碼標准、文件格式標准、安全標准、軟體開發規范和文檔標准基礎知識
標准化機構
6. 信息化基本知識
信息化基本概念
全球信息化趨勢,國家信息化戰略,企業信息化戰略和策略常識
有關的法律、法規要點
過程教育、電子商務、電子政務等常識
企業信息資源管理常識
7. 計算機專業英語
掌握計算機技術的基本詞彙
能正確閱讀和理解本領域的簡單英文資料
考試科目2:程序設計
1. 內部設計
1.1 理解外部設計
1.2 功能劃分和確定結構
數據流圖、結構圖
1.3 物理數據設計
確定數據組織方式、存儲介質,設計記錄格式和處理方式
1.4 詳細輸入輸出設計
界面設計、報表設計
1.5 內部設計文檔
對程序介面、程序功能、人機界面、輸入輸出、測試計劃的描述
1.6 內部設計文檔
2. 程序設計
2.1 模擬劃分(原則、方法、標准)
2.2 編寫程序設計文檔
模塊規格說明書(程序處理邏輯的描述、輸入輸出數據格式的描述)
測試要求說明書(測試類型和目標、測試用例、測試方法)
2.3 程序設計評審
3. 程序實現
3.1 編程
編程方法和標准
程序設計語言的使用
人工檢查
程序文檔化
3.2 程序測試
准備測試環境和測試工具
准備測試數據
寫出測試報告
4.程序設計語言(C語言為必選,其他語言可以任選一種)
4.1 C程序設計語言(ANSI C標准)
程序結構,語法,數據類型說明,可執行語句,函數調用,標准庫函數,指針
4.2 C++程序設計語言(ANSI C++標准)
C++和面向對象程序設計,語法和程序結構,類、成員、構造函數、析構函數、模板、繼承、多態
4.3 Java程序設計(Java 2)
Java和面向對象程序設計
語言機制(程序結構和語法,類、成員、構造函數、析構函數、繼承、介面)
4.4 Visual Basic程序設計(Visual Basic 6.0)
用戶界面設計
程序結構和語法
文件系統對象
訪問資料庫
復習材料(均為清華大學出版社):
978-7-302-20585-2,程序員教程(第三版),張淑平主編
7-302-12895-2,程序員教程(第2版),沈林興主編
4. 程序員考試都考哪些內容
程序員考試內容綱要
考試科目1:計算機硬體基礎知識。
1. 計算機科學基礎。
1.1數制及其轉換。
二進制、十進制和十六進制等常用數制及其相互轉換。
1.2數據的表示。
數的表示(原碼、反碼、補碼表示,整數和實數的機內表示方法,精度和溢出)。
校驗方法和校驗碼(奇偶校驗碼、海明校驗碼)。
1.3算術運算和邏輯運算。
計算機中二進制數的運算方法。
邏輯代數的基本運算和邏輯表達式的化簡。
1.5常用數據結構。
數組(表態數組、動態數組)、線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)、隊列、棧、樹(二叉樹、查找樹)、圖的定義、存儲和操作
1.6 常用演算法。
演算法與數據結構的關系,演算法效率,演算法設計,演算法描述(流程圖、偽代碼、決策表)
2. 計算機系統基礎知識。
2.1計算機基礎知識。
2.1.1計算機系統的組成,硬體系統、軟體系統及層次結構。
2.1.3 中央處理器CPU。
運算器和控制器的組成,常用的寄存器、指令系統、定址方式、指令執行控
處理機性能。
2.1.4 主存和輔存。
存儲器系統。
存儲介質(半導體、硬碟、光碟、快閃記憶體、軟盤、磁帶等)。
主存儲器的組成、性能及基本原理。
Cache的概念、虛擬存儲的概念。
輔存設備的類型、特性、性能和容量計算。
2.1.5 I/O介面、I/O設備和通信設備。
I/O介面(匯流排、DMA、通道、SCSI、並行口、RS232C、USB、IEEE1394)。
I/O設備的類型和特性(鍵盤、滑鼠、顯示器、列印機、掃描儀、攝像頭,以及各種輔存設備)。
I/O設備控制方式(中斷控制、DMA)。
通信設備的類型和特性(Modem、集線器、交換機、中繼器、路由器、網橋、網關)及其連接方法和連接介質(串列連接、並行連接,傳輸介質的類型和特性)。
2.2 軟體基礎知識。
2.2.1 操作系統基礎知識。
操作系統的類型和功能。
操作系統的內核(中斷控制)和進程概念。
處理機管理、存儲管理、設備管理、文件管理、作業管理、漢字處理。
2.2.2 程序設計語言和語言處理程序基礎知識。
匯編、編譯、解釋系統的基礎知識。
過程(函數)調用。
2.3 網路基礎知識。
網路的功能、分類、組成和拓撲結構。
網路體系結構與協議(OSI/RM,TCP/IP)。
2.4 資料庫基礎知識。
數據模型,ER圖。
數據操作(關系運算)。
資料庫語言(SQL)。
2.5 多媒體基礎知識。
多媒體基礎概念,常用多媒體設備性能特徵,常用多媒體文件格式類型。
3.軟體開發和運行維護基礎知識。
3.2 軟體需求分析、需求定義及軟體基礎知識。
結構化分析概念(數據流圖(DFD)、實體關系圖(ER))。
面向對象設計、結構化設計基礎知識。
模擬設計、代碼設計、人機界面設計要點。
3.3 程序設計基礎知識。
結構設計程序設計,程序流程圖,NS圖,PAD圖。
程序設計風格。
面向對象設計基礎知識、可視化程序設計基礎知識。
3.4 程序測試基礎知識。
黑盒測試、白盒測試、灰盒測試基礎知識。
4. 安全性基礎知識。
安全性基本概念。
加密與解密基礎知識。
5. 標准化基礎知識
標准化基本概念
6. 信息化基本知識。
有關的法律、法規要點。
7. 計算機專業英語。
考試科目2:程序設計。
1. 內部設計
1.1 理解外部設計。
1.3 物理數據設計。
確定數據組織方式、存儲介質,設計記錄格式和處理方式。
2. 程序設計。
2.1 模擬劃分(原則、方法、標准)。
3. 程序實現。
3.1 編程。
編程方法和標准。
程序設計語言的使用。
4.程序設計語言(C語言為必選,其他語言可以任選一種)。
4.1 C程序設計語言(ANSI C標准)。
程序結構,語法,數據類型說明,可執行語句,函數調用,標准庫函數,指針。
4.2C++程序設計語言(ANSI C++標准)。
C++和面向對象程序設計,語法和程序結構,類、成員、構造函數、析構函數、模板、繼承、多態。
4.3Java程序設計(Java 2)。
語言機制(程序結構和語法,類、成員、構造函數、析構函數、繼承、介面)。
4.4Visual Basic程序設計(Visual Basic 6.0)。
用戶界面設計。
5. 如何學習linux
1、學習linux要學的內容很多,很多東西必須了解其機制,所以並不單單的如windows那樣傻瓜式的學習,因為windows本身就是針對不懂電腦的人群。。
2、精通這種詞很難定義,反正要學的東西很多。
3、在windows下安裝虛擬機對於新手學習linux較方便,在linux安裝windows虛擬機(我的經驗是卡,我用的是vmware 而且不是一般的卡) ,起初條件差,自己裝了雙系統,後來就買兩台電腦,一台LINUX一台WINDOWS。
下面就是詳細的說一下。。
一.為什麼要學linux?
當然最重要是愛好和興趣!如果你這種必要學,或者根本不喜歡,請不要浪費時間,你學也學不好!
二.起步
你應該為自己創造一個學習linux的環境--在電腦上裝一個linux或unix
如何選擇版本:北美用redhat,歐洲用SuSE,桌面mandrake較多,而debian是技術最先進的linux開發人員中用debian的最多,其次是redhat,從全球linux各應用領域市場份額來看無疑redhat是最多的,此外還有很多出名的發行版本,不再列舉。
對於初學linux的人來說,我建議是使用redhat,原因如下:
1)現在很多書都是以redhat為例講的,為了與書本協調一致
2)周圍的人都用redhat,交流比較方便
3)redhat應用范圍廣,有典型性和代表性
4)它易於使用和安裝,我們沒有必要把時間浪費在「裝系統」上而應集中精力學習最有用的東西。
【注】現在覺得RH很死板,AS,ES等用在伺服器上或許不錯,Personal desktop用mandrake,debian,suse都不錯,筆者現在用Mandrake,因為她長得漂亮:)
如果你並不打算深入學習linux,而是有諸如適應北京市政府辦公平台遷移到linux上這種需要,那麼中軟,紅旗等中文linux是不錯的選擇
我強烈建議:自己親自動手把linux裝到你的硬碟上,你必須學會獨立安裝linux系統的技能,對於現在的版本來說,其實跟裝WinXP一樣簡單
從此現在開始,請不要以windows的工作方式來考慮問題,應該嘗試挖掘linux身上的「天才unix」的氣質。
三.進階
掌握至少50個以上的常用命令
理解shell管道"|",文件流重定向">"及追加">>"等
熟悉Gnome/KDE等X-windows桌面環境操作
掌握.tgz.rpm.biz等軟體包的常用安裝方法
學習添加外設,安裝設備驅動程序(比如modem)
熟悉Grub/Lilo引導器及簡單的修復操作
熟悉系統固有目錄的名稱及公用
學會用mount命令訪問其他文件系統
了解vi,gcc,gdb等常用編輯器,編譯器,調試器
學習linux環境下的簡單組網
建議:買一本不需要太厚的linux教材,大致可以滿足要求(現在的書越來越多了,還帶很多圖,我當時可沒這么多書)
四.高級應用
澄清一些概念:linux的普通操作與真正的系統管理不能相提並論,後者需要很多知識
1.英語
即使你不學linux,我也強烈建議你學好英文[U.S.english]。因為實質上計算機語言就是英文和字元,所謂的多國語言只是外部包裝。你必須能無障礙的閱讀大量的英文技術文檔在搜索引擎找到的英文網站和網頁中熟練的檢索最好能有用英文直接交流的能力,擺脫了這個障礙,你的學習和理解速度就能快很多,你就有機會拉開和別人的差距。
2.shell[sed/awk]
shell是命令解釋器,是內核與用戶界面交流通道,shell寫的小腳本有點類似於win下的.bat但shell比.bat強大的多,shell不只是解釋命令,更是一種編程語言,有時候幾百行的c用shell幾十行就能代替完成工作,因為shell的工作方式建立在系統已有的眾多應用程序之上
這也是CS中的一個重要思想。此外,shell可以實現工作自動化,這個概念也比較重要sed,awk用來處理文本,歷來很常用。
3.Perl/php
漂亮的腳本, CGI的首選,比ASP好,應用面很廣
4.C\C++
C、C++是linux/unix的核心語言,系統代碼都是C寫的
5.ASM
系統底層及內核,硬體,設備驅動程序,嵌入式開發都需要。//走核心路線的話,c\c++,asm最重要
6.Java,Python,Tcl,XML
五、系統管理篇
在熟悉linux的基礎上還需要掌握至少一種unix。我首推Solaris,其次是FreeBSD比如運營級系統一般是Solaris+Oracle/DB2之類的學習apache、ssh、sendmail/Qmail、proftp/vsftp、Samba、Squid、MySQL/PostgreSQL/Oracle、Bind等各種應用伺服器的構架及電子商務的應用熟悉TCP/IP協議族,學習諸如apache+php+proftp+mysql+quota的實現以及大型區域網,分布式集群等各種企業級應用解決方案熟悉多用戶管理,資料庫管理,文件系統,邏輯存儲管理,日誌分析,備份與災難數據修復系統補丁,內核升級,以及在此基礎上的防火牆構架等以保障系統安全在內的各種系統管理技能。
我覺得,如果在此基礎上再掌握路由/交換設備便是一個不錯的系統管理員
各種基於linux的解決方案可參考相關書籍和文獻,必要時用google或各大linux站點站內搜索引擎尋找最新文檔,以避免錯誤和漏洞有幾本技術大全和技術內幕我認為都是這方面不錯的書
六、深入學習linux
我個人理解的讀linux內核需要的基礎:在此之前,希望先把應用層的東西學一下,那樣會比較好理解
1.C
如果學過潭浩強的大學教科書(除了編幾個數學模型好像什麼也做不了的那種),建議再看一下《The C Programming Language》Second Edition這本聖經(如果想學緩沖區溢出,這點C的功力可能是不夠的,還有<C陷阱與缺陷>,<C專家編程>,<C\C++深層探索>,反正經典書看多了是沒有壞處的)
2.asm (AT&T語法,保護模式)
保護模式下的比較復雜,基本上每本講內核的書都會有介紹有80x86 Intel語法的基礎就行,
有興趣可以看看Intel的官方網站
3.數據結構(離散數學)
計算機專業的核心課程,重要性我就不說了
4.操作系統原理
看懂這個再去讀linux吧
5.微機原理/組成原理(數字電路)
底層直接和硬體打交道,所以這個也要
6.了解linux/unix
我想至少你要會操作吧,了解unix的API
7.軟體工程/編譯原理