---
# System prepended metadata

title: 歡迎來到 Linux 讀書會 - 從零開始的開源地下城
tags: [Linux, ' 從零開始的開源地下城', ' Linux讀書會', ' Kernel', ' COMBO-tw']

---

---
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=小春 2019/09/02]

所以就開始了一連串的規劃。
## 如何開始
* 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
5. 編寫方式 (擇一，**推薦用建議修改的方式**)
    1. 獲得貢獻者(加入 HackMD 上該組織成員)身份後，對文章進行編輯
    2. 透過建議修改的方式進行編輯(反白段落後，選擇`建議修訂`或`留言`)
    > 未來可能會改成用 github 修改吧

### 程式碼
* 要放作業的程式碼位於 `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-讀書會大綱#可參閱資源)開始找起
* 作業
  * 用於讓參與者深入瞭解相關議題與練習自己動手做
* 參考資料
  * 有用到的圖片或是參考到別人寫好的文章的話，請務必紀錄上去
* 編寫方式
    1. 獲得貢獻者(加入 HackMD 上該組織成員)身份後，對文章進行編輯
    2. 透過建議修改的方式進行編輯(反白段落後，選擇`建議修訂`或`留言`)
    > 未來可能會改成用 github 修改吧