Basics of system administration on a Unix system

Similar documents
Lecture 01: welcome and intro what LSD and Unix have in common

OPEN SOURCE SOFTWARE

Overview of Unix / Linux operating systems

Introduction to Linux Overview and Some History

An Operating System History of Operating Systems. Operating Systems. Autumn CS4023

Systems Programming. The Unix/Linux Operating System

Unix to Linux. CS 3113 Fall 2018 Dr. Christan Grant

tech. solutions T2G Page1 ALT_01_Ch1 : Introduction to Linux ideas and history The History of Linux starts with the earlier development of UNIX.

CMPSC 311- Introduction to Systems Programming Module: UNIX/Operating Systems

Brief Linux Presentation. July 10th, 2006 Elan Borenstein

Introduction to Linux

CS108 Software Systems: UNIX. Fall 2011

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter

Introduction to Linux

History And Modern Uses Of The Unix Operating System (including embedded devices and mobile phones).

COPYRIGHTED MATERIAL. Unix Fundamentals. Brief History

Course and Unix Intro

Operating Systems. Pablo Prieto Torralbo. 1. Introduction DEPARTMENT OF COMPUTER ENGINEERING

Welcome to CIS 90 Introduction to UNIX/Linux

COURSE OUTLINE. UNIX Programming 2014 Fall by Euiseong Seo

UNIX/Linux Fundamentals Lecture 1. Nick Stiffler Philip Conrad

LINUX System Administration. Perspectives, Practices and Expectations

Operating System Labs. Yuanbin Wu

History of Unix, Linux and the Open Source

Ethics. Ethics. Ethics. Ethics. The issue of software ownership. The issue of software ownership. Programmers and the Hacker mentality.

Introduction to Linux

UNIX. The Very 10 Short Howto for beginners. Soon-Hyung Yook. March 27, Soon-Hyung Yook UNIX March 27, / 29

Introduction to Operating Systems

CMPSC 311- Introduction to Systems Programming Module: UNIX/Operating Systems

INTRODUCTION TO OPERATING SYSTEMS. Jo, Heeseung

Overview LEARN. History of Linux Linux Architecture Linux File System Linux Access Linux Commands File Permission Editors Conclusion and Questions

Unix/Linux: History and Philosophy

Rust on FreeBSD. Luca Pizzamiglio

Introduction to Operating Systems. Jo, Heeseung

Introduction to Operating Systems. Note Packet # 1. CSN 115 Operating Systems. Genesee Community College. CSN Lab Overview

Introduction to Unix. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Perl and R Scripting for Biologists

CSCI 2132 Software Development. Lecture 2: Introduction to UNIX and Unix-like Operating Systems

CIS 90 Introduction to UNIX/Linux

Practical Computing-II. Programming in the Linux Environment. 0. An Introduction. B.W.Gore. March 20, 2015

Crontab To Run Every 5 Minutes In Hp-ux

Introduction to Unix The Unix Wars! Pg 1

Introduction and Overview Getting Started

Underlying computer system = hardware + software

CSC 634: Networks Programming

A Short, BSD-specific, UNIX History. Lewis Thompson November 14, 2003

UNIX Kernel. UNIX History

Introduction to Cygwin Operating Environment

Welcome to Linux. Lecture 1.1

Advanced Linux System Administra3on

Linux Session Part I. Kesavan M

Operating Systems CS3502 Spring 2018

ULI101 Introduction to Unix and Linux Week 1 Origin and History of Unix

Chapter 01: Introduction to Linux

Chapter Two File Systems. CIS 4000 Intro. to Forensic Computing David McDonald, Ph.D.

Operating Systems. I. Introduction. Eurecom

CNT 4603, Spring 2009: Introduction

Chapter 2 Operating-System Structures

Operating systems. Lecture 2

Operating System Concepts Rab Nawaz Khan Jadoon

CS Operating Systems (OS) Introduction. Lecture 2 Sept 12, 2018

Logistics. 1: Welcome and Overview. Topics. What is an operating system? Benefits of Operating Systems (1) Hardware Resources

CptS 360 (System Programming) Unit 2: Introduction to UNIX and Linux

CS307 Operating Systems Introduction Fan Wu

History of Unix and Linux

Saint Louis University. Intro to Linux and C. CSCI 2400/ ECE 3217: Computer Architecture. Instructors: David Ferry

Welcome to ULI101! The Internet has become part of our daily lives.

*nix Crash Course. Presented by: Virginia Tech Linux / Unix Users Group VTLUUG

What Makes Up the Modern Linux OS?

Operating Systems Concepts

Downloaded from various sources on the NET

Computer Science 32 Object-Oriented Oriented Design and Implementation (in C++ on Linux)

CS395T: Introduction to Scientific and Technical Computing

Unix SVR4 (Open Solaris and illumos distributions) CPU Scheduling


Outline. overview & concepts files and processes in UNIX the platform and os modules. importing the turtle module drawing a spiral colors with turtle

CNT 5605, Fall 2009: Introduction

Linux. What is it? What s good about it? What s bad about it?

1: Welcome and Overview COM S 414. Last Modified: 9/2/ :04:21 PM

Software Project. Lecturers: Ran Caneti, Gideon Dror Teaching assistants: Nathan Manor, Ben Riva

computers to personal computers

Introduction to OSes and UNIX

The Operating System Machine Level

Computer System Management - Unix/Linux


Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

Operating Systems History & Approaches. Computer Systems Laboratory Sungkyunkwan University

The UNIX operating system is a set of programs that act as a link between the computer and the user.

CS 167: Operating Systems. Operating Systems In Depth I 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Linux for Beginners. Windows users should download putty or bitvise:

Glossary. Appendix B. See also current directory.

UNIX / LINUX - GETTING STARTED

Operating System Labs. Yuanbin Wu

CS 300 Data Structures

NWI-IBC019: Operating systems. Nils Jansen and Bernard van Gastel

Free & Open Source Software: The Academic Future

Computer. Operating Systems Introduction to Operating System (OS)

www highskills pt pt

Module 4 Chapter 5 Using Software

Spring Modern Computer Science in a Unix Like Environment CIS c

Transcription:

Basics of system administration on a Unix system

Contents Introduction 3 Unix 9 User environment: the shell 10 File management: starting from / 11 Text editing 12 Package management 13 User management 14 Process management 15 Networking services 16 Web 17 Database 18 Mail 19 Users 20 Files 21 DNS 22 Printing 23 Credits 24 This is a development version of the text that should be considered a work-in-progress. Copyright 2011 Dara Adib. This is a freely licensed work, as explained in the Definition of Free Cultural Works (freedomdefined.org). It is licensed under the Creative Commons Attribution- Share Alike 3.0 United States License. To view a copy of this license, visit: http://creativecommons.org/licenses/by-sa/3.0/ 2

Introduction What is a computer? A computer is a combination of hardware and software that can store, retrieve, and process information. Hardware Hardware is the physical electronics of a computer, which include one or more processors ( the brain ), random-access memory ( short-term memory ), disk ( long-term memory ), input/output devices ( sense/motor organs ), power supply, and complex circuitry and buses which connect components. Software Software is the conceptual instructions that run on hardware, including system programs and application programs. An operating system is an essential software component. What is an operating system? An operating system (OS) is a collection of system programs (and depending on definition, application programs) that accomplish abstraction through hardware, file, process, and user management (and depending again on definition, by providing a user environment). User Application Hardware management An operating system deals with the physical complexity of initializing, calibrating, polling, and resetting hardware components. It provides a uniform interface to hardware components that is independent of physical technicalities. Hardware components can fail or have temporary (transient) errors, which an operating system should detect and account for to prevent downtime or data corruption as much as possible. Operating System Hardware Figure 0.1: What is an OS? 3

File management An operating system provides, with the help of a file system, a uniform interface to storing, retrieving, and modifying programs and data with hierarchical organization (for example, files are organized in directories or folders). Most changes made by other programs in a file system are written to physical disk at intervals and journaled for recovery in the case of disk or power failure. A file system may also include special files like references to other files, interfaces to running programs, and interfaces to physical or virtual devices. Process management In a modern operating system, many programs appear to be running simultaneously. In reality, each processor (for simplicity, each processing core represents a processor) is only capable of handling one thread of execution at a time. Since each running program (known as a process) represents at least one thread, an operating system must switch between running threads as optimal and in a way that is least disruptive to the processes. In multiprocessor systems, an operating system must also effectively distribute threads between processors. There are also security concerns, which are of special importance in a multi-user system, where users do not all trust each other. All processes are allocated space in random-access memory (RAM) where they store and manipulate data. They need to be prevented from gaining access to space reserved for other processes. Not all processes are of equal importance. For example, a typical process should not be able to terminate or kill other processes, particularly those belonging to other users. Nevertheless, processes may need to communicate with each other through signals or interfaces. User management An operating system needs to provide a way for a user to, well, use a computer. Generally this involves the user authenticating with a username and password, and having some degree of security and privacy with his 1 files and processes. There may be limitations on how much disk space and processing time he can use. He might also have other privileges or restrictions depending on security policy. Modern operating systems are multi-user, which means that multiple users can co-exist and can usually time-share resources at the same time (for example, multiple user logged in). There is often an administrator or superuser who can bypass restrictions for system administration tasks. User environment A user environment (the software a user interacts with to use the computer) is often considered part of the operating system. A user environment can be graphical (GUI, for graphical user interface) or text-based (CLI, for command line interface, also known as terminal, command line, and command prompt). With a text-based environment, there is usually a prompt which waits for commands to be entered and after a command is entered, outputs some result and waits for the 1 For the purposes of simplicity, the masculine pronoun is used in this text, but gender is not specified. 4

next command. With a graphical environment, the user is usually encouraged to point and click the mouse. Graphical environments are often called user-friendly because they require less knowledge to use, but text-based environments often offer more flexibility and power at the expense of some knowledge and experience. Networking Most computers today are connected to a network, over wired or wireless connections. A network can be small, such as a home network connected by a small router, medium-sized, such as a university or corporate network, or large, such as the Internet which is connected by many gateways with high bandwidth and throughput. Modern operating systems include features specifically designed for networked applications. Hardware management communicating with other computers, gateways, and switches through a network interface like ethernet (wired or wireless) File management networked file systems (access data over network) distributed file systems (split data over multiple computers) Process management computing distributed over a cluster of nodes (physically distinct machines) User management remote user access remote authentication mechanisms (for example, an institution may have many machines that authenticate to the same database of users) What is Unix? UNIX is an operating system originally developed in 1969 by AT&T at Bell Labs. It was rewritten in 1972 in the programming language C, which allowed it to be portable, i.e. work on different hardware. For simplicity, Unix will be used to refer to the family of operating systems that have been (mostly) designed as UNIX-compatible or UNIX-compatible-compatible, which include, among many others, variants of the Berkeley Software Distribution (such as FreeBSD, NetBSD, OpenBSD, and Mac OS X), GNU/Linux (such as Debian, Ubuntu, Red Hat, Fedora, Gentoo, and Arch), and Solaris. 5

1970 1980 1990 2000 Time BSD family FreeBSD NetBSD OpenBSD 7.2 5.0 4.5 BSD (Berkeley Software Distribution) Bill Joy Xenix OS Unix Time-Sharing System (Bell Labs) Ken Thompson Dennis Ritchie (C language) SunOS (Stanford) Microsoft/SCO GNU Project Richard Stallman HP-UX Minix AIX (IBM) NextStep Solaris (SUN) 3.3 GNU/Linux Linus Torvalds Andrew S. Tanenbaum 10 UnixWare (Univel/SCO) IRIX (SGI) Darwin 10 5/09 MacOS X 5.7 GNU/Hurd K16 2.6.30.1 3.1.3a 11i v3 6.1 7.1.4 MP4 6.5.30 System III & V family Figure 0.2: What is Unix? Unix is a multi-user time-sharing network operating system, making it one of the original modern operating systems. According to the so-called Unix philosophy, it is implemented with: programs that do one thing and do them well programs that communicate well with other programs Though many user environments have been developed for Unix, both text-based and graphical, the text-based shell is strongly associated with Unix. Perhaps this is because of how well the shell allows a user to exploit the features of Unix. Even Apple, associated with hip and aesthetically pleasing computers, implements Mac OS X on Unix (BSD) and includes the GNU Bash shell (GNU/Linux). What is system administration? System administration is the maintenance and operation of a computer system. It usually involves installing, maintaining, and supporting servers, and responding to services outages when they occur. It can also include a broader range of associated tasks, such as planning, scripting, training, consulting, and perhaps most importantly, problem solving. A system administrator (sysadmin) must not only be technically skilled, but also responsible and trustworthy. Sysadmins need to be responsible for the availability and security of services that a computer system provides. He must also use his power wisely 2. 2 See The Bastard Operator From Hell (Plan Nine, ISBN 1-929462-17-4). 6

Figure 0.3: System administration What is free software / open source software? Free software is software that can be freely run, studied, modified, adapted, improved, copied, distributed, and redistributed. For both ethical and practical reasons, developers of free software give access to the software source code that determines how a program functions and release the software under liberal licenses that impose few restrictions. Free software directly contrasts with proprietary software, where copyright and contracts impose restrictions. Definition Richard Stallman, founder of the GNU Project, lists four essential freedoms that must all be present for a piece of software to be considered free. 1. The freedom to run the program, for any purpose. 2. The freedom to study how the program works, and adapt it to your needs. Access to the source code is a precondition for this. 3. The freedom to redistribute copies so you can help your neighbor. 4. The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits. Access to the source code is a precondition for this. Pragmatic ideology The free software programmer benefits because software can be based off the work of others and written as a community; the free software user benefits because freely available software in the public interest is written. Free software can harness the power of cooperation and collaboration, both commercially and non-commercially. Open source While both free software and open source refer to the same kind of software, the free software movement focuses on the freedoms given to users and the open source development model concentrates on its technical and pragmatic advantages. FLOSS and FOSS are equivalent terms used to refer to both ideas without preference. 7

Relevance: or A Short and Brief History of Unix During the 1970s, UNIX was developed by AT&T Bell Labs (including Kenneth Thompson and Dennis Ritchie), but because of its use on a wide variety of hardware, it included features which had added by the academic community. Version 7 Unix was released in 1979. UC Berkeley began licensing UNIX from AT&T in 1974, and received a copy of the source code. Though UNIX was not free software, AT&T allowed modifications by and distribution to licensed users. Students (including Bill Joy) doing research at UC Berkeley extended UNIX and beginning in 1978, made releases of the Berkeley Software Distribution (BSD). AT&T copyright restricted these releases to licensed users of UNIX. AT&T began raising licensing fees, and subsequently UC Berkeley began replacing AT&T-originated source code in 1988. AT&T started a lawsuit in 1990 that focused on the legality of BSD and sued the UC Regents. After the judge expressed doubts in the validity of AT&T copyright on BSD, the case was settled in 1993. In 1994, UC Berkeley released the last version of BSD, which was free software. 8

Unix 9

User environment: the shell 10

File management: starting from / 11

Text editing 12

Package management 13

User management 14

Process management 15

Networking services 16

Web 17

Database 18

Mail 19

Users 20

Files 21

DNS 22

Printing 23

Credits 24

Figure 0.1 on page 3 http://en.wikipedia.org/wiki/file:operating_system_placement.svg Figure 0.2 on page 6 http://en.wikipedia.org/wiki/file:unix_history.svg 25