news 2026/5/1 11:14:24

59、Linux内核物理布局与关键机制解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
59、Linux内核物理布局与关键机制解析

Linux内核物理布局与关键机制解析

1. 内核从闪存执行的流程

当内核直接从闪存执行时,makefiles、ld脚本和引导代码紧密协作。ld规则将代码和只读段(如初始化调用信息)放入闪存,而将数据段(数据和以符号开始的块,即BSS)放在系统RAM中,这导致两者地址不连续。makefile提供特殊规则,将这些段合并为连续地址,并转换为适合上传到目标系统的格式。这是必要的,因为数据段包含已初始化的数据结构,必须写入只读内存,否则会丢失。在start_kernel之前运行的汇编代码,需要将数据段从闪存复制到RAM(到链接器指定的地址),并将BSS段相关的地址范围清零。只有完成这些重映射后,C语言代码才能运行。

上传新内核到目标系统时,固件从网络或串行通道获取数据文件,并写入闪存。上传内核到目标计算机的中间格式因系统而异,取决于实际上传方式。例如,BIN格式用于网络传输,S3格式是通过串行电缆发送到目标系统的十六进制ASCII文件。系统开机时,用户通常可以选择启动Linux或输入固件命令。

2. init进程

start_kernel分叉出init线程(由init/main.c中的init函数实现),此时它和init线程都在内核模式下运行。完成所有初始化后,线程释放内核锁,准备执行用户空间的init进程。要执行的文件通常位于/sbin/init/etc/init/bin/init,若都未找到,则运行/bin/s

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 7:54:29

tensorflow 零基础吃透:RaggedTensor 的评估(访问值的 4 种核心方式)

零基础吃透:RaggedTensor的评估(访问值的4种核心方式) 评估 RaggedTensor 本质是访问/解析其存储的可变长度数据,TF 提供了4类原生方法,覆盖“快速查看结构”“底层数据拆解”“精准取值”等场景,以下结合示…

作者头像 李华
网站建设 2026/4/21 19:50:02

Screencast Keys插件完整指南:提升Blender教学与演示效率

Screencast Keys插件完整指南:提升Blender教学与演示效率 【免费下载链接】Screencast-Keys Blender Add-on: Screencast Keys 项目地址: https://gitcode.com/gh_mirrors/sc/Screencast-Keys 如果你经常制作Blender教程视频或进行软件演示,那么你…

作者头像 李华
网站建设 2026/4/26 23:19:18

17、使用 psad 进行主动响应

使用 psad 进行主动响应 1. 阻止 Witty 蠕虫的方法 要真正阻止 Witty 蠕虫,唯一的方法是使用一个内联设备,该设备能够对是否转发数据包的内容做出精细的决策。以内联模式运行的 Snort 和运行转换后的 Snort 规则的 iptables 都可以提供此功能。由于在单个数据包攻击转发到目…

作者头像 李华
网站建设 2026/5/1 7:33:09

30、网络安全数据可视化与端口扫描分析

网络安全数据可视化与端口扫描分析 1. fwknop与SPA技术介绍 在网络安全领域,fwknop是基于iptables的开源SPA(Single Packet Authorization)实现。SPA是一种强大的安全技术,它通过默认丢弃数据包的过滤器来保护服务器,只有能够向被动监控设备证明其身份的客户端才能获得访…

作者头像 李华
网站建设 2026/5/1 11:13:47

掌握KEA DHCP:从零到精通的实战指南

掌握KEA DHCP:从零到精通的实战指南 【免费下载链接】kea A modern, scalable, robust DHCPv4 and DHCPv6 server, with database (MySQL, PostgreSQL), hooks, multi-threading, RADIUS, NETCONF, Kerberos and more. 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华
网站建设 2026/4/21 7:01:03

扔掉本地环境后,我才发现过去的开发方式有多蠢。

扔掉本地环境后,我才发现过去的开发方式有多蠢我曾是“在我电脑上明明是好的”这句话最忠实的信徒。直到一个紧急的线上 bug,让我和同事在凌晨三点还在为环境问题争吵不休。那一刻我才意识到,我们浪费在基础设施上的精力,早已超过…

作者头像 李华