summaryrefslogtreecommitdiff
path: root/public/post/architecture-of-linux-kernel/index.html
diff options
context:
space:
mode:
authorgarhve <git@garhve.com>2023-01-02 06:02:01 +0800
committergarhve <git@garhve.com>2023-01-02 06:02:01 +0800
commitbe772f40c42711de54a3331db2781b1511acba9d (patch)
tree0808a7750d3c1055b0e86071c219d872775b1f92 /public/post/architecture-of-linux-kernel/index.html
parent3ae5ecf803ed2d4ece2c9da6d91aae0f075c5b0c (diff)
change to zola
Diffstat (limited to 'public/post/architecture-of-linux-kernel/index.html')
-rw-r--r--public/post/architecture-of-linux-kernel/index.html94
1 files changed, 94 insertions, 0 deletions
diff --git a/public/post/architecture-of-linux-kernel/index.html b/public/post/architecture-of-linux-kernel/index.html
new file mode 100644
index 0000000..fb665a9
--- /dev/null
+++ b/public/post/architecture-of-linux-kernel/index.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="utf-8">
+
+<title>Architecture of Linux Kernel | garhve&#x27;s gibberish</title>
+
+
+ <link rel="shortcut icon" type="image/png" href="&#x2F;images&#x2F;favicon.png">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+
+ <link id="stylesheet" rel="stylesheet" type="text/css" href="/dark.css">
+
+ <script type="text/javascript" src="/js/theme.js"></script>
+
+</head>
+
+<div class="header">
+ <div class="site_title">
+ <p><a href="/"><img src="https:&#x2F;&#x2F;blog.garhve.com&#x2F;images&#x2F;logo.ico" alt="garhve&#x27;s gibberish"
+ width="70" height=auto></a></p>
+ <p><a href="/">&nbsp;garhve&#x27;s gibberish</a></p>
+ </div>
+ <div class="menu">
+ <!-- <a href="/tags">tags</a>
+ &nbsp;--><a href="/categories">categories</a>
+ </div>
+</div>
+
+<body onload="getTheme()">
+ <section class="section">
+ <div class="container">
+
+<p>
+ <div class="title_postpage">Architecture of Linux Kernel</div>
+</p>
+<p>
+ <div class="date_postpage">2022-09-03</div>
+ <div class="taxonomies_postpage">
+
+
+ <a href="https://blog.garhve.com/categories/cs/">/cs</a>
+
+
+
+
+ &emsp;<a href="https://blog.garhve.com/tags/linux/">#linux</a>
+
+
+ </div>
+</p>
+
+<p>
+ <h2 id="description">Description</h2>
+<p>Modern microcontrollers nowadays support at least two privilege levels. Intel/AMD x86-64 family supports 4 levels, whilst ARM (32bit) microcontrollers support up to 7 levels (6 privileged, 1 non-privileged).</p>
+<p>Modern operating systems support at least 2 levels:</p>
+<ul>
+<li><strong>User space</strong>: For applications to run in unprivileged user mode</li>
+<li><strong>Kernel space</strong>: For the kernel (and all its components) to run in privileged mode – kernel mode</li>
+</ul>
+<p>Address of these 2 spaces are separate.</p>
+<p>Applications in user mode will auto-linked to glibc(the GNU standard C library). Libraries only available in user mode, kernel mode doesn't have this conception. An application only can through <strong>System call</strong> to access kernel. On the other hand, system calls are the only legal entry point into the kernel space.</p>
+<blockquote>
+<p>Libraries APIs: man section 3
+System calls APIs: man section 2</p>
+</blockquote>
+<p>to be continue...</p>
+
+</p>
+
+
+<script>
+ MathJax = {
+ tex: {
+ inlineMath: [['$', '$'], ['\\(', '\\)']]
+ }
+ };
+</script>
+<script type="text/javascript" async
+ src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js">
+</script>
+
+
+
+ </div>
+ </section>
+</body>
+
+<div class="footer">
+ &emsp;&copy; garhve
+</div>
+
+</html>