嵌入式系统linux原理,嵌入式操作系统原理和Linux系统.ppt

本文详细介绍了嵌入式Linux操作系统的内核启动过程,从Bootloader到内核加载,再到内核初始化。讨论了内核配置、编译以及如何裁剪以适应有限的硬件资源。同时,讲解了内核调试工具如Oops消息、/proc文件系统以及kgdb等,为开发者提供深入理解与调试内核的实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

嵌入式操作系统原理和Linux系统

进程空间和内核空间 进程名义上有4G的空间,实际上只有3G属于进程本身,虚拟系统空间占据高位1G Linux内核启动分析 搭建开发环境 宿主机和目标机 交叉编译 编译引导程序(u-boot或者vivi) 编译内核(mizi linux) 编译根文件系统 使用JTAG将编译好的映像写入目标板 可以写入到Nor Flash当中 可以写入到Nand Flash当中 Linux内核启动分析 上电 CPU根据设置读取Flash中的Bootloader Bootloader作两段式加载 Bootload将控制权移交给内核 Bootloader事先检测硬件参数,例如物理地址 Bootloader加载压缩的内核映像 内核自解压 内核将自身定位到正确的物理地址 内核启动流程 执行init初始化进程 启动一个shell 执行启动脚本文件 显示登录提示符等待登录 嵌入式LINUX操作系统内核 选择内核 内核配置 编译内核 安装内核 Linux内核源码 内核目录结构: /usr/src/Linux-*** /arch(重点) /drivers /fs /include /init /ipc /kernel /mm /net 内核配置 进入到内核源代码目录 cd /usr/src/linux-2.*** make config make xconfig make menuconfig make 编译生成的文件 vmlinux 未压缩的Linux内核 varch//boot/zImage 经zlib压缩后的Linux内核 varch//boot/bzImage 经zlib压缩后的Linux内核,b是指big,压缩狠 /boot/vmlinuz- 经zlib压缩后的Linux内核 编译生成的文件 v/boot/System.map- 内核符号地址 /boot/initrd-.img ramdisk,要挂载的根文件系统 /lib/modules/ 模块 vmodules.dep 模块依赖文件 裁剪Linux 目的是创建嵌入式Linux 嵌入式硬件资源有限,所以要裁剪软件 裁剪的对象包括: Linux内核 库 守护进程 GUI 裁剪Linux 选择合适的文件系统 ext2,ext3,jffs2 模块机制 网络协议 无用的驱动程序 调试信息 裁剪的技术要求 能省就省,能小就小,能快就快 安装内核 移植相关的文件 相关文件和目录 arch/arm/config.in arch/arm/Makefile arch/arm/boot/Makefile arch/arm/mach-s3c2410/* include/asm-arm/arch-s3c2410/* arch/arm/tools/mach-types arch/arm/boot/compressed/head-s3c2410.S arch/arm/boot/compressed/Makefile 嵌入式Linux内核调试 Printk() Oops消息 /proc文件系统 Kgdb 追踪工具(strace,ltt,gprof,gcov,memwatch) Oops:linux内核在发生kernel panic时会打印出Oops信息,把目前的寄存器状态、堆栈内容、以及完整的Call trace都show给我们看,这样就可以帮助我们定位错误。 Linux调试工具 Linux系统察看和调参 /proc文件系统 用户空间工具: 内存工具:MEMWATCH 和 YAMD strace GNU 调试器(gdb) 内核工具: 内核源代码级调试器(kgdb) 内建内核调试器(kdb) Oops /proc文件系统 /proc内存文件系统,记录系统相关信息 可以直接使用cat得到相关信息 /proc 虚拟文件系统是一个较快的、高效率执行系统监控的方法。使用/proc的主要缺点是必须保持代码分析与/proc 文件格式改变的同步。事实表明,Linux内核的改变比/proc 文件格式的改变要更频繁,所以,用/proc虚拟文件系统比用内核模块存在的问题要少。 通过/proc获取进程信息 找到相关进程号 找到相关/proc子目录 获取特定参数 通过/proc获取硬件信息 找到相关硬件标识 在/proc中找到相关硬件目录 查找特定硬件信息 通过/proc获取内核信息 内核信息一般存放于/proc/sys 可以读取相关内核信息 也可以修改内核参数来对内核调优 修改内核一定要慎重! /proc获取文件系统信息 获取文件系统信息 获取分区信息 获取文件锁定信息 /proc获取系统状态信息 获取系统时间 * * 中断的必要性 *

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值