SEE TEXT ONLY

By John Baldwin

••

11.0 WELCOME To FreeBSD 11

The FreeBSD system is constantly Desktop and Laptop changing. FreeBSD 11 brings new FreeBSD 11 offers a variety of improvements for desk- features and fixes from two and a top and laptop users. First, a new system console driv- er is enabled by default. This driver is less VGA- and half years of active development. -centric than previous drivers. Rather than depend- Some of these changes have been ing on BIOS ROM support for VGA text modes, the merged to recent 10.x releases console renders text in software on framebuffers. This supports VGA adapters via graphics modes as well as such as 10.2 and 10.3, but most of the UEFI framebuffer. It also supports graphics them are brand new in 11. adapters that disable VGA compatibility when using

4 FreeBSD Journal higher resolution graphics modes such as modern tems that do not support VirtIO devices. In partic- Intel GPUs. Software text rendering allows the ular, Windows can be used out-of-the-box with- console driver to render any glyph, which in turn out requiring additional VirtIO device drivers dur- enables UTF-8 support. In addition, the in-kernel ing installation. graphics drivers include native support for Intel Finally, FreeBSD 11 includes support for PCI- graphics adapters on systems with fourth-genera- express native HotPlug. This includes handling of tion Core (“Haswell”) processors. runtime insertion and removal of ExpressCard • FreeBSD 11 includes broader support for wire- adapters in laptops as well as runtime insertion • less networks. The new iwm(4) driver supports and removal of PCI-express adapters in HotPlug- Intel integrated wireless adapters using the 3160, capable slots. 3165, 7260, 7265, and 8260 chipsets via 802.11a/b/g. These adapters are used on most Enterprise laptops with a fourth generation or later Intel FreeBSD isn’t purely a desktop OS, of course, and Core processor. The iwn(4) driver (used on laptops 11 includes several new features for the enterprise. with earlier Core processors) now supports 5-Ghz Along with support for PCI-express HotPlug, 11 channels as well as 802.11n. The ath(4) driver for also includes support for PCI Single-Root I/O Atheros adapters supports newer, 802.11n-capa- Virtualization (SR-IOV). This includes the ability to ble adapters with full 802.11n support in both create virtual functions (VFs) on supported device station and AP modes. The bwn(4) driver for drivers. These VFs can be passed to virtual Broadcom BCM43xx wireless adapters now sup- machines executing under the bhyve hypervisor to ports devices with an N-PHY (BCM4312 and enable direct access to hardware for I/O requests. BCM4321 chipsets). These adapters support The iSCSI stack introduced in FreeBSD 10 has 802.11n on 5-Ghz channels. The rsu(4) and gained several improvements in 11. FreeBSD now urtwn(4) drivers for Realtek USB adapters now supports iSCSI Extensions for RDMA (iSER) provid- fully support 802.11n on 2.4-Ghz channels. ing more efficient zero-copy I/O to SCSI data Support for UEFI has been improved in 11 as buffers. The cxgbei(4) driver supports hardware- well. The FreeBSD amd64 (also known as x86_64 accelerated offload of iSCSI connections on TOE- or x64) install media will now boot from either capable Chelsio adapters. Finally, the reroot utility UEFI or legacy mode. UEFI systems can now boot provides a means for booting a system with an directly from a ZFS filesystem. Other booting iSCSI root filesystem. improvements for both UEFI and legacy systems The local storage stack has also seen a raft of including support for ZFS boot environments and changes in 11. FreeBSD now includes a zfsd dae- whole-disk encryption via GELI are covered in mon to handle automatic activation of hot spare more detail in Allan Jude’s article in this issue. devices and other ZFS-related events not handled The bhyve hypervisor has several new features in the kernel. The sesutil(8) utility supports man- in FreeBSD 11. Guest machines can now be start- agement of disk enclosures, and the mpsutil(8) ed with UEFI firmware rather than using a user- utility permits management of LSI Fusion-MPT 2 space boot loader. This permits guest operating (mps(4)) and Fusion-MPT 3 (mpr(4)) SAS/SATA systems that support UEFI to use a native boot controllers. FreeBSD 11 includes support for plug- process. In addition, bhyve supports a graphics gable disk I/O scheduling in the CAM layer. A framebuffer when using UEFI along with addi- CAM front-end for NVMe disks is present in 11 tional device emulations for keyboard and mouse that can be used instead of the nvd(4) driver to input. These emulated devices are backed by a enable CAM-specific behavior with NVMe disks. VNC server. This allows guest operating systems FreeBSD 11 also includes new drivers for vari- to use a graphical interface. Users interact with ous hardware. The OFED Infiniband stack has these guests via a VNC client. Together with other been updated to version 2.1 including support for fixes, these changes permit Microsoft Windows to RoCE. The ixl(4) driver supports Intel XL710 40Gb run as a guest in a bhyve virtual machine. In addi- Ethernet adapters, and the mlx5en(4) driver sup- tion, bhyve in FreeBSD 11 includes a device emu- ports Mellanox ConnectX-4 and ConnectX-4LX lation for the Intel 82545 network adapter. This adapters. permits the use of networking with operating sys-

Sept/Oct 2016 5 ARM the 64-bit RISC-V architecture. The RISC-V ISA for kernel mode is still in flux, but FreeBSD 11 sup- FreeBSD 10.1 was the first release to ship release ports version 1.9 of the draft privileged ISA speci- images for supported FreeBSD/arm systems. fication. FreeBSD/riscv boots to multiuser in both FreeBSD 11 has expanded support for ARM- the Spike simulator and QEMU emulator. based systems in several ways. First, ARM kernels now include a global Developer Friendly shared-page exported to all user processes. As a FreeBSD 11 is more developer friendly than ever. result, user processes on ARM systems now use a The llvm toolchain in the base system (including non-executable stack. In addition, user processes clang and lldb) has been updated to release are able to fetch the current time of day without 3.8.0. lldb is now included as part of the base system call overhead. system on FreeBSD/amd64 and FreeBSD/arm64. Second, the default floating point ABI for 32- The C++ runtime library (libc++) has also been bit ARMv6+ has been changed from soft-float to updated, which includes support for C++14. hard-float. This enables increased floating-point The entire base system is now built with debug performance on modern processors. symbols. These can be installed either at install Third, the virtual memory system in FreeBSD’s time or after install. These symbols permit devel- kernel supports transparent, 1-megabyte super opers to inspect state and single-step through pages on 32-bit ARMv6+ processors. As with base system libraries as well as application code. support for super pages on x86, this reduces the Threading support has also received several overhead of TLB misses. ARM systems are even improvements. The POSIX threads library now able to map the text segment of the C runtime supports process-shared primitives such as mutex- library with a super page. (The text segment on es and condition variables. An implementation of x86 is too small to use a super page mapping.) robust mutexes has also been added to the Fourth, FreeBSD 11 includes support for more thread library. In addition, internal improvements systems. Support for several Allwinner SoCs has to the debugging subsystem permit more robust been added including support for the , debugging of multithreaded processes. 1, and Cubieboard 2. 11 also Finally, the DTrace tracing utility is now sup- includes install images for the PandaBoard and ported on more platforms in 11, including ARM, 2 systems. MIPS, and RISC-V. Finally, FreeBSD 11 adds support for 64-bit ARMv8 processors via the FreeBSD/arm64 plat- Conclusion form. 11 boots out of the box on Cavium ThunderX systems and support for additional sys- FreeBSD’s community has put a ton of effort into tems will be available in future releases. The FreeBSD 11 over the past two and a half years, arm64 platform includes a global shared-page and it shows. Thank you to everyone who has enabling use of non-executable stacks and fast contributed, whether by testing snapshots, time-of-day queries as on the 32-bit ARM plat- reporting bugs, submitting patches, maintaining form. Support for super pages is already present patches, working with users on social media, in HEAD and will be available in FreeBSD 11.1. organizing conferences, etc. We hope you enjoy The FreeBSD package system includes over FreeBSD 11, and we look forward to your contri- 20,000 prebuilt packages for FreeBSD/arm64 that butions to FreeBSD 12! • are updated on a regular basis. JOHN BALDWIN joined the FreeBSD RISC-V Project as a committer in 1999. He has worked in several areas of RISC-V is a new, open-source instruc- the system including SMP infra- tion set architecture. Initially motivated structure, the network stack, virtu- by computer architecture research, it is 12.0 al memory, and device driver sup- freely available for all types of use port. John has served on the Core and Release Engineering teams including commercially produced CPUs. future FreeBSD 11 includes a new and organizes an annual FreeBSD FreeBSD/riscv platform that supports developer summit each spring. 6 FreeBSD Journal