01. History and Background

  • Introduction to Linux/Unix
  • History
  • Characteristics of Unix
  • Main components of Linux

What is Linux / Unix?
  • Linux / Unix is an operating system
  • A computer can be divided into 3 main functional layers:
    • Applications: the highest functional layer. This layer includes software 
      programs that run for a specific purpose.
      • Example: this power point presentation, an email tool, a web browser
    • Operating System: the middle functional layer. The OS controls the hardware and supports the applications running above it.
      •  Example of popular OS: Linux, Unix, Windows, Mac OS
    • Hardware: physical devices that make up the computer
      •  Example hardware include: keyboard, monitor, hard disk
  • The main tasks of an operating system:
    • Interacts with the user
    • Manages how applications run
    • Handles data storage
    • Controls hardware peripherals
Linux are used for many different purposes in a wide range of applications:
  • The internet runs on Linux servers
  • Movie special effects are created on Linux machines
  • Banking and financial transactions are done on Linux computers
  • Video games are developed on Linux platforms
  • Military computing are done on Linux machines
  • Government records, such as taxes, are kept on Linux computers
  • University engineering and computer departments run classes on Linux computers


History of Linux / Unix 
  • Unix was officially announced to the world in 1969
  • Before Unix, computers had operating systems that are:
    • hardware specific: Changing computers meant changing all the software so they could work with the new hardware
    • single tasking: Only one job could be done at a time on the computer, everyone had to sign up for a timeslot on the computer
    • single user: Sharing data meant making a tape of your data and giving it to another user
  • Multics: In the 1960s, scientists at AT&T Bell Labs, MIT, and GE worked together to create a new time-sharing operating system. Time-sharing is the new concept that will eventually lead to a multitasking, multi-user OS later. However the Multics project became too large. It was difficult to manage and the project ended in 1969
  • Unix: Some of the developers from Bell Labs used their knowledge gained from Multics to create an even more progressive operating system, which they originally named Unics, a play on the word Multics. Eventually the spelling of Unics changed to Unix
Characteristics of Unix
  • Multi-tasking: the OS appears to do multiple tasks at the same time by switching between all the tasks and giving its time to each task one at a time (also known as time-sharing)
  • Multi-user: the OS can support many users logging in at the same time, as well as one user logging in multiple times at once
  • Portable: the OS is written in a high-level language (C) and therefore can be run on different hardware platform
  • University involvement: In 1969 Bell Labs released Unix, for free, to the Engineering and Computer Science departments at different universities. The universities embraced Unix and their graduate students began work developing add-ons to the source code. One such university was the University of California, Berkeley. Eventually there were 2 major versions of Unix: (1) Unix System V (developed by AT&T) (2) Unix BSD (developed by UC Berkeley)
  • Industry involvement: The graduate students eventually went on to found successful start up companies such as Sun Microsystem, SGI, etc. and brought Unix to the high tech industry in the late 1970s and early 1980s. The success of the start up companies caused many established companies such as IBM, Microsoft, HP, etc. to also adopt Unix. Unix became the OS platform for many companies in the high tech industry. One serious side effect of corporate involvement was that Unix became copyrighted and had a high price attached to it. It was partly because of this high price that Microsoft, with its less expensive DOS operating system, became the operating system of choice when desktop computers became widely available to the general public
  • Linux: Fed up with the copyrighted source code trend, the Free Software Foundation was formed to establish the open source movement. This movement believes that software should be open for anyone to work on and be free of charge. Supported by the open source movement, in 1991 Linus Torvalds created a Unix operating system that is meant to run on a desktop computer. He named it Linux.
  • Linux today: 
    • Used in many applications, from embedded systems to servers to supercomputers
    • Many people around the world maintain and enhance Linux, since it is an open source product
    • Different packages of Linux are called distributions, and can be downloaded and installed for free
  • Linux vs. Unix
    • Unix is proprietary to each company that uses the Unix platform. Some examples are IBM AIX, HP UX, SGI IRIX, Sun Solaris, DEC Ultrix. These OS are all Unix based and follow the same, uniform Unix standard called POSIX.
    • Linux is the same way, it follows the same POSIX standard. But Linux is open source and is free.
    • All utilities covered in this class follow this POSIX standard and will work with both the proprietary Unix and with Linux. Therefore for the rest of this class, “Linux” will be used to shorten the full name “Linux / Unix”

Accessing Linux
  • To access a Linux system you need to have an account, with a user ID and a password
  • A user ID is also called a log in ID or user name
    • It is assigned to each user by the system administrator
    • There is a unique user ID for each user in the system
    • A user may have more than one user ID
    • Depending on your organization, you may be allowed to make up your own user ID or you may be assigned a specific user ID
    • You cannot change the user ID yourself, it must be changed by a system administrator
  • A password is also required to log in to the system
    • Depending on how the system is set up, you may be able to create your own password or you may be given a password. 
    • You can change your password any time by using a utility. Depending on how it is set up, some systems require you to change your password on a regular basis for security reasons
    • Typically there are rules for the password that you choose. At school,  your password must be a combination of letters and numbers or punctuation marks.

Main components of Linux
  • The kernel, the file system and utilities, and the shell are the main components of the Linux OS 

  • Kernel:  the core of the OS
    • only one kernel can run per system
    • gets loaded into in the main memory during power up
    • manages resources so that multitasking can take place
  • File system: for data storage
    • data are organized into files
    • files are organized into directory structures
  • Shell: how the user interfaces with the OS
    • the shell interprets what the user types on the keyboard so it can be run by the system
    • there can be more than one shell running at a time
    • the shell also coordinates multiple commands in a file and acts as a programming language      
  • Utilities: tools to help a user do work on the system
    • also called commands
    • there are many utilities, each utility is supposed to do one task and do it well
    • they are programs that are run by the user to do specific tasks, such as copy a file, send email, communicate with another user, check system resources

Types of Linux Users
  • A user is a person who has a Linux account and can log in to the Linux system
  • When a user creates a file, the user is the owner of the file and the term ‘user’ also means owner (of the file)
  • There are 3 main types of users:
    • Regular users use the Linux system as a platform to do their work. For example, on a Linux server there can be a game developer writing code for games, a QA person testing software, a student writing a term paper. They are all regular users who use Linux utilities to do their work.
    • System programmers write code that makes up the kernel, core system libraries, core utilities, and system daemons
    • System administrators set up, maintain, and update Linux systems. It is the sys admin’s job to keep the system running so that regular users can do their jobs.