系统 5 ARMLinux内核.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
系统 5 ARMLinux内核

实验一创建和使用一个新的系统调用(2) 然后执行 启动开发板,将应用程序test通过zmodem协议下载到开发板的文件系统目录下,在板子上运行test程序所得结果如下: # arm-linux-gcc test.c -o test # ./test start hello hello world end hello * 5. 系统的启动和初始化 使用bootloader将内核映像载入 内核数据结构初始化(内核引导第一部分) :start_kernel()中调用了一系列初始化函数,以完成kernel本身的设置 ,启动init过程,创建第一个内核线程 start_kernel()函数中各个主要初始化函数的功能 * 外设初始化--内核引导第二部分:init()函数作为内核线程,首先锁定内核,然后调用do_basic_setup()完成外设及其驱动程序的加载和初始化 外设初始化的主要过程 * init进程和inittab脚本 init进程是系统所有进程的起点,它的进程号是1 inittab是以行为为单位的描述性(非执行性)文本,每一个指令行都具有以下格式: id:runlevel:action:process * rc启动脚本:rc.sysinit中最常见的动作就是激活交换分区,检查磁盘,加载硬件模块 Shell的启动 * 6 ARM-Linux进程管理和调度 Linux进程有5种状态,分别是: TASK_RUNNING TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE TASK_ZOMBIE TASK_STOPPED * 6.1 Linux进程的创建、执行和消亡 1. Linux进程的创建 系统的第一个真正的进程,init内核线程(或进程)的标志符为1 新进程通过克隆老进程或当前进程来创建,系统调用fork或clone可以创建新任务 复制完成后,Linux允许两个进程共享资源而不是复制各自的拷贝 * 2. Linux进程的执行 要让若干新进程按照需要处理不同的事情,就必须通过系统调用exec 函数sys_execve将可执行文件的名字从用户空间取入内核空间以后就调用do_execve( )执行具体的操作 * do_execve( )执行的流程: 打开可执行文件,获取该文件的 file结构。 获取参数区长度,将存放参数的页面清零。 对linux_binprm结构的其它项作初始化 通过对参数和环境个数的计算来检查是否在这方面有错误 调用prepare_binprm() 对数据结构linux_binprm作进一步准备 把一些参数(文件名、环境变量、文件参数)从用户空间复制到内核空间 调用search_binary_handler(),搜寻目标文件的处理模块并执行 * 3. Linux进程的消亡 进程终止由可终止进程的系统调用通过调用do_exit()实现 do_exit(long code)带一个参数code,用于传递终止进程的原因 * 以下情况要调用do_exit()函数: 具体对应的系统调用出错,不得不终止进程 ,如: do_page_fault() sys_sigreturn() setup_frame() save_v86_state() 其他终止进程的情况,通过调用以下函数实现终止:sys_exit() sys_reboot() do_signal() * LINUX系统进程的切换包括三个层次: 用户数据的保存 寄存器数据的保存 系统层次的保存 * 6.2 ARM-Linux进程的调度 Linux进程调度由函数schedule()实现的,其基本流程可以概括为五步: 清理当前运行中的进程 选择下一个投入运行的进程 设置新进程的运行环境 执行进程上下文切换 后期整理 Linux调度的时机有两种: 在内核应用中直接调用schedule() 被动调用schedule() * 提纲 1. ARM系统结构简介 2. ARM-Linux内存管理 3. ARM-Linux 的中断响应和处理 4. ARM-Linux系统调用 5. 系统的启动和初始化 6. ARM-Linux进程管理和调度 7. Linux的模块机制 * 1. ARM系统结构简介 ARM有7种运行状态: 用户状态(User) 中断状态(IRQ, Imterrupt Request) 快中断状态(FIQ,Fast Imterrupt Request) 监管状态(Supervisor) 终止状态(Abort) 无定义状态(Undefined) 系统状态(System) * ARM系统结构中各个寄存器的使用方式 寄存器 使用方式 程

文档评论(0)

ldj215323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档