Freebsd
Freebsd
OPERATING SYSTEM
In Partial Fulfillment
of the Requirements for the Subject Operating System
by
DELA CRUZ, JOLLY BETH
September, 2024
Research Content
I. FreeBSD Operating System
FreeBSD is a free and open-source Unix-like operating
system descended from the Berkeley Software Distribution (BSD).
The first version of FreeBSD was released in 1993 developed
from 386BSD and the current version runs on IA-32, x86-
64, ARM, PowerPC and RISC-V processors. The project is supported
and promoted by the FreeBSD Foundation.
History of FreeBSD:
Lawsuit:
DESKTOP
FILE SYSTEM
THE TASKBAR
CUSTOMIZED DESKTOP
FreeBSD Features:
Use cases
FreeBSD contains a significant collection of server-
related software in the base system and the ports
collection, allowing FreeBSD to be configured and used as
a mail server, web server, firewall, FTP server, DNS
server and a router, among other applications.
FreeBSD can be installed on a regular desktop or a
laptop. The X Window System is not installed by default,
but is available in the FreeBSD ports
collection. Wayland is also available for
FreeBSD (unofficially supported). A number of desktop
environments such as Lumina, GNOME, KDE, and Xfce, as
well as lightweight window managers such
as Openbox, Fluxbox, dwm, and bspwm, are also available
for FreeBSD. Major web browsers such
as Firefox and Chromium are available unofficially on
FreeBSD. As of FreeBSD 12, support for a modern graphics
stack is available via drm-kmod. A large number of
wireless adapters are supported.
FreeBSD releases installation images for supported
platforms. Since FreeBSD 13 the focus has been on x86-
64 and aarch64 platforms which have Tier 1 support.IA-
32 is a Tier 1 platform in FreeBSD 12 but is a Tier 2
platform in FreeBSD 13. 32bit ARM processors using armv6
or armv7 also have Tier 2 support. 64bit versions
of PowerPC and RISC-V are also supported. Interest in the
RISC-V architecture has been growing. The MIPS
architecture port has been marked for deprecation and
there is no image for any currently supported version.
[32]
FreeBSD 12 supports SPARC but there is no image for
FreeBSD 13.
Networking
FreeBSD's TCP/IP stack is based on
the 4.2BSD implementation of TCP/IP which greatly
contributed to the widespread adoption of these
protocols.[33] FreeBSD also supports IPv6, SCTP, IPSec, and
wireless networking (Wi-Fi). The IPv6 and IPSec stacks
were taken from the KAME project.[36] Prior to version
11.0, FreeBSD supported IPX and AppleTalk protocols, but
they are considered old and have now been dropped.
As of FreeBSD 5.4, support for the Common Address
Redundancy Protocol (CARP) was imported from
the OpenBSD project. CARP allows multiple nodes to share
a set of IP addresses, so if one of the nodes goes down,
other nodes can still serve the requests.
Storage
FreeBSD has several unique features related to
storage. Soft updates can protect the consistency of
the UFS filesystem (widely used on the BSDs) in the event
of a system crash. Filesystem snapshots allow an image of
a UFS filesystem at an instant in time to be efficiently
created. Snapshots allow reliable backup of a live
filesystem. GEOM is a modular framework that
provides RAID (levels 0, 1, 3 currently), full disk
encryption, journaling, concatenation, caching, and
access to network-backed storage. GEOM allows building of
complex storage solutions combining ("chaining") these
mechanisms. FreeBSD provides two frameworks for data
encryption: GBDE and Geli. Both GBDE and Geli operate at
the disk level. GBDE was written by Poul-Henning Kamp and
is distributed under the two-clause BSD license. Geli is
an alternative to GBDE that was written by Pawel Jakub
Dawidek and first appeared in FreeBSD 6.0.
From 7.0 onward, FreeBSD supports the ZFS filesystem. ZFS
was previously an open-source filesystem that was first
developed by Sun Microsystems, but when Oracle acquired
Sun, ZFS became a proprietary product. However, the
FreeBSD project is still developing and improving its ZFS
implementation via the OpenZFS project. The currently
supported version of OpenZFS is 2.2.2 which contains an
important fix for a data corruption bug. This version is
compatible with releases starting from 12.2-RELEASE.
Security
FreeBSD provides several security-related features
including access-control lists (ACLs), security event
auditing, extended file system attributes, mandatory
access controls (MAC) and fine-grained capabilities.
These security enhancements were developed by
the TrustedBSD project. The project was founded by Robert
Watson with the goal of implementing concepts from
the Common Criteria for Information Technology Security
Evaluation and the Orange Book. This project is
ongoing and many of its extensions have been integrated
into FreeBSD. The project is supported by a variety of
organizations, including the DARPA, NSA, Network
Associates Laboratories, Safeport Network Services, the
University of Pennsylvania, Yahoo!, McAfee Research,
SPARTA, Apple Computer, nCircle Network Security, Google,
the University of Cambridge Computer Laboratory, and
others.
The project has also ported the NSA's FLASK/TE
implementation from SELinux to FreeBSD. Other work
includes the development of OpenBSM, an open-source
implementation of Sun's Basic Security Module
(BSM) API and audit log file format, which supports an
extensive security audit system. This was shipped as part
of FreeBSD 6.2. Other infrastructure work in FreeBSD
performed as part of the TrustedBSD Project has included
GEOM and OpenPAM.
Portability
FreeBSD has been ported to a variety of instruction
set architectures. The FreeBSD project organizes
architectures into tiers that characterize the level of
support provided. Tier 1 architectures are mature and
fully supported, e.g. it is the only tier "supported by
the security officer". Tier 2 architectures are under
active development but are not fully supported. Tier 3
architectures are experimental or are no longer under
active development.
As of December 2023, FreeBSD has been ported to the
following architectures:
Support level
Architecture Notes
in 14.x
Hardware compatibility
Supported devices are listed in the FreeBSD 12.1-
RELEASE Hardware Notes. The document describes the
devices currently known to be supported by FreeBSD. Other
configurations may also work, but simply have not been
tested yet. Rough automatically extracted lists of
supported device ids are available in a thirdparty
repository.
In 2020, a new project was introduced to automatically
collect information about tested hardware configurations.
Third-party software
FreeBSD has a software repository of over
30,000 applications that are developed by third parties.
Examples include windowing systems, web browsers, email
clients, office suites and so forth. In general, the
project itself does not develop this software, only the
framework to allow these programs to be installed, which
is known as the Ports collection. Applications may either
be compiled from source ("ports"), provided their
licensing terms allow this, or downloaded as precompiled
binaries ("packages". ThePorts collection supports the
current and stable branches of FreeBSD. Older releases
are not supported and may or may not work correctly with
an up-to-date Ports collection.
FreeBSD version 10.0 introduced the package manager pkg
as a replacement for the previously used package
tools. It is functionally similar to apt and yum in Linux
distributions. It allows for installation, upgrading and
removal of both ports and packages. In addition to
pkg, PackageKit can also be used to access the Ports
collection.
Jails
First introduced in FreeBSD version 4, jails are a
security mechanism and an implementation of operating-
system-level virtualization that enables the user to run
multiple instances of a guest operating system on top of
a FreeBSD host. It is an enhanced version of the
traditional chroot mechanism. A process that runs within
such a jail is unable to access the resources outside of
it. Every jail has its own hostname and IP address. It is
possible to run multiple jails at the same time, but the
kernel is shared among all of them. Hence only software
supported by the FreeBSD kernel can be run within a jail.
Virtualization
bhyve, a new virtualization solution, was introduced
in FreeBSD 10.0. bhyve allows a user to run a number of
guest operating systems (FreeBSD, OpenBSD, Linux,
and Microsoft Windows) simultaneously. Other operating
systems such as Illumos are planned. bhyve was written by
Neel Natu and Peter Grehan and was announced in the 2011
BSDCan conference for the first time. The main difference
between bhyve and FreeBSD jails is that jails are
an operating system-level virtualization and therefore
limited to only FreeBSD guests; but bhyve is a type
2 hypervisor and is not limited to only FreeBSD guests.
For comparison, bhyve is a similar technology
to KVM whereas jails are closer to LXC
containers or Solaris Zones. Amazon EC2 AMI instances are
also supported via amazon-ssm-agent
Since FreeBSD 11.0, there has been support for running as
the Dom0 privileged domain for the Xen type 1 hypervisor.
[78]
Support for running as DomU (guest) has been available
since FreeBSD 8.0.
OS compatibility layers
Most software that runs on Linux can run on FreeBSD
using an optional built-in compatibility layer. Hence,
most Linux binaries can be run on FreeBSD, including some
proprietary applications distributed only in binary form.
This compatibility layer is not an emulation;
Linux's system call interface is implemented in the
FreeBSD's kernel and hence, Linux executable
images and shared libraries are treated the same as
FreeBSD's native executable images and shared libraries.
Additionally, FreeBSD provides compatibility layers for
several other Unix-like operating systems, in addition to
Linux, such as BSD/OS and SVR4, however, it is more
common for users to compile those programs directly on
FreeBSD.
No noticeable performance penalty over native
FreeBSD programs has been noted when running Linux
binaries, and, in some cases, these may even perform more
smoothly than on Linux. However, the layer is not
altogether seamless, and some Linux binaries are unusable
or only partially usable on FreeBSD. There is support for
system calls up to version 4.4.0, available since FreeBSD
14.0. As of release 10.3, FreeBSD can run 64-bit Linux
binaries.
Kernel
FreeBSD's kernel provides support for some essential
tasks such as managing processes, communication, booting
and filesystems. FreeBSD has a monolithic kernel, with a
modular design. Different parts of the kernel, such as
drivers, are designed as modules. The user can load and
unload these modules at any time. ULE is the
default scheduler in FreeBSD since version 7.1, it
supports SMP and SMT. The FreeBSD kernel has also a
scalable event notification interface, named kqueue. It
has been ported to other BSD-derivatives such
as OpenBSD and NetBSD. Kernel threading was introduced in
FreeBSD 5.0, using an M:N threading model. This model
works well in theory,but it is hard to implement and few
operating systems support it. Although FreeBSD's
implementation of this model worked, it did not perform
well, so from version 7.0 onward, FreeBSD started using
a 1:1 threading model, called libthr.
Installers
From version 2.0 to 8.4, FreeBSD used the sysinstall
program as its main installer. It was written
in C by Jordan Hubbard. It uses a text user interface,
and is divided into a number of menus and screens that
can be used to configure and control the installation
process. It can also be used to install Ports and
Packages as an alternative to the command-line interface.
Shell
Hardware Requirements:
Minimum: 64MB RAM, 1GB disk space, i386 (32-bit), and ARM
support.
Recommended: 512MB RAM, multi-core 64-bit processors
(x86-64), and network cards.
FreeBSD supports a wide range of architectures like
Intel, AMD, ARM, and RISC-V.
Installing FreeBSD
Requirements:
Step 3.2 Writing the Image File Using Image Writer (Windows):
Start by downloading Image Writer, a program for saving
and restoring OS images on removable drives.
Locate the image from the built-in file browser, then
select the USB drive in the drop-down menu under “Device”
Finally, select “Write” at the bottom of the application
and wait for the program to finish writing the image file
to your removable drive.
VII. Reference
Wikipedia Contributors, FreeBSD, Wikipedia, The Free
Encyclopedia (2024), https://en.wikipedia.org/wiki/FreeBSD
OS Desktop, FreeBSD Foundation (2024),
https://www.freebsd.org/
FreeBSD Features, FreeBSD Foundation (2024),
https://www.freebsd.org/
Installing FreeBSD as a Primary Operating System, FreeBSD
Foundation(2024),https://freebsdfoundation.org/resource/instal
ling-freebsd-as-a-primary- operating-system/
Hardware Requirements, FreeBSD Foundation (2024),
https://www.freebsd.org/releases/
Apache HTTP Server, Apache Software Foundation (2024),
https://httpd.apache.org/
Nginx, NGINX, Inc. (2024), https://www.nginx.com/
MySQL, Oracle Corporation (2024),https://www.mysql.com/
MariaDB, MariaDB Corporation (2024),https://mariadb.org/
GIMP, The GIMP Team (2024),https://www.gimp.org/
LibreOffice, The Document Foundation
(2024),https://www.libreoffice.org/