|
1) Desktop, many thousands of remote severs 2) Poor interactions with Linus, DaveM, and the Linux community (see below) 3) Performance 4a) A different package system, more akin to Ubuntu LTS with PPAs, so we could have stable packages for 99% of things, but could get the latest versions of software when needed. 4b) ebpf/xdp 5) Missing ^T (SIGINFO) support, simple init system, a kernel that makes sense 2 extended:
In 1994, I was a linux fanatic, with a stack of floppies I'd use to install linux on any pc I could get my hands on. I landed a job as a sysadmin for a stats dept, where we were using ancient DECstations running ULTRIX. Disk space was expensive, and TeX fonts were large. So we kept TeX fonts centrally located in NFS. The DECstations were old and slow compared to PCs (12.5MHz mips, vs 66Mhz 486), so I wanted to replace them with PCs running Linux. The problem came that it took the DECs ~1 second to render latex .dvi file using xdvi. It took a linux box a minute or more. This was because the DECs did NFS file caching, while Linux didn't, and xdvi seeked around at random in the font files. I went to the 1994 Boston USENIX and met Linus at the Linux BOF. I asked him about NFS file caching. He said something like "bah, nobody uses NFS, we have no plans to implement any sort of NFS caching, its not important".. So I got up, went to the FreeBSD BOF, and they said it should work just fine. I've been a FreeBSD user ever since. Then ~10 years later, working for a company making one of the first 10GbE NICs, I had submitted our base driver and got it accepted via the netdev list. I then completed work on TCP LRO in our driver, submitted that, and got it NACK'ed for the reasonable reason that they didn't want to have multiple LRO implementations. EVEN THOUGH OUR COMPETITOR'S DRIVER HAD THEIR OWN LRO IN THEIR DRIVER, AND ANOTHER VENDOR SUBMITTED A DRIVER WITH THE BASE DRIVER AND LRO IN THE SAME PATCH AFTER US AND GOT IT ACCEPTED, AND THEY DIDNT RIP LRO OUT OF THE OTHER DRIVERS. So our driver had dog-shit performance out of the box due to a lack of LRO as compared to 2 of our competitors. At that point I was pretty much done with Linux. Compared to FreeBSD, where we had the best LRO in our driver, and a few other vendors copy/pasted it, and it wound up eventually being centralized as tcp_lro.c and driver-specific LRO ripped out. |