Releases: dmarro89/go-dav-os
v0.3.0
This is the first step to the creation of a real userland.
We implemented 3 syscalls (SYS_WRITE, SYS_EXIT and SYS_GETTICKS) and improved the existing task runner.
In this way, now the user can run a custom program using the syscalls.
For testing the feature, we created an example binary and added a command into the shell to run it.
@ranjan42 also implements a FAT filesystem to store persistent data, including the commands into the shell.
Thanks to:
- @ranjan42 for the incredible contribution in the implementation of the two syscall SYS_WRITE and SYS_GETTICKS and for the implementation of all the FAT filesystem.
- @rivenbryan for implementing the command suggestions in the shell
- @Sujeev-Uthayakumar for the creation of the binary to run as program
- @mohak1 for the shell improvement, capable now of understanding the shift and the caps lock
What's Changed
- merge the commit to main by @ranjan42 in #45
- Userland creation: 1° step - Add SYS_WRITE syscall by @dmarro89 in #46
- Feat: Create SYS_EXIT syscall (#47) by @ranjan42 in #56
- Feat: Add command suggestions (#17) by @rivenbryan in #55
- Feat: Implement persistent storage infrastructure (ATA + FAT16) by @ranjan42 in #57
- Add Hello World for UserLand by @Sujeev-Uthayakumar in #58
- feat(keyboard): add support for shift and caps lock by @mohak1 in #63
- Improved task runner + added stubs for CI + added unit tests running in CI by @dmarro89 in #60
- Adding documentation by @dmarro89 in #65
- Update README.md by @dmarro89 in #66
- feat: add SYS_GETTICKS syscall (int 0x80, eax=3) by @ranjan42 in #67
- Running a program with the task runner by @dmarro89 in #68
New Contributors
- @rivenbryan made their first contribution in #55
- @Sujeev-Uthayakumar made their first contribution in #58
- @mohak1 made their first contribution in #63
Full Changelog: v0.2.0...v0.3.0
v0.2.0
The most important thing of this feature is the migration from a 32 bit architecture to a 64 bit one.
Thanks to all the contributors that made this new version possible.
What's Changed
- docs: update contributing section by @jgafnea in #19
- feat: add
versionOS shell command by @jgafnea in #22 - Add documentation for 32 bit to 64 bit migration by @ranjan42 in #23
- feat: Add Integration Testing with QEMU (Issue #14) by @ranjan42 in #27
- feat: Implement Simple Round-Robin Scheduler (Issue #18) by @ranjan42 in #26
- fix: remove dummy tasks as they are blocking the boot sequence by @metacatdud in #29
- feat: implement command history (#12) by @ranjan42 in #32
- chore: add architecture diagram to README by @ranjan42 in #34
- Migrate 32 to 64 by @metacatdud in #31
- [fs] feat: add unit tests - 1/n by @soorya38 in #35
- docs: update README.md to reflect the new 64bit arch by @metacatdud in #37
- test(scheduler): add unit tests for scheduler init by @soorya38 in #41
New Contributors
- @jgafnea made their first contribution in #19
- @ranjan42 made their first contribution in #23
- @metacatdud made their first contribution in #29
- @soorya38 made their first contribution in #35
Full Changelog: v0.1.0...v0.2.0
v0.1.0
First version of a 32-bit Go kernel (gccgo, freestanding) booted via GRUB/Multiboot.
- VGA text-mode terminal (80x25) with cursor handling, scrolling, newline and backspace
- PS/2 keyboard input with Italian layout + non-blocking ring buffer feeding the shell
- IDT + PIC remap + PIT init, tick counter, and hlt-based idle loop
- Debug shell commands: mem (hexdump), mmap (Multiboot memory map), ticks
- Bitmap-based 4KB page frame allocator initialized from the Multiboot memory map (pfa/alloc/free)
- Minimal in-memory filesystem (ls/write/cat/rm/stat)
- Freestanding runtime kept intentionally small, plus tiny memcmp to stay libc-free
What's Changed
- Creating irq/pic/pit by @dmarro89 in #1
- Implementing custom shell by @dmarro89 in #2
- Implementing Page Allocator by @dmarro89 in #3
- Implement file system and shell commands by @dmarro89 in #4
New Contributors
Full Changelog: https://github.com/dmarro89/go-dav-os/commits/v0.1.0