title: Designing an OS abstraction layer
body: <p>While Developing an OS Abstraction layer for a multi-modular system, which approach should one take:</p>
  
  <ol>
  <li>Create a Shared Library of OS services and each module is built to use it and runs as individual processes.
         OR</li>
  <li>Create only a single instance of abstraction layer which provides memory, timer services and which alone spawns all instances of modules.</li>
  </ol>
  
  <p>What are the pros and cons of these approaches? Also lay down any other if possible?</p>