two errors one was a missed sret at the end of a naked assemlber bit. it went to the next function in the line but those functions were related. i lost my mind trying to figure out why i was creating so many proceses, i kept looking at the process creation code and ignoring what was in front of my eyes. everytime it switched process, a new one was created application code is about logical abstractinos, os code isn't (always) about that. breaking out of that was hard one was an incorrect types on a packed struct but the struct was accesses two different ways, one was through c code, one was through assembler (where we had the address of the struct, and manually moved to different members of it, knowing what the sizes were. when those sizes were mismatched, trouble again, in an application context, it's an abstraction. the size of the variable doesn't matter, it 's practically abstracted to a get and set methods, i've spent decades learned that underlying types don't really matter, that's all the way on the other side of a proper abstraction. there is no abstraction for os programming. memory is read straight from the stack, and written back on it. when you're jumping into and out of asm, there is no abstraction it's easy to printf and see that the structs are correct to how i set them. i'm so blind to types that this took too long to debug i didn't know that the sntyax of `__attribute__((foo))` wasn't being checked, and it compile and ran with `__attribute((foo))`. im sum: i'm not an os programmer, never was, and never will be. i don't know if i'm sad about that, because it's not where my heart lies, but it was powerful to be handling data on the stack directly. debugging a java springboot injection via a config line is a matter of expertise and magic (or more realistically, knowing will blackwell, my favorite springboot expert). debugging a pile of assembler code is about reading assmbler code and moving step by step through it chatgpt was good at answering questions about riscv, and interpretted error codes. it was not good at finding bugs in code. it seemed to also follow logical-abstraction model, and didn't just look at the code to see the error. https://operating-system-in-1000-lines.vercel.app/en/