亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Linux環境高級編程

系統 1835 0

Linux環境高級編程

Linux環境高級編程

一、課程目標

本次課程涵蓋Linux系統編程的幾個主要方面,通過本次課程的學習,學員將具備以下能力:

  • 了解Linux系統調用和類庫的區別;
  • 熟悉文件I/O、文件和目錄、進程管理、進程間通信(IPC)、信號、時間與定時器的編程。

二、參訓要求

參加本次課程的學員須具備以下能力:

  • 本次課程使用 C語言 教學,所以學員需擁有較好的C語言基礎;
  • 能熟練使用常用的Linux命令;
  • 能熟練使用gcc、gdb、熟練撰寫makefile;
  • 最好熟練使用vi、emacs等文本編輯器其中的一種。

三、課程實踐環境

  • 學員自備電腦
  • 操作系統:GNU/Linux 2.6+(建議使用Redhat AS 5+或Ubuntu、Fedora)
  • 編譯器:GCC v4.1+、GDB v7.0+
  • 可選IDE:Eclipse CDT

四、課程大綱

本次課程由以下幾個部分構成:

1、 預備知識

  • UNIX歷史和標準

    ?

    • UNIX; BSD & System V
    • GNU project; Linux Kernel
    • POSIX, SUSv3, SUSv4
  • Linux系統相關概念

    ?

    • 系統調用和庫函數
    • 錯誤處理
    • 特性測試宏
    • 系統數據類型
    • 系統限制和選項 (sysconf(), pathconf())
    • 系統參數: /proc文件系統

2、文件I/O

  • Linux I/O系統調用與C標準庫stdio的比較
  • I/O系統調用: open(), close(), read(), write()
  • 控制I/O的Buffer
  • 讀寫指針的定位:lseek()
  • I/O控制:ioctl()
  • 原子操作和數據競態
  • 文件控制: fcntl()
  • 文件打開的狀態標志(status flags)
  • 文件描述符
  • 復制文件描述符:dup(), dup2()

3、文件和目錄

  • 文件屬性

    ?

    • 獲取文件的屬性:stat()
    • 文件的時間戳
    • 文件的所有權:chown()
    • 文件的操作權限:chmod()
  • 目錄和連接文件

    ?

    • 硬連接和軟連接 (符號連接)
    • 目錄
    • 迭代目錄樹
    • 當前工作目錄(CWD)
    • 路徑名
  • 監控文件系統的事件:inotify

    ?

    • inotify API
    • inotify事件
    • inotify限制

4、 進程控制

  • 進程屬性

    ?

    • 進程ID(PID)和父進程ID(PPID)
    • 進程內存布局
    • 棧 (Stack)
    • 堆 (Heap)
    • 命令行參數和環境變量列表
    • 非局部goto (nonlocal goto): setjmp() 和 longjmp()
  • 創建和終止進程

    ?

    • 創建進程:fork()
    • fork() 后的多進程數據競態
    • 進程終止:exit(3) 和 _exit(2)
    • 退出處理器:atexit()
    • 等待子進程的退出:wait(), waitpid(), waitid()
    • SIGCHLD 信號
  • 執行程序

    ?

    • execve()
    • exec() 系列庫函數
    • 解釋腳本
    • 文件描述符和 exec()
    • 信號和 exec()
    • 執行Shell命令:system()
  • 守護進程 (Daemons)

    ?

    • 創建守護進程的幾個步驟
    • 使用 SIGHUP 信號使一個進程變成守護進程
    • 系統中守護進程的示例:syslog
  • 進程權限相關

    ?

    • 文件 /etc/passwd 和 /etc/group
    • User ID, and Group ID
    • Real, effective, and saved set IDs
    • 其它 group IDs
    • Set-user-ID and set-group-ID programs
    • 獲取或修改進程權限


5、信號
(Signals)

  • 信號類型和默認動作
  • 信號處理方式
  • 信號處理器
  • 發送信號
  • 信號集
  • 阻塞信號(signal mask)
  • 系統調用的中斷和重新執行
  • 等待信號

6、時間和定時器(Timers) ?

  • 時間相關的數據類型
  • POSIX Clock
  • 獲取當前時間
  • 設置當前時間
  • C標準庫 時間函數
  • Sleep
  • 定時器(Timers)

    ?

    • 簡單的定時器:alarm()
    • interval Timers
    • 高級定時器


7、進程間通信
(Interprocess Communication, IPC)

  • 傳統UNIX IPC

    ?

    • 管道和優先隊列 (Pipe and FIFO)
    • SYSV 消息隊列 (SYSV Message Queue)
    • SYSV 信號量 (SYSV Semaphore)
    • SYSV 共享內存 (SYSV Shared Memory Segments)
    • 內存映射文件 (Memory Mapping Files)
  • POSIX IPC

    ?

    • POSIX IPC的優勢
    • POSIX 消息隊列 (POSIX Message Queue)
    • POSIX 信號量 (POSIX Semaphore)
    • POSIX 共享內存 (POSIX Shared Memory Segments)

五、時間安排

課程時間:3天,以每天6小時計,具體安排如下:

  • Day1

    ?

    • 1 - 預備知識
    • 2 - 文件I/O
    • 3 - 文件與目錄
  • Day2

    ?

    • 4 - 進程控制
    • 5 - 信號
    • 6 - 定時器
  • Day3

    ?

    • 7 - 進程間通信
    • 課程回顧與總結

六、課程資源

????? 可獲取的課程資源見: 教學資源

Linux環境高級編程


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 超清中文乱码字幕在线观看 | 九九这里只精品视在线99 | 2019最新四虎免费8848 | 99久久精品毛片免费播放 | 九九热在线视频免费观看 | 麻豆久久婷婷国产综合五月 | 天天干狠狠 | 久久伊人精品 | 欧美另类久久久精品 | 久久精品啪啪嗷嗷叫 | 国产合集福利视频在线视频 | 亚洲 中文 欧美 日韩 在线人 | 天天综合天天射 | 91色多多| 九九精品激情在线视频 | 日日碰夜夜操 | 亚洲成人综合网站 | 五月天亚洲婷婷 | 日本一级做人免费视频 | 亚洲精品成人456在线播放 | 婷婷免费在线 | 久草在线视频在线观看 | 亚洲欧美精品网站在线观看 | 久久99九九99九九99精品 | www男女| 久久久久夜夜夜精品国产 | 欧美精品一区二区三区久久 | 久久久这里有精品 | 色大18成网站www在线观看 | 毛片在线视频观看 | 亚洲12色吧 | 一级毛片免费视频网站 | 在线欧美精品一区二区三区 | 中文字幕专区在线亚洲 | 一本大道香蕉大在线最新 | 欧美在线色视频 | 日日夜夜免费精品视频 | 日日舔夜夜操 | 四虎永久免费地址ww417 | 久久久在线| 天天爱天天色天天干 |