Reviewing October 2024
This month, I focused primarily on MOROS, my hobby operating system written in Rust, resulting in these merged PRs:
- Use string instead of float as clock device output format (#696)
- Add speaker device (#693)
- List processors at boot (#692)
- Create clock module (#691)
- Create memory module (#690)
- Add mandelbrot program (#689)
- Refactor vga driver (#688)
- Add VGA graphics (#687)
- Free process memory on exit (#686)
- Ensure uninitialized data is zeroed when loading binary (#681)
- Update panic handler (#680)
The most notable feature is the introduction of a graphic mode, with a framebuffer and a customizable palette. I started by coding a program to display BMP images and later played with a cool program to visualize the Mandelbrot set. New device files were added for that:
/dev/vga/mode
/dev/vga/buffer
/dev/vga/palette
Additionally, the following device files were also created or updated in other PRs:
/dev/clk/boot
/dev/clk/epoch
/dev/clk/rtc
/dev/speaker
I undertook significant internal refactoring and I experimented, not quite successfully yet, with relocating the kernel to higher half memory and activating multiple processors. More on that later.
During the month I also created two PRs to improve Geodate, my lunisolar calendar with decimal time and I spent time solving LeetCode problems in Ruby and MOROS Lisp to stay up to date as I will soon conclude this funemployment period and seek my next full time job. If you're hiring a senior/staff dev with Ruby or Rust expertise, please let me know.