Posted on | February 17, 2010 | No Comments
I have realized that I am spoiled by the same standards that I was so happy to see succeed. I hate to admit it, but I now get uncomfortable in the absence of glibc or dietlibc. I get even more uncomfortable in the absence of POSIX signals and NPTL. I then think back to days where all I wanted was a good compiler and something that gave me most of C89. I don’t know if this is a bad progression, after all, its good to get used to widely used standards. It sure does hinder your sense of adventure though.
I’m in the middle of updating bdsh, the simple command line interface (that looks like a shell) I wrote for HelenOS. There’s some new bits in libc that need a convenient testing facility, additionally its now possible for tasks to inherit the parent console which means redirection will need to happen sooner than later.
Of all the things I work on, I enjoy hacking away at HelenOS the most. Its the most challenging, taking on and learning an entirely new approach to IPC, getting used to a micro kernel (again, this ain’t your daddy’s Minix!) while watching stuff like networking still take shape. Its the start of a truly modern operating system. And yet, I find myself leaning to and suggesting POSIX like behavior. If nobody thought out of the box, we wouldn’t get very far
Just because it resembles UNIX a little does not mean you are breaking the law by throwing POSIX out the window. The problem is, almost every idea I’ve had for a new kind of operating system immediately starts to resemble UNIX .. then comes the POSIX urge, my god, what a vicious cycle. Its almost like UNIX makes some kind of immutable change to your brain after you wrap your head around it.
For the rest of the year, at least in my free time, I plan to throw creature comforts and security out the window and re-discover how much fun programming actually is. I guess it comes down to would you rather learn to use a C library or implement one yourself? If the latter, who says it has to conform to POSIX even if the stuff you write with it resembles UNIX?
While I agree that a lot of new things are built on solid standards, the same standards also inhibit original thinking. After all, its your program, do what you want.