日本亚洲欧美日韩中文字幕_精品欧美一区二区三区久久久_久久av高潮av无码av_成在人线av无码免费_亚洲中文字幕无码久久精品1

返學費網 > 培訓機構 > 北京尚觀科技武漢分公司

400-850-8622

全國統(tǒng)一學習專線 8:30-21:00

[武漢市]UDA-高級UNIX/Linux服務器開發(fā)架構師

授課機構:北京尚觀科技武漢分公司

地址:魯磨路118號國光大廈1201A座

網報價格:¥電詢

課程原價:¥電詢

咨詢熱線:400-850-8622

課程詳情 在線報名

課程描述如果您希望編寫的網游服務器,或者通過重寫代碼來調整新浪的web服務器性能,就應該選擇這門課程。目前是云計算的時代,Google、百度、騰訊、阿里巴巴等公司都在部署自己的云計算平臺,而除了微軟自己,毫無例外所有的成規(guī)模的云計算平臺都是UNIX/Linux平臺下的軟件架構。而網絡游戲等熱門公司也大量采用UNIX/Linux平臺的系統(tǒng)及網絡程序,所以本課程為目前最熱門的研發(fā)職業(yè)生涯打下堅實的技術基礎。
 
教學目標:強調全真Linux平臺開發(fā)環(huán)境,完全企業(yè)真實開發(fā)項目,讓學員通過9個以上的實際項目全面演練UNIX/Linux平臺下POSIX規(guī)范,以及Socket網絡編程的技能,讓學員真正達到云計算企業(yè)以及網游、實時消息服務商等企業(yè)的技術要求。
 
面向行業(yè)及崗位
面向職位服務器軟件研發(fā)工程師、網游軟件工程師、互聯(lián)網開發(fā)工程師、云計算開發(fā)工程師
學員就業(yè)公司有:互聯(lián)網公司,如騰訊(國互聯(lián)網中心(服務器端程序)百度 等;網游公司,如巨人網絡、北之辰游戲公司;系統(tǒng)集成公司,如聯(lián)想利泰等
 
■ 培養(yǎng)對象
    希望掌握UNIX/Linux平臺的服務器端程序開發(fā)技術的學員;以及希望從事網絡游戲開發(fā)、VOD視頻點播系統(tǒng)、視頻廣播系統(tǒng)的愛好者、工程師、程序員、已及相關行業(yè)的工程技術人員;有志于從事C/S架構、云計算架構研發(fā)的軟件開發(fā)技術人員和正在學習計算機、軟件、通信專業(yè)的學生,以下是主要應用方向
    ◆ 網絡游戲軟件開發(fā);
    ◆ 類似span>開發(fā);
    ◆ UNIX/Linux系統(tǒng)級服務軟件開發(fā);
 
課程特色
◆本課程設計者為Chinaunix C/C++版資深版主Johnbull
◆全部Linux平臺開發(fā)環(huán)境最接近真實的企業(yè)開發(fā)環(huán)境
◆為云計算提供直接的知識積累
◆全新案例教學,自己編寫不少于9個實際項目
◆高強度授課,全部項目型教學,每個環(huán)節(jié)都有案例,全程計算機教學
 
課程大綱:
(UDA 高級部分 共360學時,每天8學時,共9周全部上機
開發(fā)E級課程初級部分 共176學時,每天8學時,共5周全部上機 )
 
UDA- UNIX/Linux應用開發(fā)整體概述
   UNIX/Linux高級I/O編程
   UNIX/Linux進程與線程開發(fā)
   UNIX平臺多線程開發(fā)
   進程間通信 TCP/IP協(xié)議棧的設計與實現
   UNIX/Linux Socket網絡編程與實例
   C/S結構UNIX服務器編程實例
 
項目1自助點菜系統(tǒng)
實際項目2自己寫一個UNIX文件復制程序
實際項目3自己寫一個文件操作的命令
實際項目4高效數據中繼引擎
實際項目6UNIX任意定時器
項目5自己動手寫一個命令解釋器(shell
實際項目7利用多線程技術重寫 實際案例4高效數據中繼引擎
實際項目8利用多線程技術重寫 實際項目6UNIX任意定時器
實際項目9數字媒體廣播系統(tǒng)
 
課程詳細大綱
-------- 第部分 UDA A級高級部分(E基礎部分在后部)-------
UNIX/Linux I/O開發(fā)及實例  
 
標準I/O
 
重要數據類型和常量
標準I/O庫作為ASNI C定義的一部分,不僅僅定義了I/O行為,還定義了若干常量和宏,對我們認識C語言編程有很重要的意義。
兩種I/O操作風格及其適用場合
標準I/O庫提供了格式化I/O和原始I/O兩種操作風格,完整掌握這兩種風格的操作,并學會在日常碰到的各種問題中,選擇合適的風格予以解決是C程序員的入門技能之一。
緩沖及其帶來的問題和收益

標準I/O庫定義了一個用戶態(tài)的buffer,這個buffer讓絕大多數初學者頭疼,如何正確看待和使用這個機制對于程序效率和穩(wěn)定性很重要。

 
項目1自助點菜系統(tǒng)
 

很多學C的初學者總是抱怨"我已經學會C語言了,可是為什么還是什么都寫不出來呢?" 這個項目就會給你一個完整的答案!我們僅僅利用前面學過的標準I/O技術(相當于"譚C"),構造一個實際的應用程序。看看我們與實際程序之間相距多遠。

項目描述:本項目的目標是實現一個基于WEB的自助點菜系統(tǒng),系統(tǒng)具備與網內應用服務器提取菜單信息以及將客戶點菜信息發(fā)往服務器的功能。
要求:
.WEB界面
.數據庫訪問
.支持點菜、退菜、帳單結算
說明:
增進對Apache WEB服務體系的理解
設計并實現一個真實而完整的WEB應用程序,涉及到數據庫訪問、HTTP協(xié)議、標準I/O庫、CGI等編程技術。

強化對標準I/O庫的理解,強化Browser/Server軟件架構的理解。

系統(tǒng)I/O
文件描述符
使用I/O系統(tǒng)調用的最關鍵參數,認識文件描述符是認識UNIX內部設計的*步。
系統(tǒng)I/O操作
系統(tǒng)調用層的I/O操作相對簡單,但是非?;A,必須練得非常扎實才行。
 描述符操作
理解了文件描述符之后,就可以利用若干系統(tǒng)調用對I/O行為進行更細微的操作了,如dup(2)、fcntl(2)、ioctl(2)等等
性能的問題
與標準I/O操作相比,系統(tǒng)調用層的I/O少了一層buffer,那么我們研究一下什么強況下使用什么接口進行操作。
文件系統(tǒng)操作
stat(2)及其相關問題
獲取文件的詳細信息,并分析結果。
UNIX文件系統(tǒng)的原理
利用傳統(tǒng)的UFS文件系統(tǒng),了解UNIX文件系統(tǒng)的架構和設計思想,我們可以完整地看到諸如i-node的具體意義,并通過對ext2的分析,實踐我們在算法與數據結構課上學到的知識。
文件亞數據操作
我們可以了解到coreutil包中的大部分命令的實現內幕。
連接
有了對文件系統(tǒng)的理解,我們可以完整地掌握硬連接和符號連接的具體意義。
目錄操作
這是程序員的基本技能之一。我們將了解兩種操作方式。
 
實際項目2自己寫一個UNIX文件復制程序
復制文件這件事情說起來簡單,做起來是另一回事!你可以用含空洞的文件仔細測試一下系統(tǒng)內置cp的行為,你會發(fā)現不是那么簡單。我們在這里就要模仿一個coreutil中的cp命令。
項目描述:可靠地實現一個系統(tǒng)基本命令cp。
要求:
.可靠
.設備無關
.命令行參數解析
.支持文件空洞
說明:
實現一個真實的console應用程序,涉及到對各種IO異常的預見和處理、命令行參數的解析、各種類型文件的處理。
強化對系統(tǒng)I/O的理解、強化對目錄訪問。
 
實際項目3自己寫一個文件操作的命令
項目描述:可靠地實現一個系統(tǒng)基本命令
要求:
.可靠
.設備無關
.命令行參數解析
.支持顏色顯示
說明:
實現一個真實的console應用程序,涉及到stat(2)、命令行參數解析、目錄訪問、ANSI終端規(guī)程。

強化對stat(2)系統(tǒng)調用的理解。

高級I/O操作
非阻塞I/O
I/O多路復用
Linux提供的高性能epoll
信號驅動I/O
POSIX異步I/O
mmap(2)
 
實際項目4高效數據中繼引擎
項目描述:可靠地實現一個通用描述符對數據中繼引擎,這是一個經常用于高密度服務(如網游、中間件等)的算法。
要求:
.可靠

.靈活適應各種流程

.使用epoll(2)
.支持至少4000對套接字、管道或終端描述符間并發(fā)操作

.封裝成動態(tài)庫模塊
 

說明:
實現一個對大量文件描述符對進行數據中繼的模塊,利用epoll實現。
強化對select(2)、poll(2)、epoll(2)LTET)、aio_*系統(tǒng)調用的理解。掌握實現類似功能時的一般設計思路,推廣后實現任意協(xié)議的有限狀態(tài)機編碼。
 
UNIX進程與線程設計與實例     
進程環(huán)境
進程的開始和終止
進程的內存布局
Intel X86函數調用規(guī)范
環(huán)境變量
動態(tài)庫技術解析
長跳轉及其應用
進程資源限制
 
多進程編程
主要介紹多進程編程的原理,乃至shell運作的原理。
進程創(chuàng)建
裝載外部命令
回收僵尸進程
進程的身份標識 理解UNIX如何實現多用戶權限隔離,并掌握u+s權限實現的細節(jié),以及如何編寫u+s權限的程序。
解釋器文件的原理
為什么UNIX下幾乎所有的腳本語言都以“#”作為注解符號,僅僅是巧合嗎?本部分做解釋。
進程時間
進程關系
進程組、會話組的概念奇跡應用。
 
項目5自己動手寫一個命令解釋器(shell
項目描述:本項目的目標是實現一個交互式shell程序。
要求:
.簡單可靠
.支持環(huán)境變量
.支持基本的內部命令
.支持IO重定向
說明:
設計并實現一個交互式shell,設計進程環(huán)境、進程控制、系統(tǒng)IO操作。
強化對多進程編程的理解以及對標準shell的理解。
 
信號
信號的概念
信號是UNIX提供的重要異步構件,所有UNIX程序員都要掌握這個機制,同時也是學習難點。
信號的操控
對信號最基本的操作就是發(fā)送和捕獲,利用信號我們可以大大提高代碼的表達能力,做到以前做不到的事情。
不可靠的信號語義
可靠的信號語義
關于信號的可靠與不可靠,很多人抱有錯誤的想法。信號的可靠與否和網絡傳輸的可靠與否完全不同!
幾個重要信號的典型應用
重點介紹鬧鐘信號和子進程改變信號。
POSIX對信號語義的發(fā)展
POSIX從BSD的信號機制出發(fā),發(fā)展了更精確、更強大的信號操控接口,也是我們學習和日后主要使用的方法。
POSIX實時信號
彌補了傳統(tǒng)信號的缺憾,讓信號能夠更承載更廣泛的應用。
 
實際項目6UNIX任意定時器
有人在BBS上發(fā)過牢騷,說UNIX給每個進程設計一個定時器太少了,復雜的定時不夠用...這是一個不求甚解的觀點,用一個時鐘當然可以實現任意多個定時器。
項目描述:本項目的目標是利用進程的單一定時器實現任意多定時操作
要求:
.簡單可靠
.支持至少1024個定時作業(yè)
.定時器精度在0.1秒內
.封裝成動態(tài)庫模塊
說明:
設計并實現一個任意定時器,具有很高的實踐意義,很多應用程序中都有這個要求。涉及到信號操作、數據結構的使用。

強化信號的使用技巧。

多線程編程
線程的概念
什么是線程?為什么會出現線程?線程的實現方式?
線程與進程的性能比較分析
是不是一個多進程程序改用多線程實現就會提高性能呢?這是個非常不確定的問題,很多情況下答案是出乎意料的。
POSIX線程接口

面試的時候,有的同學曾被問到“POSIX線程是1:1的還是1:N的?”這是個陰險的陷阱...

線程的同步

很簡單,但是極其重要!多線程算法多數BUG的來源。我們將學會互斥體、條件變量等線程互斥機制的應用。

線程屬性
OpenMP線程接口
POSIX線程接口太繁瑣了,有沒有簡單的線程并發(fā)方案呢?OpenMP就是一個,我們可以利用這套標準簡潔地表達并發(fā)邏輯。
POSIX線程在Linux上的實現
Linux的NPTL一直是它的亮點,我們認識一下Linux對線程的實現有助于我們在Linux平臺開發(fā)程序的時候做出正確的決策。
實際項目 7利用多線程技術重寫 實際案例4高效數據中繼引擎
實際項目 8利用多線程技術重寫 實際項目6UNIX任意定時器
 
 UNIX進程間通信設計與開發(fā)   
文件鎖

最基礎的進程互斥機制,很常用,很好用。但是一定不能跟線程間的互斥體混為一談,二者基本不可互換

管道
匿名管道
作為UNIX世界最經典、最簡潔的通訊機制,每個程序員都必須熟練掌握。在很多情形下,這些簡單而基礎的機制其實是*的選擇。 
命名管道

XSISYS VIPC
消息隊列
信號量數組
共享內存段

于這三個IPC手段,常見的一個錯誤問題就是“這三個哪個更好?”,這三個機制設計出來是為了解決不同問題的,三者各有特色,所以不存在誰更好的問題,我們要學會的是在什么場合應該使用什么機制。

套接字
可以說,學習這門課的人,絕大多數就是為了學習這部分課程。但是實際上,當這門課學到這個階段的時候,你應該已經覺得套接字根本不是什么難點了,大部分問題已經在前面解決了,只要記住有數的幾個流程就行了。在寫網絡程序的時候,主要精力其實并不放在這里。
流式套接字操作流程
報式套接字操作流程
基于TCP/IP的套接字
IPv4廣播和多播套接字
加密傳輸和壓縮傳輸
通過OpenSSL和zlib庫進行加密和壓縮傳輸實際上很簡單,這里主要是介紹SSL的原理和部署配置。
實際項目9數字媒體廣播系統(tǒng)
要求:
.CS結構
.基于IPv4多播實現
.支持至少256個節(jié)目頻道
.具有基本的用戶驗證功能
.客戶端界面與功能高度分離,以便采用不同語言開發(fā)
.開環(huán)式流控
.認證流程加密傳輸(采用SSL或者其他方案)
.方便的頻道內容管理策略
說明:
設計并實現一個真實和完整的Client/Server軟件系統(tǒng),可基于LAN(或VLAN、MBone)實施的數字音頻廣播系統(tǒng),涉及到流式和報式網絡套接字通訊、MP3解碼、插件化設計方法以及存儲系統(tǒng)設計編程技術。
帶領大家建立起團隊開發(fā)和協(xié)同工作的企業(yè)項目開發(fā)模式的概念和流程,強化學員對編寫項目概要設計文檔和詳細設計文檔的理解,為就業(yè)前的職業(yè)技能和素質訓練做好充分準備。
 
--------------------- *部分 基礎部分------------------
一、Linux系統(tǒng)基礎 (3天)
教學目標: 能比較熟練的安裝、操作Linux系統(tǒng), 并能配置開發(fā)環(huán)境與常用服務.
   
    1.Linux基礎
    . 系統(tǒng)安裝
     . 幫助系統(tǒng)
     . 文件管理
     . 用戶組
     . 文本處理與編輯
 

    2. Linux常用命令

    . 查找
     . 壓縮 
     . 輸入/出重定向
     . 管道 
     . 啟動腳本
     . 軟件安裝
     . x-window
   
3. Linux網絡配置
    . TCP/IP簡介
     . 網卡配置
     . DNS配置
     . nfs
     . ssh
 
二、shell程序設計(2天)
教學目標:能用Shell處理簡單的批量化工作
1.Bash Shell初步
. 變量
. 運算符
. 流程控制
. 環(huán)境變量
   
2、Bash Shell進階
. 文件操作
. 函數
. 輸入輸出
 
、C語言程序設計 (10天)
教學目標: 能設計普通的應用程序
案例教學: a、指法練習程序
           b、漢諾塔游戲
 
    1.C語言基礎
   . C語言的特點
     . 數據類型
     . 運算符
     . 表達式
     . 關系運算符
     . if 語句
     . switch 語句
     . 循環(huán)語句
 
2. 函數
. 函數的聲明和定義
     . 形參與實參
     . 遞歸   .
 
3. 數組
    . . 數組的定義
     . 整型數組
     . 字符數組
     . 字符串
     . 數組名的意義
     . 多維數組
 
  4. 指針
    . 指針的定義
    . 指針運算符
     . 指針的加減
     . 動態(tài)內存分配
     . 堆與棧
 
5、數組指針
. 指針數組   
. 數組指針
 
6. 預編譯與VT控制碼
    . 聲明與頭文件
     . 靜態(tài)鏈接庫
     . 動態(tài)鏈接庫
     . ANSI VT控制碼
 
7. 組合數據類型
. 結構體
     . 結構體指針 
     . 枚舉
     . 共用體 (聯(lián)合)
 
8. 指針高級應用
    . 二級指針
     . 三級指針
     . 多級指針
     . 函數指針
     . C語言與面向對象
 
   9.文件操作
    . 標準I/O (fopen)
   
10、輔助開發(fā)工具
. Makefile的編寫
     . GDB的使用
     . CVS與配置管理
 

四、數據結構  (7天)

教學目標: 熟悉常用的數據結構與算法
教學案例: 1、成績管理系統(tǒng)
2、計算器
3、電子詞典
4、文件壓縮器
 
    1.單向鏈表
    . 鏈表的創(chuàng)建
     . 鏈表的遍歷  
     . 結點的添加、刪除
    . 基于函數指針的查找
 
  2、Linux內核鏈表
    . 雙向鏈表
     . Linux內核鏈表的創(chuàng)建
     . List結構的作用
     . 有頭與無頭鏈表
 
3、排序及查找
. 冒泡排序
     . 快速排序
     . 選擇排序
     . 查入排序
 
  4、Hash表
    . Hash算法
     . Hash表的創(chuàng)建
     . 遍歷
 
5、隊列和堆棧
   . 數組存儲
     . 鏈式存儲
 
6、樹與二叉樹
. 數組存儲
     . 鏈式存儲
     . 權值的概念
     . Huffman樹
     . Huffman編碼
 
   7、廣義表
    . 組合鏈表的應用
     . 廣義表
 
實驗環(huán)境:
處理器:Intel X86處理器
內存:SDRAM 1G  以上

存儲器:SATA    操作系統(tǒng):Red Hat企業(yè)版5

 
適用對象:
    熟練使用UNIX或者Linux平臺開發(fā)工具
     熟練使用C語言及數據結構
  • 報名課程:
  • 性別:
  • 姓名:
  • 手機號碼:
  • 其它說明:
姓名不能為空
手機號格式錯誤