檔案系統(一)

2021-05-24 06:34:51 字數 1974 閱讀 4238

檔案系統占得**比較多,我們將從提供給使用者的api開始逐步進入核心,順藤摸瓜!最終獲取檔案系統的抽象+裝置的組織。

【裝置號】

/* * 系統所含的裝置如下:(與minix 系統的一樣,所以我們可以使用minix 的

* 檔案系統。以下這些是主裝置號。)

* * 0 - 沒有用到(nodev)

* 1 - /dev/mem 記憶體裝置。

* 2 - /dev/fd 軟盤裝置。

* 3 - /dev/hd 硬碟裝置。

* 4 - /dev/ttyx tty 序列終端裝置。

* 5 - /dev/tty tty 終端裝置。

* 6 - /dev/lp 列印裝置。

* 7 - unnamed pipes 沒有命名的管道。

*/【使用者apis】

1. read

2. write

3. open

4. close

5. create

6. link/unlink

7. mknod

8. chmod

9. chown

10. mount/unmount

11. fstat

12. access

13. sync

14. rename

15. mkdir

16. rmdir

17. dup

18. pipe

19. ioctl

20. fcntl

【塊裝置驅動】

linux/kernel/blk_drv/

+---------  blk.h           塊裝置驅動標頭檔案

+--------- ll_rw_blk.c  塊裝置驅動模組介面檔案, 向上層的檔案系統提供

+--------- floppy.c       軟盤驅動程式

+--------- hd.c             硬碟驅動程式

+--------- ramdisk.c     記憶體虛擬盤驅動程式

塊裝置驅動模組工作原理圖:ll_rw_block()為對上層的介面函式

【字元裝置驅動】

tty抽象了字元裝置,統一了字元裝置的讀寫操作.

共存著三個tty裝置,乙個為控制台,2個為序列終端。工作原理類似

現在考察下tty的read_q, write_q, secondary中的內容及轉換規則.

copy_to_cooked()函式,這個行規則函式的主要作用是把read_q中的字元經過適當的處理後放入規範佇列secondary,並且在處理過程中,若相應終端裝置設定了回顯標誌,還會把字元放入寫佇列(write_q)中。從而最終在終端螢幕上顯示出剛輸入的字元。

1. 序列裝置直接將收到的字元放入read_q, 然後由tty進行cooking:-),分發到secondary和write_q佇列。

將write_q的內容如實傳送給遠端。

2. 控制台裝置與串列埠裝置類似,這裡有意思的是字串行(控制序列)規則。

keyboard.s 是鍵盤驅動程式, 將功能鍵f1-fn掃瞄碼變換成轉義字元序列並存放在read_q中,將普通按鍵變換成ascii碼,將ctrl+keydown變換成控制字元(0x00--0x1f)。

a.轉義序列

b. 控制序列

【補充】

tty模組向上層檔案系統提供的介面為tty_read() && tty_write()。

a. 對輸入字元的處理從copy_to_cooked()分析。

b. 對輸出字元的處理從con_write()分析。

下一章總結高速緩衝區、檔案型別、核心檔案表、檔案系統格式開始…

檔案系統(一)

又是檔案系統。前面已經提到過一次檔案系統的實現了,為什麼這裡還要再介紹一邊檔案系統呢?原因是前面介紹的檔案系統訪問比較簡單,僅僅是讀取固定的幾個檔案。而這裡,為了保證裝載器的靈活性,這裡的檔案系統設計複雜多了。而且由於是c 實現,可讀性也提高了。以後在核心中,我們還需要處理一次檔案系統,那是作業系統...

檔案系統(一)

檔案系統 檔案系統是某些作業系統必然包含的模組,對系統中儲存介質的訪問以統一的系統介面進行管理,完成read write ioctl等操作 1 分類 按實現分類 傳統的單機版的檔案系統和網路分布式的檔案系統。分布式檔案系統通常應用網路技術和協議,將分散的各個資料資源進行統一管理的系統形式。嵌入式作業...

檔案系統 一

一.檔案系統型別 ext2,ext3 帶日誌 nfs sun,網路檔案系統 msdos,vfat,ntfs,proc 虛擬的程序檔案系統 iso9660 光碟 ufs sun os xfs 目前最好的檔案系統 reiserfs 平衡樹 二.相關指令 1.mount unmount 掛載檔案系統 mo...