為什麼 Windows 不提供內存文件系統?

類似於linux的純內存文件,用於存儲臨時文件好處極多,比共享內存好用不知多少,為何win中不提供


總體來說ramdisk的應用場景不多,大部分Windows用戶不需要。

Windows大部分文件操作都是經過cache的,direct io很少。同樣是利用物理內存,Windows認為大部分時候統一管理cache要比讓用戶自己維護一個cache策略要好(可以把ramdisk看成一種特殊的cache策略)。這裡的大部分情況是指普通用戶的電腦環境,即是一個非常複雜的環境,用戶很難正確分析出哪些文件更需要cache,有可能你做ramdisk的那些內存交給Windows去cache其他文件對系統整體性能反而更好。

而對於特殊場景,比如專用伺服器,伺服器軟體可以自己申請物理內存來管理cache策略,比如SQL Server就是這麼做的。這個要比ramdisk更generic更直接。


Windows平台也有ram disk. 大微軟甚至提供源碼。也有很多商業軟體:https://en.Wikipedia.org/wiki/List_of_RAM_driver_software


windows不提供的東西多了。

windows是個商業軟體,包含的特性越多,微軟的研發和技術支持成本越高。所以,windows自帶的特性是很有限的。

windows有很多第三方軟體商,提供了好幾個ramdisk方案。有的是免費的。你可以去看看。


內存文件系統是針對程序員的,和最終用戶其實無關.

如果某個應用場景確實需要利用內存來承載文件進行數據交互,在運行環境用戶去部署內存檔作為swap,這樣更符合windows作為桌面系統的定位.

畢竟99%運行windows的電腦不需要內存文件.

如果windows提供了內存文件,各路商業軟體爭搶內存文件佔滿導致程序崩潰的可能性很大.

而99%的windows用戶是搞不定這種破事的.


為什麼 Windows 不提供 unix device files

為什麼 Windows 不提供 tmpfs

為什麼 Windows 不提供 procfs

為什麼 Windows 不提供 ......

。。。

為什麼 Windows 不變成 Linux

另外,沒看出共享內存哪裡不好用了。


Windows 下創建文件時,具有 FILE_ATTRIBUTE_TEMPORARY 和 FILE_FLAG_DELETE_ON_CLOSE 創建屬性的文件在內存中創建,只有在內存壓力大的情況下才寫入磁碟。


所謂的內存文件系統你可能想要以下兩種之一:

1. 緩存,這個事操作系統幫你搞了,而且很棒

2. 2.7G(似乎是這麼個值,32位系統時的可用內存)以外的內存,還是升級64位系統更靠譜


為什麼不去問問微軟,為什麼不去問問微軟的CTO,為什麼不自己寫一個全能的操作系統?


推薦閱讀:

為什麼 OS X 比 Windows 快那麼多,是硬體的緣故么?
為什麼linux下的軟體要比windows下的軟體小很多?
如何看待 Windows 10 的用戶界面設計?
大家對重裝系統有什麼看法?
在 Windows 下修改 MAC 地址時,為什麼第 2 個十六進位字元只能是 2、6、A、E 之一?

TAG:MicrosoftWindows | 操作系統 | Linux | 文件系統 | 內存RAM |