Introduction
Introduction
FreeBSD is a free operating system derived from AT&T's UNIX operating system1 FreeBSD no longer contains anyAT&T proprietary code, so it may be distributed freely. See page 7 for more details. It runs on the following platforms:
- Computers based on the Intel i386 CPU architecture, including the 386, 486 and Pentium families of processors, and compatible CPUs from AMD and Cyrix.
- The Compaq/Digital Alpha processor.
- 64 bit SPARC machines from Sun Microsystems.
- In addition, significant development efforts are going towards porting FreeBSD to other hardware, notably the Intel 64 bit architecture and the IBM/Motorola PowerPC architecture.
This course describes the released versions of FreeBSD for Intel and Alpha processors. Current support for SPARC 64 processors is changing too fast for it to be practical to give details specific to this processor, but nearly everything in this course also applies to SPARC 64.
How to use this course
This course is intended for a number of different audiences. It attempts to present the material without too many forward references. It contains the following parts:
- The first part, Chapters 1 to 6, tells you howtoinstall FreeBSD and what to do if things go wrong.
- Chapters 7to15introduce you to life with FreeBSD, including setting up optional features and system administration.
- Chapters 16 to 27 introduce you to FreeBSD's rich network support.
- Finally, Chapters 28 to 33 look at system administration topics that build on all the preceding material.
In more detail, we'll discuss the following subjects:
- In the rest of this chapter, we’ll look at what FreeBSD is, what you need to run it, and what resources are available, including FreeBSD's features and history, how it compares to other free UNIX-like operating systems, other sources of information about FreeBSD, the world-wide FreeBSD community, and support for FreeBSD. In addition, we'll look at the BSD'sdaemon emblem.
- Chapter 2, Before you install, discusses the installation requirements and theoretical background of installing FreeBSD.
- Chapter 3, Quick installation, presents a quick overview of the installation process. If you're reasonably experienced, this may be all you need to install FreeBSD.
- In Chapter 4, Shared OS installation,we'll look at preparing to install FreeBSD on a system that already contains another operating system.
- In Chapter 5, Installing FreeBSD,we'll walk through a typical installation in detail.
- Chapter 6, Post-installation configuration,explains the configuration you need to do after installation to get a complete functional system.
- Chapter 7, The tools of the trade, presents a number of aspects of FreeBSD that are of interest to newcomers (particularly from a Microsoft environment). We'll look at setting up a desktop, the concept of users and file naming. We’ll also consider the basics of using the shell and editor, and how to shut down the machine.
- Chapter 8, Taking control, goes into more detail about the specifics of working with UNIX, such as processes, daemons, timekeeping and log files. We’ll also look at features unique to FreeBSD, including multiple processor support, removable I/O devices and emulating other systems.
- Chapter 9, The Ports Collection,describes the thousands of free software packages that you can optionally install on a FreeBSD system.
- Chapter 10, File systems and devices, contains information about the FreeBSD directory structure and device names. You'll find the section on device names (starting on page 195) interesting even if you're an experienced UNIX hacker.
- Chapter 11, Disks, describes how to format and integrate hard disks, and how to handle disk errors.
- Managing disks can be a complicated affair. Chapter 12, The Vinum Volume Manager, describes a way of managing disk storage.
- In Chapter 13, Writing CD-Rs, we'll look at how to use FreeBSD to write CD-Rs.
- FreeBSD provides professional, reliable data backup services as part of the base system. Don't ever let yourself lose data because of inadequate backup provisions. Read all about it in Chapter 14, Tapes, backups and floppy disks.
- Chapter 15, Printers, describes the BSD spooling system and how to use it both on local and networked systems.
- Starting at Chapter 16, Networks and the Internet, we’ll look at the Internet and the more important services.
- Chapter 17, Configuring the local network, describes how to set up local networking.
- Chapter 18, Connecting to the Internet, discusses the issues in selecting an Internet Service Provider (ISP) and establishing a presence on the Internet.
- Chapter 19, Serial communications, discusses serial hardware and the prerequisites for PPP and SLIP communications.
- In Chapter 20, Configuring PPP,we'll look at FreeBSD's two PPP implementations and what it takes to set them up.
- In Chapter 21, The Domain Name Service, we'll consider the use of names on the Internet.
- Security is an increasing problem on the Internet. In Chapter 22, Fire walls, IP aliasing and proxies,we'll look at some things we can do to improve it. We'll also look at IP aliasing, since it goes hand-in-hand with firewalls, and proxy servers.
- Networks sometimes become not works. In Chapter 23, Network debugging, we’ll see what we can do to solve net work problems.
- Chapter 24, Basic network access: clients,describes the client viewpoint of network access, including Web browsers, ssh, ftp, rsync and nfs clients for sharing file systems between networked computers.
- Network clients talk to network servers. We'll look at the corresponding server viewpoint in Chapter 25, Basic network access: servers.
- Despite the World Wide Web, traditional two-way personal communication is still very popular. We'll look at how to use mail clients in Chapter 26, Electronic mail: clients.
- Mail servers are an important enough topic that there's a separate Chapter 27, Electronic mail: servers.
- In Chapter 28, XFree86 in depth, we'll look at the theory behind getting X11 working.
- Chapter 29, Starting and stopping the system, describes how to start and stop a FreeBSD system and all the things you can do to customize it.
- In Chapter 30, FreeBSD configuration files, we'll look at the more common configuration files and what they should contain.
- In Chapter 31, Keeping up to date, we’ll discuss howtoensure that your system is always running the most appropriate version of FreeBSD.
- FreeBSD keeps changing. We'll look at some aspects of what that means to you in Chapter 32, Updating the system software.
- Chapter 33, Custom kernels, discusses optional kernel features.
- Appendix A, Bibliography,suggests some books for further reading.
- Appendix B, The evolution of FreeBSD, describes the changes that have taken place in FreeBSD since it was introduced nearly ten years ago.
FreeBSD features
FreeBSD is derived from Berkeley UNIX,the flavour of UNIX developed by the Computer Systems Research Group at the University of California at Berkeley and previously released as the Berkeley Software Distribution (BSD) of UNIX.
UNIX is a registered trademark of the Open Group, so legally; FreeBSD may not be called UNIX. The technical issues are different, of course; makeup your own mind as to how much difference this makes.
Like commercial UNIX, FreeBSD provides you with many advanced features, including:
- FreeBSD uses preemptive multitasking with dynamic priority adjustment to ensure smooth and fair sharing of the computer between applications and users.
- FreeBSD is a multi-user system:many people can use a FreeBSD system simultaneously for unrelated purposes. The system shares peripherals such as printers and tape drives properly between all users on the system.
- Don't get this confused with the multitasking offered by some commercial systems. FreeBSD is a true multi-user system that protects users from each other.
- FreeBSD is secure. Its track record is borne out by the reports of the CERT,the leading organization dealing with computer security. See http://www.cert.org for more information. The FreeBSD project has a team of security officers concerned with maintaining this lead.
- FreeBSD is reliable. It is used by ISPs around the world. FreeBSD systems regularly go several years without rebooting. FreeBSD can fail, of course, but the main causes of outages are power failures and catastrophic hardware failures.
- FreeBSD provides a complete TCP/IP networking implementation. This means that your FreeBSD machine can interoperate easily with other systems and also act as an enterprise server, providing vital functions such as NFS (remote file access) and electronic mail services, or putting your organization on the Internet with WWW, FTP, routing and firewall services. In addition, the Ports Collection includes software for communicating with proprietary protocols.
- Memory protection ensures that neither applications nor users can interfere with each other. If an application crashes, it cannot affect other running applications.
- FreeBSD includes the XFree86 implementation of theX11 graphical user interface.
- FreeBSD can run most programs built for versions of SCO UNIX and UnixWare, Solaris, BSD/OS, NetBSD, 386BSD and Linux on the same hardware platform.
- The FreeBSD Ports Collection includes thousands of ready-to-run applications.
- Thousands of additional and easy-to-port applications are available on the Internet. FreeBSD is source code compatible with most popular commercial UNIX systems and thus most applications require few, if any, changes to compile. Most freely available software was developed on BSD-like systems. As a result, FreeBSD is one of the easiest platforms you can port to.
- Demand paged virtual memory (VM)and "merged VM/buffer cache" design efficiently satisfies applications with large appetites for memory while still maintaining interactive response to other users.
- The base system contains a full complement of C, C++ and FORTRAN development tools. All commonly available programming languages, such as perl, python and ruby, are available. Many additional languages for advanced research and development are also available in the Ports Collection.
- FreeBSD provides the complete source code for the entire system, so you have the greatest degree of control overyour environment. The licensing terms are the freest that you will find anywhere ("Hey, use it, don't pretend you wrote it, don't complain to us if you have problems"). Those are just the licensing conditions, of course. As we'll see later in the chapter, there are plenty of people prepared to help if you run into trouble.
- Extensive online documentation, including traditional man pages and a hypertext-based online handbook.
FreeBSD is based on the 4.4BSD UNIX released by the Computer Systems Research Group (CSRG) at the University of California at Berkeley. The FreeBSD Project has spent many thousands of hours fine-tuning the system for maximum performance and reliability. FreeBSD's features, performance and reliability compare very favorably with those of commercial operating systems.
Since the source code is available, you can easily customize it for special applications or projects, in ways not generally possible with operating systems from commercial vendors. You can easily start out small with an inexpensive 386 class PC and upgrade as your needs grow. Here are a few of the applications in which people currently use FreeBSD:
- Internet Services: the Internet grew up around Berkeley UNIX. The original TCP/IP implementation, released in 1982, was based on 4.2BSD, and nearly every current TCP/IP implementation has borrowed from it. FreeBSD is a descendent of this implementation, which has been maintained and polished for decades. It is the most mature and reliable TCP/IP available at any price. This makes it an ideal platform for a variety of Internet services such as FTP servers, World Wide Web servers, electronic mail servers, USENET news servers, DNS name servers and firewalls. With the Samba suite, you can replace a Microsoft file server.
- Education: FreeBSD is an ideal way to learn about operating systems, computer architecture and networking. A number of freely available CAD, mathematical and graphic design packages also make it highly useful to those whose primary interest in a computer is to get other work done.
- Research: FreeBSD is an excellent platform for research in operating systems as well as other branches of computer science, since the source code for the entire system is available. FreeBSD's free availability also makes it possible for remote groups to collaborate on ideas or shared development without having to worry about special licensing agreements or limitations on what may be discussed in open forums.
- X Window workstation: FreeBSD makes an excellent choice for an inexpensive graphical desktop solution. UnlikeanXterminal, FreeBSD allows many applications to be run locally, if desired, thus relieving the burden on a central server. FreeBSD can even boot "diskless," making individual workstations even cheaper and easier to administer.
- Software Development: The basic FreeBSD system comes with a full complement of development tools including the renowned GNU C/C++ compiler and debugger.