Blogger - another week

Writing a blog last week didn't make me the most productive man in the world, but did make me more aware of my… time wastings. Because I have nothing to talk about this week, I would talk through the trouble I have with writing my OS. Talking things through helps when no progress is made, and I don't even need to pay any tutors or therapist.

One of the biggest hurdles is my unfamiliarity with C and any driver specifications. And unlike web dev with html and JavaScript, answers aren't one Google search, copy and paste away. After reading a potential solution, I need to write the code from a pseudo form, which somehow can deter me and lead me to pondering other questions I have in mind. I guess my grit was always just this much, but web dev is just that easy.

Onto the individual concepts that are still not solved for me, currently is to understand how page buffers are 4k aligned. So the starting address can only be precise to the some binary digit? Let's see, one address increment represents a word, 8 bits. 4kb, so 2k address positions? 2k in binary is, 0b11111010000. So any buffer page must start at a address with precision up to 4 zeros, and can't start anywhere else? With that said, how would I allocate memory in such a way? Using virtual memory should solve this problem, but does the host controller use virtual memory address or physical ones… a Google search later, it reveals that CPU generally only use virtual addresses. So I just have to figure out the page map situation. The basic idea is to have a 40kb memory segment to support 10 concurrent transactions. But that is bad design. Another bad idea is to allocate a heap and manually change it's mapping?...