Jump to page: 1 2
Thread overview
Operating System in D
Oct 11, 2005
Trevor Parscal
Oct 11, 2005
pragma
Oct 11, 2005
Sean Kelly
[OT] Re: Operating System in D
Oct 11, 2005
pragma
Oct 12, 2005
Trevor Parscal
Oct 11, 2005
Trevor Parscal
Re: Operating System in D (OT)
Oct 12, 2005
Niko Korhonen
Oct 12, 2005
Trevor Parscal
Oct 11, 2005
Ameer Armaly
Oct 11, 2005
Carotinho
Oct 13, 2005
James Dunne
Oct 13, 2005
Trevor Parscal
Oct 13, 2005
Sean Kelly
Oct 13, 2005
Chris Sauls
Oct 13, 2005
Trevor Parscal
Oct 12, 2005
murpsoft
October 11, 2005
An Operating System In D...

I have extreme ambition, tons of ideas, programming skills, and enough time to make a consistent effort. Perhaps I could get some help from some of you guys, and get a proof of concept together... Like pragma said... And yes, I have seen, and played with the beginings of a kernel in D that are posted on that wiki, and they should help us to get something together as well.

Idea...
A kernel
- execute several different kinds of compiled code (DDL seems to help here)
- has garbage collection (D's GC should work)
- perhaps an exokernel design (http://pdos.csail.mit.edu/exo.html)

Name...
Honestly, as long as it's not an achronym, I am all for it... So, name ideas
anyone?

Thanks,
Trevor Parscal
October 11, 2005
In article <dih930$28uc$1@digitaldaemon.com>, Trevor Parscal says...
>
>An Operating System In D...
>
>I have extreme ambition, tons of ideas, programming skills, and enough time to make a consistent effort. Perhaps I could get some help from some of you guys, and get a proof of concept together... Like pragma said... And yes, I have seen, and played with the beginings of a kernel in D that are posted on that wiki, and they should help us to get something together as well.
>
>Idea...
>A kernel
>- execute several different kinds of compiled code (DDL seems to help here)
>- has garbage collection (D's GC should work)
>- perhaps an exokernel design (http://pdos.csail.mit.edu/exo.html)

I'm new to exokernels, thanks for the link.  It reminds me a lot of proper OO abstraction really, and makes sense: it gets you away from trying to be "everything to everyone" approach that seems to be the key problem with big OS designs (linux suffers here as much as windows).  So I guess you could draft a root kernel easily (as it's understood to be *very* rudimentary and low-level) and build from there.

So I guess the root kernel is where the GC lives?  Works for me.

>
>Name...
>Honestly, as long as it's not an achronym, I am all for it... So, name ideas
>anyone?

I'm not sold on any particular name yet, so here's a pile of suggestions instead. ;)

If you want to extend the current greco/roman/planetary theme we have with D thus far, I would nominate the following:

Janus - god of doorways, beginnings and endings
Titan - the titans were the first among gods
Atlas - 'sentenced' to bear the weight of the world on his shoulders
Athena - godess of war and so the female counterpart to Ares/Mars (only with a
more scrupulous reputation)

. or anything else that fits.

I know Kris has something going with names of tropical fruit/trees, with his "Mango" library.  I've already decided that DSP's testbed server is going to be called "Sumac", after I went looking for other trees that had a taxonomical relationship to Mangos.

Listing of Tropical Fruit - http://www.proscitech.com.au/trop/link.htm

If I can think of anything more inspired, I'll post it to this thread.

- EricAnderton at yahoo
October 11, 2005
"Trevor Parscal" <Trevor_member@pathlink.com> wrote in message news:dih930$28uc$1@digitaldaemon.com...
> An Operating System In D...
I would be willing to lend whatever assistance I can, though I'm no OS expert.
> - execute several different kinds of compiled code (DDL seems to help
> here)
> - has garbage collection (D's GC should work)
> - perhaps an exokernel design (http://pdos.csail.mit.edu/exo.html)
>
> Name...
> Honestly, as long as it's not an achronym, I am all for it... So, name
> ideas
> anyone?
>
> Thanks,
> Trevor Parscal


October 11, 2005
In article <dihb76$2amh$1@digitaldaemon.com>, pragma says...
>
>I've already decided that DSP's testbed server is going to be
>called "Sumac", after I went looking for other trees that had a taxonomical
>relationship to Mangos.

Sumac: get the itch!
Sumac, it really grows on you!
(insert catchy slogan here)


Sean


October 11, 2005
>If you want to extend the current greco/roman/planetary theme we have with D thus far, I would nominate the following:
>
>Janus - god of doorways, beginnings and endings
>Titan - the titans were the first among gods
>Atlas - 'sentenced' to bear the weight of the world on his shoulders
>Athena - godess of war and so the female counterpart to Ares/Mars (only with a
>more scrupulous reputation)
>
>. or anything else that fits.

Wow, so oddly, the original name for my OS I wanted to make long ago, and since, was Apollo.... I have even tried to do this D kernel under that name before... So, now I feel like thats a good idea...

Thanks,
Trevor Parscal
October 11, 2005
In article <dihcan$2bsn$1@digitaldaemon.com>, Sean Kelly says...
>
>In article <dihb76$2amh$1@digitaldaemon.com>, pragma says...
>>
>>I've already decided that DSP's testbed server is going to be
>>called "Sumac", after I went looking for other trees that had a taxonomical
>>relationship to Mangos.
>
>Sumac: get the itch!
>Sumac, it really grows on you!
>(insert catchy slogan here)

Nice. I might just use one of those.  I might just use a 'fortune' style slogan field on the webpage, so I can use both. ;)

A little while back I drafted a concept for a util that compiles XML data straight to D structures, as to eliminate the need for parsing XML at runtime. At first I called it "XML Configurator" which was quickly shortened to "XCON"... down the page, I scribbled the following slogans:

- Freedom from markup lockup.
- Break out of the XML stockade.
- Is your application getting shived on performance?
- Is your software doing 15 to life?
- Because XML Parsers don't get time off for good behavior.
- Rehabilitate your data.

(I blame being stuck in a hotel room for a solid week, on business, with nothing to do but watch but the History Channel... I think it was "prison week" or something like that)

- EricAnderton at yahoo
October 11, 2005
Trevor Parscal wrote:

> An Operating System In D...
> 
> I have extreme ambition, tons of ideas, programming skills, and enough time to make a consistent effort. Perhaps I could get some help from some of you guys, and get a proof of concept together... Like pragma said... And yes, I have seen, and played with the beginings of a kernel in D that are posted on that wiki, and they should help us to get something together as well.
> 
> Idea...
> A kernel
> - execute several different kinds of compiled code (DDL seems to help
> here) - has garbage collection (D's GC should work)
> - perhaps an exokernel design (http://pdos.csail.mit.edu/exo.html)
> 
> Name...
> Honestly, as long as it's not an achronym, I am all for it... So, name
> ideas anyone?

I'd put the garbage collector in the kernel, and if you want some memory, you have to ask him the permission! So there is one big gc for everyone. No ideas about shared libs etc. though...

Carotinho
October 12, 2005
In article <dihi6h$43d$1@digitaldaemon.com>, pragma says...
>
>In article <dihcan$2bsn$1@digitaldaemon.com>, Sean Kelly says...
>>
>>In article <dihb76$2amh$1@digitaldaemon.com>, pragma says...
>>>
>>>I've already decided that DSP's testbed server is going to be
>>>called "Sumac", after I went looking for other trees that had a taxonomical
>>>relationship to Mangos.
>>
>>Sumac: get the itch!
>>Sumac, it really grows on you!
>>(insert catchy slogan here)
>
>Nice. I might just use one of those.  I might just use a 'fortune' style slogan field on the webpage, so I can use both. ;)
>
>A little while back I drafted a concept for a util that compiles XML data straight to D structures, as to eliminate the need for parsing XML at runtime. At first I called it "XML Configurator" which was quickly shortened to "XCON"... down the page, I scribbled the following slogans:
>
>- Freedom from markup lockup.
>- Break out of the XML stockade.
>- Is your application getting shived on performance?
>- Is your software doing 15 to life?
>- Because XML Parsers don't get time off for good behavior.
>- Rehabilitate your data.
>
>(I blame being stuck in a hotel room for a solid week, on business, with nothing to do but watch but the History Channel... I think it was "prison week" or something like that)
>
>- EricAnderton at yahoo

You know, I wrote an XML parser designed to do just that, and than it turned into a really basic XML parser that I use an out of the box object in all my apps.. As it turns out, my parser was really fast, so, it defeated the purpose... :)

If you ever want to see it, take a look at http://svn.dsource.org/projects/terra/trunk/terra/Source/Terra/Primitives/Structure.d

Thanks,
Trevor Parscal
October 12, 2005
~~~~~~~~~~~

Use D + D asm {}!
Everyone knows assembler is faster, but D is nicer to read.  Use D to manage the
namespaces, structures, etc, and use asm to write the speed-critical algorithms.
By DMA'ing in the whole OS within the bootloader/setup we could easily set up
the phobos.lib.  Using asmutils or libasm or something like that to implement
the "os" libraries makes sense (I think).

In terms of what the OS should do:

~~~~~~~~~~~~

How about removing support for obsolete hardware?

Most operating systems still run code to manipulate the 8259 PIC controller, but everyone since 1996 has had an APIC controller which completely supersets the 8259's capabilities.

Likewise with non-DMA, non-LBA disk drive access.  DMA/UDMA needs physical access to the first 16Mb.  Most kernels use vm86 mode to provide that.  Yuck. Try to look for a way around vm86 in graphics and you can completely not use it; and the OS will be MUCH faster.

~~~~~~~~~~

How about using multi-threading and separating Code/Heap/Stack?

If you use a D array with an element for each agent, and for each agent give a pointer to a code section/data section/stack section.  Organize it so that adding permissions is adding an item to the control structure.  This is Capabilities which is FAR more powerful than the current Permissions system.

To run code, the agent must have access to a code section.  The scheduler doesn't need security - this alone provides an execute checkpoint.

We can run as many threads as we like without loading the code section more than once.  The heap/stack must be fresh allocated for each thread.  Then we can optionally memcpy the heap/stack from another thread and JMP to that thread's current execution point (fork)

Agents can then EASILY use and exchange shared memory (grant the capability to access a range of memory).  It doesn't even have to be page granular.  That means we have three IPC protocols: one for exchanging capabilities, one for ports, and one for exchanging messages that are too small and too infrequent to warrant the use of shared memory.

Interestingly, Agents (programs) can also recieve more than one entry point
(just by having more than one code section) This allows us to provide IPC event
handlers, not just main(), so documentation, debugging etc, etc.

~~~~~~~~~~

Multithreading is MUCH easier with the above model, and in fact switching threads is a simple matter; understand below pseudocode:

INT 0xNN ->

PUSHA; PUSH ES,DS;
MOV SS,[NEXT]; MOV ESP,[NEXT]
POP DS,ES; POPA; IRET

That is the foundation of the thread-switch.  Everything else would be accounting/sleep/defer etc.

~~~~~

Drop a note, I'm clearly interested in the project.

http://murpsoft.com/
October 12, 2005
pragma wrote:
> Janus - god of doorways, beginnings and endings

That's slightly too Javaish because it starts with a J. For some reason the Java people have a strong compulsion to name all their software J-something. I don't know if it's a part of Sun's Java EULA or something ('ยง8.7 The party hereby referred to as You must name all digital intellectual property hereby referred to as Software You create with the digital intellectual property copyrighted by Sun Microsystems hereby referred to as Java Software J-Something').

> Athena - godess of war and so the female counterpart to Ares/Mars (only with a
> more scrupulous reputation)

Now that would be insanely cool! With a nice reference to Digital Mars too :)

-- 
Niko Korhonen
SW Developer
« First   ‹ Prev
1 2