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作為開發產品的操作系統情況越來越多,使用越來越廣泛。為了交叉編譯,為了最接近開發目標,我們一般都會自己搭建一台Linux開發伺服器。Linux開發伺服器一些常用的功能必須支持,比如Samba、nfs、tftp、httpd等。
首先我們需要選擇合適的Linux操作系統作為伺服器的系統,推薦使用Fedora8、Fedora10等,筆者在長期使用的過程中覺得比較穩定吧!如何安裝該操作系統就不多說了。 裝好系統後,需要增加Linux OS用戶,可以使用命令#adser XXX;增加XXX用戶,
㈢ 做linux伺服器開發的前景怎麼樣
其實一樓這個機器人說得沒錯。Linux運維的需求遠遠比開發人員大。。
現在做後台很少用C、CPP這一類大型編譯語言,因為太慢了,沒效率,而且維護起來也不容易。通常是中大型公司才用的,膠水語言作為響應層,然後通過C、CPP調用socket分發給各個模塊的伺服器處理邏輯。
現在絕大多數的公司,都在用PHP,Python,node這一類的後台語言和解決方案。。敏捷開發,維護起來又簡單。
所以說,你打算做Linux伺服器開發,前景不容客觀。
㈣ 如何一步步學習linux伺服器編程
1、首先你要懂c++/c的程序結構。內存處理等基礎知識。 2、tcp/ip的聯網知識 3、linux的一些概念,進程、線程、信號量、同步等等。 4、socket API的知識 5、內核調用等 需要的很多知識。 也可以採用Apache的組織提供的結構來寫程序,可能稍簡單的。
㈤ linux伺服器開發需要哪些知識'
[開發前准備]
在進行linux伺服器開發之前,必須很清楚地了解所開發的對象需要考慮的相關問題
比如:
功能架構:提供服務的模塊體系結構
穩定性:伺服器的出core率,內存泄露情況
性能:請求與返回的速度與正確性
負載能力:能同時訪問的最大數量和頻度
根據不同伺服器對象的環境和應用,伺服器開發的對應手段相差甚遠。比如就客戶端連接時間較短卻又比較頻繁的伺服器(例如HTTP伺服器)而言,
在可選的伺服器結構中,預先派生進/線程的結構就要比並發式結構高效
總之,在開發伺服器之前,必須進行完整的伺服器開發需求分析,否則一旦你的伺服器開發完成而因為效率或者其他某項事物不能滿足你的客戶,那麼很有可能失敗!
[伺服器讓我明白了這件事情]
伺服器一般在後台運行,與客戶端的交互通過請求和返回兩種方式進行通信。
以epoll為例,一個epoll開發的伺服器程序,等待著一百萬的客戶端用戶的請求,輪詢觀察某個時刻是否有客戶端發來的請求;排隊依次處理發來的請求,並將結果返回給
客戶端應用程序。
涉及到幾個技術問題:
第一,客戶端訪問進入epoll輪詢隊列的優先順序是否需要控制。比如甲是我們的vip白金用戶,那麼,我始終先處理甲發來的請求,不然白金用戶要生氣的。
第二,極大可能程度上優化處理請求的速度,這是伺服器設計的核心業務。
第三,如果客戶端請求了這樣一個事情:我需要看這一百年來某企業所有的信息,那麼我想這個信息量是很大的,也就是現在很熱門的大數據大文件傳輸問題,如何快速
將服務端的這些結果傳給客戶端,在帶寬允許的情況下當然越快越好!這里會有很多處理措施,當然你可以打成一個包直接扔過去,但是這樣是愚蠢的,像蝸牛背著一個
重殼在挪動,用戶可等不了這么久;聰明的做法當然很多,根據你的實際需要,比如,你可以壓縮,你可以分批,等等。
等等,其實伺服器的整個開發,每個細節都決定了你的伺服器的成敗優劣。在開發linux伺服器的項目後,我個人決定,一個讓你的伺服器變得強大的很重要的因素是——
——你不願意放棄任何一個可以挺高性能的因素,即使是快0.01ms或者少傳1bt的數據!
[流行的伺服器模型]
1 PPC/TPC 模型
這兩種模型思想類似,就是讓每一個到來的連接一邊自己做事去,別再來煩我 。只是 PPC 是為它開了一個進程,而 TPC 開了一個線程。可是別煩我是有代價的,
它要時間和空間啊,連接多了之後,那麼多的進程 / 線程切換,這開銷就上來了;因此這類模型能接受的最大連接數都不會高,一般在幾百個左右。
2 select 模型
2.1. 最大並發數限制,因為一個進程所打開的 FD (文件描述符)是有限制的 由 FD_SETSIZE 設置,默認值是 1024/2048 ,因此 Select 模型的最大並發數就被相應限制了。
自己改改這個 FD_SETSIZE ?想法雖好,可是先看看下面吧 …
2.2. 效率問題, select 每次調用都會線性掃描全部的 FD 集合,這樣效率就會呈現線性下降,把 FD_SETSIZE 改大的後果就是,大家都慢慢來,什麼?都超時了??!!
2.3. 內核 / 用戶空間 內存拷貝問題,如何讓內核把 FD 消息通知給用戶空間呢?在這個問題上 select 採取了內存拷貝方法。
3 poll 模型
基本上效率和 select 是相同的, select 缺點的 2 和 3 它都沒有改掉。
4 Epoll 模型
把其他模型逐個批判了一下,再來看看 Epoll 的改進之處吧,其實把 select 的缺點反過來那就是 Epoll 的優點了。
3.1. Epoll 沒有最大並發連接的限制,上限是最大可以打開文件的數目,這個數字一般遠大於 2048, 一般來說這個數目和系統內存關系很大 ,
具體數目可以 cat /proc/sys/fs/file-max 察看。
3.2. 效率提升, Epoll 最大的優點就在於它只管你「活躍」的連接 ,而跟連接總數無關,因此在實際的網路環境中, Epoll 的效率就會遠遠高於 select 和 poll 。
3.3. 內存拷貝, Epoll 在這點上使用了「共享內存 」,這個內存拷貝也省略了。
等等。
在開發你的伺服器之前,應根據自己的業務需求和實際情況,恰當地選擇伺服器的模型,這對這個伺服器的功能效率都是具有很重要的意義的
㈥ linux伺服器開發常用的開發環境和工具是什麼
vi最好還是掌握一下,避免有時候在沒有開發工具時應急用。
我習慣在windows下用Notepad++ 寫東西。結合winscpd直接
可以把寫的文件保存到伺服器上進行調試。這個還是看個人喜好
和習慣,沒有什麼絕對的。
㈦ 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開發伺服器
在開發過程中,必然會出現多人同時工作、協著的情況,在嵌入式開發項目中更為平常,這樣可以加快項目周期,為產品上市佔得時間先機。目前,使用Linux作為開發產品的操作系統情況越來越多,使用越來越廣泛。為了交叉編譯,為了最接近開發目標,我們一般都會自己搭建一台Linux開發伺服器。Linux開發伺服器一些常用的功能必須支持,比如Samba、nfs、tftp、httpd等。 首先我們需要選擇合適的Linux操作系統作為伺服器的系統,推薦使用Fedora8、Fedora10等,筆者在長期使用的過程中覺得比較穩定吧!如何安裝該操作系統就不多說了。 裝好系統後,需要增加Linux OS用戶,可以使用命令#adser XXX;增加XXX用戶,#passwd XXX給其設置登錄密碼。當然使用圖形化創建用戶也很直觀、方便。在這個環節值得注意的一定要設置好該用戶的home目錄,一般都會設置到該用戶的工作目錄,各個用戶的工作目錄需要私有化、獨立開來,這樣方便些、安全些。 多用戶的賬戶有了,我們應該來打通網路功能了,Fedora有bug,在圖形化配置GATEWAY什麼的會不成功,請安裝如下方法修改: # cd cd /etc/sysconfig/network-scripts/ # vi ifcfg-eth0 修改配置文件如下: # Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller DEVICE=eth0 HWADDR=00:16:e6:db:c2:96 ONBOOT=yes BOOTPROTO=static //這個應該是「static」,而不是「dhcp」或「none」; USERCTL=yes PEERDNS=yes IPV6INIT=no NM_CONTROLLED=yes//這個應該是「yes」,如不修改,鏈接仍是disconnected; TYPE=Ethernet NETMASK=***.***.***.*** IPADDR=***.***.***.*** DNS1=***.***.***.*** DNS2=***.***.***.*** GATEWAY=***.***.***.*** step 3: # service network restart 接下來就需要調試一下Samba功能了,這樣在windows下編輯Linux下的代碼將非常的便利。命令行下操作方法如下: Vim /etc/samba/smbusers # Unix_name = SMB_name1 SMB_name2 … root = administrator admin nobody = guest pcguest smbguest dssun = dssun hmchen = hmchen 增加Samba用戶; Vim /etc/samba/smb.conf [dssun] comment = * path = /opt/STM/STLinux-2.3/devkit/dtvkit/dssun writeable = yes ; browseable = yes valid users = bluo, dssun, hmchen, hqian, sbxiang, tsfu, yrli 設置工作路徑,可讀寫性、有效訪問的用戶等。 在圖形化下也有配置菜單,這個就很簡單了,不再敘述。 有了Samba就方便很多了!編譯編輯都很不錯了!接下來要著手你的開發平台軟體,這個對於不同平台的SDK有不同的處理方法,根據自己的SDK來處理。 有了SDK後,我們編譯通過後,一般都會進行調試,如何方便的調試呢?一般都會想到使用nfs調試。 以Fedora為例,一般默認安裝的沒有包括tftp功能,可以使用yum來安裝,方便! #yum install tftp; #yum install tftp-server 還需要更改一下tftp的配置,如下: vim /etc/xinetd.d/tftp 修改server_args = -s /tftpboot -c,這里的-c一定要加上,否則只能下載不能上傳!!! service tftp { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot -c per_source = 11 cps = 100 2 flags = IPv4 } # mkdir /tftpboot # chmod 777 -R /tftpboot/ # service xinetd restart 記得要關閉防火牆、seLinux.不disabled seLinux,Samba有可能只能讀不能寫,切記。
㈨ linux伺服器開發(網路游戲方向)都要學什麼知識
伺服器開發,首要的是一種編程語言,C++或者Java
要深入這門語言的學習,學習內存管理,學習線程式控制制,對象池,線程池,Socket等
還要學會資料庫增刪改查
㈩ 為什麼要用Linux做伺服器
大致三個原因:
1、免費--Linux是免費的,任何人都可獲取而無需付費
2、安全--至今為止,尚未發現linux操作系統上的病毒
3、強大--擴展性強, 用戶可以自己定義或改變內核,加入自已的應用程序包,使之更符合特定應用的要求,如web/erp/vod等應用伺服器, 以下幾個方便是windows或unix(如hp-ux, Aix或Solaris)版本所不備有的功能:
A、自動補全功能:在輸入命令時可以按TAB補全命令。
B、模塊化設計:只要能稍稍學習一下系統的知識,不用擔心系統會出問題,出了問題一般也不用重裝,在終端將配置修改一下或者直接還原就可以了。
C、對其它系統支持好:可以掛載其它系統的分區,可以在虛擬機中安裝運行其它系統如Windows,可以用WINE來運行部分Windows程序。好像Windows從來無法模擬運行Linux程序。
D、可定製:你可以安裝自己喜歡的桌面環境,可以將外觀換成自己喜歡的樣子,如MAC OS X或者Vista等等,可以很簡單地定義快捷鍵起動自己喜歡的程序,甚至可以自行編譯內核,使用符合自己需要的內核,在顯示版本上加上自己的名字。
E、夠用:相當Windows而言,對我們普通用戶來說Linux的功能還差點,主要是軟體開發商的支持不夠,但一般也足夠了,辦公用OO或Abiword之類,作圖有Gimp,矢量的Inkscape 和Xrar LX,3D有MAYA(這是商業軟體),瀏覽器有Firefox和Opera等,多媒體播放器有Mplayer,音樂播放器有BMP、Audacious等,網路電視有gopcast(沒有pplive台多),辭典有星際譯王,背單詞有recideword(黑客背單詞)。應該說基本能滿足我們的需要了。
F、cool:現在都說Vista的桌面怎樣cool,但真正比較起來,還是Linux在這里更勝一籌,安裝過beryl的都知道。