<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pub/teachos/kernel.git/arch/x86_64, branch develop</title>
<subtitle>An educational OS kernel</subtitle>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/'/>
<entry>
<title>x86_64: remove unused include</title>
<updated>2026-09-10T06:57:57+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-10T06:57:57+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=2b98a55d1f85684e525386dc27519d83d0b34e50'/>
<id>2b98a55d1f85684e525386dc27519d83d0b34e50</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>
<entry>
<title>build: enable strong stack protector</title>
<updated>2026-09-05T11:19:25+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-05T11:19:25+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=9f544dea5dbcdb92f614c6092a60e81d3398b8da'/>
<id>9f544dea5dbcdb92f614c6092a60e81d3398b8da</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: stop loading uninitialized data</title>
<updated>2026-09-05T09:27:44+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-05T09:27:44+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=c0b2173d6b6c4587d1df3e8ea992ee19c9ff4418'/>
<id>c0b2173d6b6c4587d1df3e8ea992ee19c9ff4418</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/cpu: improve stack overflow detection</title>
<updated>2026-09-05T09:21:18+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-05T09:18:38+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=3eb72bb6bc7446df3e34bd990cb84a0b8178b9cd'/>
<id>3eb72bb6bc7446df3e34bd990cb84a0b8178b9cd</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/cpu: fix asm input constraint</title>
<updated>2026-09-04T20:10:44+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-04T20:10:44+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=ccd0a1ca865d3b640f902945df84bb2be388a755'/>
<id>ccd0a1ca865d3b640f902945df84bb2be388a755</id>
<content type='text'>
The "X" constraint tells GCC that any operand whatsoever is valid to be
placed in the assembler template. This makes no sense in this case,
since that would allow for the exact expression to be inserted. If that
happens, which it does when `-Og` is active, GCC is unable to assemble
that template.

The correct constraint is forcing the value into a register.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The "X" constraint tells GCC that any operand whatsoever is valid to be
placed in the assembler template. This makes no sense in this case,
since that would allow for the exact expression to be inserted. If that
happens, which it does when `-Og` is active, GCC is unable to assemble
that template.

The correct constraint is forcing the value into a register.
</pre>
</div>
</content>
</entry>
<entry>
<title>x86_64/boot: reduce kernel stack size to 8 KiB</title>
<updated>2026-09-04T19:04:24+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-04T19:04:24+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=c6d5c461ff8ec1d8361c477a4318491755a24235'/>
<id>c6d5c461ff8ec1d8361c477a4318491755a24235</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/cpu: handle #DF inside the arch code</title>
<updated>2026-09-04T18:25:14+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-04T18:25:14+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=f00223b5cc99a8f3f1b6a15658d8c854c177932a'/>
<id>f00223b5cc99a8f3f1b6a15658d8c854c177932a</id>
<content type='text'>
A double fault is a very x86-64 specific type of exception and not
recoverable in a generalized way. Thus we should handle it internally,
with handling currently being triggering a panic, and not forward it to
the architecture-independent kernel layer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A double fault is a very x86-64 specific type of exception and not
recoverable in a generalized way. Thus we should handle it internally,
with handling currently being triggering a panic, and not forward it to
the architecture-independent kernel layer.
</pre>
</div>
</content>
</entry>
<entry>
<title>x86_64/cpu: use IST1 as the stack for #DF</title>
<updated>2026-09-04T18:24:06+00:00</updated>
<author>
<name>Felix Morgner</name>
<email>felix.morgner@ost.ch</email>
</author>
<published>2026-09-04T18:24:06+00:00</published>
<link rel='alternate' type='text/html' href='http://source.arknet.ch/pub/teachos/kernel.git/commit/?id=a5848c037e6e681d586312ddddddd200b9f7a5b0'/>
<id>a5848c037e6e681d586312ddddddd200b9f7a5b0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
