In 2000, I wrote a Linux device driver that “decrypted” the output of a certain device, and my company, which hosted open-source projects, agreed to host it.
The “encryption” was only a XOR, but that was enough for the maker of said device to sue my company under 17 U.S.C. § 1201 for hundreds of millions in damages.
The story got a lot of press back then because it highlighted how stupid the then-new DMCA was, and also because there was a David open-source enthusiasts vs. Goliath heartless corporation flavor to it.
Our lawyer decided to pick up the fight to generate free publicity for our fledgling company. For discovery, the maker of the device requested “a copy of any and all potentially infringing source code”. They weren’t specific and they didn’t specify the medium.
So we printed the entire Linux kernel source code including my driver in 5-pt font and sent them the boxes of printouts. Legally they had been served, so there was nothing they could do about it.
iOS doesn’t have any Linux.
FreeBSD is not Linux. Linux is a kernel and Apple uses Mach, a different kernel. They do both share that they’re POSIX, but OS X is actual, factual, UNIX, and Linux has never paid the money to qualify.
My bad I’m conflating bash and Unix. From my end both apple and Linux use bash so they have the same underlying base…but I realize that’s not accurate, and even unix and bash are not synonomous.
How different is the FreeBSD kernel from the Linux kernel?
Like in terms of interfaces, if I were to port a device driver, am I just changing some header files and some constants/enums/ifdefs?
Or there’s like entirely different function signatures / APIs?
I would look at the source of LinuxKPI to get an idea of how different they are.