有没有一种方法可以将数据直接编码到硬盘驱动器(类似于对RAM的处理方式?

问题描述 投票:0回答:2

我的问题与C / C ++有关。可以非常灵活地操作RAM上的数据。您还可以使用OpenGL向GPU提供直接命令,从而也可以操纵VRAM。

我的好奇之处在于是否有可能对硬盘驱动器执行此操作(即使有很多可能破坏现有数据的方法,这可能是一个可怕的想法)。我的问题的逻辑来自这样一个假设:硬盘驱动器类似于RAM和VRAM(数据字节),但是访问数据的速度较慢。

我不是在问如何执行文件IO,而是如何直接修改硬盘驱动器上的内存字节(可能通过某种“硬盘驱动器指针”)。

如果我的假设完全无效,那么对硬盘驱动器的数据存储与RAM或VRAM有何不同的详细校正将非常有帮助。谢谢!

c++ c memory storage hard-drive
2个回答
0
投票

不适合你。能够将direct写入硬盘驱动器将给您带来无限的可能使事情变得混乱不堪。 (技术术语为FUBAR,而F不代表混乱)。

并且如果您编写硬盘驱动器,我衷心希望您不要试图寻求帮助这里


0
投票

现代操作系统与现代CPU的结合提供了将磁盘群集映射到内存页面的功能。

内存页面最初被标记为无效,并且一旦您尝试访问它们,就会发生无效页面“陷阱”或“中断”,这由操作系统处理,将相应的群集加载到该内存页面中。

如果写入该页面,则可能是硬件支持的“脏”位,或者是另一种中断机制:内存页面最初被标记为只读,因此,第一次尝试写入该页面时,会出现另一个中断,它只是将页面标记为脏页面并使其变为可读写状态。然后,您知道需要在方便的时候将页面刷新到磁盘。

请注意,读写通常是通过直接内存访问(DMA)完成的,因此在传输页面时,CPU可以自由地做其他事情。

所以,是的,您可以在操作系统的帮助下完成,或者自己编写所有非常复杂的代码。

© www.soinside.com 2019 - 2024. All rights reserved.