It seems like all of the new operating systems coming out are really just different flavors built on the unix kernel. If a new operating system were to be built from the ground up today, would it be significantly different? I know the linux core is improved all the time as an open source and constantly evolving project, but I just wonder if given the chance to build something with no legacy to maintain, would an operating system have any greatly different architectures or components?
[+] [-] hendzen|12 years ago|reply
[0] - http://os.inf.tu-dresden.de/L4/overview.html
[1] - http://www.ok-labs.com/products/okl4-microvisor
[2] - http://homes.cs.washington.edu/~bershad/590s/papers/towards-...
[+] [-] ek|12 years ago|reply
[0] http://ssrg.nicta.com.au/projects/seL4/
[+] [-] tptacek|12 years ago|reply
[+] [-] asperous|12 years ago|reply
--- Low level ---
Highly reliable, flexible, and secure http://www.minix3.org/
Filesystem that's intuitive, easy to learn, and makes sense http://www.gobolinux.org/?page=at_a_glance
Declarative configuration management http://nixos.org/nixos/
Support applications and drivers written for windows http://www.reactos.org/
Better Security http://www.openbsd.org/security.html
Update software silently and instantly http://www.codinghorror.com/blog/2011/05/the-infinite-versio...
Application Permissions http://codezqr.com/blog/wp-content/uploads/2012/04/Android-P...
--- User level ---
Remove X11 http://wayland.freedesktop.org/
Application Directories http://en.wikipedia.org/wiki/Application_directory
http://rox.sourceforge.net/desktop/
Amazing basic applications http://www.apple.com/osx/apps/
Unify notifications http://growl.info/
http://www.apple.com/osx/whats-new/#notifications
[+] [-] StefanKarpinski|12 years ago|reply
[+] [-] chipsy|12 years ago|reply
With Unix, runtime provisions effectively end where C picks up. C is "good enough" to build applications on, and it can be written portably, most of the time. But there is plenty of reason to challenge the idea that we need a baseline of C. There are benefits to having richer data types built in, to having garbage collection, and all of those typical higher-level programming arguments. And if it's done at the OS level, the whole OS may also benefit from that - it opens up more options for organizing data, for configuration interfaces, and for communicating between processes. The system is likely to be more stable and more secure as well.
The downside is also known - losing lower-level control, losing lower-level performance. But each time our hardware situation morphs, there's an incentive to abandon the lower-level stuff to get better portability. So in time, as hardware usage changes(not just in terms of devices and their internal HW management, but also the increasing complexity of our networks) we're likely to incrementally adopt the higher-level paradigms.
[+] [-] pflanze|12 years ago|reply
[+] [-] nwmcsween|12 years ago|reply
[+] [-] aaronem|12 years ago|reply
[+] [-] rguldener|12 years ago|reply
Current OS have a hard time dealing with such heterogenous systems so they decided to start from scratch: The entire OS is structured as a distributed system with a dedicated mini-kernel running on each core of the processor and potentially also your network card etc. They even disallow shared memory between the core kernels and solely communicate through a message passing system.
If you are interested in their approach check out the Barrelfish website: http://www.barrelfish.org
And here is a great overview of the architecture: http://www.barrelfish.org/TN-000-Overview.pdf
[+] [-] adamnemecek|12 years ago|reply
Later, I realized that Mac OS' Automator/Applescript might have been an attempt to do something like this but it feels somewhat half-assed. Given something like this is probably impossible to bolt on later so you'd have to design the OS from the beginning to allow for this.
[+] [-] chas|12 years ago|reply
http://conal.net/blog/posts/tangible-functional-programming-...
[+] [-] corysama|12 years ago|reply
I'm speaking out of my rear end, but it seems like that's where we're all headed in order to achieve the security/configurability/reliability/simplicity/etc that we all want. As examples, I point to sandboxed mobile/browser/cloud/game console apps as well as config sandboxing such as VirtualEnv and .Net's dll versioning. Might as well drop the half-measures and go all the way. Skip DLL/API/browser version hell and just ship a complete OS image that has been configured and tested to work reliably for the app.
It's my understanding that the Xbox One has basically implemented this already. Game discs contain an OS image that runs as a guest OS on the Box. In addition to improved security, this should greatly reduce the back-compat test burden as future Xbox OS revisions come out.
[+] [-] qbrass|12 years ago|reply
[+] [-] enduser|12 years ago|reply
[+] [-] YZF|12 years ago|reply
[+] [-] ollysb|12 years ago|reply
[+] [-] dmytrish|12 years ago|reply
An OS kernel by definition is a small layer of hardware resources management/abstraction software. Has hardware changed? Yes and no. The most prominent changes are multi-core CPUs, ubiquitous networking, a lot of peripheral devices, support for OS virtualization, but generally hardware architecture is not that far from 70s when Unix was invented. From the software side: the beauty of programming is in its abstraction power and most of software progress is advancing at levels abstracted far from OS (html5/virtual machines/language environments/etc). So, I don't see a burning need for changing the underlying service layer. Microkernels are nice, language-based systems are nice also, but their time has not come yet, the inertia of existing code base is huge, so the incentive to depart from it must be also huge.
I agree that user-space level organization may be more consistent from modern point of view, but it's not clear where to head. Ideas are welcome, but power of organic evolution also should not to be underrated.
[+] [-] olefoo|12 years ago|reply
BeOS had some of this, but the core ideas have not been explored as fully as they might have been.
[+] [-] perlgeek|12 years ago|reply
[+] [-] erikj|12 years ago|reply
In short, it's a modular object storage with a rich set of indexing and quering mechanisms, tailor-made for NewtonScript. It isn't some quirky experiment that never got out of CS academia's ivory tower - it had real-world applications and a noticeable installed base.
EDIT: changed the link
[+] [-] graiz|12 years ago|reply
[+] [-] jeorgun|12 years ago|reply
* Obviously built with online services in mind
* OS is automatically updated from the web
* All (or most— downloads are sill local) data / config / etc. automatically synced with Google account
* Uses GDrive for managing files/folders
[+] [-] hendzen|12 years ago|reply
[+] [-] hbar|12 years ago|reply
[+] [-] StefanKarpinski|12 years ago|reply
[+] [-] zvrba|12 years ago|reply
[+] [-] politician|12 years ago|reply
[+] [-] wtracy|12 years ago|reply
Am I misunderstanding you?
[+] [-] huragok|12 years ago|reply
[+] [-] dmytrish|12 years ago|reply
[+] [-] lowglow|12 years ago|reply
[+] [-] girvo|12 years ago|reply
[+] [-] frik|12 years ago|reply
[+] [-] iElectric2|12 years ago|reply
This.
[+] [-] frik|12 years ago|reply
[+] [-] frik|12 years ago|reply
[+] [-] erikj|12 years ago|reply
[+] [-] collyw|12 years ago|reply