{"id":1475,"date":"2026-09-02T22:00:43","date_gmt":"2026-09-02T11:00:43","guid":{"rendered":"https:\/\/securelang.net\/cms\/?p=1475"},"modified":"2026-09-02T22:03:37","modified_gmt":"2026-09-02T11:03:37","slug":"cleanfork-origins-microkernel","status":"publish","type":"post","link":"https:\/\/securelang.net\/cms\/blog\/2026\/09\/02\/cleanfork-origins-microkernel\/","title":{"rendered":"CleanFork Origins Microkernel"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">The Goal<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">While developing OS kernels for new platforms is &#8220;fun&#8221;, it is also time consuming and doesn&#8217;t pay very well at this stage. So I decided to start a second brand, separate to my SL\/RD project (except in possible future crossovers) to offer some solutions for legacy hardware and for retro rebuilds.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So I registered a domain CleanFork.org (which isn&#8217;t configured yet) to initially host working builds of open-source operating systems for old PCs (x86).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The First Attempt<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I didn&#8217;t want my efforts to be for nothing, so I initially began by porting some small but new software packages to MINIX and then attempting a &#8220;clean&#8221; rebrand with the aim of developing a serious OS build for old PCs&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It worked, initially, but I probably focused on the wrong things for building a real OS &#8211; and after a few internal release tests part way through testing a rebrand of the base system the builds became unstable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Result<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/SecureLang.net\/release\/OriginsMK-3.1.8p01.zip\">https:\/\/SecureLang.net\/release\/OriginsMK-3.1.8p01.zip<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">New plan and &#8220;stable&#8221; builds. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of new tools and a full rebrand I instead aimed for a stable\/supportable build of the 3.1.x branch. This build only includes a few trivial changes to the upstream codebase:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A notice at boot in \/usr\/src\/kernel\/main.c to confirm that this is a third party build (this build is not the official MINIX builds, and not endorsed by the original team)<\/li>\n\n\n\n<li>Added \/usr\/src\/DISTRO-NOTES and \/usr\/src\/DISTRO-CHANGES documenting how the build was made (but missing some final notes about VM images)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Final Notes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Working with VM images and finding the right VM settings for builds was initially a challenge with my first attempt, as writing .iso files is easier in QEMU (but this is slower on my current setup). So I instead switched to VirtualBox and &#8220;dd&#8221; the final iso.bz2 file to a QCOW image file then use the QEMU tools and bunzip2 to convert it back to a working .iso file. This process feels incredibly stupid but is actually much faster than my initial approach.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Note that the target device to write to also seems to differ based on which VM is in use.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also note that the license terms of MINIX (which should be included in the release) may prevent name-dropping the origins of the code in corporate promos, but the original developer has previously said he&#8217;d prefer if businesses (like Intel) mentioned that they were using it. So this is part of the reason I&#8217;ve tried to just take a common sense approach, mentioning the original system in early forks and leaving most internal branding untouched in this version while choosing an unrelated naming scheme for commercially supported\/modern builds.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Goal While developing OS kernels for new platforms is &#8220;fun&#8221;, it is also time consuming and doesn&#8217;t pay very well at this stage. So I decided to start a second brand, separate to my SL\/RD project (except in possible future crossovers) to offer some solutions for legacy hardware and for retro rebuilds. So I [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1475","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/posts\/1475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/comments?post=1475"}],"version-history":[{"count":3,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/posts\/1475\/revisions"}],"predecessor-version":[{"id":1478,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/posts\/1475\/revisions\/1478"}],"wp:attachment":[{"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/media?parent=1475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/categories?post=1475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/tags?post=1475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}