Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My theory is it was a combination of things. From my experience, Minix was the first Unix-like system I was able to run on my PC. And Linux was sort of a spiritual successor of Minix.

Then there was the fact that Linux was just a kernel, and needed a distribution to put together a working OS. Whereas BSD already was a full system. Now that would seem to favor BSD, however the userland for Linux was the GNU tools. Where BSD userland was mostly identical to other Unix systems (seeing as half of them were BSD based), GNU was (in my recollection) mostly an improvement over the standard Unix userland utilities. Furthermore since Linux was only useful if you had a distribution, a lot of distributions popped up. Now you could have a situation where BSD was more popular than any given Linux system, however the quantity of all the Linux systems ended up being more than BSD, with a lot more innovation from all the distribution creators. Each distro could specialize in a given area, you could have hobby-oriented ones, enterprise targeted, embedded... you wouldn't get that from any of the BSDs as they wouldn't have the resources to branch into all those competing specialties.



The distribution thing was key because a lot of people would not have had networked computers at the time. The first version of Linux I installed was Slackware. I downloaded 27 disk images for 3.5" floppies at the university on one of the handful of computers we had with an internet connection. I then biked home to install it. One of the disks turned out to be corrupted so, I had to take the bike back to fix that. I had no internet at home. That PC never got connected to a network. Slackware was great. It worked. I was able to get it going with the bundled documentation and some howtos that I printed at the university. Without that, I would have gotten stuck quickly.

Later, CD-ROMs became popular and I bought a red hat CD in a store. Cd burners were not that common at the time and I did not have access to one. Also, 700MB was a lot of space at the time. My hard disk was smaller than that. Red Hat came with a lot of software (more than I could actually install) and that quickly became the key selling point for distributions: lots of software and a convenient way to get it installed by people that did not necessarily have a lot of unix experience. The competition between Linux distributions was fierce. You had Slackware, Red Hat, SUSE, Debian, Mandrake, and more. Some of these were commercial companies that were making money from selling CDs. They had budgets for marketing and distribution, they payed people to write nice installers for them, they spent a lot of time testing things and fixing things that needed fixing, document things, offer support, etc.

BSD did not really compete much in that space. I never actually used it so I can't vouch for how easy or hard installing that would have been but I bet it would have been harder to install and probably did not have the same level of hardware support for the simple reason that far less people used it. I don't think I ever saw any BSD cds in the store. Was anyone even selling such cds commercially? They had the software but they lacked the distribution.


Exactly this, and then all those hyper specific pieces of Linux software would get picked between distros and eventually became common, and well, that's history. I got into Linux after it had beaten out BSD for popularity, but having ran into the BSD versions of some utils on macOS, yeah, the GNU variants are far superior in almost every regard. Darwin's variant of dd still doesn't even accept the status=progress flag(or any equivalent), for instance.


That’s valid in many cases, but the dd example isn’t really fair, because you’re comparing modern GNU to ancient BSD. I don’t know how often macOS pulls from upstream FreeBSD, but I will say that relatively recently I saw a man page in macOS that still referred to ARPANet…

Today’s FreeBSD does support status=progress as can be seen here: https://forums.freebsd.org/threads/watch-status-of-running-d...


MacOS only pulls fragments from Free/NetBSD, and in many places it's still OSFMK showing up on the surface, so sometimes you find out that you need to program as if you were on BSD 4.3 Reno still...


And that is enough to be UNIX (TM).


Ah, I was unaware (but should have assumed) it was an ancient version. Sadly, though, that's the only exposure to BSD I and many others have.


Press ctrl-T while dd is running to sent it SIGINFO. IIRC dd status=progress was added so that dd would have something like ctrl-T on non-BSD systems. Linux lacks SIGINFO so it isn’t very widely known, nor are there many 3rd party programs that support it.


On linux either SIGUSR1 or 2, I forget which, will do it too, it's mostly just an annoyance with there not being a flag for it. The only signal I can reliably remember is to quit programs...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: