對於32位的作業系統而言。在磁碟讀取檔案後如何確定某乙個位元組的位置?

時間 2021-06-02 20:27:09

1樓:XZiar

這個問題去翻系統API不就很明顯了嗎,比如Windows就有LargeInteger。

其實32位系統也不是只能支援到4G記憶體。32位是指通用暫存器為32bit,也可以認為C/C++裡指標大小為32bit。但是,系統層面從來沒說所有可訪問的位址都要用獨一無二的單個指標來表示啊。

乙個指標不夠,那就兩個指標咯,或者加些額外資料也行,比如看看TLB怎麼做到索引全部位址的。

具體到你的問題,那又是檔案系統相關了。FAT16最大卷大小只有2GB,不管你在16位/32位/64位系統上跑都一樣

FAT32的32在這裡起的作用是限制了簇或者塊的數量,這是邏輯上的單位,和硬體上的扇區又有區別。你想要精確定位到乙個簇的某乙個位元組,但檔案系統完全可以只精確到乙個簇,剩下的模擬給你。即每次讀/寫都以乙個簇為單位,讀寫到記憶體再去剔除多餘部分。

2樓:醉臥沙場

能不能確定乙個位元組的位置和是不是32位系統無關。位址位的長度只能限制資料定址時的最大範圍,和精度並沒有關係。所以你的問題問的首先就不知所云。

如果你是想問檔案系統怎麼能將訪問粒度精確到位元組,那我以前回答過了,參考如下:

如何理解檔案系統中訪問單位是記錄,粒度不能細到資料項?

3樓:the gc

訪問磁碟不是根據位址線的,你理解錯啦。通過檔名可以找到inode節點,通過inode節點可以找到對應的硬碟塊。然後通過驅動,硬碟控制器讀寫就可以了。

為什麼 64 位作業系統可以執行 32 位應用程式?

pansz amd64 架構,以及 intel em64t 架構的 CPU 都實現了一種 在 64 位模式下執行 32 位程式 的方式。這個模式最初是 amd 設計的,有興趣的可以檢視當年 amd k8 cpu 的技術文件,裡面有非常詳細的描述。從某種意義上說,intel 的 ia64 之所以失敗,...

都說64位作業系統比32位的快,怎麼感覺同樣配置還是32的快啊?

張三瘋 誰說的 64位比32位快的 個人理解是 64位cpu可以管理更多的記憶體硬碟裝置啥的。32位記憶體有最大的限制 64位也有但是基本上你達不到那個限制 戮世帝尊 這個位數指的是CPU GPRs General Purpose Registers,通用暫存器 的資料寬度為64位,64位指令集就是...

有沒有可能出現128位的作業系統

來自 電腦是玩具 128位的系統暫時沒有出現的必要,位數和運算速度沒什麼關係,但是高的位數能夠定址到更多的記憶體空間,也就是使用更多的記憶體,處理更為龐大的資訊量,表達出更豐富的內容,位數的遞增不是翻倍這麼簡單,實際上多少位就是2的多少次方,因此8位到16位,變化是可以表達的數量從256增加到655...