只写存储器

Write-Only Memory

我知道在许多语言中存在只读值(final 在 Java const 在 C++ 等中)但是 "Write-Only" 值存在?我在笑话中听到过这种变体,例如只写代码,但我想知道这是否真的是计算机科学中的合法概念。老实说,我看不出它在任何情况下都有什么用,但我只是想知道。

肯定有一些用于 PC 的 FPU 使用有点奇怪的设置,作为内存映射设备存在。要执行某些操作,您只需将要操作的值写入指示您要执行的操作的内存地址,然后该值(最终)将在另一个地址可用。

我不知道你是否会严格地将其定义为 "write-only memory",它是内存,其中(部分)地址用作操作码。

在 unix shell 脚本中有一个只写内存的概念。但它不是任何 shell 或脚本语言的一部分,它是一个设备:/dev/null.

只写设备/dev/null用于丢弃不需要的输出。通常允许调用者将 stdout and/or stderr 重定向到它。

计算机上还有其他只写存储器。一个例子是您的声卡,它在某些(较旧的)unix 机器上被映射到 /dev/audio/dev/dsp。向其写入值会使您的扬声器发出声音,但从中读取值却一无所获。

在设备驱动程序本身的较低级别,这些硬件设备通常连接到特定内存或 I/O 地址(某些 CPU 架构没有单独的内存和 I/O 地址 - 只是一个地址 space 由 RAM 和所有其他硬件共享)。所以在真正意义上这些内存位置是真正只写的。