Re: Amazing... But also a bit stupid
1. If you have, say, a terabyte of non-volatile RAM, why do you need disks or paging at all?
You need paging because it's currently how computers map memory, if you remove that you have to solve the relocatable code problem and a few others.
You don't needs disks.
Why do you want to impose an emulated disk drive on a machine which doesn't need disk drives at all?
I don't.
But I do still want a way to file and organise my data.
A memory FS would have to work differently, but I don't see why you wouldn't want a system to allow you organise your data. Sure, if you load a program from the filing system you'd just be executing the code where it is in memory (non volatile data aside).
The reason I mentioned paging is that volatile data. It wouldn't be a huge extension for a current OS to move little used volatile data to persistant RAM. This would mean a shutdown would be 'copy the rest of the volatile data and turn off', with apropriate 'restarting from RAM' support in whatever firmware you had would give you the 'always on' computer.
Unless you're proposing fixing another class of problems programs will still need at least the concept of a running instance, you still need something to kill when it goes wrong. This means you will still need the abstraction of 'the thing needed to run a program' vs 'a running instance of that program'.
No current OS organizes its RAM as a filesystem.
And nor should they, but if all your data is in RAM there's still a requirement to mark bits of RAM as 'that picture from holiday last year', and maybe group bits of RAM as 'Last years holiday pictures'.
Also, most modern OSs organise their RAM hierachically, based on CPU locality for example. (NUMA) So they do have the concept of different 'types' of RAM. This would be required to properly utilise static RAM, until the static RAM can withstand the (basically) infinite re-write cycles of DRAM.
Right now I am typing in a browser window. That browser has, no doubt, many allocated areas of RAM. They are not files. There is no directory.
It also has many tempory files, and many resources it loads (icons, language translations). It still needs a way to locate and refer to these.
Why do you want to impose an emulated disk drive on a machine which doesn't need disk drives at all?
I don't, I want a system to file and organise data, but the lower abstraction wouldn't be talking to a disk drive, it would be using the persistent memory in the computer.
I submit the answer is "because that's the design I am familiar with. It's the way I know."
You may well be correct here; generally most people are blind to a new way of thinking until it's presented to them complete.
But personally I switched OS half a dozen times. Spectrum BASIC to VAX/VMS to CP/M to RISC OS to OS/2 to Windows 95 to Windows NT to Linux to Linux and Mac OS X. (Not counting all the many ones I used at work.)
All of those had different abstractions. Some had filesystems; some didn't. Some had subdirectories; some didn't. Some had file types, some just had clunky three-letter file extensions.
They all had filesystems. My ZX81 could load a program by name, this requires at least some organisation on the tape. That's a simple filesystem. I've not used VAX/VMS or CP/M, but I have used the rest you list.
RISC OS is a decent example, it has modules, which are basically extensions of the ROM modules in the BBC MOS, yet with ResourceFS in RISC OS 3 modules would still write entries to ResourceFS, so they could access sections of their memory as if they were files. They didn't take up more memory, there's no 'HD emulation' (ResourceFS literally is told 'make this chunk of RMA appear as a file in your namespace'). But it does allow you to access resources easly, and also replace them.