{"id":620,"date":"2026-02-23T12:00:00","date_gmt":"2026-02-23T17:00:00","guid":{"rendered":"https:\/\/www.freesoft.org\/blogs\/soapbox\/debugging-a-microkernel-with-ai-agents\/"},"modified":"2026-02-23T12:00:00","modified_gmt":"2026-02-23T17:00:00","slug":"debugging-a-microkernel-with-ai-agents","status":"publish","type":"post","link":"https:\/\/www.freesoft.org\/blogs\/soapbox\/debugging-a-microkernel-with-ai-agents\/","title":{"rendered":"Debugging a Microkernel with AI Agents"},"content":{"rendered":"<p>In less than a week, we used Claude Code \u2014 Anthropic&#8217;s agentic command-line tool \u2014 to find and fix seven bugs in GNU Mach&#8217;s x86_64 SMP support, bringing the kernel test suite from 1\/11 passing to 14\/14 with two CPUs.<\/p>\n<p>Along the way, we built a task runner system to orchestrate multiple AI agents as background processes and tracked their work in SQLite. All of this ran on a $100\/month Claude subscription.<\/p>\n<p>The paper covers what AI agents are, the GNU Mach project context, how human-AI interactive sessions worked, the task runner architecture, a detailed walkthrough of all seven kernel bugs found and fixed, cost analysis, and reflections on what worked and what didn&#8217;t.<\/p>\n<p><a href=\"https:\/\/www.freesoft.org\/Papers\/debugging-microkernel-with-ai-agents.pdf\">Download the full paper (PDF)<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In less than a week, we used Claude Code \u2014 Anthropic&#8217;s agentic command-line tool \u2014 to find and fix seven bugs in GNU Mach&#8217;s x86_64 SMP support, bringing the kernel test suite from 1\/11 passing to 14\/14 with two CPUs. Along the way, we built a task runner system to orchestrate multiple AI agents as &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.freesoft.org\/blogs\/soapbox\/debugging-a-microkernel-with-ai-agents\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Debugging a Microkernel with AI Agents&#8221;<\/span><\/a><\/p>\n","protected":false},"author":337454,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","footnotes":""},"categories":[1],"tags":[],"series":[],"class_list":["post-620","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"episode_featured_image":false,"episode_player_image":"https:\/\/www.freesoft.org\/blogs\/soapbox\/wp-content\/uploads\/2021\/03\/brent-300x300-1.jpeg","download_link":"","player_link":"","audio_player":false,"episode_data":{"playerMode":"dark","subscribeUrls":{"apple_podcasts":{"key":"apple_podcasts","url":"","label":"Apple Podcasts","class":"apple_podcasts","icon":"apple-podcasts.png"},"google_podcasts":{"key":"google_podcasts","url":"","label":"Google Podcasts","class":"google_podcasts","icon":"google-podcasts.png"},"spotify":{"key":"spotify","url":"","label":"Spotify","class":"spotify","icon":"spotify.png"},"stitcher":{"key":"stitcher","url":"","label":"Stitcher","class":"stitcher","icon":"stitcher.png"}},"rssFeedUrl":"https:\/\/www.freesoft.org\/blogs\/soapbox\/feed\/podcast\/the-soapbox","embedCode":"<blockquote class=\"wp-embedded-content\" data-secret=\"BRKYpcU0k8\"><a href=\"https:\/\/www.freesoft.org\/blogs\/soapbox\/debugging-a-microkernel-with-ai-agents\/\">Debugging a Microkernel with AI Agents<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/www.freesoft.org\/blogs\/soapbox\/debugging-a-microkernel-with-ai-agents\/embed\/#?secret=BRKYpcU0k8\" width=\"500\" height=\"350\" title=\"&#8220;Debugging a Microkernel with AI Agents&#8221; &#8212; freesoft.org\" data-secret=\"BRKYpcU0k8\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/www.freesoft.org\/blogs\/soapbox\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n"},"_links":{"self":[{"href":"https:\/\/www.freesoft.org\/blogs\/soapbox\/wp-json\/wp\/v2\/posts\/620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.freesoft.org\/blogs\/soapbox\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.freesoft.org\/blogs\/soapbox\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.freesoft.org\/blogs\/soapbox\/wp-json\/wp\/v2\/users\/337454"}],"replies":[{"embeddable":true,"href":"https:\/\/www.freesoft.org\/blogs\/soapbox\/wp-json\/wp\/v2\/comments?post=620"}],"version-history":[{"count":0,"href":"https:\/\/www.freesoft.org\/blogs\/soapbox\/wp-json\/wp\/v2\/posts\/620\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.freesoft.org\/blogs\/soapbox\/wp-json\/wp\/v2\/media?parent=620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.freesoft.org\/blogs\/soapbox\/wp-json\/wp\/v2\/categories?post=620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.freesoft.org\/blogs\/soapbox\/wp-json\/wp\/v2\/tags?post=620"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/www.freesoft.org\/blogs\/soapbox\/wp-json\/wp\/v2\/series?post=620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}