June 16, 2012 1 Comment
Operating systems are not very usable right now. Of course you can create some files and launch few applications, but it’s rather a sack of totally independent parts. You always have to think in terms of individual applications. They are seldom connected and usually in not very smart way (MS Office kind of integration).
You cannot reference one file in another. You cannot for example attach the 13th minute of a movie to text file with your favorite movies scenes and make it play from this place when you click on it. It was just not designed this way. Current OSes are just a slow evolution of concepts born in ’60s or ’70s when there were only text files and batch scripts. No gigabytes of multimedia, no thousands of emails. It’s nearly impossible to keep all this organized with hierarchical filesystems and nearly no help on application level.
But there is one system that is going in direction of fully interconnected data. That is even capable of doing so. It’s a World Wide Web with simply beautiful concept of URL. it’s even getting more and more appealing with recent idea of making URLs fully bookmarkable and meaningful to the user and RESTful design. What if we could use the same concept to operating systems? What if we could have applications declare URLs directly to part of resource you have opened and would like to reference somewhere else? For example if I would like to reference 3rd page of opened pdf file I could get URL like:
Store it as link in my note and go to 3rd page of pdf file each time I want to see it. Note taking application could also use some pdf rendering capabilities, if it can handle pdf protocol, and show it inline.
What if we also decide to leave concept of hierarchical filesystems and change to some checksums and versioning? Maybe we could send someone a link to specific file in specific version (checksum) and he could then open it in exactly same state as we see it, even if he changed it in meantime. Even if he got it from someone else, but it is the same file (checksum is uniquely identifying content so no chance of mistake, mathematicians already made sure it works). Then we could also stop having multiple copies of the same file. If only thing that is identifying file is a checksum and some metadata, then its enough to have single instance with many names attached to different versions. URL to such content might look like:
Think about it for a second. Sending such link to anybody, really, anybody who has file with such checksum in its history will result in exactly same content opened. No misunderstanding. You could even bookmark and send character number or selection an it would be exactly same selection as you see. There could also be a base checksum of file (assigned when it was created) that could also be encoded in URL and used in case you don’t have exact version.
There are also some other cases you might find it useful. I think it’s even possible to get something like this working in near future. Maybe we could start with filesystems like ZFS and Unix extended attributes? Maybe with simple filesystem and some graph database to keep version references and metadata? No idea yet. But maybe someone will try and we see if it makes sense.