原创 根文件系統掛載
根文件系統掛載 【start_kernel--->vfs_caches_init--->mnt_init】 在真實根文件系統掛載之前掛載了一個叫做rootfs的文件系統,該文件系統只存在於內存中,它形成了最初的根節點即'/'。該文件系統的
原创 文件的打開
文件的打開 【open】 SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode) { long ret; if (forc
原创 我的友情鏈接
51CTO博客開發
原创 根據路徑名獲取目錄節點
根據路徑名獲取目錄節點 函數kern_path通過路徑名name,在標誌flags的指示下找到對應的目錄節點,存儲在path中。Flags相關標誌在文件namei.h中定義,例如LOOKUP_DIRECTORY(表示要找到的目標必須是目
原创 根文件系統掛載【續】
【start_kernel--->rest_init--->kernel_init--->prepare_namespace】 函數prepare_namespace用於加載initrd鏡像,掛載具體文件系統。 void __init p
原创 文件數據讀取【續二】
【read--->vfs_read--->do_sync_read--->aio_read--->do_generic_file_read--->readpage--->mpage_readpage--->mpage_bio_submi
原创 虛擬文件系統相關結構描述【續】
二,與進程聯繫的文件系統相關結構 文件描述符用於在一個進程中唯一標識打開的文件。假定內核能夠在用戶進程中和內核內部使用的結構之間,建立一種關聯。每個進程的task_struct中包含了用於完成該工作的成員。 struct task_str
原创 根據路徑名獲取目錄節點【續】
【kern_path--->do_path_lookup--->path_lookupat--->link_path_walk】 比如要搜索文件test.c,它的路徑爲/home/mywork/testdir/test.c,下面函數要做的
原创 文件數據讀取
文件數據讀取 【read】 SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count) { struct file *file; ssize_
原创 我的友情鏈接
51CTO博客開發
原创 文件數據讀取【續一】
【read--->vfs_read--->do_sync_read--->aio_read--->do_generic_file_read】 static void do_generic_file_read(struct file *fi
原创 虛擬文件系統相關結構描述
虛擬文件系統相關結構描述 一,文件系統類型,掛載點,VFS超級快,目錄項,節點結構 每一種文件系統類型都描述爲一個file_system_type結構。 struct file_system_type { const char *nam
原创 文件的打開
文件的打開 【open】 SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode) { long ret; if (forc
原创 文件系統的裝載
文件系統的裝載 【compat_sys_mount】 函數compat_sys_mount是系統調用mount在內核中的實現。Dev_name爲待安裝設備的路徑名;dir_name是安裝點的路徑名;type是表示文件系統類型的字符串,如“
原创 文件數據的寫入【續】
【write--->vfs_write--->do_sync_write--->generic_file_aio_write--->__generic_file_aio_write--->generic_file_buffered_wr