Stats

2
Projects
15
Devlogs
26
Votes
1
Ships

Coding Time

All Time: 70h 16m
Today: 0h 0m

Member Since

June 16, 2025

Badges

1
🚢
Maiden Voyage
you shipped your first project! the journey begins...

Projects

2
🚀
1 devlog • 27 days ago
PZOS

PZOS

Shipped
14 devlogs • about 2 months ago

Activity

William Ma
William Ma worked on PZOS
1h 47m • 6 days ago

Add a proper README in preparation for ship. Also fixed a bug where booting with low memory would triple fault.

Update attachment
William Ma
William Ma worked on PZOS
4h 31m • 20 days ago

Added a basic terminal application. Currently it doesn't have very many applications but the text handling works quite well, with history and line wrap handling. I had to implement more ANSI sequences in my TTY subsystem in order to achieve this, as well as fixing some bugs in the stdlib.

William Ma
William Ma worked on Drone
7h 6m • 27 days ago

Implemented interfacing with the MPU5060 over I2C and filtering the output to determine attitude (roll, pitch, yaw).

William Ma
William Ma created a project
26d ago

Drone

Drone from scratch

1 devlog 0 followers
William Ma
William Ma worked on PZOS
8h 55m • about 1 month ago

Implemented a PS/2 keyboard driver, from interfacing with the 8042 controller to translating scancodes to keycodes and ASCII codepoints. Currently the last step of translation from keycodes to ASCII is janky and is not pushed to Github.

William Ma
William Ma worked on PZOS
6h 6m • about 1 month ago

Added basic UEFI and ACPI table location and parsing. Added an HHDM to simplify memory management when reading system tables and fixed a minor printf bug. Lots of debugging for the paging changes and reading specifications made this take way longer than I thought it would.

Update attachment
William Ma
William Ma worked on PZOS
4h 25m • about 1 month ago

Spent a whole ton of time debugging why printing caused my laptop to triple fault. Turns out it failed when trying to write on the bottom 1/4 of the screen since the paging logic had UB due to not zeroing allocated memory for page directories. It was especially annoying to debug since it worked fine on my VM and I had no way of getting information from the system because the printing was broken.

Also added buffering during parsing of ANSI escape sequences so now colors actually work on the real screen and slightly sped up the clock synchronization process.

Update attachment

Implemented TSC as a clocksource, calibrated using the PIT or using CPUID enumerated values if possible. Added (roughly) standardized logging functionality with pretty printing and timestamps.

Update attachment
William Ma
William Ma worked on PZOS
4h 18m • about 1 month ago

Refined VMA management and added basic memory allocators

Update attachment
William Ma
William Ma worked on PZOS
3h 32m • about 2 months ago

Refine virtual memory layout and fix page tables. Also added primitive VMA allocation and deletion with a basic bump heap allocator.

Update attachment
William Ma
William Ma worked on PZOS
4h 16m • about 2 months ago

Fix triple fault, fix/standardize standard lib. Add further documentation on address space structure

Update attachment
William Ma
William Ma worked on PZOS
3h 19m • about 2 months ago

Fixed page (un)mapping and finished memory reclaiming. It triple faults on my laptop but it works fine on qemu so something's clearly wrong but debugging is a nightmare.

Update attachment
William Ma
William Ma worked on PZOS
1h 41m • about 2 months ago

WIP: Attempted to fix page (un)mapping and reclaim bootloader memory. Unfortunately there seem to be many bugs with (un)mapping (probably TLB related)

Update attachment
William Ma
William Ma worked on PZOS
2h 6m • about 2 months ago

Added page mapping functions and mapped memory map pointers

Update attachment
William Ma
William Ma worked on PZOS
5h 53m • about 2 months ago

Not a GCC bug but an INCBIN bug. Created and debugged new page tables.

Update attachment
William Ma
William Ma worked on PZOS
5h 36m • about 2 months ago

Wrote page allocator and half done replacing Limine's HHDM page tables. Perhaps found a GCC bug??

Update attachment
William Ma
William Ma created a project
56d ago

PZOS

Amateur x86-64 (for now) kernel built from scratch, booted using Limine.

PZOS
14 devlogs 7 followers Shipped
William Ma
William Ma joined Summer of Making
56d ago

This was widely regarded as a great move by everyone.