原创 根文件系統掛載

根文件系統掛載 【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