通過檔案使用磁碟,**如下
在fs/read_write.c中
int sys_write(int fd, const char *buf, int count)
//fd為檔案索引,buf為緩衝區,count表示要處理的字串長度
我們理一下file_write的工作過程
file_write(inode, file, buf, count)
根據file還有count找到字元流的位置如(200-212)
根據inode對映表找到對應的盤塊號
進行讀寫操作
file_write的實現
int file_write(struct m_inode *inode, struct file *filp, char *buf, int count)
filp->f_pos=pos;
}
create_block算盤塊,檔案抽象的核心
while(ii_dev, block);
}int _bmap(m_inode *inode, int block, int create)
}block-=7;
if(block<512)
//乙個盤塊大小為1k,乙個盤塊號大小為2個位元組,所以一共有512個block
...}struct d_inode
上面基本就完成了磁碟的讀寫工作了
m_inode,裝置檔案的inode
struct m_inode
int sys_open(const char* filename, int flag)
}#define major(a)(((unsigned)(a))>>8) //取高位元組
#define minor(a)((a)&0xff) //取低位元組
通過inode可以形成檔案檢視,如果使用不同的裝置,只要使用inode形成對映就可以了,可以看一下這兩篇部落格,你可以更清楚的認識檔案檢視
cpu如何讀取鍵盤傳過來的資料
作業系統如何使用顯示器的
OS 李治軍 L28 生磁碟的使用
磁碟具有更複雜的結構,在作業系統內有著更為複雜的抽象層次,這裡的生 raw 是讓disk跑起來的意思。可以將磁碟的結構理解為多個原片疊起來的柱面,我們用以下的引數取描述乙個磁碟 理論上,我們要操控乙個磁碟,就要對其控制器發出指令,控制磁頭的電機,使磁頭移動到相應的軌道上去 找到乙個柱面 然後開始旋轉...
python基礎 檔案os模組使用
with open 可自動釋放資源 stream open r c users lizhu.ding desktop aa.txt wb with open r c users lizhu.ding desktop aa.txt rb as stream container stream.read ...
python實現 os模組使用(1)
coding utf 8 created on sun feb 4 16 40 02 2018 author administrator 統計當前目錄下每個檔案型別的檔案數 import os def file count file path file list os.listdir file pa...