
FreeBSD Celebrates 25th Anniversary - vermaden
https://www.freebsdfoundation.org/national-freebsd-day/
======
Cieplak
I’ve been using FreeBSD in production on AWS for a few years now and it’s been
great, thanks to ZFS, jails and pf.

There are lots of different ways to configure jails, which unfortunately means
there are lots of places to get stuck.

I typically deploy to x1.* instances, which have NVMe drives. I create a zpool
of all the NVMe drives, and then mount a zfs filesystem on the zpool at
/mnt/jails. I run all my services in jails. Each jail gets its own IP address
on the host, and services are made available to the outside world using pf rdr
rules. Services in jails are allowed to access the outside network using pf
nat rules. pf makes it easy to monitor and restrict network activity for each
service.

Once you’ve configured a jail, you can snapshot it with zfs, compress the
snapshot, archive it and rsync it to other FreeBSD hosts. Once copied to other
hosts, starting the jail simply requires registering it in /etc/jail.conf and
running `service jail start $JailName`.

I’ve started documenting this and have been thinking hard about how to provide
a more generic container interface on top of this implementation. If you’re
interested in the shell scripts, I’ve started posting them here:

[https://github.com/cieplak/jz](https://github.com/cieplak/jz)

~~~
olavgg
> There are lots of different ways to configure jails, which unfortunately
> means there are lots of places to get stuck.

This is something that annoys me too, do you have any recommandations? Should
I learn to setup jails from scratch? Or settle on a single tool like ezjails?

~~~
dorian-graph
As someone who has just gone through this, I would say from scratch.

ezjails and some of the others really do seem like the definition of leaky
abstractions if you expect a nice layer on top. They're more like handy
reusable shell functions.

If you learn from scratch (which again, isn't far removed from those helper
packages), you'll have a better understanding for when you get stuck.

------
oldcynic
I am so glad I discovered FreeBSD. I've been running it since '95 and I think
2.2.5. Still detest the awful, bland 3D generated "new" logo and flat variant.
Please bring back the original.

It saved me from wasting so much money. I was in the process of giving up on
the Amiga and had just bought a top spec dual boot NT/95 machine (2x Pentium
II, Adaptec SCSI, SCSI cd writer, Seagate Cheetahs, something very expensive
for graphics and sound). It was a pile of shite that was objectively _slower_
and worse than the 040 Amiga at every task I tried. Burn a CD sir? Sure, just
don't do anything else at the same time, you _must_ disable screensavers or
receive a coaster. Move the mouse? Gosh that's brave sir.

FreeBSD gave something that wasn't brain dead, and actually worked, from that
horribly expensive failure. Made a useful home file and printer server. Gave a
similar desktop to the Suns at work. I took out a sub with CDROM.com that I
kept running until they died. I've had a BSD box as some variation of home
NAS/media server ever since.

The Amiga would surprisingly live 5 more years as daily driver (with one of
the 10k Cheetahs). Windows 2000 was actually reliable enough to use. When
retired that first BSD box had an uptime in years. Oh those simple times
before constant security updates! I'd love to have used FreeBSD as the daily
driver but software and laptop support was lacking in comparison to Windows (I
did try a time or two), and OSX that I leapt to as daily machine when it was
released. Thankfully today FreeBSD hardware support is much better.

So from chance discovery to the most reliable platform I'm ever likely to get
my hands on. Especially with jails, ZFS etc. I just wish it was a little
better known compared to Linux.

------
vermaden
I use FreeBSD on servers and desktops since 15 years.

Yes, it takes more time to create your desktop then just install Elementary OS
or Ubuntu where someone else made that for You, but once You have your
configuration files, its similar experience.

On a new box You just install it, add needed packages and put your configs in
the ${HOME} directory, same for FreeBSD, same for Ubuntu.

You will also 'lose' less time later since You will have bulletproof upgrades
with ZFS Boot Environments (sysutils/beadm) and a lot more stable environment
- no rush changes - no systemd - no ifconfig/ip problem - no netstat/ss
problem - etc.

~~~
Fnoord
A lot of this boils down to preference.

For example, I've never liked IPT and I believe the way you set up pf(.conf)
makes a lot more sense and is easier to understand. You can work somewhat
around that (and vice versa as well via pfctl) but I prefer PF. YMMV.

Things like ifconfig and ip differ per *NIX which is bloody annoying. The
macOS ifconfig and route differ a lot from the Linux one, for example adding a
default gateway in Linux and FreeBSD with the route command requires different
syntax/argument and just typing route on macOS doesn't yield the current
routes (cause logic). As much as there is a learning curve involved, iproute2
is a great solution to simplify. There's even iproute2mac for if you're
accustomed to iproute2 on Linux. It is a wrapper for ifconfig/route/etc though
advanced arguments don't work.

Systemd has the same problem iproute2 has: a learning curve of an integral
part of the OS.

As for snapshots, Windows, macOS, and Nix have that as well.

Personally, I love the macOS desktop (and Mac in general with UNIX under the
hood) but something like i3wm would also do the job. And I bet it'd run just
as great on FreeBSD.

~~~
vermaden
> A lot of this boils down to preference.

As everything in our lives, some prefer Linux, some prefer FreeBSD, some
OpenBSD, some macOS, etc.

> Systemd has the same problem iproute2 has: a learning curve of an integral
> part of the OS.

Its not the learning, its just broken and I will not waste my or your time to
discuss this again. ;)

> As for snapshots, Windows, macOS, and Nix have that as well.

Can you boot from them and preserve fully working UNMODIFIED system after
upgrade? Nope. That is the difference in ZFS Boot Environments.

I also used Mac OS X (it was called that way before it became macOS) and I
also liked it, but I feel on FreeBSD more 'at home'.

Regards, vermaden

~~~
danieldk
_Can you boot from them and preserve fully working UNMODIFIED system after
upgrade? Nope. That is the difference in ZFS Boot Environments._

You can do that with btrfs. You can make a snapshot of the whole filesystem
and set a subvolume to boot.

Another approach is taken in Team Silverblue (formerly Fedora Atomic
Workstation) [1], which uses OSTree snapshots with package layering. It stores
the system as a git-like content-addressed object store. So not only can you
boot into any version, you can guarantee that two systems are identical by
checking out the same OSTree commits.

 _I also used Mac OS X (it was called that way before it became macOS) and I
also liked it, but I feel on FreeBSD more 'at home'._

And the FreeBSD project actually cares about its UNIX user land. I am not sure
if I can say that for Apple anymore. Outdated utilities, missing man pages,
dtrace unusable by default due to SIP, etc.

[1] [https://teamsilverblue.org](https://teamsilverblue.org)

~~~
Fnoord
> And the FreeBSD project actually cares about its UNIX user land. I am not
> sure if I can say that for Apple anymore. Outdated utilities, missing man
> pages, dtrace unusable by default due to SIP, etc.

Apart from Dtrace (which you can of course run in VM) it is just a matter of
installing and using Homebrew.

~~~
danieldk
I use Homebrew, but you have to prefix most GNU utilities by 'g', unless you
are willing to 'override' Darwin's utilities by having the GNU counterparts
earlier in the path.

Besides that, Homebrew does not solve the fact that for a lot of Apple-
specific utilities, subsystems, and daemons there are no man pages.

(I do agree that Homebrew is a great project, have been using it pretty much
since its inception.)

~~~
Fnoord
> I use Homebrew, but you have to prefix most GNU utilities by 'g', unless you
> are willing to 'override' Darwin's utilities by having the GNU counterparts
> earlier in the path.

That's typical for *BSD. Examples include gcc vs cc, gmake vs make, and many
others.

------
WhyDoPeople
To think, if it weren't for the AT&T lawsuit, we may all be using FreeBSD (or
some other BSD) rather than Debian, Redhat, Ubuntu, etc.

~~~
danieldk
This is often used as a the reasoning behind the succes of Linux. But the AT&T
lawsuit was already settled in 1994. I first installed FreeBSD in 1996, long
after the settlement, and FreeBSD was a better more polished system with
ports, good documentation, etc. Remember that in Linux-land Slackware was the
most popular distribution, RPM did not exist yet, and SUSE had just rebased
their distribution from Slackware to Jurix. At the time, FreeBSD and BSD/OS
were also quite popular for servers (web, mail, DNS, etc.).

The AT&T lawsuit may have been a factor, but I think a more plausible
explanation is that the Linux ecosystem just moved faster by having short
incremental release cycles, where FreeBSD only branched from -CURRENT every
few years. So, you in FreeBSD-land you basically had to choose between
something that is unstable or something that is old.

Another factor (I think) is that the Linux ecosystem marketed itself better.
FreeBSD was a non-profit project (even though Walnut Creek supported them),
Linux had a lot of commercial vendors (Red Hat, SUSE, Caldera) that were
actively pushing boxes to book stores, etc.

~~~
phkamp
The Lawsuit was a big factor.

It was more complex than most people realize and it was unclear for some time
where it left the open source BSDs: Were we covered or not ?

One way or the other, we got sent back to "Start" (Do not collect...), and had
to spend a number of months to get from Net/2 (once it were ready) to a
working system.

And it didn't really help either that the 386BSD people felt we stole their
thunder, that caused some low-level frictioon and copyright uncertainties.

But I think the biggest reason FreeBSD "did not become Linux" is that we
didn't want it to.

We were all UNIX veterans, we wanted something stable, reliable and fast -
hence the tagline "FreeBSD - The power to serve"

Linux back then, less so now, was a paradise for hackers and experimenters,
people wrote 60% of a device driver for all sorts of crappy hardware and had
endless fun with it.

I used a car comparison a lot in those days: Linux is an open GTI, FreeBSD is
a 18-wheeler truck. The GTI is no good for haulin' \- the truck is no fun for
cruzin'

Amongst other differences, that gave Linux a much bigger mindshare in
universities and dorm rooms, but then, as now, people get to a certain age and
just want things to work.

~~~
danieldk
Thank you for the insightful reply. Very much appreciated!

------
tachion
While you're here, have you donated[0][1] yet? :) You may or may not be aware,
but FreeBSD runs your movies on Netflix, your games on PlayStation, your files
on FreeNAS and ZFS, your friends on WhatsApp and OpenBSD runs everywhere else
as OpenSSH. ;)

So, you may or may not know that, but you need FreeBSD and OpenBSD and they
also need you! Every cent counts and so does every contributor, that helps the
foundations keep their non-profit status.

Also, you CAN be the change, if you specify what you'd like your donation to
be used for (like more secure defaults for the OS or towards code review and
bugs fixing).

[0][https://www.freebsdfoundation.org/donate/](https://www.freebsdfoundation.org/donate/)

[1][https://www.openbsd.org/donations.html](https://www.openbsd.org/donations.html)

~~~
na85
Maybe time to change your copypasta that you keep spamming these threads with,
because here comes the inevitable questions that you never seem to provide an
answer to:

If they rely on FreeBSD so much, why are Netflix and Facebook and Sony not
paying FreeBSD enough to make it financially independent?

Why should I donate, if these giant billion dollar corporations are going to
just leech off my donation?

~~~
sureaboutthis
Apparently you aren't aware that Netflix contributes kernel code. Whether they
contribute money, I don't recall.

~~~
trasz
Sure they do. There's a donor list at
[https://www.freebsdfoundation.org/donors/](https://www.freebsdfoundation.org/donors/)
(click on "2017"; most companies donate rather late in the year); Netflix is
listed in the "$25,000 - $49,999" category.

------
alxlaz
FreeBSD was my first real introduction to Unix and, even though I don't use it
anymore, I'm still very fond of it.

This was about 15 or 16 years ago, I think. That was back when hardware
support, both in Linux and in FreeBSD (and in most other free operating
systems) was very flaky, and FreeBSD was the only one that I could get my
network card and RAID controller to reliably work on. I ran Linux for a while,
but unreliably and with out-of-tree drivers running over strange
Frankenkernels. One sleepless, outrageously hot summer night, I tried FreeBSD
(4.1, I think? Or 5.0?) and it remained on my hard drive for a pretty long
time.

I learned to properly use Emacs on it, after outgrowing NEdit and SciTE. I
learned how to write portable (hah...) Unix code, learned about SSH and kqueue
and ACPI and firewalls. I learned to use patch and wrote my first open source
program from scratch, whose source code has been thankfully buried forever but
for a summer or so, I wrote the worst Windows desktop clone you have ever seen
(that was back when Qt 3 could deliver us from STL and everyone wrote their
own window manager for fun and it had real artwork, not boring, flat themes).

I also learned ksh, having learned that bash is not the only shell in this
world. I learned about OSS and could not quite stomach Alsa ever since.

I learned about the ports system and that was a whole new world for me and I'd
spend _days_ tinkering with programs I didn't really need, just for the fun of
it.

I mostly lurked on the mailing lists. I was thankfully past my script kiddie
period and was comfortable admitting I didn't know much about programming and
system administration, so I was a little intimidated; I joined discussions
rarely, and under a pseudonym, but I read the public mailing lists
religiously, and learned a lot from them.

Unfortunately, using FreeBSD on a desktop _today_ is a little harder for me,
now that portability is considered more of a stone-age concept for old farts
who haven't yet installed Arch Linux on their laptops. It's certainly possible
(I toyed with 11.1 a little and it's great) but it requires a little more
tinkering than I have time for. Admittedly, that's mostly my fault; I chose a
career path (embedded systems) that involves weird FPGAs and microcontrollers
and the Linux bandwagon, so the little free time I have is spent getting up to
date with stuff like Wayland. Sometimes I tell to myself I'm going to get a
long vacation and work on something useful for OpenBSD or FreeBSD and maybe
work my way into a job (or a consulting gig, and then another, and then
another...) where I can use one of them, but then real life kicks in and I'm
back to the Land of Useless Manpages.

I've long lost touch with FreeBSD development and don't know too much about
what's happened lately. I've heard that the project has made a number of
questionable choices in terms of development, and something about the security
team being slow, but I really don't know too much on the subject, so it didn't
get a chance to change my opiniong of this project. Granted, I don't know if
this is true anymore -- but back then, I thought FreeBSD's pragmatism and
clean approach to engineering was something to strive for, and I'm pretty
disappointed that it hasn't become more popular in the open source world.

Happy birthday, FreeBSD! Here's for another 25 years of quality software.

~~~
pjmlp
> Unfortunately, using FreeBSD on a desktop today is a little harder for me,
> now that portability is considered more of a stone-age concept for old farts
> who haven't yet installed Arch Linux on their laptops.

It is impressive how Linux changed from being yet another UNIX clone to being
UNIX in most people minds, to the point many say Linux when they actually mean
UNIX.

~~~
sgift
I find it even more impressive how the mentality changed. When Linux was still
the underdog everyone cried that you should think about Linux, don't develop
for Windows only and so on. Now? "Eh, you run FreeBSD? Your problem. Use
Linux."

How power corrupts ..

