#工商時間
下一堂新課程要來囉,這次不談 Kubernetes 而來好好的聊聊單節點上 Linux 的各種基本網路概念,算是一個入門章節,不會講到太多 Kernel 內的實作,但是也不會只是指令講一講就帶過這樣
畢竟能夠掌握單一節點的網路概念,未來才有能力探討叢集多節點的網路。同時有基礎概念未來看到 eBPF 或是各種 kernel-bypass 的技術才會比較有概念到底差異是什麼
有興趣的朋友可以參考或是幫忙分享~
https://hiskio.com/fundraising/479/about?s=tc
謝謝
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「linux kernel是什麼」的推薦目錄:
- 關於linux kernel是什麼 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於linux kernel是什麼 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於linux kernel是什麼 在 紀老師程式教學網 Facebook 的最讚貼文
- 關於linux kernel是什麼 在 コバにゃんチャンネル Youtube 的最佳解答
- 關於linux kernel是什麼 在 大象中醫 Youtube 的最讚貼文
- 關於linux kernel是什麼 在 大象中醫 Youtube 的最佳解答
- 關於linux kernel是什麼 在 Linux 核心設計: 作業系統術語及概念(2020-03-02) - YouTube 的評價
- 關於linux kernel是什麼 在 Taiwan Linux Kernel Hackers | 很不錯的系列文搭配範例程式碼 ... 的評價
- 關於linux kernel是什麼 在 Linux內核kernel panic機制淺析 - Jason Blog 的評價
- 關於linux kernel是什麼 在 linux-kernel 入門| 他山教程,只選擇最優質的自學材料 的評價
linux kernel是什麼 在 矽谷牛的耕田筆記 Facebook 的最佳解答
今天跟大家分享一個 UDP 於 Linux Kernel 內的 Race Condition 問題。這問題我以前於 Linux Kernel 3.14 也有採過一樣的雷,但是到今日都還沒有一個很漂亮的解決方案,這邊就快速的跟大家介紹一下這個問題是什麼,以及跟 k8s 有什麼關係
# 發生前提
1. 使用 UDP 這種沒有重送機制的協定
2. Kernel 有開啟 conntrack 此功能
# 發生條件
相同的 Client 短時間內透過 UDP (也許是不同 thread) 送出兩個 UDP 封包到外面,對於 Linux Kernel 來說,會希望透過 conntrack 來追蹤每一條連線,但是底層建立的時候會有一些會有一些機制,因此當兩個封包同時進入的時候,有可能就會因為先後順序導致第二個封包被丟棄
# 可能發生問題
DNS 的請求封包預設情況下會同時透過 UDP 送出 A & AAAA 兩個封包,而這兩個封包如果很巧的採到這個情況,然後你的 A 封包就沒有辦法順利解出 DNS,最後就要等五秒的 timeout 來重新發送
下偏這篇文章就是 weave works 遇到 DNS 5秒 timeout 的問題,然後仔細的將我上面所寫的總結給解釋清楚,每一個步驟發生什麼事情,什麼是 conntrack 以及暫時的 workaround 是什麼
之後會在跟大家分享目前一些解決方法怎麼做
https://www.weave.works/blog/racy-conntrack-and-dns-lookup-timeouts
linux kernel是什麼 在 紀老師程式教學網 Facebook 的最讚貼文
想在 30 分鐘內學會 Git 嗎?看這裡就對了!
Git 是一種「原始碼版本控制」軟體,它可以儲存原始碼每個版本之間的差異,然後您可以要求「時光回溯」到任何指定的版本。這可以防止一天到晚改規格的客戶或老闆,在您辛苦更動原始碼後,來一句要命的:「還是之前的那一版比較好」。我個人認為,它是程式設計中,最重要的 7 大軟體之一(文字編輯器、編譯器、版本控制器、自動化建構系統、單元測試軟體、環境佈建系統、與除錯器)。
這類「版本控制軟體」,依照流行先後,著名的有 CVS、Subversion、與 Git。目前最流行的版本控制軟體是「Git」,流行原因多多少少是因為 Linux 核心(Linux Kernel)原始碼,就是用這套軟體保持各個版本差異的。不少公司也要求程式設計師寫好原始碼後,一律都得回存 Git 系統才算完工,不能只是存在私人的硬碟就了事。所以 Git 就變成業界必備的軟體之一。
補習班常常有同學問我,有沒有那種很簡單的 Git 說明書,不用講太深,但要在 30 ~ 60 分鐘內就掌握常用功能的教材?之前一直找不到,不過今天幫大家找到了!還有中文版喔!叫做「Git 簡明指南」。鏈結如下:
https://rogerdudler.github.io/git-guide/index.zh.html
其實它的原文名稱有點好玩:「Git - The Simple Guide, No Deep Shit!」。這類標題通常能騷動我個性中愛作怪的小惡魔,讓我會心一笑後點進去看看。看完後,果然「一點點深的便便」都沒有... XD 還有中文版(簡中)!心想這麼讚的東西不介紹怎麼行!就花時間寫了這一篇。
希望今天的分享對各位的日常工作有幫助!我也很鼓勵大家能找到適合自己的「七大系統」,把它弄熟。畢竟「工欲善其事,必先利其器」嘛!我個人習慣使用的七大系統,也列在底下讓大家參考:
1. 文字編輯器:vim。不好學,但游標移動速度與文字操控能力超快!
2. 編譯器:gcc。因為我寫 C 語言比較多,所以用 gcc。
3. 版本控制器:git。其實我之前是熟 subversion。不過 git 也很好用喔!
4. 自動化建構系統:make。可以把編譯、安裝...等囉哩八唆的指令濃縮成一個簡稱(如:build, install...等)。打完按下 enter 後就可以去泡咖啡了!還能偵測哪些原始碼已經編譯過,不需重新編譯已縮短作業時間。
5. 單元測試軟體:CUnit。嚴格來說,這算一套「函式庫」,可以針對你寫好的原始碼做測試。由於我寫 C 較多,所以用 CUnit。如果您寫的程式碼是 Java 或其它,可能得找相對應的測試軟體。
6. 環境佈建軟體:VirtualBox。用它的原因是 Win, Mac, Linux 全平台都支援。我會把程式設計環境灌好後的 VirtualBox 映像檔保存好,每次要乾淨環境就 new 一個新的虛擬機起來。最近迷上 Vagrant,想知道 Vagrant 是什麼的可以看這篇: http://goo.gl/29mBs9
7. 除錯器:gdb。雖然是文字介面,但連線到運算能力很差的開發板上想除錯,也只有 gdb 跑得動。用久了也習慣了。
其實最近還想加上第八項「(8) 軟體部署系統:Docker」,不過還在研究,也還沒熟悉。等熟悉了再跟大家報告。 :-)
如果覺得文章不錯,還煩請各位不吝按讚打賞或分享一下喔! m(^ ^)m
linux kernel是什麼 在 コバにゃんチャンネル Youtube 的最佳解答
linux kernel是什麼 在 大象中醫 Youtube 的最讚貼文
linux kernel是什麼 在 大象中醫 Youtube 的最佳解答
linux kernel是什麼 在 Taiwan Linux Kernel Hackers | 很不錯的系列文搭配範例程式碼 ... 的推薦與評價
QA 中的回答是:我使用GitHub CI action 裡,別人已提供跨CPU 架構環境的功能uraimo/run-on-arch-action@v2 [1]。這個action 底層有使用到QEMU VM 模擬各CPU 架構的功能。… ... <看更多>
linux kernel是什麼 在 Linux內核kernel panic機制淺析 - Jason Blog 的推薦與評價
因為hard panic和soft panic本質上不同,因此我們分別討論。 2.1 hard panic. 原因. 對於hard panic而言,最大的可能性是驅動模塊的中斷處理(interrupt handler)導致 ... ... <看更多>
linux kernel是什麼 在 Linux 核心設計: 作業系統術語及概念(2020-03-02) - YouTube 的推薦與評價
面對原始程式碼近兩千八百萬行規模的 Linux 核心,最令人感到挫折的, ... 將回顧若干作業系統術語及概念,像是: userspace vs. kernel space, Monol. ... <看更多>