title: Why are operating system kernels typically written in C or C++?
body: <p>There have been experimental operating systems written in a variety of languages, including C# (<a href="https://en.wikipedia.org/wiki/Singularity_(operating_system)" rel="nofollow noreferrer">Singularity</a>, <a href="https://en.wikipedia.org/wiki/SharpOS" rel="nofollow noreferrer">SharpOS</a>), Java (<a href="https://en.wikipedia.org/wiki/JavaOS" rel="nofollow noreferrer">JavaOS</a>, <a href="https://en.wikipedia.org/wiki/JX_(operating_system)" rel="nofollow noreferrer">JX</a>), and Lisp (various <a href="https://en.wikipedia.org/wiki/Lisp_machine" rel="nofollow noreferrer">Lisp machines</a>).</p>
  
  <p>Why then are C (and to a lesser degree C++) the dominant languages used for developing an operating system kernel? Is there something about C that makes it especially well-suited for use in kernel programming, or is it more for historical reasons?</p>