文档详情

操作系统实践.pdf

发布:2019-03-22约8.32万字共63页下载文档
文本预览下载声明
目 录 前言 哈工大操作系统实验1—系统初始化 哈工大操作系统实验2—系统接口 哈工大操作系统实验3—进程管理 哈工大操作系统实验4—进程同步 哈工大操作系统实验5—I/O设备管理 哈工大操作系统实验6—内存管理 本文档使用 看云 构建 - 2 - 前言 前言 原文出处 :操作系统实践 作者 :wangjianyu0115 本系列文章经作者授权在看云整理发布 ,未经作者允许 ,请勿转载 ! 操作系统实践 哈工大操作系统实验 本文档使用 看云 构建 - 3 - 哈工大操作系统实验1—系统初始化 哈工大操作系统实验1—系统初始化 此次实验的基本内容是 : 1. 阅读 《Linux内核完全注释》的第6章 ,对计算机和Linux 0.11的引导过程进行初步的了解 ; 2. 按照下面的要求改写0.11的引导程序bootsect.s 3. 修改build.c ,以便可以使用 make BootImage命令 改写bootsect.s主要完成如下功能 : 1. bootsect.s能在屏幕上打印一段提示信息 “XXX is booting...” ,其中XXX是你给自己的操作系统起的 名字 ,例如LZJos、Sunix等 (可以上论坛上秀秀谁的OS名字最帅 ,也可以显示一个特色logo ,以表 示自己操作系统的与众不同。 ) 完成bootsect.s的屏幕输出功能 首先来看完成屏幕显示的关键代码如下 : ! 首先读入光标位置 mov ah,#0x03 xor bh,bh int 0x10 ! 显示字符串“LZJos is running...” mov cx,#25 ! 要显示的字符串长度 mov bx,#0x0007 ! page 0, attribute 7 (normal) mov bp,#msg1 mov ax,#0x1301 ! write string, move cursor int 0x10 inf_loop: jmp inf_loop ! 后面都不是正经代码了,得往回跳呀 ! msg1处放置字符串 msg1: .byte 13,10 ! 换行+回车 .ascii LZJos is running... .byte 13,10,13,10 ! 两对换行+回车 !设置引导扇区标记0xAA55 .org 510 boot_flag: .word 0xAA55 ! 必须有它,才能引导 接下来 ,将完成屏幕显示的代码在开发环境中编译 ,并使用linux-0.11/tools/build.c将编译后的目标文件 做成Image文件。 这里改动 本文档使用 看云 构建 - 4 - 哈工大操作系统实验1—系统初始化 mov cx,#25 ! 要显示的字符串长度 和 msg1 .byte 13,10 ! 换行+回车 .ascii LZJos is running... .byte 13,10,13,10 ! 两对换行+回车 !设置引导扇区标记0xAA55 修改你要显示的内容及计算长度 ,其中13算一个 ,10算一个 ,字母或空格算1个 修改bootsect.s ! Print some inane message mov ah,#0x03 ! read cursor pos xor bh,bh int 0x10 mov cx,#27
显示全部
相似文档