seph

 

Operating Systems

Page history last edited by Joseph Gentle 1 yr ago

I don't like current operating system design.

 

Some functionality improvements I would like to see

 

Architectural changes

 

Resource-orientation

 

Managed memory model

 

Pervasive Persistence

 

Remove the filesystem and replace it with an object store

 

Something like what these guys did in 1999 (except remove the fixed-size requirement on objects)

www.eros-os.org/devel/intro/ProgrmrIntro.html

 

Read this discussion where the developers of eros discuss their design with Alan Cox and other linux developers.

 

For 'what my objects actually are' read about my language design ideas

 

Integrated identity management

 

My user account should know 'me' in every possible way. It should integrate with facebook, my email, myspace, google talk, picasa, flickr, my online forum accounts, twitter, instant messaging and my mobile phone.

 

 

When I log in, I should see information updates from all sources and keep all sources in sync. I don't want to remember 17 different passwords. (Nor do I don't want one compromised web identity to compromise my identity on all the other services I use)

 

Physical Context Awareness

 

My computer should sense which other computers / devices are nearby (via bluetooth, 802.11, ethernet, etc) and attempt to communicate with them. I should be able to zoom out my computer's desktop and see + interact with the nearby devices. Obviously there's security implications, but with a good identity model this could be done quite securely.

 

Self-optimising boot loader

 

Classically a boot loader will:

  • Configure RAM (at the very least, setup stack pointers and stuff)
  • Configure CPU (move from 16-bit to 64-bit mode)
  • Configure TLB
  • Load kernel into RAM
  • Scan other hardware
  • Load drivers for other hardware
  • Preload data you expect the user to access once the system has booted

 

hate scripts so I would like to see this solved without a hardcoded boot loader script.

 

 

Really, the whole thing is just a simple CSP. Each of the devices + device driver has a required state for boot. Each driver has some initialisation code and some require some other hardware to be initialised first. (PCI devices depend on ACPI bus, etc).

 

The compiler can compile for the CPU whichever mode the CPU is in so long as the compiler knows what mode the CPU and RAM will be in when the code runs.

 

Now really; a planner could probably solve this problem better than me. Optimise for boot time but allow for a slow path incase hardware changes. Precompile expected drivers. Pack the standard executed boot code in a continuous section on disk to improve performance.

 

 

Vague Architecture Pictures

 

The software stack

 

Comments (0)

You don't have permission to comment on this page.