<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Kernel on memory</title>
    <link>https://mem.leabol.top/tags/kernel/</link>
    <description>Recent content in Kernel on memory</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 27 Jun 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://mem.leabol.top/tags/kernel/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>心中的内核</title>
      <link>https://mem.leabol.top/posts/%E5%86%85%E6%A0%B8/%E5%BF%83%E4%B8%AD%E7%9A%84%E5%86%85%E6%A0%B8/</link>
      <pubDate>Sat, 27 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/%E5%86%85%E6%A0%B8/%E5%BF%83%E4%B8%AD%E7%9A%84%E5%86%85%E6%A0%B8/</guid>
      <description>&lt;h1 id=&#34;心中的内核--在阅读内核代码之前先理解内核&#34;&gt;心中的内核 —— 在阅读内核代码之前先理解内核&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文：&lt;a href=&#34;https://www.linkedin.com/in/moon-hee-lee/&#34;&gt;The Kernel in the Mind&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E5%BF%83%E4%B8%AD%E7%9A%84%E5%86%85%E6%A0%B8/figure0-1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;[TOC]&lt;/p&gt;
&lt;h3 id=&#34;介绍&#34;&gt;介绍&lt;/h3&gt;
&lt;p&gt;这并非一部教你编写内核代码的指南，而是一场探寻Linux内核设计思维的思想之旅。&lt;/p&gt;
&lt;p&gt;在系统编程的世界里，人们常常迷失于符号定义、头文件结构与实现细节的丛林中。然而剥离代码表象，内核实则是一个井然有序的响应式系统——它受上下文环境所规约，以分离原则为基石，从内存管理到任务调度的每一处设计，都浸透着精准的设计意图。&lt;/p&gt;</description>
    </item>
    <item>
      <title>xv6 分析与总结</title>
      <link>https://mem.leabol.top/posts/xv6/xv6%E5%88%86%E6%9E%90%E4%B8%8E%E6%80%BB%E7%BB%93/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/xv6/xv6%E5%88%86%E6%9E%90%E4%B8%8E%E6%80%BB%E7%BB%93/</guid>
      <description>&lt;h2 id=&#34;系统概述与启动流程&#34;&gt;系统概述与启动流程&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;(关注宏观状态流转：从 Machine Mode 到 Supervisor Mode，再到第一个用户进程的诞生)&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;核心概念&#34;&gt;核心概念&lt;/h3&gt;
&lt;p&gt;启动流程的本质是&lt;strong&gt;特权级的逐级让渡&lt;/strong&gt;：从硬件最高特权（Machine Mode）出发，经过层层初始化和降权，最终将控制权交给最不信任的用户程序。整个过程是一条从&amp;quot;全权控制&amp;quot;到&amp;quot;受限执行&amp;quot;的信任链——每一步都在缩小 CPU 的权限范围，同时建立更多的软件抽象层。&lt;/p&gt;</description>
    </item>
    <item>
      <title>OS简介</title>
      <link>https://mem.leabol.top/posts/%E5%86%85%E6%A0%B8/%E7%AE%80%E4%BB%8B/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/%E5%86%85%E6%A0%B8/%E7%AE%80%E4%BB%8B/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;这是一个关于linux的一种自我的想象, 是我自己为了更好的理解linux而写的一种笔记, 我通过不同的视角,来描述这个程序的世界, 主要的目的不是为了完全掌握或者完整的类比操作系统的所有结构. 我的目的只是在于对os的各个部分有一个更加直观的理解, 这种理解是一种直观的, 表面的理解, 因此他并不能提高自己的linux编程水平, 就像来到一个新的城市, 我可以直观的了解城市的大致样貌, 但是关于城市是如何事无巨细的运行的, 这必须要真实的去体验才能真正了解.&lt;/p&gt;</description>
    </item>
    <item>
      <title>RISC-V trap / syscall / trampoline 机制完整解析</title>
      <link>https://mem.leabol.top/posts/xv6/risc-v-trap-%E6%9C%BA%E5%88%B6%E5%AE%8C%E6%95%B4%E8%A7%A3%E6%9E%90/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/xv6/risc-v-trap-%E6%9C%BA%E5%88%B6%E5%AE%8C%E6%95%B4%E8%A7%A3%E6%9E%90/</guid>
      <description>&lt;h1 id=&#34;risc-v-trap--syscall--trampoline-机制完整解析&#34;&gt;RISC-V Trap / Syscall / Trampoline 机制完整解析&lt;/h1&gt;
&lt;hr&gt;
&lt;h1 id=&#34;一整体流程概览&#34;&gt;一、整体流程概览&lt;/h1&gt;
&lt;h2 id=&#34;11-总览&#34;&gt;1.1 总览&lt;/h2&gt;
&lt;p&gt;用户态通过 &lt;code&gt;ecall&lt;/code&gt; 触发异常 → 硬件最小保存 → 跳转到 &lt;code&gt;stvec&lt;/code&gt; → trampoline 完成上下文保存 + 切页表 → 进入内核 → 执行 syscall → 再通过 trampoline 返回用户态。&lt;/p&gt;</description>
    </item>
    <item>
      <title>travel_xv6</title>
      <link>https://mem.leabol.top/posts/xv6/travel_xv6/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/xv6/travel_xv6/</guid>
      <description>&lt;h2 id=&#34;系统调用syscallecall&#34;&gt;系统调用syscall(ecall)&lt;/h2&gt;
&lt;h3 id=&#34;1用户态的准备工作&#34;&gt;1.用户态的准备工作&lt;/h3&gt;
&lt;p&gt;cpu核心在用户线程(进程)上工作, pc(程序计数器寄存器)指向下一个执行的用户态指令(.text), sp(栈指针寄存器)指向当前用户态线程的栈顶,用于分割栈帧和栈帧中变量的定位.&lt;/p&gt;</description>
    </item>
    <item>
      <title>内核存储栈</title>
      <link>https://mem.leabol.top/posts/%E5%86%85%E6%A0%B8/%E5%86%85%E6%A0%B8-%E5%AD%98%E5%82%A8/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/%E5%86%85%E6%A0%B8/%E5%86%85%E6%A0%B8-%E5%AD%98%E5%82%A8/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;Linux-storage-stack-diagram_v6.18&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E5%86%85%E6%A0%B8-%E5%AD%98%E5%82%A8/Linux-storage-stack-diagram_v6.18.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>内核结构图</title>
      <link>https://mem.leabol.top/posts/%E5%86%85%E6%A0%B8/%E5%86%85%E6%A0%B8%E5%9B%BE/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/%E5%86%85%E6%A0%B8/%E5%86%85%E6%A0%B8%E5%9B%BE/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;bccBPF Tracing&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E5%86%85%E6%A0%B8%E5%9B%BE/bccBPF-Tracing.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;benchmark &#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E5%86%85%E6%A0%B8%E5%9B%BE/benchmark.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;BPF &#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E5%86%85%E6%A0%B8%E5%9B%BE/BPF.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;bpftraceeBPF&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E5%86%85%E6%A0%B8%E5%9B%BE/bpftraceeBPF.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;observability perf-tools&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E5%86%85%E6%A0%B8%E5%9B%BE/observability-perf-tools.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;observability sar&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E5%86%85%E6%A0%B8%E5%9B%BE/observability-sar.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;observability tools&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E5%86%85%E6%A0%B8%E5%9B%BE/observability-tools.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;performance&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E5%86%85%E6%A0%B8%E5%9B%BE/performance.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;tuning &#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E5%86%85%E6%A0%B8%E5%9B%BE/tuning.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;v2-1ae6a81556274bdf23396628a7784d31_r&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E5%86%85%E6%A0%B8%E5%9B%BE/v2-1ae6a81556274bdf23396628a7784d31_r.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>调试记录：xv6 用户程序内存布局冲突异常</title>
      <link>https://mem.leabol.top/posts/xv6/%E8%B0%83%E8%AF%95%E8%AE%B0%E5%BD%95xv6-%E7%94%A8%E6%88%B7%E7%A8%8B%E5%BA%8F%E5%86%85%E5%AD%98%E5%B8%83%E5%B1%80%E5%86%B2%E7%AA%81%E5%BC%82%E5%B8%B8/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/xv6/%E8%B0%83%E8%AF%95%E8%AE%B0%E5%BD%95xv6-%E7%94%A8%E6%88%B7%E7%A8%8B%E5%BA%8F%E5%86%85%E5%AD%98%E5%B8%83%E5%B1%80%E5%86%B2%E7%AA%81%E5%BC%82%E5%B8%B8/</guid>
      <description>&lt;h2 id=&#34;-调试记录xv6-用户程序内存布局冲突异常&#34;&gt;🛠️ 调试记录：xv6 用户程序内存布局冲突异常&lt;/h2&gt;
&lt;h3 id=&#34;1-问题描述-description&#34;&gt;1. 问题描述 (Description)&lt;/h3&gt;
&lt;p&gt;在 xv6 实验环境中，向内核添加自定义系统调用（Syscall）并编写用户态测试程序（Test Case）时，程序在系统调用逻辑执行完毕后，无法正常返回用户态继续执行。表现为进程卡死或触发硬件级页错误（Page Fault），而代码逻辑本身（内核实现）经检查无误。&lt;/p&gt;</description>
    </item>
    <item>
      <title>网络协议栈</title>
      <link>https://mem.leabol.top/posts/%E5%86%85%E6%A0%B8/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE%E6%A0%88/</link>
      <pubDate>Mon, 26 May 2025 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/%E5%86%85%E6%A0%B8/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE%E6%A0%88/</guid>
      <description>&lt;p&gt;现代操作系统的内核（如 Linux 内核）中有一个专门的模块叫做：&lt;/p&gt;
&lt;h1 id=&#34;网络协议栈network-stack&#34;&gt;网络协议栈（Network Stack)&lt;/h1&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE%E6%A0%88/image-20251012194550481.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;主要职责详解&#34;&gt;主要职责详解&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;职责&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;类比说明&lt;/th&gt;
          &lt;th&gt;技术术语&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;1. 接收和发送数据包&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;公司前台接收快递 &amp;amp; 发送包裹&lt;/td&gt;
          &lt;td&gt;数据链路层、IP 层、传输层&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;2. IP 地址管理&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;给每个员工分配邮箱地址&lt;/td&gt;
          &lt;td&gt;IPv4 / IPv6 地址配置&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;3. 路由选择&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;快递要走哪条路线最短最快&lt;/td&gt;
          &lt;td&gt;路由表（Routing Table）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;4. 封装与解封装&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;包裹加标签 / 拆标签&lt;/td&gt;
          &lt;td&gt;数据封装（Encapsulation）与解封装（Decapsulation）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;5. 传输控制（TCP）&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;控制文件是否完整送达&lt;/td&gt;
          &lt;td&gt;TCP 流量控制、拥塞控制&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;6. 端口号管理&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;不同部门接收不同类型的快递&lt;/td&gt;
          &lt;td&gt;端口绑定、监听、转发&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;7. 安全防护（防火墙）&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;保安检查包裹内容&lt;/td&gt;
          &lt;td&gt;Netfilter / iptables / nftables&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;8. NAT 转换&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;公司统一出口代理&lt;/td&gt;
          &lt;td&gt;Network Address Translation&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;9. 域名解析支持&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;内部电话簿查询联系方式&lt;/td&gt;
          &lt;td&gt;DNS 解析缓存、本地 hosts&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;10. 支持多种协议&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;公司支持各种沟通方式（电话、邮件、视频会议）&lt;/td&gt;
          &lt;td&gt;支持 TCP、UDP、ICMP、HTTP、HTTPS、FTP 等&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;类比图操作系统网络部门的组织架构&#34;&gt;类比图：操作系统网络部门的组织架构&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;小组&lt;/th&gt;
          &lt;th&gt;类比角色&lt;/th&gt;
          &lt;th&gt;职责&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;套接字接口组（Socket Layer）&lt;/td&gt;
          &lt;td&gt;客户接待员&lt;/td&gt;
          &lt;td&gt;接收进程请求（如浏览器访问网页）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;传输组（TCP / UDP）&lt;/td&gt;
          &lt;td&gt;快递打包组&lt;/td&gt;
          &lt;td&gt;控制可靠传输或快速发送&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;网络组（IP 层）&lt;/td&gt;
          &lt;td&gt;邮政分拣中心&lt;/td&gt;
          &lt;td&gt;决定发往哪个城市（IP 地址）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;链路组（MAC 层）&lt;/td&gt;
          &lt;td&gt;快递站&lt;/td&gt;
          &lt;td&gt;决定发给哪个局域网内的目标主机&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;路由组（Routing）&lt;/td&gt;
          &lt;td&gt;导航调度中心&lt;/td&gt;
          &lt;td&gt;选择最优路径（下一跳）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;设备驱动组（NIC Driver）&lt;/td&gt;
          &lt;td&gt;快递员&lt;/td&gt;
          &lt;td&gt;实际把包裹送出去（通过网卡）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;安全组（Netfilter / Firewall）&lt;/td&gt;
          &lt;td&gt;保安检查岗&lt;/td&gt;
          &lt;td&gt;检查是否允许通行&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;NAT 组&lt;/td&gt;
          &lt;td&gt;公司代理出口&lt;/td&gt;
          &lt;td&gt;统一管理内部员工对外通信&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DNS 缓存组&lt;/td&gt;
          &lt;td&gt;内部电话簿管理员&lt;/td&gt;
          &lt;td&gt;记录域名与 IP 的对应关系&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Linux 的网络部分是一个庞大的子系统，主要包括以下几个关键模块：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
