Reusability and modularity
We hope to build a system of components that can be assembled into a running system in a manner chosen by the end user. We additionally intend to permit application software to reuse system components, even kernel components. This reduces the amount of code that application developers need to write and makes it possible to have new applications running quickly.
Application-directed kernel policy
We believe that the kernel should provide mechanisms, not policy. Policies should be supplied by the system administrator, application programmer, or even the end user. VINO is designed to make all policies customizable as far down this list as possible, even "internal" policies like filesystem read-ahead. This permits applications to take maximum advantage of kernel services and eliminates the common need to reimplement parts of the kernel in application software.
Universal resource interface
It should not be necessary to use different interfaces to accomplish the same results just because the things being dealt with are different in irrelevant ways. Both the internal kernel interfaces and user-to-kernel interfaces have been designed to reduce duplication as much as possible. This reduces the load on application developers and reduces the need for shelves full of reference manuals.
Jump to no conclusions
The standard designs for operating systems and operating system components have evolved over the past forty years or so and have in many cases become so conventional that nobody even remembers any alternatives any longer. Sometimes this is because a truly optimal solution has been found. Sometimes, however, what was an optimal or at least good solution at some time in the past is no longer good or even halfway passable due to the changing nature of hardware and the changing nature of things people use computers for. In VINO we try to take none of these conventional solutions for granted. Where possible we attempt to develop new designs that handle current requirements better.