Okay, say I make the "sockets" function so that when someone says #include <sockets.h>, their code actually works and allows networking. Now at some point, every call it makes has to be turned into assembly langauge. So first of all it has to make some call to the kernel interface to write to and read from the /dev entry associated with the NIC. But for the compiler to work, it has to have object code for any calls I make to do that. If you follow the trail of code down, every call has to come down to assembly at some point. Has this been done already? And about circular references, it seems like the only way to avoid them is to not make any calls to other higher level API classes or functions. The only calls should be to things like iofstream.h, open(), close(), ioctl(), etc. I guess I'm very foggy on how drivers, modules, API classes/functions, and the rest, all work together. And will we be able to use BeIDE to make OBOS code, by just plugging in the OBOS libs and changing the folders that BeIDE looks in for various include statements? Clay >Naturally, at some point some very low-level code is going to get >executed. But the vast majority of the code doesn't need to do that (at >least not directly). Certainly, you have to look out for circular >dependencies, but the BeAPI is pretty cleanly designed, so this really >isn't a big issue. There is no "new angle" here; it's really very >straight-forward C and C++ programming. >I'm actually a bit confused about what you're confused about. ;)