FreeBSD Archive

A trip into FreeBSD

I normally deal with Linux machines. Linux is what I know and it’s what I’ve been using since I was in college. A friend of mine has been coaxing me into trying out FreeBSD, and I decided to try it out and see what it’s like. Here’s some details about my experience and what I’ve learned. Exactly what it says on the tin – and may I just say that the design and colour scheme of the website in question is extremely pleasant to the eyes.

FreeBSD quarterly status report for Q4 2020

This quarter had quite a lot of work done, including but certainly not limited to, in areas relating to everything from multiple architectures such as x86, aarch64, riscv, and ppc64 for both base and ports, over kernel changes such as vectored aio, routing lookups and multipathing, an alternative random(4) implementation, zstd integration for kernel dumps, log compression, zfs and preparations for pkg(8), along with wifi changes, changes to the toolchain like the new elfctl utility, and all the way to big changes like the git migration and moving the documentation from DocBook to Hugo/AsciiDoctor, as well as many other things too numerous to mention in an introduction. The best way to keep up with FreeBSD development from an outsider’s perspective. FreeBSD is on my radar for the UltraSPARC server-as-a-workstation project – a reader has donated a SunFire V245 that’s currently in shipping to me – so I’m trying to be a bit more in tune than I usually am with the world of FreeBSD.

Exploring swap on FreeBSD

On modern Unix-like systems such as FreeBSD, “swapping” refers to the activity of paging out the contents of memory to a disk and then paging it back in on demand. The page-out activity occurs in response to a lack of free memory in the system: the kernel tries to identify pages of memory that probably will not be accessed in the near future, and copies their contents to a disk for safekeeping until they are needed again. When an application attempts to access memory that has been swapped out, it blocks while the kernel fetches that saved memory from the swap disk, and then resumes execution as if nothing had happened. In 2021, cheap SSDs have become commonplace and have performance characteristics much better suited to swapping, so it seems worthwhile to revisit how swapping works in FreeBSD, and try to provide some insight into frequently raised issues. Some light reading for the weekend.

The FreeBSD desktop series

The FreeBSD Desktop series are about creating efficient desktop environment on the FreeBSD system. Why such series? Because telling someone who wants FreeBSD desktop to buy Mac instead is like telling someone who wants Linux desktop to buy Windows because it has WSL (Windows Subsystem for Linux) inside. This is one hell of a detailed and long series of articles – 21 of them. I’m not very well-versed in the world of BSD, and this series is making me want to give the world thing a go – just to learn and expand my horizons.

FreeBSD 12.2 released

FreeBSD 12.2 has been released. Changes include updates for the wireless stack for better 802.11n and 802.11ac support, the latest versions of OpenSSL and OpenSSH, and much more. On top of the changes comes an announcement in the release notes of a change for the i386 versions of FreeBSD, starting with FreeBSD 13.0. Starting with FreeBSD-13.0, the default CPUTYPE for the i386 architecture will change from 486 to 686. This means that, by default, binaries produced will require a 686-class CPU, including but not limited to binaries provided by the FreeBSD Release Engineering team. FreeBSD 13.0 will continue to support older CPUs, however users needing this functionality will need to build their own releases for official support. This won’t affect most users, but people with very specific needs should take note.

FreeBSD gets experimental PowerPC little-endian support, can now be built on Linux and macOS

The FreeBSD project has published its latest quarterly report, and there’s some good changes and improvements in there. First, there’s the project to allow FreeBSD to be built on non-FreeBSD hosts – Linux and macOS specifically. This project has made major headway. As of September 2020 it should be possible to use the buildworld and buildkernel make targets to build a fully-functional FreeBSD installation on macOS and Linux hosts. We use this in our continuous integration system to build and test CheriBSD disk images for multiple architectures. I have also committed a GitHub Actions configuration upstream that takes approximately 10 minutes to build an amd64 kernel. This will ensure that changes that break crossbuilding from Linux/macOS can be detected easily. Another major improvement is experimental support for little-endian PowerPC. Note, however, that this does not mean big-endian support is going away or being deprecated. As of r366063, experimental support for little-endian PowerPC64, (PowerPC64LE) is available in -CURRENT for POWER8 and POWER9 machines. There’s a lot more stuff to cover, so head on over and read the whole report for all the details.

GhostBSD 20.08.04 released

I am happy to announce the availability of GhostBSD 20.08.04. This release comes with kernel, OS and software application updates. We updated the MATE desktop to 1.24.0. A new interesting feature is the boot environment backup before updates. GhostBSD is one of the few desktop-oriented BSD ‘distributions’, and it’s based on FreeBSD.

I’m back into the grind of FreeBSD’s wireless stack and 802.11ac

Yes, it’s been a while since I posted here and yes, it’s been a while since I was actively working on FreeBSD’s wireless stack. Life’s been… Well, life. I started the ath10k port in 2015. I wasn’t expecting it to take 5 years, but here we are. My life has changed quite a lot since 2015 and a lot of the things I was doing in 2015 just stopped being fun for a while. But the stars have aligned and it’s fun again, so here I am. It’s always good when a good hacker gets back to what they do best after life has thrown them a curve ball.

FreeBSD is an amazing operating system

As mentioned previously, because FreeBSD is a real multi-purpose operating system with many different use cases, FreeBSD is very flexible and tuneable. Whether you want to run FreeBSD on your desktop computer or on your server, it provides many tuneable options that enables you to make it very performant. The options set out-of-the box may not suit your needs exactly, but then FreeBSD provides lots of documentation on how to get it to work as you need, and it provides a very helpful community with many people who has experience in dealing with many different situations and problems. I believe it is important to understand that FreeBSD is not like a GNU/Linux distribution. FreeBSD is an operating system made by developers who are also system administrators. This means that FreeBSD is supposed to be run by system administrators who understands how the system works. You cannot simply jump from something like Ubuntu, Fedora or OpenSUSE and then expect that you get the same experience on FreeBSD (I and a lot of other people would be extremely sad if that were the case). The BSDs just aren’t my thing. I’m not a developer, and I’m not a system administrator. Over the past six months or so, I’ve moved all my machines and all my workflows over to Linux – my laptop, my main PC (used for everything that isn’t translating), and my office PC (for my translation work), and I couldn’t be happier (in the interest of full disclosure, I do keep Windows around on my main PC for possible future Windows-only games, and I have a Windows 10 virtual machine on my office PC for some Windows-specific translation software I need to keep around). As I was planning this careful migration, I never once considered using any of the BSDs. For the simpler, almost exclusively desktop oriented work that I do, BSD just doesn’t seem like the right tool for the job – and that’s okay, I’m not the target audience – and I suspect there are many people like me. I think the BSDs are stronger for not trying to be everything to all people, and this more focused development seems to be exactly why someone chooses BSD over Linux. And I see no reason why anybody should want to change that.

FreeBSD 12.1 released

The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 12.1-RELEASE. This is the second release of the stable/12 branch. Some of the highlights: • BearSSL has been imported to the base system.• The clang, llvm, lld, lldb, compiler-rt utilities and libc++ have been updated to version 8.0.1.• OpenSSL has been updated to version 1.1.1d.• Several userland utility updates. The full release notes has all the details about this new release, and you can download it from the usual place for amd64, i386, powerpc, powerpc64, powerpcspe, sparc64, armv6, armv7, and aarch64.

ZFS on FreeBSD based on ZFS On Linux can now be tested with TrueOS

It was recently decided that FreeBSD’s ZFS file-system support would be re-based atop ZFS On Linux. That new “ZFS On BSD” implementation based on ZOL continues moving along and it’s now easier to test thanks to iX Systems and their TrueOS platform. With the ZFS On Linux code-base being more actively maintained and improved upon than the OpenZFS support within the Illumos kernel, FreeBSD developers are working on merging their “ZOB” changes with ZOL.  Interesting to see that the Linux implementation sees more active development than the original one – although not entirely surprising.

FreeBSD desktop: pause any application

After using UNIX for so many years I knew that I could freeze (or pause) any process in the system with kill -17 (SIGSTOP) signal and then unfreeze it with with kill -19 (SIGCONT) signal as I described in the Process Management section of the Ghost in the Shell - Part 2 article. Doing it that way for the desktop applications is PITA to say the least. Can you imagine opening xterm terminal and searching for all Chromium or Firefox processes and then freezing them one by one every time you need it? Me neither.

Fortunately with introduction of so called X11 helper utilities - like xdotool(1) - it is now possible to implement it in more usable manner.

Today I will show you how to freeze any X11 application with single keyboard shortcut or mouse gesture if you utilize them in any way with small simple script.

Handy little trick. The entire series of articles by the same author about FreeBSD on the desktop are interesting and informative reads.

Today is FreeBSD Day

We're pleased to announce that June 19 has been declared FreeBSD Day. Join us in honoring The FreeBSD Project's pioneering legacy and continuing impact on technology.

Why today? Well, 25 years ago to the day, the name FreeBSD was chosen as the name for the project. FreeBSD formed the base of all kinds of operating systems we use every day today - like macOS and iOS and the operating systems on the Nintendo Switch and Playstation 3, 4, and Vita - and FreeBSD code can be found in the unlikeliest of places, such as Haiku, which uses FreeBSD network drivers, and even Windows, which, although information is sparse, seemed to at one point use FreeBSD code for command-line networking utilities like ftp, nslookup, rcp, and rsh.

FreeBSD quarterly status report Q2 2017

Much of the development work done this quarter was not particularly visible, especially the effort needed to ensure the upcoming 11.1 release has as few regressions as possible. Planning is also well under way for the 10.4 maintenance release which will quickly follow it.

Further work focused on moving the arm architectures' support closer to tier-1 status and improving documentation. In addition, large changes were made to the src and ports trees.

FreeBSD 11.0-RELEASE released

The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 11.0-RELEASE. This is the first release of the stable/11 branch.

Some of the highlights:

  • OpenSSH DSA key generation has been disabled by default. It is important to update OpenSSH keys prior to upgrading. Additionally, Protocol 1 support has been removed.
  • OpenSSH has been updated to 7.2p2.
  • Wireless support for 802.11n has been added.
  • By default, the ifconfig(8) utility will set the default regulatory domain to FCC on wireless interfaces. As a result, newly created wireless interfaces with default settings will have less chance to violate country-specific regulations.
  • The svnlite(1) utility has been updated to version 1.9.4.
  • The libblacklist(3) library and applications have been ported from the NetBSD Project.
  • Support for the AArch64 (arm64) architecture has been added.
  • Native graphics support has been added to the bhyve(8) hypervisor.
  • Broader wireless network driver support has been added.

The release notes provide the in-depth look at the new release, and you can get it from the download page.