linux開發什麼
A. linux上做什麼開發
可以做很多開發啊。有PC軟體開發、嵌入式產品開發、網路運維、伺服器管理等方向。
可以做系統功能、內核驅動方面的開發,GUI界面上的開發,自動化測試方面的腳本開發,都可以啊,應用非常廣泛。開發語言可以是c語言、C++語言,還可以是Shell腳本、Expect腳本、Perl腳本、Python腳本等。所以說,你這個問題涉及面非常廣。
現在很多通信、醫療、軍工、家用電器設備都使用嵌入式Linux系統,即可裁剪的、運行於移動設備端的Linux系統,Android、IOS歸根結底,都可算作是Linux平台的東西。當然,也可以基於自由的Linux平台來自主開發,有很多第三方庫可以拿來直接用。
開源平台,無與倫比的自由;開源社區,無窮無盡的支持。
B. linux 下 c++ 主要是開發什麼的
這個問題牽涉到兩個方面:1-開發平台是linux。2-開發語言是C++。
Linux下C++開發的廣度太大了,需要從不同角度去理解,我就只簡單從功能方面講一下。
LINUX開發主要分為系統開發和應用開發。而系統開發偏向於底層,主要是為Linux操作系統本身服務的,主要有驅動開發,內核開發等。應用開發偏向於開發應用軟體,開發應用軟體需要用到的所有模塊。如界面,那就需要UI開發。如網路通信,那就需要網路編程。如數據存儲,那就需要資料庫編程。等等。
C. 在Linux下做開發 要學習Linux哪些東西
嵌入式Linux要學哪些?一些人總在尋思,怕走了彎路,又怕學的東西離企業需求遠。那麼今天就請華清遠見高級講師曹大神告訴你,9點淺析嵌入式學習步驟。下面是他本人親筆。
1、要學習Linux,首先要會用,如果不會用怎麼知道怎麼知道怎麼去做,所以需要學習Linux系統的安裝及使用。
2、學會用Linux了,那麼我們就要做一些Linux下的開發了,開發什麼呢?看到網上有很多很強大很有趣的程序,我們都可以嘗試去做,可是如何去做呢,程序是什麼呢,怎麼寫呢?這時我們需要學習一些語言,比如比較基礎的C語言,比如面向對象的C++,Java等。
3、寫完程序了發現不就是一個很普通的文件嗎,怎麼能像別人寫的程序一樣運行起來呢? 這時我們需要知道如何編譯一個程序,需要知道編譯器及一些其他工具的使用,比如GCC,在開發的過程中我們為了提供工作效率還會用到Make,Shell等,為了能夠很好的管理我們代碼的不同版本,我們還需要知道什麼是SVC,CVS,subversion,Git等。
4、當我們開始寫一些比較大的程序,不再是以往的hello world級別的了,這時我們發現我們考慮的更多了,我們考慮到了程序的效率,我們發現需要讀寫文件了,我們發現需要和另外一台電腦通信了,於是我們有需要學習一些更高級點的東西了,比如數據結構,比如文件IO,比如多進程多線程編程,比如網路通信,這時我們會接觸很多新的名詞,什麼是樹,圖...,什麼是文件io什麼是標准IO,什麼是進程線程,什麼是TCP/IP...。
5、當我們再進一步的話,我們會發現我們什麼有很多的東西都運行的是Linux系統,可是他們和我的PC運行的Linux有什麼區別呢,為什麼我電腦要用風扇而手機不用風扇呢,我們打開網頁查找手機的詳細參數的時候,會看到Cortex-A15 、四核 、ARM等等字眼,什麼是ARM,什麼是Cortex-A15,我們需要進一步的了解。
6、了解完ARM之後,很多人就回去購買一些開發板,去學習它,這時操作系統的移植又成了一個比較重要的內容了,什麼是bootloader,什麼是kernel,什麼是rootfs等等,我們怎麼做呢。
7、花了很長時間系統做好了,發現板子上很多的什麼不能用,怎麼辦呢? 這時我們需要寫一些驅動來驅動這些設備,這時我們需要知道,什麼是字元設備驅動、塊設備驅動、網路設備驅動,為了更好的寫驅動我們需要了解更多的硬體相關的東西,我們需要看懂晶元手冊,我們需要看懂原理圖,只有我們懂我們的設備,才能更好的驅動它。
8、等等,這里就列舉更多的內容了,因為還有很多。
9、這些都有了我們就可以自行開發我們自己的產品了。
嵌入式Linux要學哪些?上述9點基本很明了了。這也算是嵌入式學習的一個基本步驟。本人認為到第九點你已經是一個高級的嵌入式Linux人物了,工資待遇我已經不用說,咋說也得15K往上了,如果做管理30K也是有的。這些東西要靠自學,說實話不太現實,嵌入式入門門檻相對高,要有心裡准備,參加培訓班是有必要的,除非你有親戚朋友手把手教你。引用一句老話:「師傅領進門,修行是靠個人!」自己必須得喜歡鑽研與學習,只有付出才會有收獲!
最後說一點,Android系統也是在linux系統基礎上開發的,所以學嵌入式linux的朋友,將來不僅可以從事嵌入式開發的工作(嵌入式的應用領域非常廣泛,永不過時!)還可以從事android開發方向的工作(輕松邁入),從職業發展來說,嵌入式linux也是程序員最具發展前景的技術首選。
頂
23
踩
D. linux系統的程序用什麼開發
Linux系統用的gcc編譯器,Linux是一個純C語言的操作系統。
E. linux開發還是windows開發有什麼區別
一、Windows系統
1、優點:對比其他的伺服器操作系統來說,是非常簡單易用的,級大程度降低了使用者的學習成本。
2、缺點:對伺服器的硬體要求比較高,而且穩定性不是很好。
3、應用:主要應用於中、低檔伺服器中。
二、Linux系統:
1、優點:Linux系統是免費開源的軟體,受到所有開發者共同監督,是非常成熟的伺服器系統,同時擁有者一套完整的許可權機制,安全和穩定性都非常不錯。
2、缺點:Linux系統需要學習一段時間才可以掌握,難度也高一些。
3、應用:Linux系統適用於中、高檔伺服器中。
三、Linux與Windows之間的區別是什麼?
1、Linux運行速度要快很多,安全性要比Windows系統好;
2、有的軟體只能在Windows中運行,在Linux中無法兼容使用;
3、Linux適用於在網路方面;
4、Linux系統操作起來要比較復雜,Windows相對於要簡單一些。
F. Linux開發需要什麼呢需要具備什麼基礎呢
一、linux和os:
1、命令:netstat tcpmp ipcs ipcrm 這四個命令的熟練掌握程度基本上能體現實際開發和調試程序的經驗
2、cpu 內存 硬碟 等等與系統性能調試相關的命令必須熟練掌握,設置修改許可權 tcp網路狀態查看 各進程狀態 抓包相關等相關命令 必須熟練掌握
3、awk sed需掌握
4、共享內存的使用實現原理、然後共享內存段被映射進進程空間之後,存在於進程空間的什麼位置?共享內存段最大限制是多少?
5、c++進程內存空間分布(注意各部分的內存地址誰高誰低,注意棧從高道低分配,堆從低到高分配)
6、ELF是什麼?其大小與程序中全局變數的是否初始化有什麼關系(注意.bss段)
7、使用過哪些進程間通訊機制,並詳細說明
8、makefile編寫,雖然比較基礎,但是會被問到
9、gdb調試相關的經驗,會被問到
10、如何定位內存泄露?
11、動態鏈接和靜態鏈接的區別
12、32位系統一個進程最多多少堆內存
13、多線程和多進程的區別(重點 必須從cpu調度,上下文切換,數據共享,多核cup利用率,資源佔用,等等各方面回答,然後有一個問題必須會被問到:哪些東西是一個線程私有的?答案中必須包含寄存器,否則悲催)
14、寫一個c程序辨別系統是64位 or 32位
15、寫一個c程序辨別系統是大端or小端位元組序
16、信號:列出常見的信號,信號怎麼處理?
17、i++是否原子操作?並解釋為什麼???????
18、說出你所知道的各類linux系統的各類同步機制(重點),什麼是死鎖?如何避免死鎖(每個技術面試官必問)
19、列舉說明linux系統的各類非同步機制
20、exit() _exit()的區別?
21、如何實現守護進程?
22、linux的內存管理機制是什麼?
23、linux的任務調度機制是什麼?
24、標准庫函數和系統調用的區別?
25、補充一個問題:系統如何將一個信號通知到進程?
二、c語言:
1、宏定義和展開(必須精通)
2、位操作(必須精通)
3、指針操作和計算(必須精通)
4、內存分配(必須精通)
5、各類庫函數必須非常熟練的實現
6、哪些庫函數屬於高危函數,為什麼?(strcpy等等)
三、c++:
1、一個String類的完整實現必須很快速寫出來(注意:賦值構造,operator=是關鍵)
2、虛函數的作用和實現原理(必問必考,實現原理必須很熟)
3、sizeof一個類求大小(注意成員變數,函數,虛函數,繼承等等對大小的影響)
4、指針和引用的區別(一般都會問到)
5、多重類構造和析構的順序
6、stl各容器的實現原理(必考)
7、extern c 是幹啥的,(必須將編譯器的函數名修飾的機制解答的很透徹)
8、volatile是幹啥用的,(必須將cpu的寄存器緩存機制回答的很透徹)
9、static const等等的用法,(能說出越多越好)
四、數據結構或者演算法:
1、《離散數學》范圍內的一切問題皆由可能被深入問到(最重要,最體現功底,最能加分,特別是各類樹結構的實現和應用)
2、各類排序:大根堆的實現,快排(如何避免最糟糕的狀態?),bitmap的運用等等
3、hash, 任何一個技術面試官必問(例如為什麼一般hashtable的桶數會取一個素數?如何有效避免hash結果值的碰撞)
五、網路編程:
1、tcp與udp的區別(必問)
2、udp調用connect有什麼作用?
3、tcp連接中時序圖,狀態圖,必須非常非常熟練
4、socket服務端的實現,select和epoll的區別(必問)
5、epoll哪些觸發模式,有啥區別?(必須非常詳盡的解釋水平觸發和邊緣觸發的區別,以及邊緣觸發在編程中要做哪些更多的確認)
6、大規模連接上來,並發模型怎麼設計
7、tcp結束連接怎麼握手,time_wait狀態是什麼,為什麼會有time_wait狀態?哪一方會有time_wait狀態,如何避免time_wait狀態佔用資源(必須回答的詳細)
8、tcp頭多少位元組?哪些欄位?(必問)
9、什麼是滑動窗口(必問)
10、connect會阻塞,怎麼解決?(必考必問,提示:設置非阻塞,返回之後用select檢測狀態)
11、如果select返回可讀,結果只讀到0位元組,什麼情況?
12、keepalive 是什麼東東?如何使用?
13、列舉你所知道的tcp選項,並說明其作用。
14、socket什麼情況下可讀?
六、db:
1、mysql,會考sql語言,伺服器資料庫大規模數據怎麼設計,db各種性能指標
G. linux c開發一般都做什麼項目
很多,內核驅動就是用C語言寫的,當讓應用程序也可用C語言編寫,如果要做圖形化界面可以在QT下用C++編寫,
H. linux主要是做什麼用的!
與Windows操作系統軟體一樣,Linux也是一個操作系統軟體。但與Windows不同的是,Linux是一套開放源代碼程序的,並可以自由傳播的類UNIX操作系統軟體,隨著信息技術的更新變化,Linux應用領域已趨於廣泛,
1、IT伺服器Linux系統應用領域
如今的IT伺服器領域是Linux、UNIX、Windows三分天下,Linux系統可謂是後起之秀,尤其是近幾年,伺服器端Linux操作系統不斷地擴大著市場份額,每年增長勢頭迅猛,並對Windows及UNIX伺服器市場的地位構成嚴重的威脅。
Linux作為企業級伺服器的應用十分廣泛,利用Linux系統可以為企業構架WWW伺服器、資料庫伺服器、負載均衡伺服器、郵件伺服器、DNS伺服器、代理伺服器(透明網關)、路由器等,不但使企業降低了運營成本,同時還獲得了Linux系統帶來的高穩定性和高可靠性。
隨著Linux在伺服器領域的廣泛應用,從近幾年的發展來看,該系統已經滲透到了電信、金融、政府、教育、銀行、石油等各個行業,同時各大硬體廠商也相繼支持Linux操作系統。這一切都在表明,Linux在伺服器市場的前景是光明的。同時,大型、超大型互聯網企業(網路、新浪、淘寶等)都在使用Linux系統作為其伺服器端的程序運行平台,全球及國內排名前十的網站使用的幾乎都是Linux系統,Linux已經逐步滲透到各個領域的企業里。
2、嵌入式Linux系統應用領域
由於Linux系統開放源代碼,功能強大、可靠、穩定性強、靈活,而且具有極大的伸縮性,再加上它廣泛支持大量的微處理器體系結構、硬體設備、圖形支持和通信協議,因此,在嵌入式應用的領域里,從網際網路設備(路由器、交換機、防火牆、負載均衡器等)到專用的控制系統(自動售貨機、手機、PDA、各種家用電器等),Linux操作系統都有很廣闊的應用市場。特別是經過這幾年的發展,它已經成功地躋身於主流嵌入式開發平台。例如,在智能手機領域,Android Linux已經在智能手機開發平台牢牢地佔據了一席之地。
3、個人桌面Linux應用領域
所謂個人桌面系統,其實就是我們在辦公室使用的個人計算機系統, 例如: Windows XP、Windows 7、MAC等。Linux系統在這方面的支持也已經非常好了,完全可以滿足日常的辦公及家用需求,例如:
瀏覽器上網瀏覽(例如:Firefox瀏覽器)。
辦公室軟體(OpenOffice,兼容微軟Office軟體)處理數據。
收發電子郵件(例如:ThunderBird 軟體)。
實時通信(例如:QQ 等)。
文字編輯(例如:vi、vim、emac)。
多媒體應用。想更詳細的了解下Linux,你可以查些相關資料,比如《Linux就該這么學》就是本不錯的Linux入門書籍。
I. linux開發要學什麼
第一條:運維應用-->系統架構-->運維開發-->系統開發
第二條:運維應用-->應用dba-->架構dba-->開發DBA
下面詳細每個階段的職位說明:
01.運維應用級別:
這個階段就是玩別人的軟體,例如:linux,nginx,mysql,php,nagios 大多數的linux運維工程師,網路工程師,系統工程師都是這個階段。 這個階段屬於金字塔的底端,工資是相對比較低的。
02.系統架構級別:
這個階段就是用已知軟體架構大規模集群方案以及實現各種技術方案,屬於運維應用上層,需要靠技術,溝通,思想三條線通力配合才能達到這個水平。
03.運維開發級別:
這個階段就是利用已知語言,開發基本的應用層工具,例如:web管理系統,如果具備前兩個運維應用和系統架構的積淀,這個是很輕松可以實現的。
04.系統開發級別:
這個階段就是修改開源的軟體,或者開發新的服務軟體(例如:也開發一個web軟體,存儲軟體)與底層軟體(例如:OS),是更高一層的開發人員。
05.資料庫管理和架構:
這個階段就是也主要是玩別人的軟體,但是數據相對更重要,要求有一定的運維應用的能力。
以上是常規的Linux發展路線,對於想學Linux運維,或正處於Linux運維相關工作的人員,可以根據自身的情況進行定位,選擇適合自己的發展路線,往往可以在職場上更加得心應手!
J. linux是用什麼語言編寫的
Linux操作系統主要包括內核和組件系統。Linux內核大部分是用C語言編寫的,還有部分是用匯編語言寫的,因為在對於硬體上,匯編有更好的性能和速度。
Linux的一些組件系統和附加應用程序是用C、C++、Python、perl等語言寫的。
(10)linux開發什麼擴展閱讀:
Linux與其他操作系統相比 ,具有開放源碼、沒有版權、技術社區用戶多等特點 ,開放源碼使得用戶可以自由裁剪,靈活性高,功能強大,成本低。尤其系統中內嵌網路協議棧 ,經過適當的配置就可實現路由器的功能。這些特點使得Linux成為開發路由交換設備的理想開發平台。
Linux不僅系統性能穩定,其核心防火牆組件性能高效、配置簡單,保證了系統的安全。在很多企業網路中,為了追求速度和安全,Linux操作系統不僅僅是被網路運維人員當作伺服器使用,Linux既可以當作伺服器,又可以當作網路防火牆是Linux的 一大亮點。