Ⅰ linux系統是哪家公司開發的
Linux 是一個操作系統,就像windows一樣。它不屬於任何公司,屬於完全開放的。最早由Linus
Torvalds編寫了內核,後來很多優秀的程序員參與了這一工作。現在看到的不同版本只是不同發
行版而已,比較有名的有Redhat,SUSE, Debian等等,只要是將linux內核,驅動,應用軟體打
包發行的,本質上都是可以免費獲得源代碼的。
(1)linux開發擴展閱讀:
Linux操作系統的誕生、發展和成長過程始終依賴著五個重要支柱:Unix操作系統、MINIX操作系
統、GNU計劃、POSIX標准和Internet網路。
20世紀80年代,計算機硬體的性能不斷提高,PC的市場不斷擴大,當時可供計算機選用的操作系
統主要有Unix、DOS和MacOS這幾種。Unix價格昂貴,不能運行於PC;DOS顯得簡陋,且源代
碼被軟體廠商嚴格保密;
MacOS是一種專門用於蘋果計算機的操作系統。此時,計算機科學領域迫切需要一個更加完善、
強大、廉價和完全開放的操作系統。由於供教學使用的典型操作系統很少,因此當時在荷蘭當教
授的美國人AndrewS.Tanenbaum編寫了一個操作系統,名為MINIX,為了向學生講述操作系統
內部工作原理。MINIX雖然很好,但只是一個用於教學目的的簡單操作系統,而不是一個強有力
的實用操作系統,然而最大的好處就是公開源代碼。全世界學計算機的學生都通過鑽研MINIX源
代碼來了解電腦里運行的MINIX操作系統,芬蘭赫爾辛基大學大學二年級的學生Linus Torvalds就
是其中一個,在吸收了MINIX精華的基礎上,Linus於1991年寫出了屬於自己的Linux操作系統,
版本為Linux0.01,是Linux時代開始的標志。他利用Unix的核心,去除繁雜的核心程序,改寫成
適用於一般計算機的x86系統,並放在網路上供大家下載,1994年推出完整的核心Version1.0,
至此,Linux逐漸成為功能完善、穩定的操作系統,並被廣泛使用。
Ⅱ 自己如何開發linux
說明:
你至少要學會一種對應的編程語言,如:C、C++、Shell編程等。
推薦參考書目:
1. 《Linux系統與網路服務管理 技術大全(第二版)》楊明華 譚勵等編著 電子工業出版社 79元 含光碟一張;
2. 《Linux系統管理與網路管理》 余柏山等編著 清華大學出版社 89元 含光碟一張。
讀完這兩本書,基本上就夠用了。
建議:
1. 最好在系統中先安裝VMware虛擬機,然後在虛擬機中安裝Redhat Enterprise Linux 5等Linux系統;
2. 在虛擬機的Linux系統中進行各種測試,這樣就算有問題也沒有什麼關系;
3. 個人推薦Redhat Enterprise Linux 5(RHEL 5),這在企業中應用非常廣泛。
Ⅲ 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相對於要簡單一些。
Ⅳ linux開發要學什麼
第一條:運維應用-->系統架構-->運維開發-->系統開發
第二條:運維應用-->應用dba-->架構dba-->開發DBA
下面詳細每個階段的職位說明:
01.運維應用級別:
這個階段就是玩別人的軟體,例如:linux,nginx,mysql,php,nagios 大多數的linux運維工程師,網路工程師,系統工程師都是這個階段。 這個階段屬於金字塔的底端,工資是相對比較低的。
02.系統架構級別:
這個階段就是用已知軟體架構大規模集群方案以及實現各種技術方案,屬於運維應用上層,需要靠技術,溝通,思想三條線通力配合才能達到這個水平。
03.運維開發級別:
這個階段就是利用已知語言,開發基本的應用層工具,例如:web管理系統,如果具備前兩個運維應用和系統架構的積淀,這個是很輕松可以實現的。
04.系統開發級別:
這個階段就是修改開源的軟體,或者開發新的服務軟體(例如:也開發一個web軟體,存儲軟體)與底層軟體(例如:OS),是更高一層的開發人員。
05.資料庫管理和架構:
這個階段就是也主要是玩別人的軟體,但是數據相對更重要,要求有一定的運維應用的能力。
以上是常規的Linux發展路線,對於想學Linux運維,或正處於Linux運維相關工作的人員,可以根據自身的情況進行定位,選擇適合自己的發展路線,往往可以在職場上更加得心應手!
Ⅳ 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各種性能指標
Ⅵ Linux是誰開發出來的
Linux,全稱GNU/Linux,是一種免費使用和自由傳播的類UNIX操作系統,其內核由林納斯·本納第克特·托瓦茲於1991年10月5日首次發布,它主要受到Minix和Unix思想的啟發,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的Unix工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。Linux有上百種不同的發行版,如基於社區開發的debian、archlinux,和基於商業開發的Red
Hat Enterprise Linux、SUSE、oracle linux等。
Linux不僅系統性能穩定,而且是開源軟體。其核心防火牆組件性能高效、配置簡單,保證了系統的安全。在很多企業網路中,為了追求速度和安全,Linux不僅僅是被網路運維人員當作伺服器使用,它還被當作伺服器,甚至當作網路防火牆,這是Linux的一大亮點。
Linux具有開放源碼、沒有版權、技術社區用戶多等特點,開放源碼使得用戶可以自由裁剪,靈活性高,功能強大,成本低。尤其系統中內嵌網路協議棧,經過適當的配置就可實現路由器的功能。這些特點使得Linux成為開發路由交換設備的理想開發平台。
Ⅶ linux開發工程師開發什麼的
一:C語言:嵌入式Linux開發工程師的學習需要具備一定的C語言基礎,C語言是嵌入式領域重要也是主要的編程語言,通過大量編程實例重點理解C語言的基礎編程以及高級編程知識。包括:基本數據類型、數組、指針、結構體、鏈表、文件操作、隊列、棧等。
二:Linux基礎:Linux操作系統的概念、安裝方法,詳細了解Linux下的目錄結構、基本命令、編輯器VI ,編譯器GCC,調試器GDB和 Make 項目管理工具, Shell Makefile腳本編寫等知識,嵌入式開發環境的搭建。
三:Linux系統編程:重點學習標准I/O庫,Linux多任務編程中的多進程和多線程,以及進程間通信(pipe、FIFO、消息隊列、共享內存、signal、信號量等),同步與互斥對共享資源訪問控制等重要知識,主要提升對Linux應用開發的理解和代碼調試的能力。
四:Linux網路編程:計算機網路在嵌入式Linux系統應用開發過程中使用非常廣泛,通過Linux網路發展、TCP/IP協議、socket編程、TCP網路編程、UDP網路編程、Web編程開發等方面入手,全面了解Linux網路應用程序開發。重點學習網路編程相關API,熟練掌握TCP協議伺服器的編程方法和並發伺服器的實現,了解HTTP協議及其實現方法,熟悉UDP廣播、多播的原理及編程方法,掌握混合C/S架構網路通信系統的設計,熟悉HTML,Javascript等Web編程技術及實現方法。
五:數據結構與演算法:數據結構及演算法在嵌入式底層驅動、通信協議、及各種引擎開發中會得到大量應用,對其掌握的好壞直接影響程序的效率、簡潔及健壯性。此階段的學習要重點理解數據結構與演算法的基礎內容,包括順序表、鏈表、隊列、棧、樹、圖、哈希表、各種查找排序演算法等應用及其C語言實現過程。
六:C++ 、QT:C++是Linux應用開發主要語言之一,本階段重點掌握面向對象編程的基本思想以及C++的重要內容。圖形界面編程是嵌入式開發中非常重要的一個環節。由於QT具有跨平台、面向對象、豐富API、支持2D/3D渲染、支持XML、多國語等強大功能,在嵌入式領域的GUI開發中得到了廣范的應用,在本階段通過基於QT圖形庫的學習使學員可以熟練編寫GUI程序,並移植QT應用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息與槽機制的應用、滑鼠、鍵盤及繪圖事件處理及文件處理的應用。
七:Cortex A8 、Linux 平台開發:通過基於ARM Cortex-A8處理s5pv210了解晶元手冊的基本閱讀技巧,掌握s5pv210系統資源、時鍾控制器、電源管理、異常中斷控制器、nand flash控制器等模塊,為底層平台搭建做好准備。Linux平台包括內核裁減、內核移植、交叉編譯、GNU工具使用、內核調試、Bootloader介紹、製作與原理分析、根文件系統製作以及向內核中添加自己的模塊,並在s5pv210實驗平台上運行自己製作的Linux系統,集成部署Linux系統整個流程。同時了解Android操作系統開發流程。Android系統是基於Linux平台的開源操作系統,該平台由操作系統、中間件、用戶界面和應用軟體組成,是首個為移動終端打造的真正開放和完整的移動軟體,目前它的應用不再局限於移動終端,還包括數據電視、機頂盒、PDA等消費類電子產品。
八:驅動開發:驅動程序設計是嵌入式Linux開發工作中重要的一部分,也是比較困難的一部分。本階段的學習要熟悉Linux的內核機制、驅動程序與用戶級應用程序的介面,掌握系統對設備的並發操作。熟悉所開發硬體的工作原理,具備ARM硬體介面的基礎知識,熟悉ARM Cortex-A8處理器s5pv210各資源、掌握Linux設備驅動原理框架,熟悉工程中常見Linux高級字元設備、塊設備、網路設備、USB設備等驅動開發,在工作中能獨立勝任底層驅動開發。
以上內容就是linux開發工程師主要會干什麼,看上去挺多的吧。事實上linux的學習是一步一步循序漸進的,慢慢的就會發現,一切都順理成章。還在猶豫要不要學習?趕緊開始吧!
更多Linux知識可參考《Linux就該這么學》。
Ⅷ 基於Linux開發的操作系統有哪些
linux為內核的系統有16款,下面是詳細情況。
1、Kubuntu
Kubuntu 是一個Ubuntu 操作系統,它使用的是KDE plasma Desktop 而非Unity 圖形環境。
2、Ubuntu
Ubuntu是一款快速、安全、簡單易用的Linux操作系統,它在全世界有成千上萬的擁躉。
3、openSUSE
openSUSE 是一款免費、穩定、易用、基於Linux的多功能操作系統。 它適用於PC、筆記本以及伺服器。有
4、Mandriva Linux OS
Mandriva Linux是來自Mandriva的終極版Linux操作系統。它是三種技術融合的結晶:Mandriva,Conectiva和Lycoris。
5、Debian operating system
Debian Linux也是一款免費的操作系統。Debian使用Linux內核(一個操作系統的核心),但大部分基本操作系統工具來自GNU項目,因此得名GNU / Linux。
6、Elive Linux operating system
Elive是一個完整的基於Linux的操作系統,是替換那些昂貴的操作系統的最佳選擇。Elive建立在Debian GNU / Linux基礎之上,並允許用戶自定義以滿足個人需要。界面清爽美觀,硬體需求較小。只需一個介面就能使舊電腦瞬間高能。
7、Fedora Linux operating system
Fedora是一個基於linux的操作系統,展示最新的免費開源軟體。Fedora免費供任何人使用,修改和發行。
8、Sabayon Linux
Sabayon Linux是一款先進的、可伸縮的和社區驅動的Linux操作系統。它努力為用戶提供最好、最完整的計算體驗。
9、FreeBSD
FreeBSD是一款面向現代伺服器、台式機和嵌入式計算機平台的操作系統。FreeBSD提供先進的網路、驕人的安全特性和世界一流的性能。
10、PC-BSD Linux Operating system
PC-BSD是一款易用性很強的Linux操作系統。如同其他任何現代系統,你可以聽你喜歡的音樂,看你喜歡的電影,辦公,處理文檔,安裝你喜歡的各種應用程序,一切只需一鍵就能安裝好。
11、DesktopBSD
DesktopBSD致力於為台式機用戶提供一個穩定且強大的Linux操作系統。DesktopBSD結合了FreeBSD的穩定性和KDE的實用性和功能。
12、Syllable Desktop
Syllable Desktop是一個完整的操作系統。它易於使用,功能強大,佔用空間小,響應迅速。
13、GeeXboX
GeeXboX是一款免費開源的,用作媒體中心(Media-Center)的Linux distribution,用於嵌入式設備和台式電腦。
14、麒麟系統
銀河麒麟(Kylin)是由國防科技大學、中軟公司、聯想公司、浪潮集團和民族恆星公司合作研製的開源伺服器操作系統。此操作系統是863計劃重大攻關科研項目,目標是打破國外操作系統的壟斷,研發一套中國自主知識產權的伺服器操作系統。
15、Red Hat
Red Hat公司發布的面向企業用戶的Linux操作系統。
16、Centos
Centos是Linux發行版之一,它是來自於Red Hat Enterprise Linux依照開放源代碼規定釋出的源代碼所編譯而成。
Ⅸ linux上做什麼開發
可以做很多開發啊。有PC軟體開發、嵌入式產品開發、網路運維、伺服器管理等方向。
可以做系統功能、內核驅動方面的開發,GUI界面上的開發,自動化測試方面的腳本開發,都可以啊,應用非常廣泛。開發語言可以是C語言、C++語言,還可以是Shell腳本、Expect腳本、Perl腳本、Python腳本等。所以說,你這個問題涉及面非常廣。
現在很多通信、醫療、軍工、家用電器設備都使用嵌入式Linux系統,即可裁剪的、運行於移動設備端的Linux系統,Android、IOS歸根結底,都可算作是Linux平台的東西。當然,也可以基於自由的Linux平台來自主開發,有很多第三方庫可以拿來直接用。
開源平台,無與倫比的自由;開源社區,無窮無盡的支持。