Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Posted May 24, 2012 20:48 UTC (Thu) by daglwn (guest, #65432)Parent article: Preparing for nonvolatile RAM
In fact we don't really need filesystems today. We could simply use the paging system to write out the contents of memory to persistent storage on a shutdown and load them back up on a restart, not unlike suspend/resume. Pointers become the names of objects.
Posted May 24, 2012 23:26 UTC (Thu)
by viro (subscriber, #7872)
[Link] (16 responses)
Posted May 24, 2012 23:40 UTC (Thu)
by daglwn (guest, #65432)
[Link] (15 responses)
The point is that we have an entire OS subsystem that probably isn't needed at all for a lot of use cases. Who wouldn't want to get rid of that complexity.
Posted May 25, 2012 3:48 UTC (Fri)
by viro (subscriber, #7872)
[Link] (14 responses)
What do you think 'ls' stands for? That's right, "list segments". In a directory segment, that is. As for the supposed complexity... Take a look at the amount of code in fs/ramfs someday. Especially if you leave no-MMU side of things alone...
Posted May 29, 2012 20:40 UTC (Tue)
by daglwn (guest, #65432)
[Link] (13 responses)
There is a lot of complex code that could be dumped if everything lived in a random-access memory. Device drivers alone would be a huge savings.
Posted May 29, 2012 21:33 UTC (Tue)
by paulj (subscriber, #341)
[Link] (5 responses)
Posted May 30, 2012 1:36 UTC (Wed)
by daglwn (guest, #65432)
[Link] (4 responses)
Posted May 30, 2012 4:43 UTC (Wed)
by dlang (guest, #313)
[Link] (1 responses)
However, they have always run into the stumbling block that it's just impractical to deal with all hunks of data in a flat namespace. Directories are EVIL, but nobody has make anything else work even one tenth as well
Also, just keeping everything in ram falls apart as soon as you want someone else to access it (or you loose the device, or the device gets destroyed, or ...)
Many of the people pushing back have been though this "eliminate filesystems" experiment before and have the scars to show for it. Listen and learn (then go try and build something to prove them wrong :-)
Posted May 31, 2012 19:35 UTC (Thu)
by timka.org (guest, #53366)
[Link]
Posted May 30, 2012 4:52 UTC (Wed)
by paulj (subscriber, #341)
[Link] (1 responses)
Posted May 30, 2012 14:54 UTC (Wed)
by daglwn (guest, #65432)
[Link]
I think the discussion is pretty pointless now...
Posted May 30, 2012 0:11 UTC (Wed)
by Trelane (subscriber, #56877)
[Link] (1 responses)
Because not all memory is the same, let alone the pipe over which we get it.
How would you use a hypothetical storage medium that had 1EB of storage but you could only access it at 128kbps?
Posted May 30, 2012 1:37 UTC (Wed)
by daglwn (guest, #65432)
[Link]
The filesystem is the abstraction and that abstraction has certain costs. Changing the abstraction doesn't imply we immediately forget everything we know.
Posted May 30, 2012 6:53 UTC (Wed)
by viro (subscriber, #7872)
[Link] (4 responses)
One more time, slowly:
* fs/ramfs/inode.c does *not* optimise for rotating storage, what with having nothing whatsoever to do with any storage.
* it does *not* optimise for disc buffering, what with having no backing storage, disc or otherwise
* file cache (page cache, really) is just a mechanism for finding a page by offset in file. In case of object living entirely in RAM, that's exactly what you need to work with that object. Unless you want your objects to be contiguous in RAM, that is - great idea, that, for e.g. 800Kb text file. Or a 22Mb PDF document.
* Device drivers have nothing whatsoever to do with aforementioned ramfs.
* You have demonstrated just what is wrong with "visionaries". You keep making profound sounds without stopping to check whether they have anything to do with reality. Other than that of your bowel movements, that is.
As for being deliberately dense... I wouldn't have dared - any attempt to fake being dense would be simply pathetic next to the geniune article of that magnitude.
Posted May 30, 2012 14:55 UTC (Wed)
by daglwn (guest, #65432)
[Link] (3 responses)
Posted May 30, 2012 21:25 UTC (Wed)
by Cyberax (✭ supporter ✭, #52523)
[Link] (2 responses)
Don't know about you, but after Al Viro's post I went and checked VFS source code - and he's entirely correct.
Posted May 30, 2012 21:59 UTC (Wed)
by daglwn (guest, #65432)
[Link] (1 responses)
I never claimed to be a "visionary." I'm far, far from that. The idea isn't even original, people have talked about it for years. It just strikes me that it makes a lot of sense given system architecture trends. Outright dismissal accompanied by foul language, holier-than-thou attitudes and outright insults says much more about Al than it does me.
Al definitely lost a notch or too on my respect ladder and that's a pity because I've generally enjoyed reading his posts/articles.
Posted May 31, 2012 1:29 UTC (Thu)
by bronson (subscriber, #4806)
[Link]
I'm no linguist but anybody who disagrees is a dweeb. :)
Posted May 25, 2012 1:18 UTC (Fri)
by iabervon (subscriber, #722)
[Link] (7 responses)
Oh, and we use filesystems for disks, which NVM doesn't replace, not for DRAM, which NVM does replace. It would make more sense to say that now we can now have *only* filesystems, not anonymous memory. But that's also dumb.
Posted May 25, 2012 1:53 UTC (Fri)
by neilbrown (subscriber, #359)
[Link]
Posted May 25, 2012 3:03 UTC (Fri)
by daglwn (guest, #65432)
[Link] (5 responses)
There are many other, better ways to do IPC.
I don't think a filesystem-less Linux would work that well - the concept is too ingrained into the kernel. But starting from scratch? I would seriously consider not providing a filesystem at all.
Posted May 25, 2012 5:10 UTC (Fri)
by mrons (subscriber, #1751)
[Link] (1 responses)
http://www.jlkeedy.net/research-highlights.html
Don't know how far they got with an actual implementation though.
Posted May 31, 2012 19:56 UTC (Thu)
by timka.org (guest, #53366)
[Link]
Posted May 25, 2012 8:52 UTC (Fri)
by dgm (subscriber, #49227)
[Link] (2 responses)
And as Viro said above, the moment you add a name->page mapping... voilĂ ! the filesystem is back.
Posted May 29, 2012 20:45 UTC (Tue)
by daglwn (guest, #65432)
[Link] (1 responses)
I'll grant that removable media presents a challenge. But with The Cloud(TM) these days, do we even need it? I'm talking about certain common use cases. Certainly we need it for lots of things but I don't think everyone in the world needs it.
Even so, I wonder if page migration could be adapted to support removable storage. Page out on one system, page back in on another.
Just thinking blue sky here, I'm not an expert on any of this.
Posted Jun 1, 2012 1:07 UTC (Fri)
by kevinm (guest, #69913)
[Link]
About that only thing you can change that about that and still have a mapping from names to memory is to change what the names look like. Maybe you don't want them to be hierarchical - maybe you want them to be flat, or multidimensional instead of single-dimensional. But there doesn't seem to be a good reason why changing how the names look is in any way related to NVM.
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Dmitry Zavalishin, the author of Phantom OS (which "eliminates filesystems"), was asked the question about removable storage when he was giving a talk about the OS at HighLoad++ in 2009.
Preparing for nonvolatile RAM
His idea is to start a separate Phantom VM for a removable media which then can be seen as another "host" accessible via "network". AFAIU, this means Phantom's native IPC is substituted by some protocol. Smells somewhat like Plan 9 to me.
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
There's also Phantom OS. Never tried it myself but it's still active and looks interesting.
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM
Preparing for nonvolatile RAM