<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kmi/src/uapi/dispatch.c, branch master</title>
<subtitle>ACTIVE - Kernel with migrating threads as IPC</subtitle>
<id>https://metanimi.dy.fi/cgit/kmi/atom?h=master</id>
<link rel='self' href='https://metanimi.dy.fi/cgit/kmi/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/'/>
<updated>2026-01-25T15:14:53Z</updated>
<entry>
<title>implement dmem semi-properly</title>
<updated>2026-01-25T15:14:53Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2026-01-25T15:14:53Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=cd41ed1758f4842d7b78870385e16b579cc89c38'/>
<id>urn:sha1:cd41ed1758f4842d7b78870385e16b579cc89c38</id>
<content type='text'>
+ Add tests and fix virtual mapping, this is enough to start writing
  proper userspace drivers
</content>
</entry>
<entry>
<title>improve killing processes/threads, test</title>
<updated>2024-08-26T15:51:10Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-08-26T15:51:10Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=b25156373cd89792b1c457b77699bb7f9beb430d'/>
<id>urn:sha1:b25156373cd89792b1c457b77699bb7f9beb430d</id>
<content type='text'>
+ Remove sys_kill() as we should be using a two-stage process where a
  thread is first orphaned by sys_detach(), and then the thread itself
  calls sys_exit() after it has done all necessary cleanup in init.
</content>
</entry>
<entry>
<title>add ipc_notify testcase, remove ipc_ghost</title>
<updated>2024-08-22T11:57:14Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-08-22T11:57:14Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=c3ea570bae8f7daeac8e0614a958e983fcf9940e'/>
<id>urn:sha1:c3ea570bae8f7daeac8e0614a958e983fcf9940e</id>
<content type='text'>
+ A bit easier to implement just ignoring the ipc_resp() arguments than
  try to enforce that a notification is exited from by ipc_ghost(),
  especially in cases where the root process has been killed.
</content>
</entry>
<entry>
<title>change sys_ret handling to always include id</title>
<updated>2024-08-22T10:19:50Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-08-22T10:19:50Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=66b39eb7ce9605cbb70defdca7f0eb144855ddcd'/>
<id>urn:sha1:66b39eb7ce9605cbb70defdca7f0eb144855ddcd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add malloc test</title>
<updated>2024-08-21T20:31:48Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-08-21T20:31:48Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=97ffab0a8472981b927d0f4e81bb72f6ecd69b86'/>
<id>urn:sha1:97ffab0a8472981b927d0f4e81bb72f6ecd69b86</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add ipc_tail()</title>
<updated>2024-07-18T14:39:15Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-07-18T14:39:15Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=f9e23e6e41068d63d42f950941c3d2fc155ef21c'/>
<id>urn:sha1:f9e23e6e41068d63d42f950941c3d2fc155ef21c</id>
<content type='text'>
+ ipc_kick() does a forward and a tail at the same time

  The idea with ipc_tail() is to allow 'trusted' calls, so for example a
  process is not allowed to willy-nilly open a file, as it has to go via
  init(), making the eid 1. This way the receiver can know that the
  request has gone through init() and can open up a new connection
  (file, whatever) after which requests from that pid/tid are allowed
  without init() intervention
</content>
</entry>
<entry>
<title>start working on tests</title>
<updated>2024-07-09T19:12:27Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-07-09T19:12:27Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=e8a1df103cc28419dd7d4439c0b1d1739d110f78'/>
<id>urn:sha1:e8a1df103cc28419dd7d4439c0b1d1739d110f78</id>
<content type='text'>
+ Current setup will likely not last long, just a stopgap until I figure
  out how I want to build each testcase etc.

  Probably dir based, but I'll probably add some scripts that generate
  the build rules for each test case (or binary?). Also, should probably
  put ouput files in a build directory and keep the source clean, but
  again, good enough for now.

  Will have to start implementing more extensive tests, and probably
  come up with some way to compare textual output etc.
</content>
</entry>
<entry>
<title>add req_page back in as I realized it's useful</title>
<updated>2024-07-07T18:47:14Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-07-07T18:47:14Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=219c27d420fe0abe5515cefc2513c6fe60aafdf9'/>
<id>urn:sha1:219c27d420fe0abe5515cefc2513c6fe60aafdf9</id>
<content type='text'>
+ Can be used to pass contiguous memory regions to things like virtio
  block devices for implementing disk drivers etc.
</content>
</entry>
<entry>
<title>make executable entrypoint universal callback</title>
<updated>2024-07-07T15:12:55Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-07-07T15:12:55Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=fe4c623cb9320226866829317cea8ba0c49e7dbc'/>
<id>urn:sha1:fe4c623cb9320226866829317cea8ba0c49e7dbc</id>
<content type='text'>
+ Effectively means that all executables can be called into, but if an
  exe doesn't want to deal with anyone else it should just set a flag
  like `not_really_a_server` or whatever
</content>
</entry>
<entry>
<title>pretty massive virtual memory rewrite</title>
<updated>2024-07-06T15:14:04Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-07-06T15:14:04Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=76517486919657ecadda9867125dc6730f29a5b7'/>
<id>urn:sha1:76517486919657ecadda9867125dc6730f29a5b7</id>
<content type='text'>
+ The system is now a bit simpler and hopefully easier to understand, while also
  extending the shared memory to be 1:N, where there is one owner who
  may become a zombie while waiting for the N to die.
</content>
</entry>
</feed>
