[SharpOS Developers] Introduction and questions

2 views
Skip to first unread message

Dennis Gronewold

unread,
Sep 17, 2008, 3:38:30 PM9/17/08
to sharpos-d...@lists.sourceforge.net
Hello everyone,

my name is Dennis Gronewold, I'm studying computer science at the university of
Duesseldorf, Germany and I'm currently writing my bachelor's thesis about
managed operating systems in general and SharpOS in particular.

My goal is to implement a basic scheduler for SharpOS using the multilevel
feedback queue algorithm. I have it mostly working, and am now looking into
testing thread blocking on I/O requests. I have not yet developed a deeper
understanding of the driver architecture and thought maybe some of you guys can
help me out.
For now, I just need a simple way to start an I/O request from a thread, have
the dispatcher notified to block this thread and wake it up again when the
request completes. I'm not sure if it's possible with the current state of
things. I have been fiddling around with the floppy disk driver, but could not
get it working.
I have been looking into the Windows Driver Model and it has an I/O-Manager to
start the I/O, notify the dispatcher etc.. Are there plans on implementing
something like that in SharpOS?

So much for now,

Dennis

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
SharpOS-Developers mailing list
SharpOS-D...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sharpos-developers

grover

unread,
Sep 17, 2008, 4:29:28 PM9/17/08
to sharpos-d...@lists.sourceforge.net
Hi Dennis,

Good work. I may not speak for everybody on this list, but here
are my thoughts:

- From a software engineering standpoint, SharpOS currently has no
architecture at all. Mostly things are hacked together to work somehow. I'm
not certain if anyone is able to help you.
- Some of the devs, who are very concerned about this are just now starting
these things in the scope of the MOSA project. (shameless plug:
www.mosa-project.org)
- It is the goal (at least my understanding) to reuse/adopt MOSA components
in order to have a properly architected kernel model.

Anyhow to answer your questions: An I/O manager is a central component of
any operating system. Some may not explicitly state that though. The I/O
manager is responsible for many things, like file system caching and I/O
scheduling. So I'd say yes, there are plans to have an I/O manager at some
point (independent of its source.)

I'm right now finishing off my diploma thesis (HTW Dresden, Computer Science
;)) and hope to spend the freed time to start small working groups for key
kernel components soon (again in the MOSA scope.)

Hope this helps,
Michael

> -----Ursprüngliche Nachricht-----
> Von: sharpos-devel...@lists.sourceforge.net
> [mailto:sharpos-devel...@lists.sourceforge.net] Im
> Auftrag von Dennis Gronewold
> Gesendet: Mittwoch, 17. September 2008 21:39
> An: sharpos-d...@lists.sourceforge.net
> Betreff: [SharpOS Developers] Introduction and questions

Phil Garcia

unread,
Sep 17, 2008, 9:17:38 PM9/17/08
to sharpos-d...@lists.sourceforge.net, dgron...@arcor.de
Hi Dennis:
 
I have been working on the device driver model for SharpOS and as part of the MOSA project. Right now, SharpOS can not properly handle interrupts since the shell executes within an interrupt - which means all other interrupts are ignored - like the floppy device driver. The basic IDE driver works, however, since it's not interrupt driven due to the issues with interrupts - it uses polling instead. We are really attempting to solve these issues within MOSA framework (and later incorporate back into SharpOS, if everyone agrees).
 
Neither project has yet to tackle the process/task scheduler - or the concept of a process or thread yet.
 
However, I would like to work with you, if you are interested, on implementing a scheduler with thread blocking for IO requests (or even asynchronous IO operations). Even though we do not have a bootable OS (with the MOSA framework) we do have an emulated environment available which runs under the a hosted CLR environment. I have been using it to test and debug the disk partitions and file systems support, for example. We could probably do something similar with a scheduler and IO manager until we get a bootable OS. It turns out with the right abstractions and interfaces, for example to memory and IO ports, we can completely avoid unsafe code and pointers to real memory, and substitute proxies instead, like to a byte array to simulate real memory. With some skill and luck from the compiler developers, when the MOSA framework is bootable, the rest of the framework will work also.
 
The best place to communicate is via IRC channels #sharpos or #mosa on the freenode network. I'm in southern California (unlike all the other German developers), so I'm available mostly in the evenings/nights pacific time. Also, subscribe to the MOSA mailing list, visit www.mosa-project.org for the links.
 
I look forward to talking/working with you,
 
Phil

Dennis Gronewold

unread,
Oct 1, 2008, 11:05:03 AM10/1/08
to sharpos-d...@lists.sourceforge.net
Michael, Phil,

sorry for the late reply.

I've ditched the idea to test blocking with the floppy driver etc.
Instead I've been working on getting several consoles running in their
own threads and block them on waiting for keyboard input. This seems to
work well enough for now.
As for implementing a scheduler within the MOSA framework: I would be
interested in that, but that'll probably have to wait until I finish my
thesis in November.
In meantime I'll probably ask some more questions about how some stuff
works ;-)

Dennis

Reply all
Reply to author
Forward
0 new messages