计算机领域中随处可见的抽象
想要管理多種具體的東西,那么需要遵守每種東西的規(guī)范。如果想要提供一種通用模式來對這些具體的東西統(tǒng)一管理,需要使用一種古老的技術(shù):抽象。
抽象是將多種具體的東西(管理時需要遵守的規(guī)范)的共同點抽取出來,放入到更高一層的抽象層。在抽象層不定義或少量定義具體的規(guī)范細則,而是讓下層更具體的東西遵守抽象出來的規(guī)則去各自實現(xiàn)。之后只需通過這個抽象層中的通用規(guī)范就能管理所有具體的事物(即面向?qū)ο蠓懂犞械亩鄳B(tài)概念,事實上面向?qū)ο蟮谋举|(zhì)就是抽象),并且隨時可以添加新事物到這個抽象層之下,擴展性和適應(yīng)性大大增強。
所以,抽象的兩個要點:
比如,各種類型的文件系統(tǒng)(ext2、xfs、fat、zfs等)的特性都不一樣,但主要功能都一樣:讀、寫。操作系統(tǒng)希望以一種更通用的方式去管理這些不同的文件,可以在這些文件系統(tǒng)的更高一層提供一個抽象文件系統(tǒng),這個抽象文件系統(tǒng)中定義讀和寫的規(guī)范,同時要求各種具體的文件系統(tǒng)按照這個規(guī)范去實現(xiàn)讀和寫的操作。以后就可以在操作系統(tǒng)上使用多種文件系統(tǒng),不管使用何種文件系統(tǒng),都可以直接通過這個抽象的文件系統(tǒng)來調(diào)用。
再繼續(xù)往下,還有抽象層。文件系統(tǒng)可以指定讀寫功能,從何處讀寫?可以是各種類型的塊設(shè)備,比如IDE磁盤、SATA磁盤等,但是文件系統(tǒng)并不能和這些磁盤進行直接的交互,只有這些外圍硬件的驅(qū)動程序才能和這些硬件直接交互,那么文件系統(tǒng)就需要和各種塊設(shè)備的驅(qū)動交互。所以,在文件系統(tǒng)層和各種塊設(shè)備驅(qū)動中間,又對這些塊設(shè)備的驅(qū)動進行了抽象,提供一種抽象的塊設(shè)備層,然后要求各種塊設(shè)備的驅(qū)動按照這個抽象塊設(shè)備層的規(guī)范去編碼。以后只要文件系統(tǒng)和這個抽象的塊設(shè)備層交互,它就會自動調(diào)用到各種具體的塊設(shè)備驅(qū)動。
而這些抽象層次,通常會命名為“通用xxx”或者“虛擬xxx”。例如,抽象文件系統(tǒng)層稱為虛擬文件系統(tǒng)VFS,抽象塊設(shè)備層稱為虛擬塊設(shè)備層或通用塊設(shè)備層(generic-inode(g-inode)或virtual inode(vnode)正是這樣出現(xiàn)的)。
轉(zhuǎn)載于:https://www.cnblogs.com/f-ck-need-u/p/11561453.html
總結(jié)
以上是生活随笔為你收集整理的计算机领域中随处可见的抽象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SDNU 1430.十六进制转八进制(p
- 下一篇: 精通正则表达式系列