William Lahti wrote:
> AOT
> - Core
> - Core.Tests
> - Kernel.Tests
> - Main
> Data
> - KeyMaps
> Kernel
> - Core
> - korlib
> References
> - Mono.GetOptions.dll
> - Mono.Cecil.dll
> Tools
> - KernelTestsWrapperGen
> - KeyCompiler
>
> We also plan to store the SharpOS userspace at trunk/Userspace. What
> do you think about this layout? Was the old one better?
>   

It's definitely better. Actually, it could go even farther, just so that 
"things are in place for the long-term". As most everyone knows that I'm 
working on the out-in-left-field parts of the kernel (runtime VM, etc), 
my code was already strewn about in odd places here locally. This is 
what I had built here:

SharpOS.Compiler
- AOT
- JIT
- ADC
  - X86
  - PPC
- Optimizers
- IL
SharpOS.Kernel
- ADC
  - X86
    - Boot: Arch-dependent boot
      - Boot.cs (our current Kernel.cs entrypoint)
    - Asm: Arch-dependent assembly opcode stubs
- Schedulers
- Memory: Top-level here handles raw memory
  - Pagers
  - GCs
- SysRun: More or less what is currently known as korlib. This is the 
lowest-level runtime needed for the kernel itself
- IPC
SharpOS.Hardware: Hardware drivers
SharpOS.Graphics: Non-hardware graphics layers
- 2D
- OpenGL
SharpOS.Audio
SharpOS.Net: Non-physical network stacks (e.g. everything above OSI 
Layer 1 / Physical)
- IPV4
- IPV6
- TCP
- AppleTalk
SharpOS.DSSFS: Data-Storage System / File Systems. Top-level here holds 
our VFS layer, common filesystem code, etc
- Ext2
- FAT32
- NTFS
- CDFS
- ZFSCore: The core of Sun ZFS
- DSS: Our native ZFS-based object data storage filesystem
SharpOS.GUI
- Remoting
- Widgets
SharpOS.TextMode
System.*: CLR Base Class Library wrappers into our API

That's the namespace layouts. As you may see, there really isn't much 
"userspace vs kernel space" distinction. It's unnecessary, considering 
we're a microkernel all running in the same memory protection space. The 
"kernel space" is the kernel itself, which doesn't even handles drivers 
and such.

For the directory structure, I personally am a fan of individual build 
directories (e.g. SharpOS.TextMode\build, SharpOS.TextMode\src, etc 
instead of build\SharpOS.TextMode). And I would rather we move the 
References directory back into whatever module needed them, or maybe 
even start splitting out the References directory into which module 
needs them (e.g. References\SharpOS.Compiler). Tests should also be in 
their own subdirectory under the module root (e.g. SharpOS.Kernel\Tests).

That's as much as I've come up with for now.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
SharpOS-Developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sharpos-developers

Reply via email to