any non-license differences between POSIX compliant kernels?

Talk about anything and everything not related to this site or the Dreamcast, such as news stories, political discussion, or anything else. If there's not a forum for it, it belongs in here. Also, be warned that personal insults, threats, and spamming will not be tolerated.
Post Reply
spiroth10
Mental DCEmu
Mental DCEmu
Posts: 304
https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
Joined: Mon Sep 01, 2003 4:57 pm
Has thanked: 0
Been thanked: 0

any non-license differences between POSIX compliant kernels?

Post by spiroth10 »

by POSIX compliant kernels, I mainly am talking about HURD, BSD, Linux, UNIX, and Darwin...

how do any of these differ in capabilites and ability? How are any of them actually BETTER then the others?

I havent really noticed much difference at all, myself...
BlackAura
DC Developer
DC Developer
Posts: 9951
Joined: Sun Dec 30, 2001 9:02 am
Has thanked: 0
Been thanked: 1 time

Post by BlackAura »

POSIX only requires that certain functionality is available, and that it works in a certain way. It is possible, for example, to run a POSIX subsystem on Windows NT systems (like Windows 2000 or Windows XP Pro), even though the kernel is absolutely nothing like a Unix.

In theory, from the point of view of a program, there is no difference at all. If you write a program adhering to the POSIX standards, it will run identically in any POSIX compliant environment.

The main differences are in the implementation of the system, and the extra stuff that's not part of the POSIX spec. POSIX doesn't specify, for example, that the environment has to be a Unix (both Windows NT and QNX have POSIX environment, but are nothing at all like a Unix, and the HURD's kernel is also radically different). It also doesn't specify things like access to certain hardware devices, doesn't specify a kind of standard binary interface (so you can't run Solaris binaries on a FreeBSD system, for example), and there's a whole heap of extra functionality that's not part of the POSIX spec that is provided by certain systems.

Have a look, for example, at the entire set of GNU software, which forms the base of most Linux systems. Although it's pretty much POSIX compliant, virtually every program there has additions to the POSIX standard, such as long command line options (like --help instead of -h), bash has far more capabilities than a standard POSIX sh, and basic system tools like awk or grep have significant feature changes. But, if you compare that to a BSD system, or a commercial Unix such as Solaris or AIX, you'll find that they have very little functionality above the basic POSIX spec, especially Solaris. Solaris's shell, for example, is irritatingly limited (no tab completion, no line editing, absolutely no extensions whatsoever).

There are also some common extensions which are implemented differently from system to system. The /proc directory is a good example. I can't remember which Unix first implemented it, but it provides a way to get information about the running processes, so that programs like top or ps don't have to have root privlages, and don't have to read the information directly out of the kernel. At some point Linux got something similar, although it evolved to contain a lot of other information about the running system, kernel paramaters, devices, and other stuff.
Post Reply