/OSLabs

OperatingSystemLabs_南京大学操作系统实验

Primary LanguageC

OSLabs

南京大学操作系统课程实验/OperatingSystemLabs_NJU

实验网站 Website:http://dislab.nju.edu.cn/taohuang/

实验内容 Content

  • Lab1实验要求
    • 1.1. 在实模式下实现一个Hello World程序
    • 1.2. 在保护模式下实现一个Hello World程序
    • 1.3. 在保护模式下加载磁盘中的Hello World程序运行
  • Lab2实验要求
    • 2.1. 实现系统调用库函数printf
    • 2.2. 完善printf的格式化输出
  • Lab3实验要求
    • 3.1. 实现进程切换机制
    • 3.2. 实现FORKSLEEPEXIT系统调用
  • Lab4实验要求
    • 4.1. 实现SEM_INITSEM_POSTSEM_WAITSEM_DESTROY系统调用

实验环境 Environment:Ubuntu + QEMU

实验框架 Frame

+lab1
|---+bootloader
|   |---boot.h                          #磁盘I/O接口
|   |---boot.c                          #加载磁盘上的用户程序
|   |---start.s                         #引导程序
|   |---Makefile
|---+utils
|   |---genboot.pl                      #生成MBR
|---+app
|   |---app.s                           #用户程序
|   |---Makefile
|---Makefile
+Lab2,3,4
|---+bootloader             #引导程序
|   |---...
|---+utils
|   |---genBoot.pl          #生成引导程序
|   |---genKernel.pl        #生成内核程序
|---+kernel
|   |---+include            #头文件
|   |---+kernel             #内核代码
|   |   |---doIrq.S         #中断处理
|   |   |---i8259.c         #重设主从8259A
|   |   |---idt.c           #初始化中断描述表
|   |   |---irqHandle.c     #中断处理函数
|   |   |---kvm.c           #初始化 GDT 和加载用户程序
|   |   |---serial.c        #初始化串口输出
|   |---+lib
|   |---main.c              #主函数
|   |---Makefile
|---+app                    #用户代码
|   |---main.c              #主函数
|   |---Makefile
|---+lib                    #库函数
|   |---lib.h
|   |---types.h
|   |---syscall.c           #系统调用入口
|---Makefile