contributed by < Jerejere0808
>
注意用語,善用 ChatGPT 改進漢語表達
有關 mmap() 的部分,我的理解其原理是可以透過把某個檔案內容映射到一段虛擬記憶體上,通過對這段記憶體的讀取和修改,對檔案的讀取和修改,不過我對這種方法跟呼叫 open(), read(), write() 的I/O讀寫差異卻不是很清楚, mmap() 是可以直接把資料userspace 跟檔案互動不用經過 kernel 嗎? 另外,"把某個檔案內容映射到一段虛擬記憶體上" 意思是將 virtual memory 對應到 physical memory 嗎?
file 的翻譯是檔案,不是「文件」,後者指 document。閱讀 CS:APP 第九章
jserv
另一個問題是我做作業 fibdrv 時嘗試透過老師給的教材了解 Linux 核心模組的來龍去脈,以下是我的了解,想跟老師確認一下我的了解是否是正確的 :
當一個裝置驅動程式在 Linux 核心中被載入時(像是 sudo insmod fibdrv.ko),它會使用 kobject 來表示裝置,並向核心註冊該裝置。註冊後,該裝置會在 sysfs 中建立一個相應的目錄,這個目錄對應著該裝置的 kobject,並包含了該裝置的屬性和狀態資訊。同時,該裝置的裝置檔案建立於 /dev 目錄。
例如,假設一個名為 "my_device" 的虛擬裝置驅動程式被載入到 Linux kernel 中。該驅動程式可以使用 kobject 來表示該裝置,並將其註冊到核心中。註冊後,在 sysfs 中會建立目錄 /sys/devices/my_device,該目錄對應著該裝置的 kobject。在這個目錄下,可以建立檔案和目錄來表示該裝置的屬性和狀態資訊,並且可由讀寫這些檔案來操作該裝置。
同時,在 /dev 目錄下也會創建一個相應的裝置檔案 /dev/my_device,這個裝置檔案對應著該裝置的 kobject,並允許用應用程式以讀寫該檔案來操作(open, read, write)。
正在看…
加強基礎的資訊素養(git commit)
加強 trace code 能力(考試時code理解很慢常看不完)
了解 linux 有關網路和 device driver 的部分(暑期要去實習 部門為 WIFI 軟韌體相關部門)
過程中也該提升漢語表達能力。
jserv