📌 置頂: 請把任何比你弱勢的用路人當作你的至親對待。跟前車保持安全車距 (2秒以上)。

2016-08-01 翻譯 kernel OODP part2

In

, ,

Tags:



by

2016-08-01 今天在做啥

Freja Beha Erichsen, by Christopher Peterson

翻譯

今天持續在 hackmd.io 上翻譯 Object-oriented design patterns in the kernel, part 2  成中文版。
透過這篇文章,讓我一步一步去了解 kernel 中的物件導向狀況以及各種實作與歷史,不得不說作者功力非常了得。

翻譯的同時,有用到這些資源,像是:

  • C99 spec, 為了翻譯去看 C99 spec 也是很正常的事情吧?
  • LXR,the linux cross referencer,用來看某個版本的 code 的工具

POSIX Thread

透過 llnl.gov 給的 pthread tutorial 了解 pthread 的實作,從建立 pthread 到 mutex, condition variables 等,這個網站的好處是他有附上練習,透過練習可以更進一步的去觀察 pthread 的機制怎麼運作,pthread 的另外一個介紹可看這個 Multithreaded Programming (POSIX pthreads Tutorial),比較精簡。
在看 pthread scheduling 的時後,參考了 ACM 大神 morris1028 的 blog,大神在2016/1/16寫下這篇文章,就代表我只晚他7個月去學到這個東西而已,不嫌晚!
目前還沒有搞懂 joinable 的意義,以及 pthread join, exit 的操作機制 (已經知道 join 會得到回傳值,然後 exit 是指定回傳值),然後 condition variables 也沒有說很清楚,還要去 try 一下。

C-Thread-Pool

網址:https://github.com/Pithikos/C-Thread-Pool
這個部份是從 embedded 2016q1h4 看來的,裏面寫著

快速複習 POSIX Thread Tutorial,並研究 C-Thread-Pool 的實做

  • 記得一併學習 C-Thread-Pool 提供的 test suite

在我看剛好看完 llnl 的 pthread tutorial 後,就 clone 一份 C-Thread-Pool 下來看,一看之後驚為天人啊,記得上禮拜二的時候就有為了 concurrency-mergesort 的原因把這份 code 粗略的看了一次,當時看不懂,到了今天在去細看一次就像是打通了一樣,code幾乎都能看懂了(幾乎,因為還有很多看不懂)。

因此花了些時間看這份 code,這份 code 實作很優美,尤其是他的 test suite 做的很棒,還有整個 code 的 documentation 也有做出來,可以說這個 repo 可以當作是一個專案的範例!

還沒有完全看完,先看了 header, test case 一部份,還有 thread 部份的實作,bi-semaphore 還沒看。

後記

隨意瀏覽 2016q1h4 作業區的筆記時,看到這個筆記
https://embedded2016.hackpad.com/2016q1-Homework3-4xeI7jFIHjN
可以看到 jserv 真的是一位激勵人心老師啊!

Comments

2 responses to “2016-08-01 翻譯 kernel OODP part2”

  1. descent avatar

    感謝你的翻譯, 幫了所有台灣人很大的忙。

    1. louie.lu avatar
      louie.lu

      前輩的部落格也讓我獲益匪淺!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.