SeptemberOS Tasking Model

SeptemberOS provides single address space, multi-threading model. All memory is shared and accessible by all tasks. This approach makes task switching faster and task management using less memory on the cost of no protection between the tasks. We believe that such protection is not necessary for a typical embedded application.

SeptemberOS follows the "trust the programmer"[1] attitude toward its customer embedded developers. In a typical embedded application all the code ultimately comes from a single source: embedded developer. If the developer uses an OS and / or other third-party libraries, he is doing so consciously; there is no third-party code that may voluntary run on the platform. And it is that third-party code that is less trusted and that prompts to introduce OS security when it can run unattended.

SeptemberOS doesn't have even immediate means to load external code dynamically during run-time, so the source of the problem which prompts for OS security doesn't exist.

Other manifestations of the "trust the programmer" approach in SeptemberOS:

  • All the code, including application, runs CPU in kernel mode. All hardware access, system resources, interrupt handling are available to application code.
  • Lower priority tasks may terminate, change priority or change options of higher oriority tasks.

[1] Rationale for International Standard — Programming Languages — C. Revision 5.10. April-2003.

Copyright (c) Daniel Drubin, 2010