Commit Graph

45 Commits

Author SHA1 Message Date
Vincent Ollivier dab43ade5b Update changelog 2022-04-12 10:07:08 +02:00
Vincent Ollivier 5dce839e24 Update changelog 2022-04-10 09:31:45 +02:00
Vincent Ollivier 2582dab09a Update changelog 2022-04-05 13:06:15 +02:00
Vincent Ollivier 8c766bf686 Update changelog 2022-01-25 21:46:23 +01:00
Vincent Ollivier 5d077dafe0 Update changelog 2022-01-01 18:08:57 +01:00
Vincent Ollivier 442c17218d Publish version 0.7.0 2021-12-12 12:39:09 +01:00
Vincent Ollivier 009786b140
Add pci command and switch IDE controllers to compatible mode (#276)
* Add waiting times to identify command

* Read more attributes from PCI devices

* Add pci::list

* Add pci command

* Switch PCI IDE controllers to compatibility mode

* Add comment

* Update changelog
2021-11-28 19:43:40 +01:00
Vincent Ollivier 0f70d67c91
Improve user experience (#274)
* Add default-run attribute

* Use f64 instead of f32 in calc

* Allow empty line in REPL

* Check that FS is mounted before reading superblock

* Add cmd env var

* Update changelog
2021-11-27 10:08:08 +01:00
Vincent Ollivier e75c287098
Add process table and exit syscall (#268)
* Add process table

* Add exit syscall

* Update binaries

* Make pid mutable

* Use RW lock for the process table

* Change pid atomic ordering

* Fix return code

* Fix lock issue

* Add debug print

* Add exit to sleep binary

* Enable asm_sym feature

* Use the end of code area for stack area

* Add debug macro

* Use array instead of vec for process

* Refactor process data clone

* Increase max file handles to 32

* Increase sleep to 5 seconds

* Fix MAX_PID calculation

* Revert max file handle value to fix crash

* Close file handle after dup syscall

* Remove init

* Run the test in release mode

* Refactor debug

* Refactor debug output of syscall

* Remove NULL syscall

* Save and restore stack frame

* Fix install

* Save only scratch registers to the stack

* Add write volatile to registers

* Overwrite rax register on exit

* Set pid back to 0 after exit

* Add alloc_page function

* Remove debug output

* Unmap pages after exit

* Allocate memory after kernel heap

* Hide unmap error
2021-11-27 09:56:52 +01:00
Vincent Ollivier 0093e8f8a2
Improve UTF-8 support (#267)
* Add support for Extended ASCII to VGA

* Read multibyte chars

* Fix deletion of extended ascii chars

* Add UTF-8 support to Prompt

* Refactor vec char

* Add unicode support to text editor

* Refactor code

* Update changelog
2021-11-06 10:31:14 +01:00
Vincent Ollivier d053f17124
Add shell redirections (#262)
* Reorder syscalls

* Add DUP syscall

* Add api::fs::reopen

* Add shell redirections

* Use regex to parse arrow

* Add tests

* Refactor install

* Add eprint macro

* Change exit code of empty command in shell

* Update changelog
2021-11-05 09:06:40 +01:00
Vincent Ollivier 8457c0fc53
Add calc command (#263)
* Add calc command

* Parse float

* Refactor parser

* Add tests

* Refactor parser

* Update changelog
2021-11-01 11:13:52 +01:00
Vincent Ollivier 71303cd455
Fix VGA issues with real hardware (#258)
* Enable cursor after boot

* Remove unused time attribute on file

* Fix compilation warning

* Clear screen after vga init

* Add disable_blinking function

* Set palette registers at boot

* Set default palette

* Fix attribute control registers initialization

* Clear palette address source bit when setting palette

* Refactor code

* Remove index from palette

* Update comment

* Update changelog
2021-10-24 18:23:01 +02:00
Vincent Ollivier d541ed949a
Add rust binaries support (#255)
* Parse elf segments instead of sections

* Add hello binary

* Build only kernel in makefile

* Add rust and nasm userspace examples

* Create empty files prior to compilation

* Change segment locations

* Simplify binaries

* Update binaries

* Update changelog

* Fix stack overflow
2021-10-14 09:49:30 +02:00
Vincent Ollivier 71d83cd688
Add dynamical disk information (#252)
* Add sys::ata::Drive struct

* Add fs size to superblock

* Add missing usage option to disk command

* Update changelog

* Store ata::Drive in AtaBlockDevice

* Store allocated block count in superblock

* Rename Superblock to SuperBlock

* Add superblock to memfs

* Use Block instead of LinkedBlock for BlockBitmap

* Rename BlockBitmap to BitmapBlock

* Fix removed const

* Remove some hardcoded constants

* Fix BitmapBlock::free_all

* Allocate the whole remaining disk space

* Use memory size to alloc memfs

* Dynamically use half of the memory for the heap

* Add SuperBlock::check_ata

* Move init to mod.rs

* Update python fuse

* Add BITMAP_SIZE constant

* Fix available space computation

* Limit the heap to 8 GB max

* Fix memfs size
2021-10-04 21:37:47 +02:00
Vincent Ollivier 79860fb6de
Add spawn syscall (#251)
* Add spawn syscall

* Update changelog

* Fix changelog format typo
2021-09-29 22:40:37 +02:00
Vincent Ollivier c67ca13b51
Add ELF loader (#248)
* Add ELF loader

* Add elf reader

* Fix jump to entry point

* Update mapping code

* Update kernel data segment in GDT

* Refactor wrap macro

* Remove debug from process

* Remove jump to entry point

* Update hello binary

* Improve comments on asm code

* Rename Process#entry to Process#entry_point

* Use cli directly

* Add pic::init()

* Disable again interrupts after halt if needed

* Allow keyboard and serial events during memory init

* Update changelog
2021-09-26 22:50:45 +02:00
Vincent Ollivier 07ff76991a
Add basic userspace (#228)
* Testing userspace code

* Update program example

* Refactor code

* Read bin from dsk/bin at compile time

* Create mapper and frame allocator during process creation

* Read bin from disk at runtime

* Add missing file

* Add missing bin

* Add src bin

* Replace debug output by a test syscall+binary

* Remove comments from asm files

* Rewrite sleep

* Replace test by hello

* Refactor hello example

* Translate address from user code segment

* Rename entry label

* Update readme and changelog

* Use entry_name for DirEntry

* Increase stack size
2021-09-24 18:19:37 +02:00
Vincent Ollivier ded918b158 Update changelog 2021-09-15 23:13:59 +02:00
Vincent Ollivier b8ee316240 Publish version 0.6.0 2021-08-21 11:21:34 +02:00
Vincent Ollivier 7724936400 Update changelog 2021-08-21 11:00:30 +02:00
Vincent Ollivier 97bdd26e02 Update changelog 2021-08-12 23:20:19 +02:00
Vincent Ollivier fe298bb71c Update changelog 2021-08-01 11:52:13 +02:00
Vincent Ollivier 5581a6d5a7 Update changelog 2021-07-26 22:37:33 +02:00
Vincent Ollivier 445d40fd69 Update changelog 2021-07-25 01:13:45 +02:00
Vincent Ollivier 1da43f4e2d Update changelog 2021-07-14 01:04:33 +02:00
Vincent Ollivier f35ca06346
Add syscalls (#196)
* Add syscall handler

* Add syscall macro

* Add sleep syscall

* Remove unimplemented syscall numbers

* Add syscalls to MOROS API

* Refactor idt

* Add return value to syscalls

* Add uptime syscall

* Use match instead of table in dispatcher

* Remove syscall4

* Use naked function for syscall

* Enable interrupts while sleeping

* Use sysv64 calling convention

* Add realtime syscall

* Add basic documentation

* Update changelog
2021-07-03 15:47:20 +02:00
Vincent Ollivier a07d09fdc5 Bump version to 0.5.1 2021-06-27 16:58:42 +02:00
Vincent Ollivier 91c755b6b0
Add missing rx stats to pcnet driver (#124)
* Add missing rx stats to pcnet driver

* Update changelog
2020-12-21 12:03:39 +01:00
Vincent Ollivier d3e68aa387
Migrate from TravisCI to GitHub Actions (#131)
* Create rust.yml

* Delete .travis.yml

* Update rust.yml

* Update rust.yml

* Add cache

* Update CHANGELOG.md
2020-12-21 11:58:36 +01:00
Vincent Ollivier 60ab58c292 Update changelog 2020-11-15 10:38:30 +01:00
Vincent Ollivier 2df0be9c42 Bump version to 0.5.0 2020-11-15 10:07:46 +01:00
Vincent Ollivier b640623219 Update changelog 2020-11-15 09:45:34 +01:00
Vincent Ollivier 6009816108 Update changelog 2020-11-14 22:04:38 +01:00
Vincent Ollivier 2cb0b83dee
Add new `mem` command (#113)
* Add mem command

* Increase heap size to 1MB

* Refactor hex formatting

* Rename variable in memory count

* Update changelog
2020-11-10 22:11:33 +01:00
Vincent Ollivier 7839f44438 Add links to changelog 2020-11-10 08:43:49 +01:00
Vincent Ollivier ea705f5e55
Add new date command (#112)
* Add time crate

* Rewrite date command

* Add nanoseconds precision

* Add help

* Change default date format

* Add env command

* Add TZ env var with UTC offset in seconds

* Update changelog
2020-11-10 08:39:26 +01:00
Vincent Ollivier 3fd02db036
Add ACPI shutdown (#111)
* Implement ACPI poweroff

* Rename poweroff to shutdown

* Improve logging

* Add phys_to_virt and virt_to_phys functions

* Update docs

* Refactor code

* Use hardcoded slp_typa in VirtualBox

* Fix typo
2020-11-08 18:51:09 +01:00
Vincent Ollivier 1f58f48334 Update changelog 2020-11-05 21:53:04 +01:00
Vincent Ollivier 32a6d3fb9f Bump version to 0.4.0 2020-07-29 22:09:57 +02:00
Vincent Ollivier 41d0fd7d63 Update changelog 2020-07-29 22:04:14 +02:00
Vincent Ollivier 5081e98054 Update changelog 2020-07-03 22:38:27 +02:00
Vincent Ollivier 00a028150a Update shell doc 2020-02-16 20:06:04 +01:00
Vincent Ollivier 965f1f3c98 Update changelog 2020-02-13 20:29:06 +01:00
Vincent Ollivier 03df4f147f Add changelog 2020-02-02 19:36:54 +01:00