<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wkern.git, branch master</title>
<subtitle>a UNIX-like RISC-V kernel written from scratch
</subtitle>
<id>https://git.itsnat.dev/wkern.git/atom?h=master</id>
<link rel='self' href='https://git.itsnat.dev/wkern.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.itsnat.dev/wkern.git/'/>
<updated>2026-07-30T00:11:29Z</updated>
<entry>
<title>create basic MMIO handler for console</title>
<updated>2026-07-30T00:11:29Z</updated>
<author>
<name>Nathan Lee</name>
<email>me@nwlee.tech</email>
</author>
<published>2026-07-30T00:11:29Z</published>
<link rel='alternate' type='text/html' href='https://git.itsnat.dev/wkern.git/commit/?id=1329d1db52ede274d63b56a7aa37dd25c833ec67'/>
<id>urn:sha1:1329d1db52ede274d63b56a7aa37dd25c833ec67</id>
<content type='text'>
</content>
</entry>
<entry>
<title>separate module ld from objcopy</title>
<updated>2026-07-27T19:51:10Z</updated>
<author>
<name>Nathan Lee</name>
<email>me@nwlee.tech</email>
</author>
<published>2026-07-27T19:51:10Z</published>
<link rel='alternate' type='text/html' href='https://git.itsnat.dev/wkern.git/commit/?id=9d970286fc93c03acbe465faf97a9bd559ab6f1b'/>
<id>urn:sha1:9d970286fc93c03acbe465faf97a9bd559ab6f1b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>remove pci subsystem and replace it with console controllers</title>
<updated>2026-07-27T01:29:25Z</updated>
<author>
<name>Nathan Lee</name>
<email>me@nwlee.tech</email>
</author>
<published>2026-07-27T01:29:25Z</published>
<link rel='alternate' type='text/html' href='https://git.itsnat.dev/wkern.git/commit/?id=7458694ea666ab108105dc24fe4ca197d634a3a8'/>
<id>urn:sha1:7458694ea666ab108105dc24fe4ca197d634a3a8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: update ELF parser</title>
<updated>2026-07-27T01:26:58Z</updated>
<author>
<name>Nathan Lee</name>
<email>me@nwlee.tech</email>
</author>
<published>2026-07-27T01:26:58Z</published>
<link rel='alternate' type='text/html' href='https://git.itsnat.dev/wkern.git/commit/?id=dcf065f3438b53b9bfd9628810040f94619d8c18'/>
<id>urn:sha1:dcf065f3438b53b9bfd9628810040f94619d8c18</id>
<content type='text'>
- added more header validity checks
- create section name retrieval
</content>
</entry>
<entry>
<title>fix: km_init fails to find memory</title>
<updated>2026-07-26T21:11:47Z</updated>
<author>
<name>Nathan Lee</name>
<email>me@nwlee.tech</email>
</author>
<published>2026-07-26T21:11:47Z</published>
<link rel='alternate' type='text/html' href='https://git.itsnat.dev/wkern.git/commit/?id=e98a69fd70533aa9f9b2bd1367e1ec158579d4c0'/>
<id>urn:sha1:e98a69fd70533aa9f9b2bd1367e1ec158579d4c0</id>
<content type='text'>
This resolves an issue where km_init would fail to find the memory
property if it was not the first node that it looked at.
</content>
</entry>
<entry>
<title>create ringbuffer for logging</title>
<updated>2026-07-26T20:26:49Z</updated>
<author>
<name>Nathan Lee</name>
<email>me@nwlee.tech</email>
</author>
<published>2026-07-26T20:25:22Z</published>
<link rel='alternate' type='text/html' href='https://git.itsnat.dev/wkern.git/commit/?id=5c12f756189373fb25220fe8824d4df785e61742'/>
<id>urn:sha1:5c12f756189373fb25220fe8824d4df785e61742</id>
<content type='text'>
</content>
</entry>
<entry>
<title>update Makefile</title>
<updated>2026-07-19T23:23:59Z</updated>
<author>
<name>Nathan Lee</name>
<email>me@nwlee.tech</email>
</author>
<published>2026-07-19T23:23:59Z</published>
<link rel='alternate' type='text/html' href='https://git.itsnat.dev/wkern.git/commit/?id=9137408a4989fcafca6527a2e17e5a7348d00dde'/>
<id>urn:sha1:9137408a4989fcafca6527a2e17e5a7348d00dde</id>
<content type='text'>
- removed echo
- changed LD to actually use ld.lld
</content>
</entry>
<entry>
<title>create elf.h</title>
<updated>2026-07-12T17:45:05Z</updated>
<author>
<name>Nathan Lee</name>
<email>me@nwlee.tech</email>
</author>
<published>2026-07-12T17:42:31Z</published>
<link rel='alternate' type='text/html' href='https://git.itsnat.dev/wkern.git/commit/?id=24fdac29fb8a1c7766869b05e7a17b2c4cc98ce1'/>
<id>urn:sha1:24fdac29fb8a1c7766869b05e7a17b2c4cc98ce1</id>
<content type='text'>
The ELF parser needs more work, there are more structs to be added.
memcpy was refactored from mem.h into common.h
endianness conversions were standardized in types.h
</content>
</entry>
<entry>
<title>create kzalloc</title>
<updated>2026-06-25T15:08:12Z</updated>
<author>
<name>Nathan</name>
<email>me@nwlee.tech</email>
</author>
<published>2026-06-25T15:08:12Z</published>
<link rel='alternate' type='text/html' href='https://git.itsnat.dev/wkern.git/commit/?id=5d9942d70ca61af4d12cd2a531a190c98052c9c4'/>
<id>urn:sha1:5d9942d70ca61af4d12cd2a531a190c98052c9c4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix memory allocator logic</title>
<updated>2026-06-25T15:03:22Z</updated>
<author>
<name>Nathan</name>
<email>me@nwlee.tech</email>
</author>
<published>2026-06-25T15:03:22Z</published>
<link rel='alternate' type='text/html' href='https://git.itsnat.dev/wkern.git/commit/?id=27a91e1d9d6d312c519429965b201dd294065085'/>
<id>urn:sha1:27a91e1d9d6d312c519429965b201dd294065085</id>
<content type='text'>
- fixed an edge case in `kmalloc` where the broken block from a split
  may be too small to accomodate another `struct page`. this was fixed
such that if we do not have enough room to allocate another `struct
page` then `kmalloc` simply returns the entire page.
- fixed empty and single-element `free_list` edge cases in `kfree`
</content>
</entry>
</feed>
