和老大的一次對話,關於linux的

雪之舞 18:21:11
    請問文件系統、設備驅動之間是怎麼聯繫起來的?

小鋒 18:24:43
驅動就是一個文件
小鋒 18:25:45
驅動有老的方法和新的方法,老的方法要指定主設備和設備號,新的方法就是一個文件
小鋒 18:26:59
你看一下devfs
雪之舞 18:24:45
不是,我是說,比如你有一個硬盤,是Fat32的,那應該有一個硬盤的驅動,還有一個Fat32的文件系統,對吧
 
小鋒 18:28:40
暈,你說的是mount
雪之舞 18:26:22
不管是什麼,他們之間是怎麼聯繫起來的。
 
小鋒 18:29:53
就是用mount啊
小鋒 18:30:23
你查一下mount怎麼用就知道了
小鋒 18:30:42
文件系統是一個moule
 
小鋒 18:30:55
你安裝上去就好了
雪之舞 18:29:05
那比如我有一個USB硬盤,連到電腦上,我還得知道它是什麼格式的,然後再用mount把它和特定的文件系統聯繫起來
 
小鋒 18:32:36

雪之舞 18:30:26
那系統啓動的時候呢,自動mount一些設備嗎
 
小鋒 18:33:50
是的啊
小鋒 18:33:59
初始化的時候做的
小鋒 18:35:31
他有一個根的目錄,你要把你的盤mount上去,作爲一個節點
小鋒 18:35:51
根目錄是初始化是生成的
雪之舞 18:32:48
那就是要先加載一些實現了某些文件系統的模塊,然後用mount命令把某個具體的設備和相應的文件系統聯繫起來,並掛到某個目錄上
 
小鋒 18:36:37
恩,Fat32之類的Linux應該已經有的
雪之舞 18:38:26
但我想比如Fat32的文件系統肯定不能包含讀寫硬盤的代碼,那應該是塊設備驅動的事,那他們又是怎麼聯繫起來的,也是mount是指定的嗎

小鋒 18:42:07
驅動和文件系統是沒有關係的
小鋒 18:43:16
你裝硬盤,就要有驅動嘛,有了驅動就可以讀寫,然後呢在把文件系統和設備關聯起來。
雪之舞 18:40:15
那訪問文件,最後肯定要去讀硬盤,那它怎麼知道用那個驅動去讀呢
 
小鋒 18:45:52
你裝硬盤,就要有驅動啊,這個是你安驅動時指定的
雪之舞 18:43:36
你是說文件系統和設備聯繫起來,他會調用設備的相關方法去讀數據,而這個方法可能最後會去讀寫硬盤。
 
小鋒 18:47:15
恩,是滴
小鋒 18:47:47
你可以用面向對象的方法來理解,相互之間都是一些接口
小鋒 18:48:32
驅動要實現驅動的方法,文件系統會去調用驅動的讀寫方法,他們是在安裝時關聯起來的
雪之舞 18:46:23
不是吧,你剛剛不是說文件系統只和設備關聯嗎
 
小鋒 18:50:21
驅動程序可以理解爲類,設備可以理解爲對象,理解不要這麼機械嘛
雪之舞 18:50:22
噢,明白了。
比如說,電腦上有兩個硬盤,就相當於兩個設備,但卻只有一個硬盤驅動,對吧。
 
小鋒 18:54:28
對的
雪之舞 18:51:41
那它們之間又是怎麼關聯的呢
 
小鋒 18:55:06
你不是要安裝設備的嗎?
小鋒 18:56:35
設備是一個文件,首先你要建一個設備文件
雪之舞 18:54:03
有點明白了。
 
小鋒 18:58:43
呵呵,設備和文件的關係有點雞生蛋,蛋生雞的意思,但是我剛纔說了,系統一開始有一個內存中的根目錄
小鋒 18:59:36
我有事,有時間聊

發佈了64 篇原創文章 · 獲贊 3 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章