Linux内核基础入门:菜鸟学习与初始化过程详解
版权申诉
152 浏览量
更新于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
- 粉丝: 74
- 资源: 5万+
最新资源
- Raspberry Pi OpenCL驱动程序安装与QEMU仿真指南
- Apache RocketMQ Go客户端:全面支持与消息处理功能
- WStage平台:无线传感器网络阶段数据交互技术
- 基于Java SpringBoot和微信小程序的ssm智能仓储系统开发
- CorrectMe项目:自动更正与建议API的开发与应用
- IdeaBiz请求处理程序JAVA:自动化API调用与令牌管理
- 墨西哥面包店研讨会:介绍关键业绩指标(KPI)与评估标准
- 2014年Android音乐播放器源码学习分享
- CleverRecyclerView扩展库:滑动效果与特性增强
- 利用Python和SURF特征识别斑点猫图像
- Wurpr开源PHP MySQL包装器:安全易用且高效
- Scratch少儿编程:Kanon妹系闹钟音效素材包
- 食品分享社交应用的开发教程与功能介绍
- Cookies by lfj.io: 浏览数据智能管理与同步工具
- 掌握SSH框架与SpringMVC Hibernate集成教程
- C语言实现FFT算法及互相关性能优化指南