--- title: 歡迎來到 Linux 讀書會 - 從零開始的開源地下城 tags: Linux, Linux讀書會, Kernel, 從零開始的開源地下城, COMBO-tw description: 介紹與Linux Kernel相關基本知識 lang: zh-Hant GA: G-2QY5YFX2BV --- # 歡迎來到 Linux 讀書會 ###### tags: `Linux` ## 起源 ==Linux-讀書會==為==從零開始的開源地下城==開源社群第一個專案計畫 起於小春 (Haru Zheng) 的樹梅派 OS 開發構想,於 2019/8/7 與 Ken Dai 構想完個章節大標題。因此計畫所以開始了開源社群的創立,於 2019/8/23 因我們想將成員放入讀書會的文章裡面與為了管理方便,所以要在 GitHub 中創立組織。 > 如果要放就設計一個 Logo 吧。當作==社群==來弄(誤 [name=小春] 所以就開始了一連串的規劃。 ## 如何開始 * Linux 讀書會 HackMD * 網址:https://hackmd.io/@combo-tw/Linux-讀書會 * 主要文章放置與閱讀區 * Linux 讀書會 Github * 網址:https://github.com/combo-tw/LinuxBookClub * 放置讀書會基本的 Source Code 與大家的作業,希望大家可以將完成的作業上傳至此 Github 中 * Linux 讀書會 Discord * 網址:https://discord.gg/Hz2YdvD * 發問與討論 * 對於讀書會的相關公告也會放置於此 ## 如何寫作業 ### 程式碼 1. 下載 Linux讀書會 Github 專案 `$ git clone https://github.com/combo-tw/LinuxBookClub.git` 2. 建立自己 Github ID 的分支名稱 `$ git checkout -b {YOUR_ID}` 3. 撰寫作業 在 `chapter` 內的對應章節的資料夾內補上未完成的程式碼 5. 編譯程式碼與執行 `$ cd build` `$ ./build-raspi-kernel.sh` 輸入要執行的作業章節 (如果章節名稱為 `03-syscall`,只需要輸入 `03` 即可) 輸入是否執行 QEMU (`y` or `n`) > 若已經編譯過了,只想直接啟動的話,可以執行 > `$ ./start-raspi-kernel.sh` > 輸入要執行的作業章節 (如果章節名稱為 `03-syscall`,只需要輸入 `03` 即可) > 載入完該章節的測試程式後即會啟動 QEMU 4. 測試程式碼 (啟動 QEMU 後) `$ cd /home/pi/test` `$ sudo make check` 5. 上傳程式碼 `$ git push origin {YOUR_ID}` > 不會用 Git 的話[這邊有教學](https://github.com/twtrubiks/Git-Tutorials) ### 筆記 1. 到[讀書會目錄](https://hackmd.io/@combo-tw/Linux-讀書會/https%3A%2F%2Fhackmd.io%2F%40combo-tw%2FLinux-讀書會%2Fedit%3Fedit)下 2. 新增個人的連結至目錄的筆記區(請記得把GITHUB網址中https的s拿掉) ``` - [@{YOUR_ID}]({YOUR_GITHUB_URL}) - [{對應的章節名稱}]({YOUR_NOTE_URL}) ``` > ex > ``` > 筆記 > --- > - [@Ken-Dai - Github](http://github.com/MetalheadKen) > - [Raspberry Pi Introduction (樹莓派介紹)](/@Ken-Dai/ByZCIVJzr) > ``` > 不會用 HackMD 寫文章的話[這邊有教學](https://hackmd.io/c/tutorials-tw/%2Fs%2Fquick-start-tw) ## 如何貢獻 1. [加入 Discord 群組](https://discord.gg/k6n2aF9) 2. 找==小春==或 ==KenDai== 說你要貢獻哪一章 3. 我們就會給你貢獻者的權限囉 4. 寫完的時候麻煩到 Discord 通知其他貢獻者一起幫忙 review ### 程式碼 * 要放作業的程式碼位於 `chapter/` 內,資料夾名稱為 `數字-章節名稱` (e.g. `03-syscall`) * 資料夾內再分為 `linux` 和 `test` 兩大資料夾 * `linux` 為放置參與者寫作業時會更改到的檔案 * `test` 為放置貢獻者自己寫好的測試程式 (source code 與 makefile) * 寫好後上傳程式碼即可 `$ git pull origin master` `$ git push origin master` ### 筆記 撰寫筆記的基本原則為: * 簡介 * 用於讓參與者快速了解基本知識 * 大量的文獻 * 引用或連結大量的優質好文 (請事先看過並確認過無誤),可從[這邊](https://hackmd.io/@combo-tw/Linux-讀書會大綱#可參閱資源)開始找起 * 作業 * 用於讓參與者深入瞭解相關議題與練習自己動手做 * 參考資料 * 有用到的圖片或是參考到別人寫好的文章