Jerejere0808

@Jerejere0808

Joined on Feb 21, 2023

  • title: Jerejere0808 (黃湙珵) categories: User ... 國立成功大學 電機工程所 113 級 (2022 ~ 2024) GitHub: Jerejere0808 2023 Linux 核心設計 自我評量 作業共筆 lab0-c: GitHub / HackMD
     Like  Bookmark
  • contributed by < Jerejere0808 > $ sudo insmod kecho.ko port=1999 是如何讓 port=1999 傳遞到核心,作為核心模組初始化的參數呢? 首先透過 $modinfo khttpd.ko 可以看到核心模組的資訊裡面包含了參數 port 和 backlog,還有他們的型態。這是透過呼叫 module_param 來達成。 filename: /home/jeremy/linux2023/kecho/kecho.ko version: 0.1 description: Fast echo server in kernel author: National Cheng Kung University, Taiwan license: Dual MIT/GPL
     Like  Bookmark
  • contributed by < Jerejere0808 > 新增以下資料結構使 fibonnaci 可以進行大數運算,其中 capacity 是用於分配多餘的記憶體空間,這樣就可以避免多次的 resize (realloc) , 只有在 capacity 不足時才會需要重新分配記憶體空間。 typedef struct _bn { unsigned int *number; unsigned int size; int sign; int capacity; } bn;
     Like  Bookmark
  • contributed by < Jerejere0808 > 測驗 1 解釋程式碼運作原理,指出其設計和實作缺失,並予以改進。 原本的程式碼只實作 first-fit 演算法,請重新實作為 best-fit static inline void *get_loc_to_place(void *current, int size) { block_t *best_fit = NULL; block_t *parse = current;
     Like  Bookmark
  • contributed by < Jerejere0808 > 測驗 1 測驗 2 先解釋 static void local_irq_save(sigset_t *sig_set) { sigset_t block_set; sigfillset(&block_set);
     Like  Bookmark
  • contributed by < Jerejere0808 > 提問 :warning: 注意用語,善用 ChatGPT 改進漢語表達 :::info 有關 mmap() 的部分,我的理解其原理是可以透過把某個檔案內容映射到一段虛擬記憶體上,通過對這段記憶體的讀取和修改,對檔案的讀取和修改,不過我對這種方法跟呼叫 open(), read(), write() 的I/O讀寫差異卻不是很清楚, mmap() 是可以直接把資料userspace 跟檔案互動不用經過 kernel 嗎? 另外,"把某個檔案內容映射到一段虛擬記憶體上" 意思是將 virtual memory 對應到 physical memory 嗎? ::: file 的翻譯是檔案,不是「文件」,後者指 document。閱讀 CS:APP 第九章 :notes: jserv
     Like  Bookmark
  • contributed by < Jerejere0808 > 測驗 1 typedef struct __node { uintptr_t color; struct __node *left, *right; struct __node *next; long value; } node_t __attribute__((aligned(sizeof(long)))); #define rb_parent(r) ((node_t *) ((r)->color & ~1))
     Like  Bookmark
  • contributed by < Jerejere0808 > 測驗一 將最高位元數下的 bits 改為 1 ,最後再加 1 進位,得到大於其值最接近的2的冪。 AAAA = 1 BBBB = 32 CCCC = x + 1 用 __builtin_clz() 簡化程式碼
     Like  Bookmark
  • contributed by < Jerejere0808 > 作業要求 :::danger $\to$ 共享模式設定錯誤,應為「瀏覽模式」 注意規範,登記在 https://hackmd.io/@sysprog/linux2023-homework1 的超連結,要用「固定網址」(參見 用固定網址發布筆記),也就是如 https://hackmd.io/@itsme/XXXX 的形式,設定公開發表,沒有後方的 /edit。 :notes: jserv :::
     Like  Bookmark