- Shopping Bag ( 0 items )
If you're reading this book because you've been told, or have decided, that you need to learn how to use a Unix system, odds are that you already know at least a little bit about Unix. If you picked up this book because of its striking cover or size, or because you've heard the term Unix and you're wondering what it's all about, it's possible that you might not have any idea whatsoever what Unix actually is-and how it's different from the other operating systems you're probably familiar with.
One position that we hold strongly is that computer users should know the background of the software they are using. In many cases, all that's really necessary is a bit of basic history; everyone seems to know that Microsoft Windows is the brainchild of the Microsoft Corporation. Microsoft is in the news so frequently that even people who don't use computers know about Windows. The Macintosh is slightly less well-known, but it has a reputation of being user-friendly, easy to learn, and the challenger to Microsoft and the personal computer (PC).
So, you might ask, what's the point of knowing all that? Well, there are several points. If you know that Microsoft is responsible for your operating system, your integrated office suite, and your Internet Web browser, you have some idea of where that software came from. There's a company you can point to. With Unix, it's a little different-and with all the operating systems that have grown out of the original Unix, it's even more different.
To give you an understanding of Unix and where it fits into the world of computing, we've decided to start the book with Part I: "Introducing Unix." This part of the book contains information about Unix: the history of the operating system, the various Unix variants, an introduction to the concept of Free Software, and some basic Unix concepts that you should know before reading further.
In this chapter, we provide a brief introduction to what Unix is and explain a little bit about its development, history, and philosophy. Chapter 2: "Which Unix?" introduces the wide variety of Unix variants now available and covers in more detail the three variants we've selected for this book: Linux, FreeBSD, and Sun Solaris. In addition, we will present a brief history of the Free Software movement, which affects Unix users in a significant manner. Finally, we give the opportunity to start building your Unix skills in Chapter 3: "Some Basic Unix Concepts." We've designed this part of the book to help you to understand why Unix is what it is and how that affects the concepts, skills, and programs that we describe in the rest of the book.
What Is Unix?
In the simplest terms, Unix is an operating system. An operating system is the software that runs behind the scenes and allows the user to operate the machine's hardware, start and stop programs, and set the parameters under which the computer operates. Modern operating systems also do a lot of other things, such as controlling network connections, but in the strictest sense, these can be thought of as extra capabilities. The most basic requirement of an operating system is that it permits the user to operate the computer.
Anyone who has used a computer in the past 10 or 15 years has used an operating system. The most common personal operating systems in use today are Microsoft's Windows family (Windows 95 and Windows 98) and Apple's MacOS. These systems were developed for use with the new generations of low-cost, personal-use computers that became available in the 1980s. As these desktop computers became more powerful and more popular, these personal operating systems saw a commensurate increase in popularity.
However, the popularity of personal operating systems such as Apple's and Microsoft's is only part of the operating-system story. Well before these systems existed, academics and computing professionals were using a variety of operating systems. Most of these are now extinct, but a few-especially Unix-survived and continued to evolve.
What we now know as Unix is actually an entire family of operating systems. From IBM's AIX, Xerox's Xenix, and Hewlett Packard's HP-UX to the publicly licensed Linux and FreeBSD, versions of Unix are produced by a variety of companies and organizations. All of these versions have slight differences, but it is what they have in common that makes them important.
All Versions of Unix Are Multiuser
Unix was originally designed to be used on large mainframe computers with many users. Consequently, Unix has support for user accounts and varying levels of file security, allowing users to keep their files private from one another. Even if you install a Unix-based operating system on a standalone computer and you are the only person who will ever use the computer, you will still create at least two accounts: the root account and a personal user account. Many administrators set up accounts for nonexistent people so that they can test configurations or programs under different account settings.
All Versions of Unix Are Multitasking
Unix systems can perform many tasks at once. Unix does this by means of time slicing (also called true multitasking), which means that each running process gets to use the computer for a specific period of time. This behavior is in contrast to task switching, which is the "multitasking" system used by personal operating systems. Task switching means that each running process gets to use the computer until it has completed a particular task; it's not really multitasking in the true sense of the term, so we've put quotation marks around it. When we talk about multitasking in this book, we are talking about time slicing, the true form of multitasking.
All Versions of Unix Can Use the Same Commands
It doesn't matter what kind of Unix-based operating system you're using, whether it's Linux, FreeBSD, Solaris, or some commercial Unix. When using a Unix-derived operating system, users can issue commands to the system by means of a command shell. The command shell is separate from the operating system; in fact, the shell acts as a translator between the commands you enter with the keyboard and the operating system itself. A multitude of shells is available to the Unix user. These shells can be run on any version of Unix, so that the same commands will work on any machine using that shell. We've devoted an entire part of this book to the bash shell, which is one of the most commonly used command shells.
What Does This Mean to the End User?
To the user, then, all versions of Unix look pretty much alike. With only some minor differences, a user will use one given Unix machine in the exact same way as she would use any other Unix machine. The display might be a bit different, and the exact syntax of commands might be altered (if a command shell different from her regular shell is installed), but she can still perform her regular tasks with the same commands. The differences between the various Unices (the plural of Unix) come into play when you reach the level of programmers and system administrators. These are the people to whom the nuts and bolts of different systems become critically important.
If you are wondering whether it's better to use Unix A or Unix B, or if you're caught in the Linux vs. FreeBSD dilemma, don't worry. Pick one and get to know it. When you're comfortable with that one, you might want to explore another. However, you will never find that learning one particular Unix makes all other Unices incomprehensible; Unix just doesn't work that way.
When non-Unix people hear Unix people talking about command languages, shell environments, and so on, they often get the idea that Unix is an obscure and old-fashioned operating system that makes computing difficult by requiring the user to memorize complicated command syntaxes. Although it is true that Unix can be operated entirely from a command-line interface, it may come as a surprise to some of these folks to learn that Unix has a windowing system that is both older and more sophisticated than the ones that form the basis of the personal operating systems. Hundreds of graphical applications, including word processors, spreadsheets, image manipulation software, and others, can be run on Unix machines. With the continuing development of applications for Unix platforms and the transfer of popular Windows-based programs to Unix, the popularity (and ease-of-use) of this powerful operating system is bound to blossom.
So what is Unix? Unix is a powerful multiuser, multitasking family of operating systems. Unix is mature technology, having its genesis in the late 1960s, but it is thoroughly modern-it runs on just about any computing hardware you can think of...
Part II Gettin Started
Chapter 4 Logging In and Looking Around
Chapter 5 Navigating the Filesystem
Part III Unix Desktop Environments
Chapter 6 The X Window System: An Overview
Chapter 7 Advanced X Techniques
Chapter 8 Window Managers
Chapter 9 KDE
Chapter 10 Gnome
Part IV Using the Shell
Chapter 11 Introduction to the Bourne (Again) Shell
Chapter 12 Manipulating Files and Directories
Chapter 13 Customizing the Shell Environment
Chapter 14 Input and Output Redirection
Chapter 15 Other Shells
Part V Using Text Editors
Chapter 16 The ed Editor
Chapter 17 The vi Editor
Chapter 18 GNU Emacs
Chapter 19 pi co, joe, and jed
Chapter 20 Graphical Text Editors
Part VI Shell Programming
Chapter 21 An Introduction to Shell Programming
Chapter 22 Variables
Chapter 23 Flow Control, Part I: Conditional Flow Control
Chapter 24 Flow Control, Part II: Iterative Flow Control
Chapter 25 Regular Expressions
Chapter 26 Signals and Status
Part VII Basic System Administration
Chapter 27 What Is System Administration?
Chapter 28 System Programming
Chapter 29 Managing Users and Groups
Chapter 30 Disks and Filesystem Management
Chapter 31 Installing and Managing Software
Chapter 32 Getting to Know the Kernel
Chapter 33 Managing Print Services
Part VIII Network Administration
Chapter 34 Introduction to Unix Networking
Chapter 35 Network Interfaces and Routing
Chapter 36 The Distributed System
Chapter 37 Integrating Unix with Other Platforms
Chapter 38 Network Security
Part IX Administering Services
Chapter 39 Selecting a Suite of Services
Chapter 40 Electronic Mail
Chapter 41 USENET News
Chapter 42 World Wide Web Services
Chapter 43 Remote Access (inet) Services
Appendix A Common Unix Commands
Appendix B Documentation and Resources
Appendix C Other Types of Unix