FreeBSD 10’s New Technologies and Features

freebsd_logo-100x100FreeBSD 10 has been in the works for a while. FreeBSD 9 became available on 12 January 2012 and now 20 months later, FreeBSD 10 is shaping up nicely, with two alpha releases available for testing.

According to the Release Schedule  FreeBSD 10 will receive the RELEASE status in November, but since the developers aim for quality of product over speed of release, this may slip into Dec 2013 / Jan 2014.

There has been a lot of maturing technologies in FreeBSD 10, with many new features which make this release, I think, the most exciting one in years. A lot of development has gone into virtualisation support. Virtualisation with FreeBSD Jails has been available for a long time, but not so much “full virtualisation”.

Let’s have a look at the some of the most talked about, most requested and most interesting features that have found their way into or are planned for “10.0”, but may not make the deadline. (More details and links to feature commits can be found FreeBSD 10 Wiki page).

General

pkgngpkgng is the new package management tool for FreeBSD

llvm-clangLLVM/Clang – FreeBSD 10.0 will deprecate the GPL-licensed GCC and switch to the BSD-licensed LLVM/Clang compiler (v3) by default. GCC is still in the source tree. It’s been switched off on platforms that LLVM supports fully (amd64, arm, armv6, i386), but can easily be built; just add WITH_GCC=YES to /etc/src.conf and ‘make -C/usr/src buildworld installworld’. (Thanks @DES for this clarification)

Unmapped VMIO buffers – The use of the unmapped buffers eliminate the need to perform TLB shootdown for mapping on the buffer creation and reuse, greatly reducing the amount of IPIs for shootdown on big-SMP machines and eliminating up to 25-30% of the system time on i/o intensive workloads

Libc++Libc++ has been integrated in FreeBSD 10. The libc++ library is focused upon C++11 support, is licensed under the MIT/UIUC license (rather than GPL) and will now be used instead of libstdc++

Variable symlinks – The support for variable symbolic links (varsym) supports automatic expansion of per-process, per-jail or system-wide variables in symbolic file links (may not make it in final release)

Kernel

Tickless kernel – FreeBSD 10.0 now supports a truly tickless kernel, enhancing battery performance on laptops and general resource effectiveness in virtual machines

freebsd_amdAMD Kernel Mode-Setting – AMD GPUs kernel mode setting supports the use of newer xf86-video-ati drivers and AMD GPUs

New iSCSI stack – The new iSCSI stack is kernel-mode and focused on reliability and interoperability

freebsd_intelRDRAND – Intel’s “Bull Mountain” RDRAND CPU instruction set on Ivy Bridge and Haswell CPUs for random number generator access will be supported in FreeBSD 10

KMS – A new X.Org stack with initial KMS support. Kernel mode-setting support in FreeBSD is still not at the level of support found on Linux for Intel, Radeon, and Nouveau hardware, but making good progress.

Startup

UEFI boot-loader support (may not make it in final release)

Animated boot splash support

Networking

BIND replacementUnbound and LNDS will replace BIND as the system’s DNS resolver. BIND will still be available from the ports.

PF firewall with SMP support. The PF firewall is now SMP-friendly. It supports fine-grain locking and better utilisation of CPUs on multi core machines. This means greater performance due to the multi-threading

NetMap – The NetMap framework for high-performance raw Ethernet packet access (paragraph updated – Thanks @Ed)

CARPCARP support has been overhauled and rewritten from the ground up

Wifi improvements – Improved 802.11n WiFi/WLAN wireless networking stack with support for new features and new drivers (e.g. Atheros PCI/PCIe 802.11n WiFi adapter from Qualcomm ,SMP/concurrency races, 802.11n TX aggregation)

Hardware Support

PCI hot-plug support (may not get included)

Apple Thunderbolt connectivity support (may not make it in final release)

USB Audio 2.0 – USB Audio support has been revamped, supporting new devices, higher bandwidth support and increased sampling frequency (may not make it in final release)

Architectures

FreeBSD/arm – Greatly improved support for the ARMv6 and ARMv7 platforms, incl SMP, thread-local storage (TLS) and superpages. Support for new ARM SoCs like the Texas Instruments OMAP4 and MV78x60 included

Raspberry Pi support.

Filesystems

ZFSZFS – FreeBSD 10.0 brings with it support for ZFS TRIM and it also supports LZ4 compression support which compresses much better (up to 50%) than the default LZJB compression. L2ARC compression support was also added, as well as NOP-write optimisation (ported from Illumos). All this will be great for using FreeBSD or FreeNAS as your NAS file server.

UFS live file-system resizing support. A UFS formatted filesystem can now be enlarged with growfs(8) when mounted in read-write mode. This should come in useful when adding extra storage to virtual machines without interrupting the service. Newly created UFS file systems will have faster fsck operation

FUSE – FreeBSD 10.0 brings in FUSE file-system support in user-space. FUSE file systems can now be accessed under FreeBSD without installing the “fusefs-kmod” kernel module from ports. This will make accessing these file systems (Linux) more stable.

Virtualisation

bhyvebhyvebhyve is the new native BSD Hypervisor and present in FreeBSD 10, developed from the ground up to offer a light-weight low-level HVM virtualization on FreeBSD.  bhyve supports the latest AMD and Intel virtualisation extensions, and is able to run the FreeBSD kernel fully virtualised. bhive also supports VirtIO for para-virtualization

Virtio – “virtio” is the name for the para-virtualisation interface developed for the Linux KVMVirtio drivers are developed alongside byhve. Any hypervisor supporting this interface should run without problems (Qemu/KVM, VirtualBox and BHyVe). The BSD-licensed implementation of the virtio kernel drivers support PCI, memory balloon, network IO, block and SCSI interfaces.

freebsd_xenXen – FreeBSD 10 comes with Xen DomU x86_64 support, Xen i386 PV support, plus many other Xen related items (USB PV drivers, SCSI pass-through, PowerPC/ARM/MIPS support, PV SMP support). Before you ask: No, there’s no Xen Dom0 support, yet

VPS – Virtual Private Systems for FreeBSD is an extension of the VIMAGE concept to the rest of the kernel (OS-level virtualisation, similar to jails), allowing live migration of VPSs from one host to another. This project is still in SVN and may not make it in final release)

All in all this is an impressive list of new features. This makes the release of FreeBSD definitely something to look forward to.

Which of the above or other features are you eagerly waiting for?

FreeBSD 9.2-RC4 now Available

freebsd_logo_textGlen Barber (@G_J_B_) has announced, on behalf of the FreeBSD Release Engineering team, the availability of the fourth release candidate (RC) builds of the 9.2-RELEASE release cycle.

Changes between -RC3 and -RC4 include:

  • Revert the tribute boot loader logo as the default logo.
  • Fix a filesystem bug that would cause removed files to fail to dereference vnodes until the file system was forcibly unmounted and remounted.
  • Fix a rtadvd(8) segmentation fault on service reload.
  • Create and correct ownership and permissions of /var/authpf in the standard mtree.
  • Fix a NFS deadlock.
  • Stop SIOCSIFADDR, SIOCSIFBRDADDR, SIOCSIFDSTADDR and SIOCSIFNETMASK at the socket layer rather than pass them on to the link layer without validation or credential checks.
  • Prevent cross-mount hardlinks between different nullfs mounts of the same underlying filesystem.
  • Fix the length calculation for the final block of a sendfile(2) transmission which could be tricked into rounding up to the nearest page size, leaking up to a page of kernel memory.

The RC4 downloads are now available on the FTP servers for the amd64, i386, ia64, powerpc, powerpc64, and sparc64 architectures.

 

 

bsdnow.tv Podcast – Episode 1

bsdnow1Allan Jude and Kris Moore, founder of the PC-BSD project, have set up and are hosting a weekly video podcast at bsdnow.tv.

The show is dedicated to spreading the word about the BSD family of operating systems, and keeping those who are already aware up to date with the latest news and developments.

The first episode is now available. Allan and Kris discuss the following subjects:

  • Radeon KMS commited
  • VeriSign Embraces FreeBSD
  • fetch/libfetch get a makeover
  • FreeBSD Foundation Semi-Annual Newsletter
  • The place to B…SD
  • Interview – Peter Hessler
  • Using stunnel to hide your traffic from Deep Packet Inspection
  • NetBSD 6.1.1 released
  • Sudo Mastery
  • Documentation Infrastructure Enhancements
  • FreeBSD FIBs get new features
  • FreeNAS 9.1.0 and 9.1.1 released
  • BSD licensed “patch” becomes default

FreeBSD 9.2-RC3 Available

freebsd_logo_textGlen Barber announced the availability of the third RC build for the FreeBSD 9.2-RC3.

The third release candidate builds of the 9.2-RELEASE release cycle
are now available on the FTP servers for the amd64, i386, ia64, powerpc,
powerpc64, and sparc64 architectures.

This is expected to be the final release candidate for the 9.2-RELEASE
cycle.

ISO images and, for architectures that support it, the memory stick images
are available here.

Changes between -RC2 and -RC3 include:

  • Fix an integer overflow in computing the size of a temporary buffer, which can result in a buffer which is too small for the requested operation. (FreeBSD-SA-13:09.ip_multicast)
  • Revert fixes and improvements to sendfile(2), which uncovered a bug in the NFS implementation that in turn can cause deadlocks.
  • Default net.inet.tcp.experimental.initcwnd10 to off.

FreeBSD Security Advisories (sctp, ip_multicast)

software-bug-signThe FreeBSD Security Team has identified an issue in sctp and ip_multicast  and has issued the following security advisories:

The SCTP protocol provides reliable, flow-controlled, two-way transmission of data. It is a message oriented protocol and can support the SOCK_STREAM and SOCK_SEQPACKET abstractions. The SCTP protocol checks the integrity of messages by validating the state cookie information that is returned from the peer.

IP multicast is a method of sending Internet Protocol (IP) datagrams to a group of interested receivers in a single transmission.

Please read and take the recommended action(s).

FreeBSD 9.2-RC2 now available

freebsd_logo_textThe FreeBSD Project has announced the second release candidate for FreeBSD 9.2.

From the announcement, the most important changes between -RC1 and -RC2 are:

  • Fix a boot issue caused by some GPT partitioning tools.
  • Fix a regression that caused some PCI disk controllers disappearing during boot.
  • Fix the FTP path used to fetch distribution packages when installing from the bootonly.iso.
  • Fix a regression in sendmail that caused problems between the resolver and Microsoft DNS servers with AAAA lookups.
  • Disable MSIs with Adaptec 2230S and 2820SA (aac(4)).
  • Update FTP mirror list used by bsdinstall(8) and bsdconfig(8).
  • Fix panics caused by early interrupts in igb(4).
  • Fix panics when downing or unloading the mlx(4) driver.

You can check out the announcement for update instructions and download locations.

Following this RC release, the PC-BSD project announced PC-BSD 9.2-RC2. Yes, as you will have guessed, it is based on FreeBSD 9.2-RC2.

As always, BETA and RC versions should only be used for testing and evaluation purposes,  and never in production!

Miscellaneous FreeBSD news and links (FreeBSD, CloudSigma, DEF CON, Apple, vBSDCon)

These are a number of links to interesting news items and links you may want to check out:

FreeBSD 9.2 Feature Highlight: ZFS General Improvements

Along with the many user facing changes discussed previously, there are also a number of internal changes to ZFS that will be available with the release of FreeBSD 9.2. [freebsdnow]

 

FreeBSD Can Compete With Ubuntu Linux, Windows 8

The NVIDIA BSD performance is very good for OpenGL as shown in this article with a comparison of Windows 8 vs. Ubuntu 13.10 vs. FreeBSD 9.1. In fact, for some OpenGL workloads the Linux games are running faster on FreeBSD/PC-BSD 9.1 than Ubuntu!  [Phoronix]

 

CloudSigma’s new website

CloudSigma, which based in Zurich (Switzerland) and provide FreeBSD VPS services in Europe, has announced it has a new and more intuitive website. CloudSigma was founded to meet the growing need for a pure IaaS that places little or no restrictions on how its users deploy their computing resources.

 

Apple’s Operating System Guru Goes Back to His Roots

Hubbard left Apple last month to return to the world of open source UNIX, taking the chief technology officer post at a iXsystems, a company that offers servers and other data center hardware that runs FreeBSD. Apple was quite an education, and now, he wants to bring the “Apple approach” back to the open source game. [wired.com].

 

vBSDcon 2013 Registrations Open

In these most recent months, we have been developing the vBSDcon conference website hosted at www.vbsdcon.com.  It includes full details surrounding the schedule, agenda, and speakers for vBSDcon.  The most recent addition to the conference website is that registrations are now open!  [Announcement].

There’s also a new interview with Verisign CTO Burt Kaliski on BSDTalk (bsdtalk230).

 

DEF CON 21 Recap

Mike Biehn, an iXsystems employee and a veteran of DEF CON attended DEF CON 21  a few weeks ago. DEF CON 21 Recap.

 

 JabirOS 1.0.1 released

We’re pleased to announce new release of “The new JabirOS” after a long time! This version is based on FreeBSD 9.2-RC1. In this version , we’ve added  ”OpenBox” as default window manager and “SLiM” as default display manager. [jabirproject.org]

 

DNSSEC @ MDLUG.org

Michael W. Lucas’s talk about DNSSEC (about 20 mins into the video).

FreeNAS 9.1 Screenshots, and Some Suggestions

freenas-ixsystems-new-logoFreeNAS 9.1 has been released. We have read the blog posts, the press releases, and we probably all agree that this FreeBSD based NAS is becoming better and better with each release. FreeNAS is still ‘growing up’ and new features are added to each new version.

Since FreeNAS is still changing so much, maybe be developers can do something about the GUI side of things, i.e. the Web Interface.

The goal of FreeNAS is to simplify complex admin tasks in the underlying FreeBSD (nanobsd) base through a poin-and-click Web Interface: volumes can be created, permissions changed, data sharing turned on/off, music/video streaming set up, and most, if not all, ZFS features are included.

All this makes FreeNAS a powerful network attached system (NAS), especially if you consider it is open source and free to download, but I think the Web Interface can still do with some TLC as it can be confusing and is not always newbie friendly.

  • There are 6 menu buttons (top left) linking to “System”, “Network”, “Storage”, “Sharing”, “Services”, “Plugins” and “Jails”. In the Menu tree, under this bar, you will see the same (and more) links, unnecessary duplication. If “Account” is one of the main menus, why is this then one on the right hand top side, and not on the left with the others?
  • When you close / log out of the FreeNAS Web Interface and go back in, the menu tree is left expanded as it was left. It looks nicer if the tree was collapsed each time you open up the GUI.
  • Every time options are saved or when you cancel a screen, the whole menu tree is reloaded/refreshed, which takes about 1-2 seconds. This could be due to some settings or limitation in the Django framework, but it is annoying.
  • When you go into some of the (sub)menus and make changes, a tab gets added to the tab bar (top right), next to “Reporting” | “Settings” | “System Information”. What is the point of this? You’re not going to use your NAS GUI for hours (usually). You make the changes and come out of it. There’s no need for these shortcuts.
  • For new users of FreeNAS, it would be helpful if there was a short introduction with some step-by-step instruction on the first screen to help them set up the basic things (User, Volume, Privileges etc). Yes, there’s the FreeNAS handbook with everything set out step-by-step, but judging from questions on the FreeNAS forums I guess there are more users that don’t read through the manual than those who do.

Conclusion

Personally, I prefer the old FreeNAS 0.7 horizontal menu. It was, and is now in NAS4Free, easy to use and straightforward, with no duplication. The other thing I like in NAS4Free, is that you can make all changes on the opened screen, i.e. there are no pop-up windows with yet more settings. 

I appreciate a NAS GUI is not something you need every day. In an ideal world you install and set up your NAS and let it then run (headless), but there are still some areas where FreeNAS should improve to avoid confusion and duplication.

 

Screenshots

If you have no need to install or use FreeNAS, but are still interested to see what it looks like, have a look at the screenshots below (click on the pictures to magnify).

Main Screen

FreeNAS 9.1 Screenshots

 

Account Information

FreeNAS 9.1 Screenshots

 

System Information

FreeNAS 9.1 Screenshots

 

Network Information

FreeNAS 9.1 Screenshots

 

Storage Information

FreeNAS 9.1 Screenshots

 

Sharing Protocols

FreeNAS 9.1 Screenshots

 

FreeNAS Services

FreeNAS 9.1 Screenshots

 

Plugins Administration

FreeNAS 9.1 Screenshots

 

FreeNAS Jails

FreeNAS 9.1 Screenshots

 

System Processes (Running)

FreeNAS 9.1 Screenshots

 

Add Duplication Task

FreeNAS 9.1 Screenshots

 

ZFS Volume Manager

FreeNAS 9.1 Screenshots

 

Add Replication (rsync) Task

FreeNAS 9.1 Screenshots

 

 

 

 

 

 

 

FreeBSD Foundation Newsletter – August 2013

The FreeBSD Foundation has published its Semi-Annual Newsletter with the following subjects:

This newsletter give a nice overview of what projects the Foundation has been supporting and what direction the FreeBSD project is moving at.

FreeBSD 9.2-RC1 available

freebsd_logo_textGlen Barber has announced the first release candidate build for the FreeBSD 9.2:

The first release candidate builds of the 9.2-RELEASE release cycle
are now available on the FTP servers for the amd64, i386, ia64, powerpc,
powerpc64, and sparc64 architectures.

Changes between -BETA2 and -RC1 include:

  • Expand the list of devices claimed by cxgbe(4).
  • Fix a panic in the racct code when munlock(2) is called with incorrect values.
  • Remove ctl(4) from GENERIC. ctladm(8) now automatically loads the corresponding module as necessary. This reduces the default memory footprint and allows FreeBSD to work on i386 machines with 128 MB of RAM out of the box.
  • Fix zfs send -D hang after processing requiring a CTRL+C to interrupt.

Announcement | FreeBSD 9.2 Release Schedule | FreeBSD Website