Skip to content

jiangeZh/myOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

##MyOS

TASM汇编语言与TURBO C语言汇合编程

##1.虚拟机配置方法:

MyOS: 内存4MB,处理器1,硬盘204MB,软盘使用软盘镜像文件144test.flp

##2.软件工具:

  • Nasm:汇编编译器
  • Tasm:汇编编译器
  • TCC:c语言编译器
  • Tlink:连接器
  • Bochs:调试器
  • VMware Player:虚拟机
  • WinHex:磁盘绝对扇区读写工具

##3.一些功能及说明:

  • 原型操作系统分离为引导程序(boot/load.asm)和MYOS内核(kernel),由引导程序加载内核;

  • 内核由汇编语言aOS.asm和c语言cOS.c两个模块生成;

  • 使用C语言实现作业控制;

  • 在原型操作系统上建立一个初步C语言开发环境,理解操作系统与高级语言之间的关系:实现输入输出等系统调用,设计一个C程序库,封装getch(),gets(),putch(),puts(),scanf()和printf()等利用系统调用实现的细节,并开发一个用户程序,测试这些函数功能;

  • 内核实现简单进程模型,进程具有就绪、运行两种基本状态,在c程序中定义进程表

  • 内核可以一次性加载最多4个用户程序。用户进程采用时间片轮转调度进程。用户程序的输出各占1/4屏幕区域,信息输出有动感,以便观察程序是否在执行;

  • 内核实现三种原语fork()、wait()和exit(),并在c库中封装相关的系统调用;

  • 编写c语言程序,实现多进程合作的应用程序(由父进程生成一个字符串,交给子进程统计其中字母的个数,然后在父进程中输出这一统计结果);

  • 在内核实现信号量机制,定义100个可用信号量,并以系统调用的方式实现初始化init()、p()和v()三个基本操作;

  • 内核实现信号量机制后,在c库中封装相关的系统调用;

  • 编写一个c语言程序,实现有限缓冲的生产者-消费者模型的应用程序。

About

A simple OS, just for learning.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published