Sage-Code Laboratory
index<--

Operating Systems

An operating system is a special kind of computer program that manage computer resources and is the first program that run automatically when a computer is starting. More precise, an operating system is a platform that is preinstalled on your computer when you buy it from the store.

Video Lecture

If you have time and bandwith you can watch this video to learn all basic concepts of computer programming. This video is about 25 minutes long, and is very informative for beginners. It was filmed in Chicago by Elucian in Jul, 24, 2016 but is still very much actual. Please press thumb up button if you like it. Ok? Thanks!

Programming Concepts

Features

We use an operating system for its features and functionality. Without an operating system the computer is stupid and difficult to use. The only thing you can do if a computer do not have an operating system is to install one. This is happening if you just made a computer or if your computer is a professional server not a PC.

Inventory:

Next there are some important features every operating system must have. Some operating systems have more features than others, but most features are common. They may be implemented differently, using different encoding techniques and may not be compatible to each other.

Feature Description
File system A database used to organize data storage
Graphic system Used to display information on screen
Network Used for communication between computers
Device drivers Used for managing internal and external devices
Tools Utility programs for managing files, folder and configuration
Applications User-created programs or scripts
Package managers Used to install/uninstall programs

Graphic

A graphic system consist of video card, display and software that can display pictures, graphics and text fonts. This can make a computer screen look great and easy to use. We interact with graphic system using keyboard and mouse.

Most operating systems have a graphic system. This is what user can see after the operating system is fully loaded. Android, Chrome, Windows, MacOS by default load a graphic system. Linux server usually start in command prompt or console. However a Linux desktop edition usually have Gnome or KDE graphic system installed.

Mac OS

On Apple laptops and also on desktops, if you are curious to go to a Mac shop you will see that it looks very differed than Windows. This is because Mac OS is using a proprietary graphic system: Mac OS X. It looks a little strange for a Windows or Linux user. Not necesary better but different.

Windows

Mac OS

Windows

In the Windows the file system can be observed and organize using Windows Explorer. In Windows you can have several disks, each disk has associated a letter: (C: D: E: F: G: H:). Each disk is organized in folders similar to a file cabinet used in older offices. Yhis is why we call things folders and files. There are no drowers but every disk could be considered like a drower.

Windows

Windows

Gnome:

This is an open source graphic system used by many Linux distributions. That is curious no? Linux operating system has this ability to use common subsystems because all distributions are using the same "kernel". Linux kernel is a small part of Linux that do not have a graphic system.

Gnome

Ubuntu Gnome

Boot sequence

A new computer has a special program that is called BIOS. This program is stored in electronic components installed on motherboard. You know probably that BIOS = Basic Input Output System.

Once the BIOS is started computer can do basic input and output operations. So the computer can search the storage devices: CD-ROM, DVD, PEN-DRIVE, HARD-DRIVE.

Operating system is stored on one of this devices. The computer can look for the operating system on any of this devices and if it found one it is loading the operating system in memory and execute the operating system. Then the computer become really smart.

Storage

One of the most important job of the operating system is to organize information on storage. This can be internal storage or external storage. The storage is permanent and do not lose information when the computer is off power.

On a computer you can have multiple storage devices and each device can have a different file system. For example CD-ROM or DVD- have a special file system and is different from HARD-DISK or Flopy-DISK.

File system

Operating systems organize files using an internal embedded database. Files are organized into a tree that has a root and folders. Folders can have other folders and files. File names are registered as records in this tree.

The most common file systems are known as:

My favorite FS is XFS and most popular is EXT4. This is for stability and good performance with reduced resources.

Security

File system is secured against unauthorized access. An administrator can create roles and users. Then can grant or deny access to folders and files. The security system is depending on the operating systems.

Linux has better security than Windows. Operating systems have predefined folders with different security properties. For example every user can write only in its own home folder but can read all other folders.

Password

Users must use a password to access a computer. When computer start or exit from sleep mode user may be asked to Log In using his password. Unauthorized users can’t have access if they do not know this password.

One user is the administrator. On Linux there is a super administrator with name: root If someone know root password can have access to all files in the computer. Therefore the administrator must keep the root password always safe.

Popular systems

In the list below, I have ordered operating systems by popularity. Notice, for commercial purposes Windows may have different features by the price you pay. Other operating systems usually have only one distribution, except Linux that have many distributions and versions.

  1. Windows
  2. Linux
  3. Mac OS
  4. Chrome OS
  5. Android
  6. Free BSD

Linux Distributions

Linux distributions are so many I can not count. When you chose a distribution you must be a Linux guru. So I will not recommend any distribution since I do not know what is going your use-case. Usually a Linux is installed on a server but there are laptops with Linux pre-installed.

Reference: There is a website that you can use to compare most popular distributions:

https://distrowatch.com/

Note: You can download Linux from internet. Most distributions are fee. There are options to download a DVD image and make your own DVD to install Linux from it. Most laptops do not have DVD device so you must use an external device. A second option to install from USB pen drive.

Multiple OS

On one computer you can have one single operating system running at one time. This is the host operating system and is the first program that start when you start the computer.

Multiple HDD

However you can have installed on a computer one or more operating systems. If you have multiple hard drive available you can install one operating system on each hard drive.

Multiple Partitions

If you have a single hard drive you can partition the hard drive into multiple logical segments named "disk partitions". Then on each partition you can have a different operating system and different file systems.

Live CD/DVD

You can download and create a Live CD or DVD from internet and use this special CD or DVD to start and try an operating system. This require a bit of extra work to download a file from internet named .iso image. Then you must know how to burn a DVD.

Virtual BOX

You can download from internet a special program that is a virtual machine. Then you can use this program to make a simulation of a new computer.

This simulator is also called virtual machine. Once you create a virtual machine you can install an operating system from a DVD or you can download an image from internet.

System Programming

System programming is usually referring to script files. A classic operating system like Windows, Linux, UNIX have a console. This is a black window that is sometimes called command window. In this window can run special programs called scripts. A script is a text file that operating system can execute. On Windows this file has extension .bat and is called batch file. On Linux this file has extension .sh and is call shell script.

Command Window

On the command window the operating system display a prompt or cursor. At this prompt you can type a command and the operating system can execute this command. If you type the name of a script file this file is parsed and executed.

Programming Concepts

Cat McGee (8 min)

Run command is different in different operating systems. Linux, MacOS have a "Terminal" app you can start. Windows, have a command that you can run. To open this you use: mouse right click over the menu window icon and select option: "run". If your keyboard have a window button, press "window button + r" in the same time. Then type "cmd" or "python" or any other command you want to run.

Programming Concepts

run cmd

If you type "cmd" and press button "ok" then you have done a good job. Now you can see a black window where you can type commands like a hacker. This is very useful for programmers to start applications and install components. In the picture below, I have used command "cd" and command "dir". This is how I display content from a folder.

Programming Concepts

Windows Terminal
(Command Prompt)

Cloud Templates

On the Cloud you can "rent" a virtual machine and you can start and stop this virtual machine. This is like a server computer and it can be pre-loaded with a specific operating system that you order. Usually this do not have a GUI (Graphic Interface) but only a Terminal window.

This kind of machines are based on specific template images that are special design for the cloud and can be pre-configured with important software to create a "platform". It is most likely you will need to use the Terminal to run programs, configure files and install things.

System programming does not necesary mean you create a new computer language or a new command or a new driver. It means you know how to make a script that can run operating system commands. This can be on the cloud, on a server or on your own computer.

Read next: Crafting Compilers