Linux内核及分析 第二周 操作系统是如何工作的?
2016-03-06 17:13
495 查看
计算机是如何工作的?
存储程序计算机工作模型,计算机系统最最基础性的逻辑结构;
函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能;
enter
--pushl %ebp
--movl %esp,%ebp
leave
--movl %ebp,%esp
--popl %ebp
函数参数传递机制和局部变量存储
中断,多道程序操作系统的基点,没有中断机制程序只能从头一直运行结束才有可能开始运行其他程序。
♦ 堆栈相关的寄存器
– esp,堆栈指针(stack pointer)
– ebp,基址指针(base pointer)
♦ 堆栈操作
– push
栈顶地址减少4个字节(32位)
– pop
栈顶地址增加4个字节
♦ ebp在C语言中用作记录当前函数调用基址
♦ 其他关键寄存器
– cs : eip:总是指向下一条的指令地址
• 顺序执行:总是指向地址连续的下一条指令
• 跳转/分支:执行这样的指令的时候,cs : eip的值会
根据程序需要被修改
• call:将当前cs : eip的值压入栈顶,cs : eip指向被
调用函数的入口地址
• ret:从栈顶弹出原来保存在这里的cs : eip的值,放
入cs : eip中
以下是实验内容:
qemu窗口可以看到my_start_kernel在执行,同时my_timer_handler时钟中断处理程序周期性执行。
内核头文件;
执行my_start_kernel,83行之前是硬件初始化,83行及以后是操作系统。
比较简单,每循环100000次打印“my_start_kernel here”
同样是硬件初始化;
每次时钟中断调用一次printk,输出一个">>>>>>>>my_timer_handler here<<<<<<<<",中断处理动作
作者: 王雪铖
原创作品转载请注明出处
《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
存储程序计算机工作模型,计算机系统最最基础性的逻辑结构;
函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能;
enter
--pushl %ebp
--movl %esp,%ebp
leave
--movl %ebp,%esp
--popl %ebp
函数参数传递机制和局部变量存储
中断,多道程序操作系统的基点,没有中断机制程序只能从头一直运行结束才有可能开始运行其他程序。
♦ 堆栈相关的寄存器
– esp,堆栈指针(stack pointer)
– ebp,基址指针(base pointer)
♦ 堆栈操作
– push
栈顶地址减少4个字节(32位)
– pop
栈顶地址增加4个字节
♦ ebp在C语言中用作记录当前函数调用基址
♦ 其他关键寄存器
– cs : eip:总是指向下一条的指令地址
• 顺序执行:总是指向地址连续的下一条指令
• 跳转/分支:执行这样的指令的时候,cs : eip的值会
根据程序需要被修改
• call:将当前cs : eip的值压入栈顶,cs : eip指向被
调用函数的入口地址
• ret:从栈顶弹出原来保存在这里的cs : eip的值,放
入cs : eip中
以下是实验内容:
qemu窗口可以看到my_start_kernel在执行,同时my_timer_handler时钟中断处理程序周期性执行。
内核头文件;
执行my_start_kernel,83行之前是硬件初始化,83行及以后是操作系统。
比较简单,每循环100000次打印“my_start_kernel here”
同样是硬件初始化;
每次时钟中断调用一次printk,输出一个">>>>>>>>my_timer_handler here<<<<<<<<",中断处理动作
作者: 王雪铖
原创作品转载请注明出处
《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
相关文章推荐
- Linux基础--用户与组
- linux基本命令
- linux下myeclipse的破解
- 【E类】Linux视频课程集
- linux下制作u盘启动盘
- Centos更换yum源,安装ssh server
- Linux基础知识
- Linux基础学习笔记
- linux 知识整理1linux 常见的目录
- 20135239益西拉姆 Linux内核分析 操作系统是怎样工作的?
- 10 Useful Sar (Sysstat) Examples for UNIX / Linux Performance Monitoring
- Linux进程时间片的分配(调度策略和参数)
- linux 内核驱动开发
- Linux下 RabbitMQ的安装与配置-3
- linux 内核编译
- linux内核分析 第二周
- linux 最常用的安全措施
- Linux内核分析——操作系统进程调度
- Unix与Linux的历史
- linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核代码