File Management
Of course all these files will still need to be managed. One of the most useful applications I used back in my Amiga days was a "dual panel" file manager. There were many of these with the most famous being SID or Directory Opus v4 [DOpus4] (note: not the later versions which changed the layout). I've never found an equivalent on any other platform though you can get some for Unix/Linux [LinOpus]. You can also simulate a dual panel manager by placing 2 Finder windows side by side in OS X 10.3, you use drag and drop in place of the copy button (I have two Finder windows permanently set up like this).
The dual panel approach is very easy to use and you can navigate around the system at good speed if it is implemented well. I've never found a better way to manage files, you can of course use the desktop (spatial or browser) or even a command line but I don't find any other method works as well or as quickly.
Of course we can now improve on it by adding support for drag and drop and metadata. You could have a music button which lists all your music files irrespective of where they are. The same could be done for pictures and other data formats. Actions could be enhanced, double clicking the file will launch it with a viewer / player, double clicking on the directory display will bring you to the file's location, dragging the directory to the other panel opens that directory there.
History and hierarchy lists would allow you to go upwards or backwards to previous/other locations. Adding the ability to navigate via menus could allow faster jumps to other parts of the system.
It's difficult to describe how powerful yet easy a program like this could be, DOpus and it's like were very good at their task, to the point that I never used the desktop or the shell. Combined with metadata searching these tools could be even better.
Loading and saving files can also use some of the same technology (but not the dual panels). A standard file requester could allow fast navigation and allow searching of metadata to suggest the best location to retrieve or store a file.
Other Random Ideas:
Building a new OS means new concepts can be tried out, here are couple of other concepts:
Large Page Sizes
Existing Operating systems still have hangovers from the hardware they were originally designed on, i.e. memory management typically deals in page sizes of 4 KBytes. This seems a little small given today's system requirements which are running into hundreds of megabytes of memory for user desktops and gigabytes for workstations. I'd suggest the use of a flexible page size starting in the order of 32 KBytes, It does have the disadvantage of using larger memory blocks but this can be reduced by allocating smaller memory requests inside already allocated blocks, this could be done by embedding a small memory manager into applications at runtime, when an application wants memory the memory manager could activate and check if there is sufficient memory in it's allocated blocks, if not it will ask the OS for more memory.
This will not only make efficient use of memory but also reduce OS calls / context switches. Using large pages also shrinks the entire page directory so more of it can then be held on the CPU, page directory look-ups for data can then be done without needing to go to main memory as often. In fact if paging to disc is disabled (quite possible with today's memory sizes) it's possible the entire page directory will fit on the CPU giving a performance boost as it'll never need to be flushed.
The Grid
The BeOS media kit allows you to arbitrarily redirect the output of media software, this for instance allows you to add an audio filter or effect to an MP3 player, even if the MP3 player has no support for audio effects.
The Grid is the same thing but extended to the entire system and even across multiple systems. If I want to save a file on a different computer I'd usually need to have to explicitly support this in the file system. The Grid would allow it to be transparent, an extra drive would appear on your file save requester and you select the drive and press save as normal, the file system just saves as normal and The Grid pushes the data across to the other computer.
The Grid could also enhance the existing media kit by moving some processing to the other system. You could conceivably even spread programs across multiple systems. Providing an application or OS service knows how to communicate via The Grid the systems will take care of the communication's transport. The Grid could do away with the need to transfer data across a full network stack as The Grid will itself act as a simple network.
Again this comes back to the idea of simplicity, instead of having multiple applications supporting the functionality it is placed into the OS so anything can use it. Such a principle is also found in the Unix successor "Plan9" [Plan9], indeed The Grid could make good use of Plan9's Plumbing [Plumbing] concept.
Conclusion
There are various trade-offs to be considered when contemplating a new system, we all want good performance but would we trade it for better security and stability? In today's systems that question was asked years or even decades ago and the answer was no. Today CPUs provide 99.9% of the population with more power we can use and there'll be heaps more power when we get multi-core CPUs on the desktop. Today with increasing numbers of viruses and attacks I'd accept the trade, it's not as if anyone outside benchmark fanatics will notice the difference. I for one would like to use a system which is damn near impossible to hack and damn near impossible to crash.
The system I am describing is not so much new ideas but about taking the best ideas, old and new and putting them together to make something better than has gone before. Having a new system gives us the ability to do this but as the system allows other OSs to run along side we have a combination giving us the best of both worlds. However we can experiment beyond the bounds of OS design, we can also explore other areas and improve on those as well. It's quite telling that even today very few if any have yet to get usability right. It's not an easy subject, more a question of opinions than absolutes. The Mac is famous for it's usability and on that very topic...
A correction:
In Part 1 my description of the Macintosh did not attribute it's ease of use to Jef Raskin's original vision of the machine of which it was a major part. This has since been corrected, my apologies for the error.
References / Further Information
[Security] Security
[Jail] FreeBSD Jails
[Microkernel] Microkernels have security & stability advantages.
[Audit] Auditing code is a method the OpenBSD group use to make their system more secure.
[BadCode] Embedding security in programming languages.
[Taint] Perl has a Taint mode.
[Code] Suggestions for improving security by embedding runtime modules.
[OpenBSD] OpenBSD has a reputation for security.
[Indexing] Description of various document indexing systems.
[Storage] Features in Gnome Storage
[DOpus4] Screenshot of Directory Opus 4.
[LinOpus] Worker dual plane file manager for *nix Screenshot
Another called Gentoo (not the Linux Distro) also for *nix and Screenshot
[Plan9] Plan9 the successor to Unix. An overview.
[Plumbing] The Plumbing concept from Plan9.
© Nicholas Blachford July 2004
About the Author:
Nicholas Blachford is a 33 year old British ex-pat, who lives in Paris but doesn't speak French (yet). He is interested in various geeky subjects (Hardware, Software, Photography) and all sorts of other things especially involving advanced technologies. He is not currently working.
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.
- "Security and Files, Page 1/3"
- "Security and Files, Page 2/3"
- "Security and Files, Page 3/3"



