1. linux 怎麼學啊
一.為什麼要學linux?
http://ph4nt0m.net/bbs/showthread.php?threadid=22510
http://ph4nt0m.net/bbs/showthread.php?threadid=857
當然如果沒有這種必要,請不要浪費時間
二.起步
你應該為自己創造一個學習linux的環境--在電腦上裝一個linux或unix
問題1:版本的選擇
北美用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的普通操作與真正的系統管理不能相提並論,後者需要很多知識
我個人認為比較重要幾種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的實現以及大型區域網,分布式集群
等各種企業級應用解決方案
熟悉多用戶管理,資料庫管理,文件系統,邏輯存儲管理,日誌分析,備份與災難數據修復
系統補丁,內核升級,以及在此基礎上的防火牆構架等以保障系統安全在內的各種系統管理技能
我覺得,如果在此基礎上再掌握路由/交換設備便是一個不錯的系統管理員 :D
各種基於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.軟體工程/編譯原理
這方面的經典書去www.china-pub.com可以搜到很多
我覺得APUE這種書不適合初學者,還是先看看UPE之類的吧
APUE:
《advanced programming in the unix environment》
《unix環境高級編程》
作者:W.Richard.Stevens共有6本經典書,尊為「聖經」
他的書為全世界黑客所拜讀!
UPE:《unix programming environment》
《unix編程環境》比較適合初學者的,深入淺出,
其中有一些比較重要的思想
另外,介紹linux下應用層編程的書也有很多,比如
<GNU\Linux編程指南>,redhat,redflag出的書...........
經典書還有很多很多......
操作系統:設計與實現 //交大的考研參考書目,講Minix的
unix操作系統設計
4.4BSD操作系統設計與實現
昂萊氏unix源代碼分析
ulk:understanding the linux kernel (2nd)深入理解linux內核
linux設備驅動程序 (2nd)
linux內核源代碼情景分析
保護方式下的80386及其編程(次書已絕版,只有超星的電子版,如果誰能搞到紙書,清一定告訴我一下,非常感激!!!)
在這里你能明白"黑客"及"haching"一詞所代表的真正意義
希望我寫的這篇文章能造就更多的黑客,而不是駭客
五.一些資源
www.linuxforum.net //國內最高水平GNU站點
www.chinaunix.net //unix、系統管理的不錯
www.linuxeden.com //下載軟體不錯
www.linuxaid.com.cn
www.linuxsir.org
其實還有很多,包括國外的
以上內容是轉載別人的
這些是關於linux的
至於嵌入式的學習,需要很高深的硬體知識
對編程和系統移植有很深的認識才行
嵌入式是一種包括了DSP及arm等最小系統板的統稱
其結構也各不相同,有些是傳統的馮諾依曼結構,在DSP領域大部分用的是改進的哈佛結構
學嵌入式一定要學linux,這個是很關鍵的環節
2. Linux裡面spark作用是什麼
Spark是通用數據處理引擎,適用於多種情況。 應用程序開發人員和數據科學家將Spark集成到他們的應用程序中,以快速地大規模查詢,分析和轉換數據。 與Spark最頻繁相關的任務包括跨大型數據集的互動式查詢,來自感測器或金融系統的流數據處理以及機器學習任務。
Spark於2009年開始運作,最初是加州大學伯克利分校AMPLab內部的一個項目。 更具體地說,它是出於證明Mesos概念的需要而誕生的,Mesos概念也是在AMPLab中創建的。 在Mesos白皮書《 Mesos:數據中心中的細粒度資源共享平台》中首次討論了Spark,其中最著名的作者是Benjamin Hindman和Matei Zaharia。
2013年,Spark成為Apache Software Foundation的孵化項目,並於2014年初被提升為該基金會的頂級項目之一。 Spark是基金會管理的最活躍的項目之一,圍繞該項目成長的社區包括多產的個人貢獻者和資金雄厚的企業支持者,例如Databricks,IBM和中國的華為。
從一開始,Spark就被優化為在內存中運行。 它比Hadoop的MapRece等替代方法更快地處理數據,後者傾向於在處理的每個階段之間向計算機硬碟寫入數據或從計算機硬碟寫入數據。 Spark的支持者聲稱,Spark在內存中的運行速度可以比Hadoop MapRece快100倍,並且在以類似於Hadoop MapRece本身的方式處理基於磁碟的數據時也可以快10倍。 這種比較並不完全公平,這不僅是因為原始速度對Spark的典型用例而言比對批處理更為重要,在這種情況下,類似於MapRece的解決方案仍然很出色。