Skip to content

FK2469/F-NEMU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

F-NEMU

This project is inspired by the programming assignment of the class Introduction to Computer System in Department of Computer Science and Technology, NanJing University.

For the guide of this programming assignment, refer to http://nju-ics.gitbooks.io/ics2015-programming-assignment/content/

The following subprojects/components are included.

  • F-NEMU
  • testcase
  • newlib
  • kernel
  • typing game
  • PAL

F-NEMU

F-NEMU is a simple but complete full-system x86 emulator designed for teaching. It is the main part of this programming assignment. Small x86 programs can run under F-NEMU. The main features of F-NEMU include

  • a small monitor with a simple debugger
  • single step
  • register/memory examination
  • expression evaluation with the support of symbols
  • watch point
  • backtrace
  • CPU core with support of most common used x86 instructions in protected mode
  • real mode is not supported
  • x87 floating point instructions are not supported
  • DRAM with row buffer and burst
  • two-level unified cache
  • IA-32 segmentation and paging with TLB
  • protection is not supported
  • IA-32 interrupt and exception
  • protection is not supported
  • 6 devices
  • timer, keyboard, VGA, serial, IDE, i8259 PIC
  • most of them are simplified and unprogrammable
  • 2 types of I/O
  • port-mapped I/O and memory-mapped I/O

testcase

Some small C programs to test the implementation of F-NEMU.

newlib

newlib(https://sourceware.org/newlib) is a C library for embedding systems. It requires minimal run-time support and is very friendly to F-NEMU.

kernel

This is the simplified version of Nanos(http://cslab.nju.edu.cn/opsystem). It is a uni-tasking kernel with the following features.

  • 2 device drivers
  • Ramdisk
  • IDE
  • ELF32 loader
  • memory management with paging
  • a simple file system
  • with fix number and size of files
  • without directory
  • 6 system calls
  • open, read, write, lseek, close, brk

typing game

This is a fork of the demo of NJU 2013 oslab0(the origin repository has been deleted, but we have a fork of it -- https://github.com/nju-ics/os-lab0). It is ported to F-NEMU.

PAL

This is a fork of Wei Mingzhi's SDLPAL(https://github.com/CecilHarvey/sdlpal). It is obtained by refactoring the original SDLPAL, as well as porting to F-NEMU.

The data files required for running the game are not included with the source package due to copyright issues. You must obtain them from the original CD. But you can get data files for testing from there, and the code is rf1z .

About

An IA-32 full system emulator designed for teaching

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages