Solved Does FreeBSD follows POSIX or Single Unix Specification?

I know FreeBSD is Unix-like operating system. But it is also a descendent of BSD. System V and macOS took some feature from BSD, and Single Unix Specification includes some BSD features. Does FreeBSD follows Posix and SUS? If it does, what version and why it doesn't get certification? Is it because of fee?
 
I know FreeBSD is Unix-like operating system. But it is also a descendent of BSD. System V and macOS took some feature from BSD, and Single Unix Specification includes some BSD features. Does FreeBSD follows Posix and SUS? If it does, what version and why it doesn't get certification? Is it because of fee?
The certification doesn't mean much today. It's just a piece of paper and money-maker for The Open Group that certifies UNIX system or provides certification for UNIX engineers. Most companies don't care about it as long as their UNIX variant system works as expected. Sure those UNIX certificate may say you know this and that... but it doesn't teach you how to fix a server that crashed at 2 AM and need to get the server back online by 8 AM before business opens or you're fired. There are so many scenarios that server fails that UNIX certification doesn't cover or train you for so its practically useless. It may be good getting your foot in the door for job interviews but most UNIX engineers who does the interviews don't have certificate either.
 
1. SUS, POSIX : tomato, tomahto in my humble opinion.
2. SUS/UNIX is 21th century version of the Don Quixote.
3. Still interested in SUS? EulerOS. It must be authentic!

[EDIT] To clarify: I think POSIX is all that matter.
 
I know FreeBSD is Unix-like operating system. But it is also a descendent of BSD.
A "descendent of"? Sure, in some sense that's true ... it contains some of the CSRG code that used to be distributed under the name "BSD" (as opposed to 386BSD, BSDi, *BSD, Tahoe, Lite, ...).
On the other hand, I could also say that FreeBSD is BSD. It contains the most people and the most code from the original BSD distribution.
But really, those discussions are pointless.

Does FreeBSD follows Posix and SUS?
For the most part yes. Read the documentation, read man pages, it clearly follows as closely as it can in practice, given the limited manpower.

If it does, what version and why it doesn't get certification? Is it because of fee?
The amount of money and manpower required for certification is immense, compared to the total budget of the FreeBSD project.

And there is no practical benefit any longer. Look at it this way: What is the market share of non-desktop non-mobile operating systems? I think Linux is around 2/3, the rest is Windows. In the largest government computer purchases (supercomputers), Linux has had 100% market share for the last 3-4 years. All other operating systems are in the single-digit percent (most are likely below a percent). And neither Linux nor Windows have official Posix or Unix certification (with the exception of one rare and hardly sold RedHat derivative). So getting certification accomplishes nearly nothing.

There are still some traditionalist customers who insist on certification (typically found in financial and industrial usage). They use AIX or HP-UX today. They would probably never use FOSS anyway, since certification is part of a much larger package: they typically buy systems (not OSes, but whole systems) with extensive support and service contracts, contractual performance guarantees, indemnification clauses.

If any FOSS operating system could benefit from certification, you would have long seen the well-funded entities (SUSE, RedHat) go after it.
 
Last edited:
My pet peeve with Linux is that they flippantly go against POSIX for no real reason. I.e useful tools like netcat (nc) are not present in many installs. It all leads to one of Linux's biggest flaws; being tied to the internet to slurp from a large central package repo. The GNU form of DRM ;)

You also see things like this:


Removing ed, which is useful for scripting and required by POSIX just because "I don't think anyone would find it shocking to install a system and not have ed" is a stupid reason. Granted it is from a @freedesktop.org email and those guys have been going in the wrong direction for *years* when it comes to desktops and usability.

Long story short; POSIX and SUS is really great. Any OS which doesn't follow them is basically nothing more than a DIY or hobby OS. At the same time, the certification process is (like most certification) fairly old fashioned and broken. I think standards should be followed (with minimal exceptions) but the certification itself is really just bureaucracy and red tape. It isn't like the Java certification where there is a test suite that you can run to test implementation conformity as part of the certification.

For example I don't think C compilers need to go through the same process to say that they follow the "ANSI C" standard. So I am not sure why POSIX and SUS needs to.
 
Long story short; POSIX and SUS is really great.
Absolutely agree. About 25 years ago, when I started programming on a variety of Unix machines (NeXT, Sun, RS/6000, HP-UX, SVR4, later Linux...) simultaneously, I decided that the only way to stay sane is for my code to be programmed to the minimum standard, which was POSIX. So I stopped reading OS-specific man pages, and instead bought a series of POSIX textbooks, and I had printed copies of the standards in binders. I used those as my reference; suddenly, my porting hassles were much less bad.

I think standards should be followed (with minimal exceptions) but the certification itself is really just bureaucracy and red tape. It isn't like the Java certification where there is a test suite that you can run to test implementation conformity as part of the certification.
From a customer point of view, there is no difference between spending $$$ on a certified OS, versus spending $ or zero on an uncertified one. That's why the certification has become zero value, except for a small number of customers (who then buy AIX or HP-UX anyway).

I think the Open Group (or some POSIX organization?) actually has programmatic conformance test suites. I vaguely remember seeing them quite a few years ago, when I was a heavy user of AIX. I remember that the file system I was working on had to be run through a POSIX test suite as part of quality control acceptance testing, and that test suite was purchased (for lots of money) from some standards body.

My pet peeve with Linux is that they flippantly go against POSIX for no real reason. I.e useful tools like netcat (nc) are not present in many installs.
I don't think nc is in either POSIX or SUS standards. If some Linux distribution leaves it out, that may be a sensible choice, depending on their target audience. Remember, some Unixes were shipped without a C compiler, and while purists took umbrage to that, it was a sensible choice, given that the machine was being sold as an appliance to run canned programs on. And I just checked: nc is on all the Linux machines I logged in to.

OK, so ed is now optional in Debian, even though it's required by POSIX and SUS. Fine. Do I have a problem with that? No.

If someone wants to run Debian as an appliance: great for them. In that case, removing ed is a good idea. Not every OS needs to be POSIX/SUS compliant. I've seen so many machines that have exactly one job (like running AutoCAD or running Synoptics), and on those, installing ed or insisting on standards compliance is a waste of time and money. Having an optional package (like ed) installed just means that the user of those machines will waste more time on upgrades.

Now on a development machine, or one that runs scripts shared with other architecture? There installing ed is obviously necessary. One would hope that an intelligent user would know that.

And vigole asked: Is Windows more POSIX compliant than Linux? Indeed, it is, if you consider certification to be compliance. You can install the "Windows services for Linux" (or some similar name), and that makes Windows POSIX.1 compliant, and certified to be so. While Linux is also POSIX.1 compliant, it is not certified. And what's even better: z/OS (the modern name of the old MVS mainframe operating system, which is still sold by IBM) is actually both POSIX and SUS certified, something that few versions of Linux or *BSD have ever accomplished. I don't see that as a shortcoming of Linux or BSD. There are good commercial reasons for z/OS to get that certification, so good for them. And for most Linux distributions and for FreeBSD, there is no need to waste money on certification (they seem to sell like hotcakes without), so this also makes sense.
 
Conclusion: Following POSIX and SUS is important, but there is no need FreeBSD gets certifications by paying a lot of $money$. Thanks everyone.
 
OK, so ed is now optional in Debian, even though it's required by POSIX and SUS. Fine. Do I have a problem with that? No.

Personally, me neither but I am sure many say that they don't have a problem with removing 'ls' or 'mkdir' either (they might be Gnome 3 users for example and not care about these tools). However it would be a pain in the butt having to support these guys if half of the expected base is needing to be slurped from the repos.

If someone wants to run Debian as an appliance: great for them. In that case, removing ed is a good idea. Not every OS needs to be POSIX/SUS compliant.

Very true but some OSes do and these days I am unable to actually find a Linux Distribution that even has this aim anymore which is sad. Many have also dropped LSB. Linux is back to being a wild west like an OS from the 70s. This problem was solved ages ago with standards and Linux is regressing because it is lead by people who don't seem to remember these original problems.

Yes, oddly enough I thought nc was in the SUS spec but I cannot find where I got that information from originally. I have checked now and it doesn't make any mention of it. I can't find the tool in Debian, Alpine or CentOS (default installs). I would need to install the nmap or netcat packages to get the binary it seems.

I notice a "withdrawn" POSIX standard (or a module of it) was to provide (Motif) Xm on any conforming system. I found this quite charming. Oddly enough if that standard was still current, it would solve a *lot* of problems for me haha.
 
1. Did they use the same rationale to remove/replace "ifconfig"?
2. If they continue to make such decision, I guess in the near future, Windows WSL2 is more POSIX-compliant than Linux! Am I right?
It looks like ifconfig is not a POSIX requirement. This is still one of the more annoying Linux "features". I don't remember the rationale given, but I think it boiled down to ifconfig is old and bogus and whatever they replaced it with is new and improved.

I absolutely refuse to learn or remember anything about this brilliant new interface configuration system. It's a throwback to the bad old days when you had to remember 50 different things to work on a couple of different OSes. I always use net-tools when I'm forced to use Linux.

This is one of the reasons I've also given up on Mac. It's just become too different, and looks like it's only going to diverge further. I still have a couple of legacy machines around, but my next laptops are going to be Puri.sm or System 76.
 
A "descendent of"? Sure, in some sense that's true ... it contains some of the CSRG code that used to be distributed under the name "BSD" (as opposed to 386BSD, BSDi, *BSD, Tahoe, Lite, ...).
On the other hand, I could also say that FreeBSD is BSD. It contains the most people and the most code from the original BSD distribution.
But really, those discussions are pointless.


For the most part yes. Read the documentation, read man pages, it clearly follows as closely as it can in practice, given the limited manpower.


The amount of money and manpower required for certification is immense, compared to the total budget of the FreeBSD project.

And there is no practical benefit any longer. Look at it this way: What is the market share of non-desktop non-mobile operating systems? I think Linux is around 2/3, the rest is Windows. In the largest government computer purchases (supercomputers), Linux has had 100% market share for the last 3-4 years. All other operating systems are in the single-digit percent (most are likely below a percent). And neither Linux nor Windows have official Posix or Unix certification (with the exception of one rare and hardly sold RedHat derivative). So getting certification accomplishes nearly nothing.

There are still some traditionalist customers who insist on certification (typically found in financial and industrial usage). They use AIX or HP-UX today. They would probably never use FOSS anyway, since certification is part of a much larger package: they typically by systems (not OSes, but whole systems) with extensive support and service contracts, contractual performance guarantees, indemnification clauses.

If any FOSS operating system could benefit from certification, you would have long seen the well-funded entities (SUSE, RedHat) go after it.
I am sorry but no. Terry Lambert, the one that made the changes of macOS to get it UNIX03 compliant has estimated a year's work to make FreeBSD UNIX03 and POSIX compliant. He mentions the ports tree as the main culprit.

Being POSIX compliant (not just compatible) implies that the standard C/C++ headers are in the same paths/directories so the code just can be compiled in any POSIX compliant system without any changes. That what the US government goal in the first place when they created the POSIX specification.

Despite being UNIX descendant, cannot be named as a UNIX because it does not comply with the SUS or POSIX. It is compatible to some degree but works needs to be done. It is not just to pay and you get the certification.
 
I am sorry but no. Terry Lambert, the one that made the changes of macOS to get it UNIX03 compliant has estimated a year's work to make FreeBSD UNIX03 and POSIX compliant. He mentions the ports tree as the main culprit.
More like "about a year and a half", and "with a dozen co-conspirators to run the changes through." He also mentions he charged Apple $20 million for this work, and that was back in the early 2000s. Have you seen the Freebsd Foundation's budget?
 
with the exception of one rare and hardly sold RedHat derivative

I assume referring to Inspur's K-UX and/or Huawei's EulerOS. I wonder how much the work cost in order to adhere to a UNIX standard if Apple's work cost ~$20 mil? I would have thought that a predominantly BSD derived userland (and BSD kernel derived service in the Mach (semi-)microkernel) was much closer as a start.
 
You're not wrong. Terry Lambert estimated 5 years to make a Linux compliant with the UNIX specification.
Interesting. Though at least with FreeBSD, it would also be a one time thing. With Linux, the UNIX compliance is probably already broken again ?
 
More like "about a year and a half", and "with a dozen co-conspirators to run the changes through."
Let's assume his number (which is by now ~20 years old) is still accurate. 1-1/2 years x dozen software engineers x 1/4 M$ per software engineer per year = 4.5 M$. Given that the complexity of the system has increased, we should probably bump it up a little bit.

For a large organization (IBM, Oracle, Microsoft, the Linux Foundation ...), this is the change they find underneath the sofa cushion. Large companies (which include Boing, General Motors, ... plus the above OS companies, plus large computer users such as the FAANG) typically have many tens of thousands up to low hundreds of thousands of software engineers among their employees. So using a dozen of them for a 1-1/2 year project is barely relevant.

The budget of the FreeBSD foundation is in the low M$. The total number of people doing work on FreeBSD (both base and kernel, and the ports) is probably several dozen, if you count the part-time volunteers only for their "part". No way you could spare a dozen engineers out of that for a certification that would be nearly or mostly pointless.
 
I think the way to put it is: FreeBSD aims for POSIX compliance (but certainly not certification). And IMHO, it does a better job there than e.g. GNU/Linux. Just remembering this weird Linux bug where select(2) and friends "might report a file descriptor as ready to read although a subsequent read() would block" ?

I don't doubt the amount of work and money necessary to reach full compliance and have it certified. As already mentioned a few times, it can't be a goal of the project, the cost outweighs the gain a lot too much.

What confuses me is the claim that the ports tree would be a major culprit. :-/ AFAIK, POSIX doesn't have much to say about how 3rd-party software should be built, packaged and installed? So, how is this possible?

edit: For why it's not worth the money to get POSIX certified, also take into account that POSIX is aging, and didn't catch up. This gets painfully obvious talking about services that should scale to "millions" of concurrent clients. POSIX specifies select() and poll() for I/O-multiplexing. Both have more-or-less hard scalability limits. Meanwhile, lots of OS-specific solutions are available and "compete", like FreeBSD's kqueue, Linux' epoll, Windows' IOCP, .... it's probably too late to standardize something here. :(
 
I absolutely refuse to learn or remember anything about this brilliant new interface configuration system. It's a throwback to the bad old days when you had to remember 50 different things to work on a couple of different OSes. I always use net-tools when I'm forced to use Linux.

Unless of course the absence of ifconfig prevents you from retrieving the net-tools package :)
 
For a large organization (IBM, Oracle, Microsoft, the Linux Foundation ...), this is the change they find underneath the sofa cushion. Large companies (which include Boing, General Motors, ... plus the above OS companies, plus large computer users such as the FAANG) typically have many tens of thousands up to low hundreds of thousands of software engineers among their employees. So using a dozen of them for a 1-1/2 year project is barely relevant.

It's not that simple. At the level of individual groups a group inside Google fights for every single seat the same way as a smaller company. 12-18 person-years will be significantly difficult to extract.

What I want is access to the POSIX testing suite for FreeBSD. Not to certify it, just as a general regression test suite.
 
Back
Top