SlideShare a Scribd company logo
What’s new in FreeBSD 10? 
Gleb Smirnoff 
glebius@FreeBSD.org 
ruBSD 2013 
Yandex 
Moscow 
December 14, 2013 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 1 / 24
Outline 
1 Introduction 
2 Userland changes 
Packaging system 
Toolchain 
Developers tools 
DNS tools 
Other userland updates 
3 Kernel: virtualization 
bhyve 
guest improvements 
4 Kernel: security 
capsicum(4) update 
/dev/random improvements 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 2 / 24
Introduction 
Two years of development 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 3 / 24
Userland changes Packaging system 
New generation packaging system 
pkg(1) 
Replaces pkg_tools in FreeBSD 10.0 
Updates packages from remote repository 
Is developed as a library + command line frontend 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 4 / 24
Userland changes Packaging system 
New generation packaging system 
pkg(1) 
Replaces pkg_tools in FreeBSD 10.0 
Updates packages from remote repository 
Is developed as a library + command line frontend 
Don’t miss section at 11:40 by Vsevolod Stakhov! 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 4 / 24
Userland changes Toolchain 
Compiler change 
LLVM/Clang 3.3 is default compiler 
(amd64, arm and i386) 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 5 / 24
Userland changes Toolchain 
Compiler change 
LLVM/Clang 3.3 is default compiler 
(amd64, arm and i386) 
Why? 
BSD licensed (gcc > 4.2.1 is GPLv3) 
Fully C++11 compliant. Includes LLVM libc++. 
Always cross compiler. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 5 / 24
Userland changes Toolchain 
Compiler change 
LLVM/Clang 3.3 is default compiler 
(amd64, arm and i386) 
Why? 
BSD licensed (gcc > 4.2.1 is GPLv3) 
Fully C++11 compliant. Includes LLVM libc++. 
Always cross compiler. 
We still support gcc 4.2+ to build tier 2 arches. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 5 / 24
Userland changes Toolchain 
Toolchain 
Moving towards external toolchain. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 6 / 24
Userland changes Toolchain 
Toolchain 
Moving towards external toolchain. 
Portable make(1) imported from NetBSD 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 6 / 24
Userland changes Toolchain 
Toolchain 
Moving towards external toolchain. 
Portable make(1) imported from NetBSD 
Tools updated: 
patch(1): GNU BSD licensed fork of original Larry Wall 
sort(1): GNU own implementation 
byacc for yacc(1) 
flex for lex(1) 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 6 / 24
Userland changes Developers tools 
Developers tools 
CVS -> subversion (lite) 
ATF/kyua from NetBSD 
Work in progress: gdb -> lldb 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 7 / 24
Userland changes DNS tools 
DNS tools 
Recursive resolver & tools 
BIND -> unbound 
dig(1) -> drill(1) 
new host(1) implementation 
nslookup 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 8 / 24
Userland changes DNS tools 
DNS tools 
Recursive resolver & tools 
BIND -> unbound 
dig(1) -> drill(1) 
new host(1) implementation 
nslookup 
LDNS library 
Feature rich API, providing control over recursion, 
DNSSEC, TSIG, etc. 
Utilized by OpenSSH, drill(1) 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 8 / 24
Userland changes DNS tools 
DNS tools 
Recursive resolver & tools 
BIND -> unbound 
dig(1) -> drill(1) 
new host(1) implementation 
nslookup 
LDNS library 
Feature rich API, providing control over recursion, 
DNSSEC, TSIG, etc. 
Utilized by OpenSSH, drill(1) 
Plan for FreeBSD 11: caching, validating, secure 
resolver library with standard API 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 8 / 24
Userland changes Other userland updates 
Other userland updates 
freebsd-version(1) tool introduced 
libyaml added to base 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 9 / 24
Userland changes Other userland updates 
Other userland updates 
freebsd-version(1) tool introduced 
libyaml added to base 
Citrus iconv(3) in libc 
newest jemalloc 3.4.1 in libc 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 9 / 24
Userland changes Other userland updates 
Other userland updates 
freebsd-version(1) tool introduced 
libyaml added to base 
Citrus iconv(3) in libc 
newest jemalloc 3.4.1 in libc 
nvi editor supports wide character locales 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 9 / 24
Userland changes Other userland updates 
Other userland updates 
freebsd-version(1) tool introduced 
libyaml added to base 
Citrus iconv(3) in libc 
newest jemalloc 3.4.1 in libc 
nvi editor supports wide character locales 
wpa_supplicant/hostapd updated to 2.0 
OpenSSH updated to 6.4 
OpenSSL updated to 1.0.1e 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 9 / 24
Userland changes Other userland updates 
Installer 
bsdinstall features ZFS root installation 
Removed old installer sysinstall and auxiliary tools 
libdisk, libftpio, sade 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 10 / 24
Kernel: virtualization bhyve 
bhyve(4) hypervisor 
BSD hyper visor 
(pronounced as “bee hive”) 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 11 / 24
Kernel: virtualization bhyve 
bhyve(4) hypervisor 
BSD hyper visor 
(pronounced as “bee hive”) 
Requirements: 
host is amd64: Intel CPU with VT-x 
feature or AMD CPU with AMD-V 
feature 
no BIOS provided 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 11 / 24
Kernel: virtualization bhyve 
bhyve(4) hypervisor 
BSD hyper visor 
(pronounced as “bee hive”) 
Results in: 
12k lines of code in kernel 
14k lines of code in userland 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 11 / 24
Kernel: virtualization bhyve 
bhyve(4) hypervisor 
BSD hyper visor 
(pronounced as “bee hive”) 
Guest OSes supported: 
FreeBSD, OpenBSD 
GNU/Linux 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 11 / 24
Kernel: virtualization guest improvements 
Guest improvements 
Xen and Xen HVM in GENERIC kernel 
Microsoft Hyper-V drivers added 
VMware VMXNET3 driver added 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 12 / 24
Kernel: security capsicum(4) update 
capsicum(4) update 
Capsicum - hybrid capability + UNIX access 
control model. Introduced in FreeBSD 9.0. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 13 / 24
Kernel: security capsicum(4) update 
capsicum(4) update 
Capsicum integrates further into FreeBSD: 
notions of “capability” and “file 
descriptor” merge 
new APIs: cap_new(2) 
cap_rights_limit(2) 
capsicum(4) in GENERIC by default 
sandboxed applications: tcpdump(1), 
dhclient(8), rwhod(8), kdump(8), 
hastd(8), auditdistd(8), ctld(8), 
iscsid(8) 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 13 / 24
Kernel: security capsicum(4) update 
capsicum(4) update 
Future integration in 10.1-RELEASE: 
casperd(8) daemon 
libcapsicum(3) library 
sandboxing a lot of applications 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 13 / 24
Kernel: security /dev/random improvements 
better random 
Problem: hardware assisted randomness (RDRAND and 
Padlock) no longer trusted. 
Solution: run them through Yarrow. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 14 / 24
Kernel: security /dev/random improvements 
better random 
Problem: hardware assisted randomness (RDRAND and 
Padlock) no longer trusted. 
Solution: run them through Yarrow. 
Problem: not enough entropy on early boot. 
Solution: we can get some from device attach time. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 14 / 24
Kernel: security /dev/random improvements 
better random 
Problem: hardware assisted randomness (RDRAND and 
Padlock) no longer trusted. 
Solution: run them through Yarrow. 
Problem: not enough entropy on early boot. 
Solution: we can get some from device attach time. 
Problem: not enough entropy on first boot. 
Let bsdinstall save an entropy cookie for future boot. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 14 / 24
Kernel: security /dev/random improvements 
better random 
Problem: hardware assisted randomness (RDRAND and 
Padlock) no longer trusted. 
Solution: run them through Yarrow. 
Problem: not enough entropy on early boot. 
Solution: we can get some from device attach time. 
Problem: not enough entropy on first boot. 
Let bsdinstall save an entropy cookie for future boot. 
FreeBSD 11.0 plan: substitute Yarrow with Fortuna. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 14 / 24
Kernel: general improvements callout(9) new generation 
callout(9) improvements 
callout(9) - kernel subsystem to schedule delayed events. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 15 / 24
Kernel: general improvements callout(9) new generation 
callout(9) improvements 
callout(9) - kernel subsystem to schedule delayed events. 
New improvements: 
tickless 
event coalescing 
direct execution 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 15 / 24
Kernel: general improvements unmapped I/O 
unmapped I/O 
Problem: kernel doing I/O on behalf of userland process 
maps the I/O region into kernel address space. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 16 / 24
Kernel: general improvements unmapped I/O 
unmapped I/O 
Problem: kernel doing I/O on behalf of userland process 
maps the I/O region into kernel address space. Change of 
virtual memory map requires notification of other CPUs. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 16 / 24
Kernel: general improvements unmapped I/O 
unmapped I/O 
Problem: kernel doing I/O on behalf of userland process 
maps the I/O region into kernel address space. Change of 
virtual memory map requires notification of other CPUs. 
Solution: unmapped I/O. Required modification of file 
system layer, GEOM classes, disk drivers. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 16 / 24
Kernel: general improvements unmapped I/O 
unmapped I/O 
Problem: kernel doing I/O on behalf of userland process 
maps the I/O region into kernel address space. Change of 
virtual memory map requires notification of other CPUs. 
Solution: unmapped I/O. Required modification of file 
system layer, GEOM classes, disk drivers. 
Result: 30% of system CPU time saved in I/O bound 
tasks. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 16 / 24
Kernel: general improvements memory management 
memory management changes 
Kernel memory maps: 
vmem(9) generic allocator from NetBSD 
kernel memory map allocation backed by vmem(9) 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 17 / 24
Kernel: general improvements memory management 
memory management changes 
Kernel memory maps: 
vmem(9) generic allocator from NetBSD 
kernel memory map allocation backed by vmem(9) 
Mach VM 
radix tree instead of splay tree for vm_pages in 
vm_object 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 17 / 24
Kernel: general improvements memory management 
memory management changes 
Kernel memory maps: 
vmem(9) generic allocator from NetBSD 
kernel memory map allocation backed by vmem(9) 
Mach VM 
radix tree instead of splay tree for vm_pages in 
vm_object 
UMA 
performance/efficiency improvements 
per-CPU zones 
log warning when a zone hits limit 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 17 / 24
Kernel: general improvements memory management 
atomic close-on-exec 
Prevents descriptor leak in presence of threads or 
signals 
Suggested for future POSIX 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 18 / 24
Kernel: I/O and storage changes 
storage changes 
NAND flash support 
NAND controller/chip/bus APIs 
NAND disk GEOM class 
NAND file system 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 19 / 24
Kernel: I/O and storage changes 
storage changes 
NAND flash support 
NAND controller/chip/bus APIs 
NAND disk GEOM class 
NAND file system 
Resizing 
general support of “resize” notion in GEOM 
resizing of GEOM mirror (in 10.1-RELEASE) 
growfs(1) works on mounted filesystems 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 19 / 24
Kernel: I/O and storage changes 
storage changes 
NAND flash support 
NAND controller/chip/bus APIs 
NAND disk GEOM class 
NAND file system 
Resizing 
general support of “resize” notion in GEOM 
resizing of GEOM mirror (in 10.1-RELEASE) 
growfs(1) works on mounted filesystems 
legacy ATA layer removed 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 19 / 24
Kernel: I/O and storage changes 
GEOM: work in progress 
Targeted for 10.1-RELEASE: 
direct dispatch in GEOM instead of two threads 
fine grained locking of CAM layer 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 20 / 24
Kernel: I/O and storage changes 
GEOM: work in progress 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 20 / 24
Kernel: I/O and storage changes 
GEOM: work in progress 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 20 / 24
Kernel: I/O and storage filesystems 
FUSE 
FUSE moved to base from ports to improve stability 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 21 / 24
Kernel: I/O and storage filesystems 
FUSE 
FUSE moved to base from ports to improve stability 
Giant-locked and GPL-contaminated filesystems 
removed from kernel: hpfs, ext2fs, ntfs, reiserfs, coda, 
xfs, nwfs, portalfs. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 21 / 24
Kernel: networking changes 
networking changes 
ZERO_COPY_SOCKETS 
sendfile(2) on shared memory fd 
network byte order throughout the stack 
IP/TCP/UDP dtrace(1) providers 
raceless and cheap statistic per-CPU counters 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 22 / 24
Kernel: networking CARP 
new CARP 
CARP isn’t pseudo-interface anymore. 
% ifconfig igb0 10.0.0.112/27 vhid 112 
% ifconfig igb0 
igb0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 
ether 00:25:90:03:0e:fa 
inet 10.0.0.112 netmask 0xffffffe0 broadcast 10.0.0.127 vhid 112 
media: Ethernet autoselect (1000baseT <full-duplex>) 
status: active 
carp: BACKUP vhid 112 advbase 1 advskew 0 
Redundant address is configured directly on a real 
interface. 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 23 / 24
Kernel: networking packet filters 
packet filters 
pf(4): fork off OpenBSD, bringing in multithreading 
ipfilter(4): update to 5.1.2 (BSD license pledged) 
ipfw(4): no significant changes 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 24 / 24
Kernel: networking packet filters 
Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 25 / 24

More Related Content

PDF
Глеб Смирнов: Что нового в FreeBSD 10.0
PDF
Kernel Recipes 2019 - Metrics are money
PDF
Control Your Network ASICs, What Benefits switchdev Can Bring Us
PDF
Faster Container Image Distribution on a Variety of Tools with Lazy Pulling
PDF
Kernel Recipes 2016 - Landlock LSM: Unprivileged sandboxing
PDF
Cilium - Network security for microservices
PDF
Kernel Recipes 2019 - Kernel documentation: past, present, and future
PPTX
OpenStack and OpenFlow Demos
Глеб Смирнов: Что нового в FreeBSD 10.0
Kernel Recipes 2019 - Metrics are money
Control Your Network ASICs, What Benefits switchdev Can Bring Us
Faster Container Image Distribution on a Variety of Tools with Lazy Pulling
Kernel Recipes 2016 - Landlock LSM: Unprivileged sandboxing
Cilium - Network security for microservices
Kernel Recipes 2019 - Kernel documentation: past, present, and future
OpenStack and OpenFlow Demos

What's hot (20)

PDF
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
PDF
Startup Containers in Lightning Speed with Lazy Image Distribution
PDF
Kernel Recipes 2017 - EBPF and XDP - Eric Leblond
PDF
Starting up Containers Super Fast With Lazy Pulling of Images
PDF
Troubleshooting Tips from a Docker Support Engineer
PDF
DockerとKubernetesをかけめぐる
PDF
P2P Container Image Distribution on IPFS With containerd and nerdctl
PDF
Kernel Recipes 2014 - NDIV: a low overhead network traffic diverter
PDF
Daneyon Hansen - Intro to OpenStack - Feb13 OpenStack Denver Meetup
PDF
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...
PPTX
Introduction to Docker
PDF
Embedded Recipes 2019 - Testing firmware the devops way
PDF
BuildKitでLazy Pullを有効にしてビルドを早くする話
PDF
eStargzイメージとlazy pullingによる高速なコンテナ起動
PDF
containerdの概要と最近の機能
PDF
【CNDO2021】Calicoのデプロイをミスって本番クラスタを壊しそうになった話
PDF
App container rkt
PPTX
Java applications containerized and deployed
PDF
Learning kubernetes
PPTX
Using PerfDHCP tool to scale DHCP in OpenStack Neutron
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
Startup Containers in Lightning Speed with Lazy Image Distribution
Kernel Recipes 2017 - EBPF and XDP - Eric Leblond
Starting up Containers Super Fast With Lazy Pulling of Images
Troubleshooting Tips from a Docker Support Engineer
DockerとKubernetesをかけめぐる
P2P Container Image Distribution on IPFS With containerd and nerdctl
Kernel Recipes 2014 - NDIV: a low overhead network traffic diverter
Daneyon Hansen - Intro to OpenStack - Feb13 OpenStack Denver Meetup
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...
Introduction to Docker
Embedded Recipes 2019 - Testing firmware the devops way
BuildKitでLazy Pullを有効にしてビルドを早くする話
eStargzイメージとlazy pullingによる高速なコンテナ起動
containerdの概要と最近の機能
【CNDO2021】Calicoのデプロイをミスって本番クラスタを壊しそうになった話
App container rkt
Java applications containerized and deployed
Learning kubernetes
Using PerfDHCP tool to scale DHCP in OpenStack Neutron
Ad

Similar to What's new in FreeBSD 10 (20)

PDF
Lavigne bsdmag-jan13
PPT
FreeBSD - LinuxExpo
PDF
OSC-Fall-Tokyo-2012-v9.pdf
PDF
Sweden11
PDF
SELF 2010: BSD For Linux Users
PDF
Lab#1-2.pdf
PDF
BSD for Linux Users
PDF
Self2013
PDF
Oclug 2010
PDF
Lavigne bsdmag-jan2012
PDF
Docker con osdk_ver1.0
PDF
Introduction to OpenSolaris 2008.11
PDF
Systemd: the modern Linux init system you will learn to love
PPT
BayLISA - FreeNAS 10 by Jordan Hubbard
PDF
Ilf2013
PPTX
Open-source Android 10 on Orange Pi: myth or reality?
ODP
Linux containers & Devops
PDF
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
PDF
You think you're not a target? A tale of three developers...
PDF
BSD for Linux Users
Lavigne bsdmag-jan13
FreeBSD - LinuxExpo
OSC-Fall-Tokyo-2012-v9.pdf
Sweden11
SELF 2010: BSD For Linux Users
Lab#1-2.pdf
BSD for Linux Users
Self2013
Oclug 2010
Lavigne bsdmag-jan2012
Docker con osdk_ver1.0
Introduction to OpenSolaris 2008.11
Systemd: the modern Linux init system you will learn to love
BayLISA - FreeNAS 10 by Jordan Hubbard
Ilf2013
Open-source Android 10 on Orange Pi: myth or reality?
Linux containers & Devops
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
You think you're not a target? A tale of three developers...
BSD for Linux Users
Ad

Recently uploaded (20)

PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
medical staffing services at VALiNTRY
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
System and Network Administraation Chapter 3
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Digital Strategies for Manufacturing Companies
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
top salesforce developer skills in 2025.pdf
PPTX
Introduction to Artificial Intelligence
Navsoft: AI-Powered Business Solutions & Custom Software Development
VVF-Customer-Presentation2025-Ver1.9.pptx
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
ISO 45001 Occupational Health and Safety Management System
medical staffing services at VALiNTRY
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Softaken Excel to vCard Converter Software.pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
Understanding Forklifts - TECH EHS Solution
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
System and Network Administraation Chapter 3
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Design an Analysis of Algorithms I-SECS-1021-03
Digital Strategies for Manufacturing Companies
How to Choose the Right IT Partner for Your Business in Malaysia
ManageIQ - Sprint 268 Review - Slide Deck
Wondershare Filmora 15 Crack With Activation Key [2025
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
top salesforce developer skills in 2025.pdf
Introduction to Artificial Intelligence

What's new in FreeBSD 10

  • 1. What’s new in FreeBSD 10? Gleb Smirnoff glebius@FreeBSD.org ruBSD 2013 Yandex Moscow December 14, 2013 Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 1 / 24
  • 2. Outline 1 Introduction 2 Userland changes Packaging system Toolchain Developers tools DNS tools Other userland updates 3 Kernel: virtualization bhyve guest improvements 4 Kernel: security capsicum(4) update /dev/random improvements Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 2 / 24
  • 3. Introduction Two years of development Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 3 / 24
  • 4. Userland changes Packaging system New generation packaging system pkg(1) Replaces pkg_tools in FreeBSD 10.0 Updates packages from remote repository Is developed as a library + command line frontend Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 4 / 24
  • 5. Userland changes Packaging system New generation packaging system pkg(1) Replaces pkg_tools in FreeBSD 10.0 Updates packages from remote repository Is developed as a library + command line frontend Don’t miss section at 11:40 by Vsevolod Stakhov! Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 4 / 24
  • 6. Userland changes Toolchain Compiler change LLVM/Clang 3.3 is default compiler (amd64, arm and i386) Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 5 / 24
  • 7. Userland changes Toolchain Compiler change LLVM/Clang 3.3 is default compiler (amd64, arm and i386) Why? BSD licensed (gcc > 4.2.1 is GPLv3) Fully C++11 compliant. Includes LLVM libc++. Always cross compiler. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 5 / 24
  • 8. Userland changes Toolchain Compiler change LLVM/Clang 3.3 is default compiler (amd64, arm and i386) Why? BSD licensed (gcc > 4.2.1 is GPLv3) Fully C++11 compliant. Includes LLVM libc++. Always cross compiler. We still support gcc 4.2+ to build tier 2 arches. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 5 / 24
  • 9. Userland changes Toolchain Toolchain Moving towards external toolchain. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 6 / 24
  • 10. Userland changes Toolchain Toolchain Moving towards external toolchain. Portable make(1) imported from NetBSD Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 6 / 24
  • 11. Userland changes Toolchain Toolchain Moving towards external toolchain. Portable make(1) imported from NetBSD Tools updated: patch(1): GNU BSD licensed fork of original Larry Wall sort(1): GNU own implementation byacc for yacc(1) flex for lex(1) Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 6 / 24
  • 12. Userland changes Developers tools Developers tools CVS -> subversion (lite) ATF/kyua from NetBSD Work in progress: gdb -> lldb Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 7 / 24
  • 13. Userland changes DNS tools DNS tools Recursive resolver & tools BIND -> unbound dig(1) -> drill(1) new host(1) implementation nslookup Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 8 / 24
  • 14. Userland changes DNS tools DNS tools Recursive resolver & tools BIND -> unbound dig(1) -> drill(1) new host(1) implementation nslookup LDNS library Feature rich API, providing control over recursion, DNSSEC, TSIG, etc. Utilized by OpenSSH, drill(1) Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 8 / 24
  • 15. Userland changes DNS tools DNS tools Recursive resolver & tools BIND -> unbound dig(1) -> drill(1) new host(1) implementation nslookup LDNS library Feature rich API, providing control over recursion, DNSSEC, TSIG, etc. Utilized by OpenSSH, drill(1) Plan for FreeBSD 11: caching, validating, secure resolver library with standard API Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 8 / 24
  • 16. Userland changes Other userland updates Other userland updates freebsd-version(1) tool introduced libyaml added to base Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 9 / 24
  • 17. Userland changes Other userland updates Other userland updates freebsd-version(1) tool introduced libyaml added to base Citrus iconv(3) in libc newest jemalloc 3.4.1 in libc Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 9 / 24
  • 18. Userland changes Other userland updates Other userland updates freebsd-version(1) tool introduced libyaml added to base Citrus iconv(3) in libc newest jemalloc 3.4.1 in libc nvi editor supports wide character locales Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 9 / 24
  • 19. Userland changes Other userland updates Other userland updates freebsd-version(1) tool introduced libyaml added to base Citrus iconv(3) in libc newest jemalloc 3.4.1 in libc nvi editor supports wide character locales wpa_supplicant/hostapd updated to 2.0 OpenSSH updated to 6.4 OpenSSL updated to 1.0.1e Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 9 / 24
  • 20. Userland changes Other userland updates Installer bsdinstall features ZFS root installation Removed old installer sysinstall and auxiliary tools libdisk, libftpio, sade Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 10 / 24
  • 21. Kernel: virtualization bhyve bhyve(4) hypervisor BSD hyper visor (pronounced as “bee hive”) Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 11 / 24
  • 22. Kernel: virtualization bhyve bhyve(4) hypervisor BSD hyper visor (pronounced as “bee hive”) Requirements: host is amd64: Intel CPU with VT-x feature or AMD CPU with AMD-V feature no BIOS provided Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 11 / 24
  • 23. Kernel: virtualization bhyve bhyve(4) hypervisor BSD hyper visor (pronounced as “bee hive”) Results in: 12k lines of code in kernel 14k lines of code in userland Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 11 / 24
  • 24. Kernel: virtualization bhyve bhyve(4) hypervisor BSD hyper visor (pronounced as “bee hive”) Guest OSes supported: FreeBSD, OpenBSD GNU/Linux Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 11 / 24
  • 25. Kernel: virtualization guest improvements Guest improvements Xen and Xen HVM in GENERIC kernel Microsoft Hyper-V drivers added VMware VMXNET3 driver added Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 12 / 24
  • 26. Kernel: security capsicum(4) update capsicum(4) update Capsicum - hybrid capability + UNIX access control model. Introduced in FreeBSD 9.0. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 13 / 24
  • 27. Kernel: security capsicum(4) update capsicum(4) update Capsicum integrates further into FreeBSD: notions of “capability” and “file descriptor” merge new APIs: cap_new(2) cap_rights_limit(2) capsicum(4) in GENERIC by default sandboxed applications: tcpdump(1), dhclient(8), rwhod(8), kdump(8), hastd(8), auditdistd(8), ctld(8), iscsid(8) Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 13 / 24
  • 28. Kernel: security capsicum(4) update capsicum(4) update Future integration in 10.1-RELEASE: casperd(8) daemon libcapsicum(3) library sandboxing a lot of applications Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 13 / 24
  • 29. Kernel: security /dev/random improvements better random Problem: hardware assisted randomness (RDRAND and Padlock) no longer trusted. Solution: run them through Yarrow. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 14 / 24
  • 30. Kernel: security /dev/random improvements better random Problem: hardware assisted randomness (RDRAND and Padlock) no longer trusted. Solution: run them through Yarrow. Problem: not enough entropy on early boot. Solution: we can get some from device attach time. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 14 / 24
  • 31. Kernel: security /dev/random improvements better random Problem: hardware assisted randomness (RDRAND and Padlock) no longer trusted. Solution: run them through Yarrow. Problem: not enough entropy on early boot. Solution: we can get some from device attach time. Problem: not enough entropy on first boot. Let bsdinstall save an entropy cookie for future boot. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 14 / 24
  • 32. Kernel: security /dev/random improvements better random Problem: hardware assisted randomness (RDRAND and Padlock) no longer trusted. Solution: run them through Yarrow. Problem: not enough entropy on early boot. Solution: we can get some from device attach time. Problem: not enough entropy on first boot. Let bsdinstall save an entropy cookie for future boot. FreeBSD 11.0 plan: substitute Yarrow with Fortuna. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 14 / 24
  • 33. Kernel: general improvements callout(9) new generation callout(9) improvements callout(9) - kernel subsystem to schedule delayed events. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 15 / 24
  • 34. Kernel: general improvements callout(9) new generation callout(9) improvements callout(9) - kernel subsystem to schedule delayed events. New improvements: tickless event coalescing direct execution Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 15 / 24
  • 35. Kernel: general improvements unmapped I/O unmapped I/O Problem: kernel doing I/O on behalf of userland process maps the I/O region into kernel address space. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 16 / 24
  • 36. Kernel: general improvements unmapped I/O unmapped I/O Problem: kernel doing I/O on behalf of userland process maps the I/O region into kernel address space. Change of virtual memory map requires notification of other CPUs. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 16 / 24
  • 37. Kernel: general improvements unmapped I/O unmapped I/O Problem: kernel doing I/O on behalf of userland process maps the I/O region into kernel address space. Change of virtual memory map requires notification of other CPUs. Solution: unmapped I/O. Required modification of file system layer, GEOM classes, disk drivers. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 16 / 24
  • 38. Kernel: general improvements unmapped I/O unmapped I/O Problem: kernel doing I/O on behalf of userland process maps the I/O region into kernel address space. Change of virtual memory map requires notification of other CPUs. Solution: unmapped I/O. Required modification of file system layer, GEOM classes, disk drivers. Result: 30% of system CPU time saved in I/O bound tasks. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 16 / 24
  • 39. Kernel: general improvements memory management memory management changes Kernel memory maps: vmem(9) generic allocator from NetBSD kernel memory map allocation backed by vmem(9) Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 17 / 24
  • 40. Kernel: general improvements memory management memory management changes Kernel memory maps: vmem(9) generic allocator from NetBSD kernel memory map allocation backed by vmem(9) Mach VM radix tree instead of splay tree for vm_pages in vm_object Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 17 / 24
  • 41. Kernel: general improvements memory management memory management changes Kernel memory maps: vmem(9) generic allocator from NetBSD kernel memory map allocation backed by vmem(9) Mach VM radix tree instead of splay tree for vm_pages in vm_object UMA performance/efficiency improvements per-CPU zones log warning when a zone hits limit Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 17 / 24
  • 42. Kernel: general improvements memory management atomic close-on-exec Prevents descriptor leak in presence of threads or signals Suggested for future POSIX Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 18 / 24
  • 43. Kernel: I/O and storage changes storage changes NAND flash support NAND controller/chip/bus APIs NAND disk GEOM class NAND file system Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 19 / 24
  • 44. Kernel: I/O and storage changes storage changes NAND flash support NAND controller/chip/bus APIs NAND disk GEOM class NAND file system Resizing general support of “resize” notion in GEOM resizing of GEOM mirror (in 10.1-RELEASE) growfs(1) works on mounted filesystems Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 19 / 24
  • 45. Kernel: I/O and storage changes storage changes NAND flash support NAND controller/chip/bus APIs NAND disk GEOM class NAND file system Resizing general support of “resize” notion in GEOM resizing of GEOM mirror (in 10.1-RELEASE) growfs(1) works on mounted filesystems legacy ATA layer removed Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 19 / 24
  • 46. Kernel: I/O and storage changes GEOM: work in progress Targeted for 10.1-RELEASE: direct dispatch in GEOM instead of two threads fine grained locking of CAM layer Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 20 / 24
  • 47. Kernel: I/O and storage changes GEOM: work in progress Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 20 / 24
  • 48. Kernel: I/O and storage changes GEOM: work in progress Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 20 / 24
  • 49. Kernel: I/O and storage filesystems FUSE FUSE moved to base from ports to improve stability Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 21 / 24
  • 50. Kernel: I/O and storage filesystems FUSE FUSE moved to base from ports to improve stability Giant-locked and GPL-contaminated filesystems removed from kernel: hpfs, ext2fs, ntfs, reiserfs, coda, xfs, nwfs, portalfs. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 21 / 24
  • 51. Kernel: networking changes networking changes ZERO_COPY_SOCKETS sendfile(2) on shared memory fd network byte order throughout the stack IP/TCP/UDP dtrace(1) providers raceless and cheap statistic per-CPU counters Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 22 / 24
  • 52. Kernel: networking CARP new CARP CARP isn’t pseudo-interface anymore. % ifconfig igb0 10.0.0.112/27 vhid 112 % ifconfig igb0 igb0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 00:25:90:03:0e:fa inet 10.0.0.112 netmask 0xffffffe0 broadcast 10.0.0.127 vhid 112 media: Ethernet autoselect (1000baseT <full-duplex>) status: active carp: BACKUP vhid 112 advbase 1 advskew 0 Redundant address is configured directly on a real interface. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 23 / 24
  • 53. Kernel: networking packet filters packet filters pf(4): fork off OpenBSD, bringing in multithreading ipfilter(4): update to 5.1.2 (BSD license pledged) ipfw(4): no significant changes Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 24 / 24
  • 54. Kernel: networking packet filters Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 25 / 24