Hi, I just stumbled upon SharpOS about two days ago and have been reading things on the website, wiki and browsed through the source code. It looks like an incredible effort and I think I can help a bit or two. About myself: I'm almost 30, have been developing (system) software for almost 18 years now and have a lot of experience in embedded software systems, e.g. good designs, performance and power are fields where I should be able to help.
Reading through the docs I have a couple of questions/issues I'd like to discuss. Some of these questions do not apply to the current state, but will apply in the future. Some of them apply to the current codebase. Questions I haven't found answers for: 1. Are there any plans to support real plug&play (as far as it is possible)? 2. Do you have any plans to support reflection in the kernel level? 3. Is the kernel (and its drivers) going to be reentrant and thread safe? 4. Are you going to support checked channels (similarly to Singularity) to enforce proper usage of interfaces? 5. What kind of security model do you want to support (ACL or *nix-style?) Questions regarding design choices or ideas: 6. You are developing a new IL based shell for SharpOS, but why are you reimplementing bash (Nash) and the unix toolset? Shouldn't SharpOS use an object oriented shell similar to PowerShell? I think it would be more appropriate and enable a lot more options in combination with a modern file system (next points.) 7. On the wiki you are specifying that you do not want to provide a *nix-like /dev filesystem? Why is that? I think that the /dev and /proc filesystems are an accomplishment, which we should not drop. My take on it is this: A plug&play manager enlists all found device (objects) in the /dev filesystem and a (PowerShell-)Script could use these entries to access the drivers directly (through a proxy/stub) - using a predefined object oriented interface provided by the driver. This would allow advanced scenarios, which are possible on *nix, but not possible on Windows - except we'd support this using OO. No more block and character devices. The filesystem should serve two things: A global namespace for objects (a simple byte stream file just being a System.IO.Stream...) and a way for things to interact and synchronize. 8. The filesystem again: I think we should expand this a lot more. Adding to what I said in the previous point I'd love for applications to be accessible from the filesystem, think of accessibility, automation and scripting. Other operating systems require apps to register themselves or class factories to enable other apps to access them, we could automate a lot of this and enable a lot more interaction between apps. 9. Has a driver model been decided upon? I would like to help there first as I believe this needs a lot of care. I would like to propose a self-descriptive driver design, where drivers describe themselves (e.g. PnP-Ids supported) and their requirements (IRQ, DMA, memory.) using .NET attributes. I would love to have drivers live inside of an inversion of control container (HardwareResourceManager?), which wires them up and provides them with all resources required. I would love to have a layered design of drivers, similar to Microsoft WDM or even better: the newer KMDF/UMDF - which would give us a couple of advantages. 10. Power Management: I know this isn't the top priority, but from experience I can tell you an OS needs to get this right from day one. It takes a lot of effort to rewrite an OS, the apps and drivers to support proper power management. SharpOS has a huge advantage: It doesn't have "legacy" code to support. Its starting almost from scratch and should do its best to support this. Are there any plans in this area? 12. Multithreading: What is the goal here for SharpOS? Provide unix-like a process is a single thread or a Windows like a process consists of at least one thread model? How far has work progressed there? That's it for now. I'm sure more will follow as I get my head more around the current code/possibilities. I hope I'm not asking the wrong questions or stuff that's been discussed already. Mike ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ SharpOS-Developers mailing list SharpOS-Developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sharpos-developers