About FreeBSD's Technological Advances
FreeBSD offers many unique features.
No matter what the application, an operating system should take advantage of every resource available. FreeBSD's focus on performance, networking, and storage combines with ease of system administration and comprehensive documentation to realize the full potential of any computer.
A complete operating system based on 4.4BSD.
FreeBSD's distinguished roots derive from the BSD software releases from the Computer Systems Research Group at the University of California, Berkeley. Over twenty years of work have been put into enhancing FreeBSD, adding industry-leading scalability, network performance, management tools, file systems, and security features. As a result, FreeBSD may be found across the Internet, in the operating system of core router products, running root name servers, hosting major web sites, and as the foundation for widely used desktop operating systems. This is only possible because of the diverse and world-wide membership of the volunteer FreeBSD Project.
FreeBSD 9.0, brings many new features and performance enhancements with a special focus on desktop support and security features.
- Capsicum Capability Mode: Capsicum is a set of features for sandboxing support, using a capability model in which the capabilities are file descriptors. Two new kernel options CAPABILITIES and CAPABILITY_MODE have been added to the GENERIC kernel.
- Hhook: (Helper Hook) and khelp(9) (Kernel Helpers) KPIs have been implemented. These are a superset of pfil(9) framework for more general use in the kernel. The hhook(9) KPI provides a way for kernel subsystems to export hook points that khelp(9) modules can hook to provide enhanced or new functionality to the kernel. The khelp(9) KPI provides a framework for managing khelp(9) modules, which indirectly use the hhook(9) KPI to register their hook functions with hook points of interest within the kernel. These allow a structured way to dynamically extend the kernel at runtime in an ABI preserving manner.
- Accounting API: has been implemented. It can keep per-process, per-jail, and per-login class resource accounting information. Note that this is neither built nor installed by default. To build and install this, specify options RACCT in the kernel configuration file and rebuild the base system as described in the FreeBSD Handbook
- Resource-limiting API: has been implemented. It works in conjunction with the RACCT resource accounting implementation and takes user-configurable actions based on the set of rules it maintains and the current resource usage. The rctl(8) utility has been added to manage the rules in userland. Note that this is neither built nor installed by default.
- Usb: subsystem now supports USB packet filter. This allows capturing packets which go through each USB host rchitecture of the packet filter is similar to that of bpf. The userland program usbdump(8) has been added.
- Infiniband support:, OFED (OpenFabrics Enterprise Distribution) version 1.5.3 has been imported into the base system.
- TCP/IP network: stack now supports the mod_cc(9) pluggable congestion control framework. This allows TCP congestion control algorithms to be implemented as dynamically loadable kernel modules. Many kernel modules are available: cc_chd(4) for the CAIA-Hamilton-Delay algorithm, cc_cubic(4) for the CUBIC algorithm, cc_hd(4) for the Hamilton-Delay algorithm, cc_htcp(4) for the H-TCP algorithm, cc_newreno(4) for the NewReno algorithm, and cc_vegas(4) for the Vegas algorithm. The default algorithm can be set by a new sysctl(8) variable net.inet.tcp.cc.algorithm.
- SU+J: FreeBSD's Fast File System now supports soft updates with journaling. It introduces an intent log into a softupdates-enabled file system which eliminates the need for background fsck(8) even on unclean shutdowns.
FreeBSD 8.x brings many new features and performance enhancements. With special focus on a new USB stack, FreeBSD-8.x shipped with experimental support for NFSv4. As well as a new TTY layer. Which improves scalability and resources handling in SMP enabled systems.
- Netisr framework: has been reimplemented for parallel threading support. This is a kernel network dispatch interface which allows device drivers (and other packet sources) to direct packets to protocols for directly dispatched or deferred processing. The new implementation supports up to one netisr thread per CPU, and several benchmarks on SMP machines show substantial performance improvement over the previous version.
- Linux emulation: layer has been updated to version 2.6.16 and the default Linux infrastructure port is now emulators/linux_base-f10 (Fedora 10)
- Network Virtualization: A container ("vimage") has been implemented, extending the FreeBSD kernel to maintain multiple independent instances of networking state. Vimage facilities can be used independently to create fully virtualized network topologies, and jail(8) can directly take advantage of a fully virtualized network stack.