OSDev.org

The Place to Start for Operating System Developers
It is currently Sun Sep 20, 2020 6:11 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 79 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6
Author Message
 Post subject: Re: Describe your dream OS
PostPosted: Tue Jul 28, 2020 3:44 pm 
Offline

Joined: Wed Apr 01, 2020 4:59 pm
Posts: 14
Fully integrated operating system and programming language. Like the lisp machines.

Completely transparent networking. Like plan9.

No file system. No need to distinguish between 'objects held in memory', 'objects held on disc', and 'objects referenced through the network from another computer'. Thus, serialization is redundant.

Very fine-grained permissions, on the level of threads. (A thread can create another thread with fewer permissions than itself, if it wants. It can also remove permissions from itself a la pledge/unveil.)

No 'user-mode'/'kernel-mode' distinction. Everything happens in ring 0. Everything except for kernel/drivers is written in the integrated programming language, which is safe. There is no such thing as a context-switch, so process switching is completely free (modulo cache miss, which is to be expected).

Running processes are completely transparent; their state can be freely inspected and modified. A process is just an object, as is a string-keyed btree (like a file system); row- or column- oriented structureset (like a row-based or columnar database); multidimensional array (spreadsheet)... All these objects can be nested arbitrarily within each other.


Top
 Profile  
 
 Post subject: Re: Describe your dream OS
PostPosted: Wed Jul 29, 2020 5:47 am 
Offline
Member
Member
User avatar

Joined: Mon May 22, 2017 5:56 am
Posts: 315
That's pretty-much what I want, or have wanted at some point, modulo my tendency to rebel against safe languages. :cyberpunk: Also, I like the elimination of distinction between objects in different stores, but may very well have a filesystem-like object index, if that makes sense. After failing at planning several times, I lowered my sights a bit, but I think I'll get most of the pieces in eventually.


Top
 Profile  
 
 Post subject: Re: Describe your dream OS
PostPosted: Wed Jul 29, 2020 3:29 pm 
Offline

Joined: Wed Apr 01, 2020 4:59 pm
Posts: 14
eekee wrote:
modulo my tendency to rebel against safe languages.

I find that interesting, because this is kind of at the centre of my vision. Without a runtime for the language, the introspection and integration kind of...don't work. Also, without runtime-enforced safety, you have to do traditional process separation for security, which seriously harms performance. (Unless you want to completely disregard security, which is a completely valid position.)

eekee wrote:
Also, I like the elimination of distinction between objects in different stores, but may very well have a filesystem-like object index, if that makes sense.

Yes. I plan something something similar. Every process gets its own 'namespace', but a namespace is just another object which has to reside somewhere. Think linux /proc, except all application-specific data is part of the app's 'proc'. So there's a root object of some sort (this part I'm not sure about yet; perhaps this can be configurable, so some people will have a hierarchical-fs type thing as root; others an array, or associative array, or database, or...—depends on personal preference). And then, before you can run a process, you have to give it somewhere to put its namespace. But you can also put other arbitrary data in the root (or subobjects thereof).

eekee wrote:
After failing at planning several times, I lowered my sights a bit, but I think I'll get most of the pieces in eventually.

Good luck! Incrementality is the way to do it.


Top
 Profile  
 
 Post subject: Re: Describe your dream OS
PostPosted: Thu Jul 30, 2020 4:02 am 
Offline
Member
Member
User avatar

Joined: Mon May 22, 2017 5:56 am
Posts: 315
moonchild wrote:
eekee wrote:
modulo my tendency to rebel against safe languages.

I find that interesting, because this is kind of at the centre of my vision. Without a runtime for the language, the introspection and integration kind of...don't work. Also, without runtime-enforced safety, you have to do traditional process separation for security, which seriously harms performance. (Unless you want to completely disregard security, which is a completely valid position.)

I forgot, I have been thinking of jails for untrusted code. Forth words can be redefined so, for example, the pointer access words could be changed to restrict access to the process's data memory only, and I have an idea to simplify and speed that. I don't know where I'd get untrusted code, but it would also be useful for developing new code. Or I could set up the MMU and go to ring 3 for untrusted/new code only. The MMU would be better, it would give me an error on out-of-bounds access. Restricting pointer access with my idea is simpler to implement and works on anything, but results in bad addresses wrapping around. It's simply AND to limit the range and OR to add the offset - the fastest operations on any processor, I think. Trusted library code would be exempt. But I might be getting into too much detail for a dreams thread.

How to reference data is a huge subject. It's so big, I find I've developed an aversion to thinking about it. ;) Schol-R-Lea has some interesting ideas when he's in a good mood.

moonchild wrote:
eekee wrote:
After failing at planning several times, I lowered my sights a bit, but I think I'll get most of the pieces in eventually.

Good luck! Incrementality is the way to do it.

Thanks! :D


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 79 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6

All times are UTC - 6 hours


Who is online

Users browsing this forum: Google [Bot] and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group