Code Monkey home page Code Monkey logo

xv6-loongson3a's Introduction

xv6-Loongson3A

This repository is superseded by AIMv6.

Well, I intended to port xv6 onto Loongson 3A (or MIPS64r2) first, but I soon found out that xv6 is too... primitive, yeah. It simply does not satisfy current operating system research standard.

So, basically, I'm trying my best to write a robust operating system for educational use, introducing some more operating system concepts by the way.

Writing an OS is hard, but not that hard.

Hardware: Loongson Multi Techboard. It supports CC-NUMA, but currently I'm only going to implement a uniprocessor OS first, introducing SMP after that, and I'm not considering having CC-NUMA implemented. Maybe I'll add CC-NUMA some day... Besides, I fail to start up the board in CC-NUMA mode, and I have no idea why it fails.

CPU: Loongson 3A, MIPS64r2 instruction set, cache coherency maintained by hardware, no hazards, no cache aliasing for (slightly) larger pages, really great for a MIPS.

BIOS: PMON2000, with caches and TLB initialization already done.

GCC: 4.4.0 from Loongnix website

Roadmap

  1. Trap handling (completed)
  • Nested trap handling
  1. Memory management (completed)
  • Physical page allocation
  • Virtual memory management
  • SLAB allocation
  1. Process & thread management
  • Context switches (mostly completed)
  • fork(2), exit(2), waitpid(2), kill(2), yield()
  • O(1) scheduler (mostly completed)
  • clone() (not planned)
  1. Concurrency maintenance
  • Spinlocks
  • (POSIX) Semaphores
  1. File system
  • RAM disk
  • tmpfs
  • Berkeley FFS (not planned)
  1. Multicore support
  • Inter-process interrupts
  1. Signal handling
  2. Dynamic loading (not planned)

xv6-loongson3a's People

Contributors

barclayii avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

aetavakkol

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.