Contents
Linux 程式設計課程-包括 Socket 程式設計,Linux 系統程式設計,C 程式設計-從初學者到專家
從這 9 小時的課程,你會學到
- 你將能夠設計需要行程通訊( IPC )的應用程式
- 根據應用程式需求選擇最佳 IPC 機制
- 理解 Linux IPC 程式設計介面
- 更好地理解 Linux 作業系統並且感到自信
- 準備基於 IPC 的面試問題
- 設計一個可以同時利用各種 IPC 機制優點的 Linux 程式
要求
- 基本的 C 語言知識是必不可少的
- 有作業系統基本知識會更好
- 狂熱和熱情去學習
課程說明
本課程是關於學習 Linux 行程間是如何相互對話。 這是 Linux 系統程式設計的一個子領域。 我們將探討業界使用的各種流行機制,通過這些機制,Linux 行程可以互相交換資料。 我們將詳細介紹每個 IPC 機制背後的概念,討論其實現和設計,並分析什麼狀況下給定的 IPC 優於其它 IPC 。
我們還討論為了使用 Linux 作業系統底層提供的 IPC 設施,應用程式應該如何設計。
在任何可能的地方你都會有作業,並且在整個課程中都會有一個專案,在這個專案中你將逐步應用你所學到的新 IPC 技術。 在課程接近尾聲時,您將會練習並應用本課程中學到的所有 IPC 技術。
對於每個 IPC 機制,我們將有一個詳細的程式碼走訪,其中我將向您展示如何在傳送端和接收端實際實現給定的 IPC 機制。 當你加入業界,從第一天開始,你就會看到 IPC 的概念被應用到整個軟體中,以方便軟體的不同部分之間的通訊。
誰應該上這門課?
本課程是為大學電腦科學專業的學生、求職者和專業開發人員開設的。 這是必須做的課程,為那些要加入跨國公司擔任一位系統程式設計開發人員所設計。 在系統程式設計中,幾乎所有的時間你都必須使用 IPC 來進行行程之間的資料交換,因此電腦科學專業畢業的學生和作為一名開發人員希望在跨國公司尋找機會隨手拈來就要有 IPC 的概念。
先決條件
如果您對 C 語言 和 OS 有一點了解,那將是非常有利的。 我們設計這門課程時假設學生是 Linux IPC 的完全初學者,並且隨著我們從基礎到進階的概念的轉變,我們逐漸提高了課程的深度。
還有,請不要坐著看我的程式碼。 編寫你自己的程式碼,即使它和我的一樣!
相關課程
RPC (遠端程式呼叫)是在網路中執行在不同機器上的兩個程式之間進行行程間通訊的另一種方式。 您可能還想檢視我另一個關於 Linux RPC 的課程,在那裡您將學習如何從頭開始實現 RPC。
本課程使用的程式設計語言:
我們有充分的理由選擇 C 語言作為本課程的語言:
IPC 是作業系統為開發人員提供的一種工具,用於在行程之間進行資料交換。 使用 C 語言學習 IPC 可以幫助您理解幕後發生的事情。 C 語言確實暴露了系統實際運作方式的底層細節。 在系統程式設計中,C 是唯一使用的語言,在系統程式設計中,甚至沒有一種近期的語言可以替代這種語言。
不需要第三方程式庫
無論您實現什麼邏輯,您都需要從頭開始實現它。 本課程不建議使用任何第三方程式庫來完成這些工作。 使用外部程式庫完全違背了課程的目的。 但是,對於常用的資料結構,如連結串列 / 樹 / 佇列等,建議使用第三方程式庫,這樣可以節省大量實現這些資料結構的時間。
注1: 如果你已經完成了我的另一門課程”網路概念和從頭開始程式設計“,那麼這門課程(在模組1-Unix Domain Sockets)中有一些主題是重疊的。 然而,它是必須使重疊的主題作為本課程的一部分,使本課程成為一個完整的單元。 請隨時以2倍的速度觀看這些主題,或者根據您的方便跳過這些主題。
注2: 雖然我們使用 Linux 來教授 IPC 技術,但從概念上講,Linux 的 IPC 與其它作業系統平台(如 windows、 iOS 等)沒有很大的不同。 所以,如果你是其他平台的程式設計師,這門課程對你來說仍然有很大的價值。
警告: 本課程有自動系統生成的字幕,可能並不完美。 請根據您的方便來使用字幕。
課程大綱
- 介紹
- 目錄
- 電腦架構-概述
- 各種 IPC 技術
- 溝通方式
- IPC 技術 1 – Unix Domain Sockets
- Socket API 簡介
- Socket 訊息型別
- Socket 設計典範
- 接受系統呼叫
- 介紹 Unix Domain Socket
- Unix Domain Socket 伺服器實現
- Unix Domain Socket / 客戶端實現
- Multiplexing
- 選擇系統呼叫
- Multiplexing 伺服器狀態機
- Multiplexed 伺服器實現
- 資料同步-IPC 專案第1部
- IPC 技術 2 – 訊息佇列
- 介紹
- 作為核心資源的 MsgQ
- 開啟並建立一個 MsgQ
- 關閉 MsgQ
- 將資料放在 MsgQ
- 從 MsgQ 中取出資料
- 解除一個 MsgQ 連結
- 使用 Msg Q-設計視角
- 雙向通訊
- 程式碼走訪-實現
- 示範
- IPC 技術3- 共享記憶體
- 整體設計目標
- 虛擬記憶體的概念
- 程式控制區塊
- 共享記憶體基礎
- 核心記憶體
- mmap ()-記憶體對映
- 設計限制
- 與共享記憶體相關的 APIs
- 資料同步-IPC 專案第2部分
- IPC 技術4- 訊號
- 引言
- Linux 有名的訊號( Signals )
- 訊號的產生和捕獲
- 使用 Kill ()傳送訊號
- 資料同步-IPC 專案第3部分
- 不同 IPCs 的 Multiplexing
- 使用 select ()對不同的 IPC 介面進行 multiplex
目標受眾
- 電腦科學專業本科系學生
- 碩士研究生
- 系統程式設計領域的求職者-網路 / 驅動程式 / 分散式系統 / 物聯網等
講師簡介
Abhishek Sagar 在 Juniper 擔任網路通訊協定開發者 ( 更多講師主講課程介紹 )
你好,我是孟買理工學院的畢業生,目前在網路跨國公司從事網路通訊協定開發。
我有6年以上的業界經驗,從事網路程式設計和開發已超過8年的經驗。
我曾經在的跨國網路公司- Brocade 通訊公司工作,現在在 Juniper Networks 工作。
我精通 Linux 開發環境,我藉此機會通過 Udemy 在 Linux 網路開發領域培訓世界各地的人。 我熱愛並鼓勵知識共享。
Shiwani Nigam 數位行銷主管
嗨,我是市場行銷學博士 Shivani Nigam。 我擅長研究消費者在網上購買產品時的行為。 我負責在這個平台上銷售線上內容(Udemy 課程)。
我還確保課程由技術指導員以完美的音訊 / 視訊質量授課,並確保學生的疑問和問題並由技術指導員優先處理。
英文字幕:有
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
🙌 如何有效率地管理 ChatGPT 輸出與整理自己的 ChatGPT 提示( prompts )使用情境?LN+ for Web 已經針對 ChatGPT 的整合做最佳化
🙌 讓 Notion AI 成為你線上學習的得力助手,詳細操作請參考 – 使用 Notion AI 功能來為 udemy 的課程做摘要總結
- 點選這個✨優惠連結 課程特價 | Udemy 永久擁有課程 NT330 起( 請登入 Udemy|按過“優惠連結”後到”報名參加課程“連結網頁做更新 )
- Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
- 手機上點選優惠連結看到的價格比電腦上看到的貴
- $代表當地貨幣, 如在台灣為 NT
- 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現
報名參加課程

也許你會有興趣
- 使用 C 語言從頭建立 Linux 遠端程序呼叫(RPC)
- ★英語學習地圖 – 練好英文是最大的學習槓桿
- 如何找工作學習地圖 – 找工作不要靠運氣!
你必須登入才能發表留言。