Simple OS
Go to file
2023-11-17 14:54:26 +01:00
arch/x86 Use format attribut and correct associated errors 2023-11-09 23:44:04 +01:00
core Rename Yolo syscall to Helo 2023-11-11 00:07:26 +01:00
docs Add diagram to doc 2022-07-30 15:59:50 +02:00
drivers VGA: fix MAP when reconfigured 2023-11-17 14:54:26 +01:00
tests Rename Yolo syscall to Helo 2023-11-11 00:07:26 +01:00
userspace Some userspace online doc 2023-11-11 00:09:00 +01:00
.clang-format vim and clang-format configuration file 2020-04-27 00:13:43 +02:00
.gitignore Add doc generation 2022-09-03 23:31:51 +02:00
custom_gdb_extension.py Add partition table support 2021-11-05 08:57:17 +01:00
debug.gdb debug symbols are expected in .debug file 2023-11-09 23:44:04 +01:00
disk.sfdisk Add partition table support 2021-11-05 08:57:17 +01:00
linker.ld First step for memory management 2018-08-06 18:41:45 +02:00
Makefile Add more makefile doc 2023-11-09 23:46:26 +01:00
README.md Add serialOut info in doc 2022-09-03 22:55:11 +02:00
screenshot_1.png update screenshot 2021-11-08 22:53:49 +01:00

Introduction

Matos is a simple OS.

It's targetting x86 and inspirated by http://sos.enix.org/fr/PagePrincipale

screenshot

Dependencies

To generate iso image

  • mtools xorriso (which is libisoburn on ArchLinux)
  • gcc >= 6
  • sfdisk (util-linux)

Run it

make run

or

make fd.iso && qemu-system-x86_64 -cdrom fd.iso

you can also test it

make test

Debug

gdb could be launch with debug symbols using :

make debug

Serial log will be saved in the serialOut file.

Then you can check some matos specific commands or pretty printing with

help user-defined info pretty-printer (Should contains matos_pretty_printers)

Change Disk partitions

You can either modify the disk.sfdisk file

or

modify the disk image with your favorit tool (e.g. gparted) and re-generate disk.sfdisk

sfdisk -d > disk.sfdisk

Features

  • VGA Driver
  • keyboard Driver
  • Serial Driver
  • Timer
  • Virtual memory
  • Allocator
  • Multithread (Full preempt)
  • Mutex
  • ATA
  • basic userspace with syscall

TODO

  • ringbuffer protected by mutex
  • blocking read