Глеб Смирнов: Что нового в FreeBSD 10.0

10,330 views

Published on

Только что вышедшая FreeBSD 10 содержит в себе много нововведений, таких как смена компилятора и системы пакетирования приложений, расширенная поддержка виртуализации, а также множество радикальных изменений в уже существующих подсистемах. В докладе Глеб коснётся наиболее важных новостей и расскажет, чего следует ожидать тем, кто поспешит перейти на новую стабильную версию.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,330
On SlideShare
0
From Embeds
0
Number of Embeds
8,223
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Глеб Смирнов: Что нового в FreeBSD 10.0

  1. 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 / 27
  2. 2. Introduction Two years of development 23 September 2011 10 October 2013 head stable/9 Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? stable/10 December 14, 2013 2 / 27
  3. 3. Introduction Two years of development 23 September 2011 10 October 2013 head stable/9 stable/10 10.0-RC1 available now 10.0-RELEASE planned for 2 January 2014 Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 2 / 27
  4. 4. Introduction Outline 1 Userland changes Packaging system Toolchain Developers tools DNS tools Other userland updates 2 Kernel: virtualization bhyve guest improvements 3 Kernel: ARM port Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 3 / 27
  5. 5. Introduction Outline 4 5 6 Kernel: security capsicum(4) update /dev/random improvements Kernel: general improvements callout(9) new generation unmapped I/O memory management atomic close-on-exec Kernel: I/O and storage improvements GEOM 3rd party filesystems Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 3 / 27
  6. 6. Introduction Outline 7 Kernel: networking changes carp packet filters 8 Conslusion looking forward to FreeBSD 11 Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 3 / 27
  7. 7. 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 / 27
  8. 8. 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 / 27
  9. 9. 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 / 27
  10. 10. 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 / 27
  11. 11. 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 / 27
  12. 12. Userland changes Toolchain Toolchain Moving towards external toolchain. Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 6 / 27
  13. 13. 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 / 27
  14. 14. 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 / 27
  15. 15. 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 / 27
  16. 16. 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 / 27
  17. 17. 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 / 27
  18. 18. 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 / 27
  19. 19. 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 / 27
  20. 20. 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 / 27
  21. 21. 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 / 27
  22. 22. 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 / 27
  23. 23. 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 / 27
  24. 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 / 27
  25. 25. 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 / 27
  26. 26. 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 / 27
  27. 27. 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 / 27
  28. 28. 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 / 27
  29. 29. Kernel: ARM port ARM port ARM soon to become Tier 1 platform compiled with clang superpages support EABI by default Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 13 / 27
  30. 30. 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 14 / 27
  31. 31. 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) Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 14 / 27
  32. 32. 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 14 / 27
  33. 33. 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 14 / 27
  34. 34. 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 15 / 27
  35. 35. 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 15 / 27
  36. 36. 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 15 / 27
  37. 37. 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 15 / 27
  38. 38. 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 16 / 27
  39. 39. 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 16 / 27
  40. 40. 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 17 / 27
  41. 41. 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 17 / 27
  42. 42. 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 17 / 27
  43. 43. 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 17 / 27
  44. 44. 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 18 / 27
  45. 45. 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 18 / 27
  46. 46. 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 18 / 27
  47. 47. Kernel: general improvements atomic close-on-exec 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 19 / 27
  48. 48. Kernel: I/O and storage improvements 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 20 / 27
  49. 49. Kernel: I/O and storage improvements 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 20 / 27
  50. 50. Kernel: I/O and storage improvements 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 20 / 27
  51. 51. Kernel: I/O and storage GEOM 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 21 / 27
  52. 52. Kernel: I/O and storage GEOM GEOM: work in progress Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 21 / 27
  53. 53. Kernel: I/O and storage GEOM GEOM: work in progress Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 21 / 27
  54. 54. Kernel: I/O and storage 3rd party 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 22 / 27
  55. 55. Kernel: I/O and storage 3rd party 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 22 / 27
  56. 56. Kernel: networking changes networking changes newest Infiniband OFED stack native iSCSI Target and Initiator etherswitch(4): embedded Ethernet switch driver Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 23 / 27
  57. 57. Kernel: networking changes networking changes ZERO_COPY_SOCKETS sendfile(2) on shared memory fd Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 23 / 27
  58. 58. Kernel: networking changes networking changes network byte order throughout the stack counter(9): raceless and cheap statistic per-CPU counters IP/TCP/UDP dtrace(1) providers Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 23 / 27
  59. 59. Kernel: networking carp new carp(4) CARP isn’t pseudo-interface any more. Redundant address is configured directly on a real interface. % 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 Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 24 / 27
  60. 60. 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 25 / 27
  61. 61. Kernel: networking Gleb Smirnoff glebius@FreeBSD.org packet filters What’s new in FreeBSD 10? December 14, 2013 26 / 27
  62. 62. Conslusion Gleb Smirnoff glebius@FreeBSD.org looking forward to FreeBSD 11 What’s new in FreeBSD 10? December 14, 2013 27 / 27
  63. 63. Conslusion looking forward to FreeBSD 11 Questions? Gleb Smirnoff glebius@FreeBSD.org What’s new in FreeBSD 10? December 14, 2013 27 / 27

×