[prev] [thread] [next] [lurker] [Date index for 2005/04/25]
> I got tired of hunting through a maze of twisty include files and C > pre-processor directives for the exact definitions on a Linux platform, This can be entirely automated with a script that does something like: > so just looked in K&R instead. Why would you expect a book describing the C language to tell you anything about UNIX system calls? That's an *example*. It's not even a current example. > Do they? There's *nothing* in the spec that tells me how those shorts > will be aligned. What spec? The only spec that matters is the documentation on what the particular hardware and operating system that you're using does. > If you can Hate BeOS's API because it is defined in terms of C++ > objects, I can Hate Unix just as much because it is defined in terms of > C structs. I can create a C struct easily without a C compiler. I can make a UNIX system call without having any C runtime libraries or even a working C compiler on the target system. I have done this, routinely, when I was working on Forth. I can't create a C++ method call easily without a C++ compiler. In fact, I don't just need a working C++ compiler, I need the same C++ compiler that Be uses. I need the same version of the C++ compiler, and for the same target architecture. Oh, technically I suppose I could manually decode the scrambled names and figure out how to populate the object, but it's much much harder. AND, UNIX has no more than a dozen system calls you really need to have down to get your language runtime up and working. BeOS has ... I don't know how many, but there's hundreds. For the GUI, on UNIX, you're in luck. X11 protocol is defined at the network level, so it's not an OS API it's > There are very good reasons why things like the IP header definition in > RFC 791 is laid out in terms of exactly what bit goes where - it ensures > that software written to the standard will Just Work, regardless of > language or platform. So basically you're demanding that there be a single ABI for system calls that is shared by all UNIX systems, whether they're AT&T-derived code or not? I think that's a bit much. An OS ABI is inherently hardware dependant. The difference between UNIX and BeOS here is like the difference between discovering you're out of gas a block from the gas station, and discovering that you're out of gas in the middle of the Sahara... and you don't have any local currency... and there's a war on...There's stuff above here
Generated at 01:00 on 03 May 2005 by mariachi 0.52