Chapter 1 Introduction

Chapter 1 Introduction

Chapter 1 Introduction 1.0 Objectives 1.1 Introduction to Unix, Linux and GNU 1.1.1. What is Unix? 1.1.2. The GNU project and Free Software Foundation 1.1.3. What is Linux? 1.1.4. Linux Distributions 1.1.5. Understanding Differences between Windows & Linux 1.2 Duties of System Administrator 1.2.1. The Linux System Administrator 1.2.2. Installing and Configuring Servers 1.2.3. Installing and Configuring Application Software 1.2.4. Creating and Maintaining User Accounts 1.2.5. Backing Up and Restoring Files 1.2.6. Monitoring and Tuning Performance 1.2.7. Configuring a Secure System 1.2.8. Using Tools to Monitor Security 1.3 Summary 1.4 Review Questions 1.5 Bibliography, References and Further Reading 1.0 Objectives In this chapter, you discover what Linux is and how it relates to its inspiration, UNIX. What is the GNU project. This chapter also discusses the duties and responsibilities of Linux system administrator. 1.1 Introduction In recent years Linux has become a phenomenon. Major hardware vendors like IBM and Dell support Linux, and major software vendors like Oracle support their software running on Linux. Linux truly has become a viable operating system, especially in the server market. Linux owes its success to systems and applications that preceded it: UNIX and GNU software. 1.1.1 What is Unix? As a version of Unix, the history of Linux naturally begins with Unix. The story begins in the late 1960s, when a concerted effort to develop new operating system techniques occurred. In 1968, a consortium of researchers from General Electric, AT&T Bell Laboratories, and the Massachusetts Institute of Technology carried out a special operating system research project called MULTICS (the Multiplexed Information and Computing Service). MULTICS incorporated many new concepts in multitasking, file management, and user interaction. In 1969, Ken Thompson, Dennis Ritchie, and the researchers at AT&T Bell Laboratories developed the Unix operating system, incorporating many of the features of the MULTICS research project. They tailored the system for the needs of a research environment, designing it to run on minicomputers. From its inception, Unix was an affordable and efficient multiuser and multitasking operating system. They developed a new operating system, which was 1. Simple and elegant. 2. Written in the C programming language instead of in assembly code. 3. Able to recycle code. Throughout the next couple of decades the development of UNIX continued. More things became possible to do and more hardware and software vendors added support for UNIX to their products. UNIX was initially found only in very large environments with mainframes and minicomputers (note that a PC is a "micro" computer). You had to work at a university, for the government or for large financial corporations in order to get your hands on a UNIX system. But smaller computers were being developed, and by the end of the 80's, many people had home computers. By that time, there were several versions of UNIX available for the PC architecture, but none of them were truly free and more important: they were all terribly slow, so most people ran MS DOS or Windows 3.1 on their home PCs. Many UNIX-like systems are available commercially, such as IBM’s AIX, HP’s HP- UX, and Sun’s Solaris. Some have been made available for free, such as FreeBSD and Linux. Unix Philosophy The UNIX operating system, and hence Linux, encourages a certain programming style. Following are a few characteristics shared by typical UNIX programs and systems: Simplicity: Many of the most useful UNIX utilities are very simple and, as a result, small and easy to understand. KISS, “Keep It Small and Simple,” is a good technique to learn. Larger, more complex systems are guaranteed to contain larger, more complex bugs, and debugging is a chore that we’d all like to avoid. Focus: It’s often better to make a program perform one task well than to throw in every feature along with the kitchen sink. A program with “feature bloat” can be difficult to use and difficult to maintain. Programs with a single purpose are easier to improve as better algorithms or interfaces are developed. Reusable Components: Make the core of your application available as a library. Well-documented libraries with simple but flexible programming interfaces can help others to develop variations or apply the techniques to new application areas. Examples include the dbm database library, which is a suite of reusable functions rather than a single database management program. Filters: Many UNIX applications can be used as filters. That is, they transform their input and produce output. As you’ll see, UNIX provides facilities that allow quite complex applications to be developed from other UNIX programs by combining them in novel ways. Open File Formats: The more successful and popular UNIX programs use configuration files and data files that are plain ASCII text or XML. It enables users to use standard tools to change and search for configuration items and to develop new tools for performing new functions on the data files. A good example of this is the ctags source code cross-reference system, which records symbol location information as regular expressions suitable for use by searching programs. Flexibility: You can’t anticipate exactly how ingeniously users will use your program. Try to be as flexible as possible in your programming. Try to avoid arbitrary limits on field sizes or number of records. If you can, write the program so that it’s network-aware and able to run across a network as well as on a local machine. Never assume that you know everything that the user might want to do. 1.1.2 The GNU Project and Free Software Foundation In the early 1980s, AT&T began to recognize the commercial value of Unix. Consequently, they asserted proprietary rights to it and began charging a substantial license fee. Many who had contributed code to Unix believed that AT&T had unfairly appropriated their contributions. Not content merely to whine, MIT researcher Richard Stallman launched the GNU (GNU is not Unix) project, which focused on creating a Unix-like operating system that could be freely distributed. As a vehicle in support of the GNU, Stallman and others created the Free Software Foundation (FSF) in 1984. The GNU Project has already provided the software community with many applications that closely mimic those found on UNIX systems. All these programs, so-called GNU software, are distributed under the terms of the GNU General Public License (GPL). The FSF promotes free software, but free software is not necessarily cost free software. The FSF intends the word free in the sense of freedom. Free software is software with which you can do the following: 1. Use for any purpose. 2. Study to learn how it works, and adapt to meet your needs. 3. Copy and redistribute. 4. Distribute as part of an improved software system. As a practical matter, these freedoms require access to the software’s source code, which is why some refer to Open Source Software (OSS), rather than free software. The Apache Web server and Linux are, in the opinion of many, the most significant OSS products created to date. A few major examples of software from the GNU Project distributed under the GPL follow: GCC: The GNU Compiler Collection, containing the GNU C compiler G++: A C++ compiler, included as part of GCC GDB: A source code–level debugger GNU make: A version of UNIX make Bison: A parser generator compatible with UNIX yacc bash: A command shell GNU Emacs: A text editor and environment Many other packages have been developed and released using free software principles and the GPL, including spreadsheets, source code control tools, compilers and interpreters, Internet tools, graphical image manipulation tools such as the Gimp, and two complete object-based environments: GNOME and KDE. 1.1.3 What is Linux? As you may already know, Linux is a freely distributed implementation of a UNIX-like kernel, the low-level core of an operating system. Because Linux takes the UNIX system as its inspiration, Linux and UNIX programs are very similar. In fact, almost all programs written for UNIX can be compiled and run on Linux. Also, some commercial applications sold for commercial versions of UNIX can run unchanged in binary form on Linux systems. Linux was developed in the early 1990s by Linus Torvalds at the University of Helsinki, with the help of UNIX programmers from across the Internet. It began as a hobby inspired by Andy Tanenbaum’s Minix, a small UNIX-like system, but has grown to become a complete system in its own right. The intention is that the Linux kernel will not incorporate proprietary code but will contain nothing but freely distributable code. Linux is a fast and stable open source operating system for personal computers (PCs) and workstations that features professional-level Internet services, extensive development tools, fully functional graphical user interfaces (GUIs), and a massive number of applications ranging from office suites to multimedia applications. As an operating system, Linux performs many of the same functions as Unix, Macintosh, Windows, and Windows NT. However, Linux is distinguished by its power and flexibility, along with being freely available. Most PC operating systems, such as Windows, began their development within the confines of small, restricted PCs, which have only recently become more versatile machines. Such operating systems are constantly being upgraded to keep up with the ever- changing capabilities of PC hardware. Linux, on the other hand, was developed in a different context.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    288 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us