Linux内核基础入门:菜鸟学习与初始化过程详解
版权申诉
67 浏览量
更新于2024-06-26
收藏 1.96MB PDF 举报
本资源是一份名为《和菜鸟一起学linux内核源码之基础准备篇》的PDF文档,它旨在帮助初学者逐步理解Linux内核源码的基础知识。文档强调了在学习过程中遇到的挑战,如对操作系统基础知识的困惑,特别是块设备和应用层的区别。作者提到,尽管初学者可能会遇到看不懂的部分,但通过反复阅读和实践,可以逐渐掌握。
在Linux内核的初始化阶段,主要涉及以下几个关键步骤:
1. **根文件设备号和内存管理**:setup.s程序设置系统的基本参数,如根文件系统设备号和一些全局内存变量,这些变量指示内存布局,包括主内存起始地址、内存大小以及高速缓存区的末尾地址。如果存在虚拟盘(RAMDISK),内存分配会相应调整。
2. **硬件初始化**:包括设置陷阱门(trap handling)、块设备和字符设备,以及初始化TTY (终端控制器)。此外,还会创建第一个任务(task0),通常是守护进程,负责后续的初始化过程。
3. **特权级切换**:内核初始化完成后,控制权转交给用户模块,从0特权级(内核模式)切换到第3特权级(用户模式),这是为了限制普通用户的权限。接下来,系统会调用fork()函数创建进程,用于运行init()函数。
4. **控制台和shell程序**:在这个过程中,会启动控制台程序,如果成功,会创建一个子进程运行/bin/sh shell。父进程进入一个无限循环,不断创建并执行shell,直到shell进程退出。
5. **操作系统体系结构**:文档提到了Linux与其他操作系统(如Windows、iOS、Android等)的比较,指出Linux是一个典型的多任务操作系统,所有的任务都在用户模式下运行,包括系统应用程序,如shell和网络子系统。
这份资源提供了学习Linux内核源码的入门指南,强调了从零开始理解操作系统底层工作原理的重要性,鼓励读者通过实践和反复学习来深入掌握这一复杂但关键的领域。
2021-10-11 上传
2021-11-04 上传
2021-11-05 上传
2021-09-06 上传
2022-06-04 上传
2021-09-07 上传
hhappy0123456789
- 粉丝: 71
- 资源: 5万+
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载