LSE/OS is a nanokernel based operating system dedicated for the x86. LSE/OS is a good choice for PC/104 embedded systems.
Requirements:
· LSE/OS shall be viable.
· LSE/OS shall abandon the monolithic model: It is true that the monolithic kernel model is simple and has been well-tried, but at long-term there is a possibility we can't master all internal links that were made among all built-in services (locks, global variables, system priority levels) and that could lead to unpredictable results (deadlocks, errors, freeze of the system).
· LSE/OS shall offer the same services as in a Unix system.
· LSE/OS shall emulate a Unix system with a glue.
· LSE/OS shall be small but extensible (modular)
· LSE/OS shall unify disk and memory handling (McKusick): otherwise it induces a lot of code redundancy.
· LSE/OS shall have only one libc for kernel, drivers and processes: for the same reasons as above.
· LSE/OS shall not crash: It is true that todays kernels are quite stable but they sometime crash without any reason and this is inadmissible.
· LSE/OS shall rely under the hardware to the max (Mach philosophy)
· LSE/OS shall not stack contexts but use "context linking": that excludes stack overflows
· LSE/OS entire kernel shall work in fully "scalar" mode (without the need of an FPU).
· LSE/OS shall be fully written in C language (gcc). Assembly calls are wrapped into C functions.
· LSE/OS code for managing peripheral shall be out of the core kernel: making services independant leads to a better global stability (tends to eliminate deadlock conditions).
· LSE/OS Drivers shall be normal userland processes.
· LSE/OS Drivers shall be reusable (backward compatibility of binaries)
· There shan't be spl() like functions in LSE/OS: interrupt handlers are not interruptible (this is the default for x86 taskgates).
· LSE/OS shall support VM86 extension.
· LSE/OS shall support SMP (Symetric Multi-Processing).
What's New in This Release:
· Full VM86/VBE (graphics) support was added.
Product's homepage