Linux Basics/Types of Operating Systems

What is an operating system?

edit

An Operating System (OS) is software that manages computer hardware and other software.

It's commonly portrayed as the bridge between hardware and software. For a more detailed definition see Operating system

What operating systems can be

edit

Different operating systems look, function, and are used differently. For example:

  • The interface can be graphical (GUI) or command-line (CLI)
  • It could be used as a server, desktop, internet route, appliance, etc.
  • It could support just a single-user, or multiple-users (Also known as multi-user)
  • It could support running just a single task at a time, or multiple tasks (multi-tasking).

Let's look at these different options in more detail:

  • Command-Line (CLI): Text based user interface
    • Present in almost every OS
    • Allows for flexible command input and automation (executing scripts)
    • Fast
      • Fast Computationally - Excels on computationally constrained hardware or when every bit of performance is needed.
      • Many tasks are faster when performed through a CLI compared to a GUI.
  • Graphical User Interface (GUI): Icon, Widget, and Audio-based user interface
    • More Intuitive for many
      • Generally more approachable for new users, less instruction is required to train a user to use a well designed GUI.
      • Literacy is not necessarily required to use a GUI, an important consideration in some educational environments.
    • Some operations are faster than in a CLI without a prior script being made.
      • Automation is still possible, though often requires a third party program.
      • Almost always more computationally expensive then a CLI in terms of computer resources.
  • Single task: 1 task/ program can be run at a time
  • Multi task: Multiple programs can be run at a time
    • Preemptive: the OS can take resources
    • Cooperative: it only works if every resource is available
  • Single-user: Only one user can be handled at a time.
    • Some single user operating systems allow for different user profiles, but lack the ability to run programs from multiple accounts at once.
  • Multi-user: Multiple user accounts can be created and used simultaneously.
    • Multiple users can use the system simultaneously. This can be through a user locking their session to allow another user to log in on a traditional desktop while their applications continue to run in the background, or have two users literally logged in and operating at the same time in the case of a multiheaded system.
    • Filesystem must support the convention of user separation (so FAT16 and FAT32 are excluded, but EXT2,3,4; NTFS and modern FS's support it).
    • A long time ago this was not the case, so users could exploit others on the computer. Nowadays it's near impossible to get access to other users' directories.

Types of OSes by Capabilities

edit

MS-DOS, and Windows based on it (from 1.01 to ME):

  • CLI , with GUI as a bolt on add on with Windows
    • Vanilla MS-DOS is a pure CLI.
    • Early versions of Windows were simply graphical environments added on to MS-DOS, or later integrated with it. These versions included a program called MS-DOS Prompt to create CLI shells.
  • Single-user. Some versions allowed multiple user accounts, but were unable to allow them to be logged in simultaneously.
  • MS-DOS cost money back in the day, and is typically no longer sold in stores.
    • MS-DOS software is sometimes compatible with other DOS operating systems, some of which are still developed to this day.
  • Security issues, general obsolescence, and a lack of network focus make MS-DOS a terrible server or even networked operating system. MS-DOS can still work fine on offline machines.

Windows NT

edit

Windows NT (Windows NT 3.x – 11):

  • GUI with de-emphasized CLI.
    • Most tasks in Windows are performed using the GUI.
    • CLI environments such as the basic Run and Command Prompt applications are typically included.
    • More recent versions of Windows offer the more advanced and capable Power Shell application.
  • Multi-user (here the user folders are encrypted, so you can't get access to others' folders without proper permission)
  • You typically have to pay for it, or be eligible for special promotions or offers.
  • There are server and desktop versions. There are further sub versions which target different market segments.

Unix and Compatibles

edit

Linux:

  • CLI with optional GUI.
    • Some Distros are CLI only, especially those intended to be used on servers or embedded devices.
    • Most desktop distributions use a GUI by default with a de-emphasized CLI. Others try to strike a balance between the two.
  • Multi-user, so multiple user can be on the network, the folders can be encrypted, permissions can be set, widely customizable (both program- and interface-wise).
  • It's free as in freedom, and often free as in beer so you don't typically have to pay for it.
    • Most distributions are free.
    • For some enterprise distributions, such as Red Hat Enterprise Linux, you pay to get it directly from the company that makes it, and to get support.
  • There are server and desktop oriented distributions.

UNIX:

  • The BSD family includes a number of open source operating systems, as well as closed source operating systems.
  • There are a number of proprietary UNIX operating systems, such as Solaris (A direct UNIX descendent) and MacOS (Related to BSD).

Other: There are a few other UNIX-like operating systems you may read about while studying Linux

  • GNU Operating System - Many coreutils for Linux originated here.
  • MINIX - Important influence in the history of Linux, and still used in some applications.