FreeBSD Commands Cheat Sheet
github.com
github.com
1. mount_msdosfs: The 'ad' name is largely historical; you'll see 'ada' and 'da' these days (the latter for USB drives)[1].
2. ISO9660 is also basically historical at this point; UDF is more likely. And it's useful to split out mdconfig (memory disk config) as its own command -- it's useful in a lot of contexts, and separating it might make that more obvious to someone reading.
3. Linux procfs and Linux procfs? This is confusing and doesn't help users looking to run Linux programs (a lot more work is needed; see [2]). Creating /proc because it doesn't exist is odd; the directory should exist in FreeBSD installations and images, regardless of whether procfs is mounted[3].
Get what you will from the document; if it helps you, great.
[1]: https://lists.freebsd.org/pipermail/freebsd-questions/2016-S...
[2]: https://wiki.freebsd.org/LinuxJails , previously: https://news.ycombinator.com/item?id=24971456
[3]: https://github.com/freebsd/freebsd/blob/master/etc/mtree/BSD...
setfib[1]
So simple. So powerful.
[1] https://www.freebsd.org/cgi/man.cgi?query=setfib&apropos=0&s...
One of my servers just scored over 400 days uptime, hosting: Windows with a mixed various other *nix distributions adding failing RAM to the mix, I am astonished that I've had no issues.
If you use the latest release it's no-longer experimental to having a jail with it's own network adapter. In theory this allows you to then host multiple bHyve instances; in that if a user somehow breaks out of their Virtual Machine they are stuck to the jail rather then the Host-OS.
With such of a feature you can then lock clients in separate jails of their own, alone from any other client.
Compiled it myself, compiled PHP/MySQL/Apache, tweaked it and it always worked.
So whilst Linux for many put BSD's to distant past memories, the amount of code from it that is used in other projects/products down the line is larger than many realise and can imagine that more people run lines of code with FreeBSD origins today than early 2000's.
https://tekdeeps.com/ps5-will-have-an-825gb-ssd-but-only-700...
They even asked Dev's from FreeBSD ;)
WRT to the C10K problem mentioned below... We find FreeBSD scales quite well to at least several hundred thousand connections. Our largest experimental machines can serve nearly 400Gb/s of real customer traffic across hundreds of thousands of TCP conns from a single-socket AMD Rome. This is all with a "traditional" kernel-based workflow, serving media files with sendfile, and doing encryption of HTTPS traffic via kTLS (with NIC-based hardware TLS offload in this case). There is no DPDK or other userspace networking or storage.
[1] https://www.freebsdnews.com/2017/03/08/nintendo-switch-runs-...
[2] https://en.wikipedia.org/wiki/Nintendo_Switch_system_softwar...
[1] https://old.reddit.com/r/emulation/comments/hygtnx/mesospher...
Written as a satisfied NetBSD user.
macOS is a BSD, just buried under layers of proprietary UI, tracking, and DRM
As such, Linux will never fully substitute for the use-cases that BSD provides.
More or less - BSD focuses on developer freedoms while GPL focuses on end-user freedoms. GPL does not provide you the ability to redistribute binaries without source, while BSD does, so BSD is desirable where obscurity is an element of depth in defense (eg Sony's playstation OSs, Intel ME, etc), or where you simply don't want to redistribute your derivative code (MacOS X, etc). GPL also does not allow you to link GPL-incompatible code (either proprietary or non-compatible open-source licenses) that you don't own and can't relicense to GPL compatible, as that inherently locks off a significant amount of code that you might potentially need (what if you are licensing an audio decoder from a well-known German standards institute?). It simply is much easier for developers to work with with BSD license, as it does not attempt to be "viral" like copyleft code. Here is the code, don't sue the authors, end of story.
Frankly it's somewhat impressive that GPL has done as well as it has, the necessity to only link with GPL-compatible code has become a pain point but the kernel project has enough clout to get people to license patches however the project wants (see: ZFS and the kernel devs trolling by relicensing files out from under them). GPL is actually an enormous pain from a licensing and corporate IP perspective and BSD avoids that.
Even if a distro had fantastic documentation, the issue of fragmentation would still remain. You can't just find people who "know linux", but you need people who know this distro.
Then there's the issue of third party apps that may be packaged and tested for some distros and not others. The fragmentation is an issue in itself.
Why the swtich? I'm really hoping that FreeBSD brings me some stability. I'm frustrated of learning how Ubuntu does things with every new named release. In a commercial environment, I'm aware and comfortable with the vast amount of infrastructure that's deployed to make our applications operable. One of my goals for FreeBSD is to come back to fundamentals and build my applications in an environment that I can understand and maintain without fully staffed teams.
Couple things I noticed. As a Linux user for many years, I am working my way through the FreeBSD Handbook docs. Most of the material I'm familiar with so it's a fast read but have on numerous occasions learned new information. Especially useful since I'm learning how FreeBSD does things. It's no diferent than learning a new programming language in a paradigm that one would considers themselves an expert in.
As a primarily app developer, rc(8) is just the right amount of abstraction and it makes sense. I get it intuitively. I really find it joyful when I encounter such designs.
I love how FreeBSD is organized. This must be attributed to it being designed by a cohesive team. Great job, I noticed and very quickly.
One downside so far, Google seems to answer _every_ linux / ubuntu question I throw at it or at least guides me close enough that I can sort my way through a problem. This hasn't been my experience with the FreeBSD system. Though I've tackled all my issues, it took more time. I should provide an update to this in the future since it could very well be because it's a new system.
I'll also miss cgroups. FreeBSD has rctl(8) and it looks like jails have resources parameters as well. cgroups are very well deigned for the problem that they're solving for me. It gives the right control over the right resources in a cohesive manner.
I'll end this with things that I'm excited for. I find learning new things does this to me so I'll share just for fun. I'm excited to learn jails and hope that I find it an improvement over Docker. I'm excited to deploy my erlang application and host my postgres database. I'm excited for root zfs. I'm excited to UPGRADE when the next version of FreeBSD comes out. This should work right? I _never_ upgrade my Ubuntu dev box. I'm excited that Wireguard is getting native kernel support in BSDs [https://www.phoronix.com/scan.php?page=news_item&px=WireGuar...]
I personally run the quarterly packages to avoid the churn as much as I can. This is somewhat similar to Ubuntu, except "major" updates happen every 3 months.
Also, FreeBSD has a channel in Freenode, they'll help you a lot. But first:
- Check man pages
- Read the handbook
If you coudn't solve it, ask in the IRC channel.
(For context: I'm a FreeBSD developer.)
To clarify:
# freebsd-update fetch install
This is for updating to a newer patch of the current release. # freebsd-update upgrade -r <release>
This is for getting to a new release (e.g. going from 12.2 to 13.0).