<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pub/teachos/kernel.git/kapi, branch feature/readFiles</title>
<subtitle>An educational OS kernel</subtitle>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/'/>
<entry>
<title>chore: clean up python scripts</title>
<updated>2026-09-30T11:10:21+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-30T11:10:21+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=8bec65ba723c9c628d934ec02021d5ce09c01105'/>
<id>8bec65ba723c9c628d934ec02021d5ce09c01105</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>kapi/interrupts: admit irq_lock dtor may panic</title>
<updated>2026-09-29T10:39:57+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-29T10:37:26+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=e259f732d9bf38e390588f07884c31ece95f5b7b'/>
<id>e259f732d9bf38e390588f07884c31ece95f5b7b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>kapi/interrupts: improve irq_lock protections</title>
<updated>2026-09-29T09:57:55+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-29T09:57:55+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=97d99228466b742133bf12e00197be9b11fcc561'/>
<id>97d99228466b742133bf12e00197be9b11fcc561</id>
<content type='text'>
The previous implementation suffered from four problems:
    1. try_lock in the basic irq_lock always succeeded.
    2. lock in the basic irq_lock always succeeded.
    3. try_lock in the wrapper irq_lock did not use the base try_lock.
    4. a foreign CPU could wrongly unlock a remote irq_lock.

These issues are mitigated in this patch.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The previous implementation suffered from four problems:
    1. try_lock in the basic irq_lock always succeeded.
    2. lock in the basic irq_lock always succeeded.
    3. try_lock in the wrapper irq_lock did not use the base try_lock.
    4. a foreign CPU could wrongly unlock a remote irq_lock.

These issues are mitigated in this patch.
</pre>
</div>
</content>
</entry>
<entry>
<title>kapi/interrupts: implement IRQ lock</title>
<updated>2026-09-29T08:43:50+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-29T08:43:50+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=c35fe2ecfe1eba2911d155ad5ade41ca18a765ff'/>
<id>c35fe2ecfe1eba2911d155ad5ade41ca18a765ff</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>kapi/interrupt: rework enablement API</title>
<updated>2026-09-29T08:41:36+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-29T08:41:36+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=e9b880648c18d3680ae10cc5660f0dbe981af5d8'/>
<id>e9b880648c18d3680ae10cc5660f0dbe981af5d8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>kapi/system: reduce panic buffer size</title>
<updated>2026-09-10T14:38:41+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-10T14:38:41+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=c63a0f8e7ed7a2d88cb24a46a6fd8e409f35756b'/>
<id>c63a0f8e7ed7a2d88cb24a46a6fd8e409f35756b</id>
<content type='text'>
Previously, we allocated a 512-byte buffer for every call of the
formatted panic function. This was heavily increasing the stack size for
a number of functions.

We now don't print to a statically allocated buffer, but rather use the
iterator-based formatting facility and a proxy iterator with a small,
self-flushing buffer. This reduces that static overhead of the formatted
panic function to by almost 500 bytes, while increasing possible message
fidelity, since we are not longer arbitrarily limited by the buffer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, we allocated a 512-byte buffer for every call of the
formatted panic function. This was heavily increasing the stack size for
a number of functions.

We now don't print to a statically allocated buffer, but rather use the
iterator-based formatting facility and a proxy iterator with a small,
self-flushing buffer. This reduces that static overhead of the formatted
panic function to by almost 500 bytes, while increasing possible message
fidelity, since we are not longer arbitrarily limited by the buffer.
</pre>
</div>
</content>
</entry>
<entry>
<title>kernel: replace some more plain pointers</title>
<updated>2026-09-10T13:08:37+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-10T13:08:37+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=3ce0197e99ecea7be66decc2c3c6f785497ef862'/>
<id>3ce0197e99ecea7be66decc2c3c6f785497ef862</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>kstd/memory: introduce observer_ptr casts</title>
<updated>2026-09-10T12:33:19+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-10T12:33:19+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=14ec8e92b45a2eae5bdb3d459cee9633ea129359'/>
<id>14ec8e92b45a2eae5bdb3d459cee9633ea129359</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>x86_64: replace raw pointers with observer_ptr</title>
<updated>2026-09-10T06:53:57+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-10T06:53:57+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=5449acc193f96d2ffaeb224aad5cea16bf753cdb'/>
<id>5449acc193f96d2ffaeb224aad5cea16bf753cdb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: replace some naked pointers</title>
<updated>2026-09-09T21:02:20+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-09T21:02:20+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=b99b79d8080cc1491f96069677d9ce0b7775a4f0'/>
<id>b99b79d8080cc1491f96069677d9ce0b7775a4f0</id>
<content type='text'>
The coding guidelines explicitly prohibit the use of "naked"/C-style
pointers. However, there were some prominent examples in the kapi and
the core kernel source. This changeset replaces them with the
appropriate smart pointer types.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The coding guidelines explicitly prohibit the use of "naked"/C-style
pointers. However, there were some prominent examples in the kapi and
the core kernel source. This changeset replaces them with the
appropriate smart pointer types.
</pre>
</div>
</content>
</entry>
</feed>
