Linux操作系统分析

陈香兰
Fall 2009


主讲老师信息


  • 陈香兰(xlanchen@ustc.edu.cn)
    • 课程接待日:周二上午,亲民楼316,来之前请先电话联系
    • 联系信息(合肥,周三~周五):科大西区电三421,0551-3606864-83
    • 联系信息(苏州,周一下午~周二下午):亲民楼316,0512-87161316

    助教信息


  • 人数(1人,目前到位1人)
    1. 孟宁
    2. Email: mengning@ustc.edu.cn
      主页:http://staff.ustc.edu.cn/~mengning/
      Phone(O): 0512-68839302
      办公室: 明德楼A302室

    参考书


  • Understanding the Linux Kernel (O'reilly)
  • 各种网站

  • 课时和上课时间


    课时:3课时/次*2次/周*8周+考试=50课时
    教学周 十一 十二 十三 十四 十五 十六 十七 十八
    星期一
    (19:00~21:25)
    11.9 11.16 11.23
    11.30(交作业 12.7 12.14(交作业 12.21 12.28(下次上机,交作业
    星期二
    (14:00~16:25)
    11.10 11.17 11.24 12.1 12.8 12.15 12.22 12.29

    幻灯片


  • 0,课程介绍
  • 1,绪论
  • 1_1,GNU Tools
  • 2,基于x86的Linux的启动
  • 3,内存寻址
  • 4.1,进程管理1
  • 4.2,进程管理2
  • 4.3,进程管理3
  • 5,中断和异常
  • 6,系统调用
  • 7,时钟和定时
  • 8,内存管理
  • 9.1,地址空间
  • 9.2,程序的执行
  • 10,文件系统
  • 11,信号机制
  • 12,进程的同步和通信
  • 13,IO管理

  • 实验课时间安排


  • 日期:
    1. 14周二(12.1)
    2. 15周二(12.8)
    3. 16周二(12.15)
    4. 19周二(1.5)
  • 每次时间为:18:15-22:00
  • 地点:明德楼308实验室

  • 报告和上机


  • 1,报告:基于x86体系结构分析linux-2.6.26的启动过程
    • 仅考虑32位体系结构
    • 不考虑多核多处理器

  • 2,对Linux2.6.26的进程切换过程进行分析,提交分析报告

  • 3,进程的创建
    • 使用C语言编写一段用户程序,调用fork创建一个子进程,然后让子进程和父进程分别输出fork的返回值。
    • 目的:从用户态体验进程的创建

    • 对Linux中进程的创建进行分析,提交分析报告

  • 4,中断/异常/系统调用
    1. 分析中断、异常和系统调用的代码(任选其一),提交分析报告
    2. 采用某种方法截获一个中断,例如键盘中断
    3. 采用某种方法制造缺页异常
    4. 自己编写一个系统调用
    5. 任选其一,其中3的难度最低,起评分最低
    6. 2,3,4提交实验报告和源代码

  • 5,定时器
    1. 在用户态编写一个程序,该程序设定一个定时器,在时间到期的时候做出某种可观察的响应(方法不限)
    2. 分析你的程序的实际执行借助了内核的哪些机制
    3. 提交实验与分析报告

  • 6,虚拟字符驱动
    1. 模拟一个字符设备,提供字符设备驱动
    2. 在Linux 2.6环境中,动态加载虚拟字符驱动模块
    3. 编写一个应用程序,对虚拟字符设备驱动进行读写
    4. 课堂举例的参考


    Edited by xlanchen@ustc.edu.cn
    SuZhou, JiangSu, China.
    Fall, 2009.