I am looking for projects for operating system course. The desire language is C#. There are open source operating system in C# like Singularity, TinyOS etc. But I am bit confused t开发者_开发技巧o select which one and what should I target.
I have done lot of google on this but yet no tentative success.
Depending on what you are trying to teach you might not need to work with a 'real' OS.
For example, let's say you are trying to teach file-system design. You could define an interface between the 'OS' and the file-system. Real operating systems work this way, which is why Linux supports hundreds of file-systems. Then you could have the students write a file-system driver. This would let them experience writing file-system support without having to fiddle with a real OS. It would even make testing simple. You could test it with unit tests that you define, but don't provide, and see if it passes the test.
There are open source operating system in C# like Singularity, TinyOS etc
Oh really?
TinyOS is written in nesC
Singularity is an operating system for hosting C# applications. The low-level functions (OS services) of Singularity itself are written in assembler, C, and C++.
When I took a operating system / concurrent programming course at university we used Nachos for laboration. It is built with the intention for teaching, yet it was at the time the largets code base most of us had met. Dealing with a real operating system kernel would be overwhelming for most normal courses.
According to the Wikipedia page there are successors that are more modern / up to date than Nachos. Those are probably interesting to look into.
精彩评论