Giter Club home page Giter Club logo

raynix's Introduction

RayNix -- A simple enough operating system for educational purpose. And currently it is a exercise of a undergraduate student. Mostly i will use C or Cpp to complete this OS.
How to run it:
	1. type make run in linux or cygwin
		you must have i586 gcc and ld( you may build it from source), nasm, qemu.
	2. copy the kernel.bin into a syslinux media, and change syslinux.cfg

Complete Features:
	1. multiboot header. make kernel can boot from grub or other multiboot bootloader.
		I don't wanna to rewrite a bootloader by myself. I wanna do it as simple as possible.
	2. Part of libc
		Currently the atol, ctype, sprintf, stdarg, stddef, stdint, string.h has been written.
		Mostly reference to Crocos Project.
	3. Console Driver
		Complete a Console Driver, which in protected/text mode.
	4. Part of APCI
		Complete to RSDP struct.
TODO Features:
	0. Complete Interrupt Handle.
	1. Complete APCI
		Make PC can shutdown. :)
	2. Complete Libc
		Complete the malloc, free, time, etc.
	3. Complete Mem-Management and Process Management.
Final Goal:
	1. A simple enough muilttask OS. 


RayNix -- 一个足够简单的操作系统。目前仅仅是一个本科生的练习,我准备绝大部分的代码使用C或者CPP来写,增加代码可读性,而且使事情变得简单。

如何运行:
	方法1:在cygwin或linux环境中,在目录输入make run命令。
		必须存在i586版本的gcc,或许你需要自己从源代码编译这些。
		必须存在nasm, qemu
	方法2:将编译好的kernel.bin复制到一个有syslinux环境的介质中,并配置syslinux.cfg。
		然后重启计算机,用这个介质引导系统(U盘,硬盘,光盘,软盘,随你意)

目前完成的特性有:
	1、多启动的头。可以兼容grub或者其他多启动的bootloader,例如syslinux
		我没有欲望从头写一个bootloader,因为那样可能会使得系统变得更加复杂,而仅仅是做了重新制造轮子的过程。
	2、一部分的C语言标准库
		目前完成了一部分的C语言标准库,参考/rlibc/inc中的部分
		标准库中大部分的代码和想法参考自 Crocos项目(在sf.net上)
	3、控制台的驱动
		完成了保护模式下,字符模式的控制台驱动。
	4、一部分的APCI
		完成了RSDP结构体的封装,查找。
将要做的工作:
	0、完成中断的处理
	1、完成APCI
		让计算机可以关机重启
	2、完成C语言标准库
	3、完成内存管理,进程管理

最终目的:
	做一个简单的操作系统,证明简单的操作系统是能被任何人写出来的

raynix's People

Contributors

reyoung avatar

Stargazers

 avatar astrotycoon avatar  avatar

Watchers

 avatar James Cloos avatar  avatar

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.