FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Ideas Wanted
Goto page Previous  1, 2
 
Post new topic   Reply to topic     Forum Index -> Titan
View previous topic :: View next topic  
Author Message
larsivi
Site Admin


Joined: 27 Mar 2004
Posts: 453
Location: Trondheim, Norway

PostPosted: Tue Nov 01, 2005 2:35 pm    Post subject: Reply with quote

the KLIK project has a very interesting take on the one application-one file paradigm, packing all files into a cramfs (in future versions they'll probably use the new FUSE in the 2.6.14 linux kernel)

see klik.atekon.de for more info
Back to top
View user's profile Send private message
lgoss007



Joined: 13 Oct 2005
Posts: 20

PostPosted: Sat Nov 05, 2005 5:43 pm    Post subject: Reply with quote

Well I probably don't have enough experience with kernels to suggest ideas. Except that you might want to take a look at the L4 Microkernel if you haven't already:
http://en.wikipedia.org/wiki/L4_microkernel_family

Be sure to check out the L4 links at the bottom of the page. I think they have some interesting ideas that you could use. Or maybe you could even do a L4 microkernel in D Very Happy
Back to top
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger
pragma



Joined: 28 May 2004
Posts: 607
Location: Washington, DC

PostPosted: Mon Nov 07, 2005 9:47 am    Post subject: More Info Reply with quote

Just picked this gem off of Slashdot today:

How To Program a Bootstrap Loader
http://www.omninerd.com/articles/articles.php?aid=40

It seems to cover all of the low-level basics, and offers a good intro to how bootloaders work.
_________________
-- !Eric.t.Anderton at gmail
Back to top
View user's profile Send private message Yahoo Messenger
jones



Joined: 10 Nov 2005
Posts: 1

PostPosted: Thu Nov 10, 2005 12:33 pm    Post subject: Reply with quote

Hi!

I've watched several OS for a time now and I would like to create my own one. But the beginnings in C++ are crappy and I can't do it alone, so I am happy to join.
It's probably best using grub as a bootloader, because many people already have it installed and you can load the OS easily (even from FAT partitions).
And it's perhaps a good idea to use an existing 'kernel' to build on. Picos http://dkernel.kuehne.cn/picos-current.zip could be a good idea. It'S licensed GPL (could be replaced later anyway).
Back to top
View user's profile Send private message
trevorparscal



Joined: 25 May 2005
Posts: 73
Location: Bay Area, CA (USA)

PostPosted: Fri Nov 11, 2005 3:45 pm    Post subject: Reply with quote

I think the flagging of application owned files with an ID as to determine ownership is an interesting idea, but sounds lke everytime you want to remove an application you have to scan your entire drive, which could take a very long time. My design so far to handle clean installation is to have all system software in the /System folder, all user files and settings in the /Users folder and all additional, uninstallable software in the /Software folder. One might say, that windows does the same thing, but, no, windows also stores application files in the WINDOWS and SYSTEM or SYSTEM32 directories, not to mention all the hidden settings in the DOCUMENTS AND SETTTINGS folders for each user, PLUS! The registry... A rule would be that you can install an application in the /Software directory and thats it. Than you can remove the folder, and there are no tenticles, and any menus that display shortcuts in any gui should always check for the existence of the application it points to when loading and if it's gone, it assumes it can delete the shortcut as well.

I think the system should be a single user system from the aspect of the kernel, but there can be more than one user, settings wise. Basicaly, when you are using the computer, you are the only user, there is no root, no SYSTEM, no NETWORK or LOCAL SERVICE. However, in a different sense of the word, multiple people users can have accounts on the computer and store their own files and settings. This raises the point of, what if the users have their own settings for installed software? Where do those settings go? My latest design, somehwat inspired by ideas posted here, is that they will go in the /Users/{UserName}/Settings/Software/{ApplicationID} directory, and upon unistallation, the application's directory in there will also be removed. From a GUI standpoint, it would be very simple to include a lookup function when viewing that folder that knew to show the name of the application associated with the application id as the name of the folder, instead of the application ID itslf, and of course the same kind of magic could be used in the /Software directory, so /Software/{ApplicationID} could also look nice to the user.

The idea of a global database of Application ID's is also another thing to deal with. If you are the author of a software package you think is worth distributing, than you should be welcome to claim your own ID online, so the ID's better be an MD5 of the program name, major version, and release date, to avoid repititon, and make there be plenty of them to go around (or some simular idea) Of course, why not just make the ID like this...

/Software/{Author}/{ProgramName}/{Version}
/Users/{Username}/Settings/Software/{Author}/{ProgramName}/{Version}

You could easily have many versions availible simultaniously, from hundreds of authors, and have no conflicts at all. And there could be a databse of first come first serve Author names, just like how domain names are used.. Or perhaps do what eclipse does, and identify the author by their domain name to begin with...

/Software/{DomainName}/{ProgramName}/{Version}
/Users/{UserName}/Software/{DomainName}/{ProgramName}/{Version}

I agree we should start from something that works, and I like PICOS better than the DKernel thats out there, cause it doesn't use C for everything.

Also, grub is going to be a must for this project to get going.

I am going to have some time again this coming week to get soemthing to boot, so perhaps I can get some real source going here soon.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
pragma



Joined: 28 May 2004
Posts: 607
Location: Washington, DC

PostPosted: Sat Dec 03, 2005 6:21 pm    Post subject: Reply with quote

Trevor, I hope you're still on the trail with this one. I picked this up from the DNG today in case you missed it:

http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D/30868

Title: About writing a D OS
Author: "Carlos Smith" <carlos.smith@yumyum.com>
Date: Sat, 3 Dec 2005 17:02:28 -0500

I did search the D news groups and found no previous
reference to SANOS.

How about translating this in D ?

~~~~~~ SANOS: http://www.jbox.dk/sanos/

Sanos is a minimalistic 32-bit x86 OS kernel, written 98? C and 2?assembler,
running on standard PC hardware.
This enables you to run java server applications without the
need to install a traditional host operating system like
Windows or Linux.

The kernel was developed as part of an experiment on investigating the
feasibility of running java server applications without a
traditional operating system only using a simple kernel.

The kernel implements basic operating system services like booting, memory
management, thread scheduling, local and remote file systems, TCP/IP
networking and DLL loading and linking. A win32 layer allows the Windows
version of the standard HotSpot JVM to run under sanos, essentially
providing a JavaOS platform for server applications. This enables you to run
java based server applications, like tomcat and jboss, under sanos.

Alternatively, you can use sanos as a small kernel for embedded server
applications written in C. Sanos has a fairly standard POSIX based API and
an ANSI Standard C library. In this case you don't need the JVM and the
win32 wrappers.

Sanos is open source under a BSD style license. Please see the COPYING file
for details.
_________________
-- !Eric.t.Anderton at gmail
Back to top
View user's profile Send private message Yahoo Messenger
dkrieg



Joined: 24 Jan 2006
Posts: 1
Location: Kansas City

PostPosted: Tue Jan 24, 2006 12:04 pm    Post subject: Random thoughts/ideas Reply with quote

Apple's recent success with the Mach microkernel and Universal Binaries in porting from PPC to x86 should be noted. The thought of using ELF binaries rather than some sort of Universal binary is a step backwards, IMHO.

Writing the entire OS in type-safe D elliminates many vulnerabilities associated with all current mainstream OSes -- what an extraordinary accomplishment we could make if successful in this endeavor!

By applying the exokernel philosophy of exterminating all operating system abstractions and securely exporting all hardware resources, we could establish a well researched system that flips current mainstream OS technology on its ear and enable rather than discourage customizable systems.

For any new OS to be successful, it should not only be innovative and more optimized/better performing than the current mainstream alternatives, it must easily integrate the existing mainstream software packages -- otherwise it will be of no advantage of end users. Look at how many OS projects are out there and how many of them are gaining any sort of market share. NONE! For a list see http://dmoz.org/Computers/Software/Operating_Systems/Object-Oriented/Open_Source/ . So, what will enable Titan to be successful in gaining market share? We need to keep this as a major driving force behind all that we do.
_________________
Daniel Krieg
Back to top
View user's profile Send private message AIM Address
dan.lewis



Joined: 21 Feb 2007
Posts: 69
Location: Canada

PostPosted: Thu Feb 22, 2007 10:40 am    Post subject: Filesystem, Memory Management, Exokernel concept Reply with quote

An exokernel is a beautiful thing, and I have yet to see a well written one. It would be very lean, probably no more than 50kb of source code. The best way to do so would be to write it in Ring -1.

Why? Ring -1 requires AMD-V or Intel-VT cpu, would be able to run other OS's inside of it, and would be able to run and expose the entire machine as if it were on the metal - perfectly - while enforcing restrictions as to what code could run in what ring, and thus what privelege level a given segment of code could get, and thus what could access what hardware and when.

If you want to make a secure OS, do so in Ring -1. Once that has been accomplished, binding together a set of drivers, including a framebuffer device, would be your libOS. Put it on Rieser4 (the real one, not the linux one), and you have an excellent attribute capable filesystem. Get a GUI capable of running on a framebuffer and voila.

If you also provided a shared memory system using D's slices, then you'd do exceedingly well for memory management, you'd have a perfectly secure OS. You could port most linux drivers, as they *are* open source, and you only care about modern computers.

The OS would be ninja.
_________________
nop
nop ; problem solved
Back to top
View user's profile Send private message
MM



Joined: 13 Jun 2006
Posts: 60

PostPosted: Fri Mar 09, 2007 8:30 pm    Post subject: security? Reply with quote

This project seems kinda dead. Even the website is gone.

but here's my thought:

Every resource(file/hardware) should list its resources, be it files or hardware!

To make this not too cumbersome there are things like profiles and boolean combinations of profiles and even the 'All' profile should be present.

The security level defines certain rules for warning and illegal requests and the user can set the security levels of all the resources (including folders/files) which lie within its reach.

Resources can also request or demand things like at no hd swapping or no virus scan which would result in the applicable warning/illegals when the requests can't be fulfilled.
Back to top
View user's profile Send private message
dan.lewis



Joined: 21 Feb 2007
Posts: 69
Location: Canada

PostPosted: Fri Apr 20, 2007 2:50 pm    Post subject: Reply with quote

Towards the end of what I had suggested in my previous post, I have designed (but not implemented) Maat.

Maat is a true exokernel design in Ring -1. Speaking in future tense; she barely accepts the multiboot protocol, loads herself into memory, and establishes policy for memory and port accesses enforced by the AMD-V or Intel-VT processor in an Agents/Priveleges style system. She is not an OS, nor a kernel, and does not provide any HAL.

Maat will be able to run multiple operating systems at the same time, as well as safely multiplexing several programs running seemingly on the metal.

Separation of church and state. Very Happy
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> Titan All times are GMT - 6 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
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 vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group