Computer Code - Software

Key Terms

application software
BIOS
booting
CMOS
drivers
Microsoft
operating system (OS)
software
Vista

A computer needs instructions to make it work.  Codes of instructions are called software.  Programmers need to write instructions to wake up a computer (boot-up), get it ready to run applications (load an operating system), and do something interesting (application software).  Let's examine what happens when you first power up a computer, a process called booting.

The BIOS chip

A computer is actually a very "stupid" device.  Every time you power it up, it has to learn about itself from scratch.  It is almost as if you had to learn everything over every day you wake up.  The computer starts by going to a predefined set of instructions printed on a chip known as ROM (read only memory).  The ROM chip first tells the system to go through a series of self tests to see that everything is working properly.  This is known as the power-on self-test (POST).  Since the computer must always follow the same procedures, these instructions can be "hard wired" onto the chip.  Part of these tests is to check the data stored in a special chip called the CMOS (complementary metal–oxide–semiconductor).  It contains specific data about your computer hardware (type of hard drive, system clock, etc.) ... much like an inventory of your system.  Once these "self tests" and the system inventory are completed, the system is ready to load an operating system.

Note: The process described above was once called the "boot strap" program (which comes from the term "pulling yourself up by the boot straps").  For this reason, the process is called "booting up" a computer.

The BIOS is a chip that performs all of these tasks, including a call for an operating system.  BIOS stands for Basic Input/Output System.  The BIOS also contains codes that help define how certain hardware devices should work.  The BIOS is a "middle man" between the operating system and hardware, keeping track of data for and managing devices like the mouse, hard drives, printers, etc.   Modern BIOS chips retain data using flash memory.  This means some of the instructions can be changed if needed, but be careful if you don't know exactly what you are doing.  Do not make changes to the BIOS or it may not work the next time you turn it on.

If you care to learn more about the BIOS, click link 7.3.a.

The Operating System

The computer now needs a set of instructions which gives itself rules for using memory, storage devices (hard drives) and how to run software with these devices.  In other words, a computer needs a "middle man" between hardware and application software.  This is why computers need an operating system.  Most people with a PC are using Microsoft Windows products.  Apple computers use their own priority operating system (OS X or macOS), but there are many other operating systems a computer could use - OS/2, OS/8, Unix, Linux, DOS to name a few.  Operating systems are not limited to desktop/notebook computers.  For example modern smart phones do much more than make phone calls.  iPhones have their own operating system - iOS, but just about everyone else has a smart phone which uses the Android operating system.

Microsoft

Like it or not, Microsoft dominates the operating system market.  Microsoft got started by providing IBM with its first operating system for their desktop PC - MS-DOS.  Anyone old enough remembers DOS as an unforgiving OS.  Once loaded, all a user saw on the screen was a lonely C:\> and it was up to the user to type in something to make the computer work.   This OS eventually made Bill Gates and Paul Allen super rich.  MS-DOS was replaced by Windows 3.1, Windows 95, Windows 98, Windows ME, Windows XP, Vista, then Windows 7, 8 ...and the current PC version is Windows 10 (what happened to Windows 9 ???).  Each of these upgrades used a graphical user interface to compete with Apple's Macintosh OS.

A deeper look

The operating system has many jobs.  First, the OS delegates tasks to the CPU, prioritizing workloads and checking that they are done properly.  There are many requests for CPU time, so the OS decides who goes next.  Second, the OS has to manage memory.  Each task needs places to store data.  This is like trying to manage units that come off an assembly line.  Each piece needs to go somewhere.  The OS needs to pick the most efficient place to store data, whether it is in cache, RAM (Random Access Memory) or virtual memory.  It also has to remember where it put the data.  Third, the OS has to control hardware.  Any device NOT directly linked to the motherboard has instructions (called drivers) explaining how they work.  The OS needs to read these instructions (like how the printer works) and be able to make that device perform properly if requested.   Fourth, the OS provides a means for the application software to present itself to the user.  This is done by displaying icons.  Once the application opens, it needs to interact with the operating system to provide consistent results regardless of the hardware available.  Stated in different words, programmers who write application software don't want to worry about how to print, display, and interact with the individual components of any particular computer.  That job is delegated to the operating system.  This provides a consistent platform so that companies can write software that they know will work on any computer it is run on. Finally, the operating system needs to perform tasks which help organize and maintain files and folders.  This can include creating, deleting, renaming, copying, or moving files or folders on a hard drive.  Actually this is why DOS got its name - Disk Operating System.

Allow me to give a very rough analogy to help you see how all the pieces fit.  Think of a skilled carpenter's brain as the operating system.  Consider the things that need to be in place to make some fine furniture.  Certainly you need good tools (hardware) and each carpentry shop may have different brands of tools, both old and new.  The carpenter needs to know how to use these tools.   It gets these instructions from the BIOS or drivers.  Next, the carpenter needs skills related to wood (internal software).  That is, how to do things (not just related to the final product, but sanding skills, gluing skills, etc. as well).  Finally, the carpenter needs a blueprint for making a specific piece of furniture (application software).   So how does a quality piece of furniture come out of this?  The carpenter needs to learn what tools are available and how to use each piece (obtained from the BIOS and drivers).  The carpenter needs to have knowledge of crafting wood (code written by Bill Gates).  The carpenter needs a blueprint (application software), which includes step by step instructions.  Now the carpenter needs to read these blueprints and decide which tools to use, at what time, as well as the proper way to use them (management skills).  The carpenter needs to arrange things so wooden pieces and tools are readily available, so that you don't have to go all the way across the room to access a hammer (memory management).  You can see how important the carpenter is in this story.  To complete the analogy, if the carpenter's brain is the operating system, the carpenter's hands are the CPU.

If interested, click link 7.3.b to learn more about operating systems.

The computer is (by far) the most versatile machine ever conceived!

Application Software

Once the OS is loaded into RAM, it is ready to run application software.  Application software is why we buy a computer in the first place.  It turns your computer into a word processor (more money for Bill Gates - MS Word) ...or a spreadsheet allowing users to add, subtract, and perform user-defined calculations on rows and columns of numbers (still more money for Bill - MS Excel), accessing the Internet (Ok ... still more $$$ for Mr. Gates ... Internet Explorer), or preparing a business presentation (just take it all Bill - MS PowerPoint).  Fortunately, Microsoft doesn't hold all the cards.  Several Internet browsers are commonly used (Firefox, Chrome, Safari).  Companies like Google are providing these application products for free.  They are available to you through any Gmail account (including your MATC email).   Just go to your local big box store, and there are shelves of software that will transform your machine into just about anything.  Most application software can be downloaded from the Internet ... many free.  In some cases the free stuff comes with ads or with limited functionality.  To get your money, they will eliminate the ads and/or provide more functions.  How many of you went nuts at the app store when you purchased your first smart phone?  It is almost addicting and dangerous!!!!  Attention: A personal comment is forthcoming!  IMHO, computer software (especially social media) has made us LESS interactive and social on a human level.  Look around any gathering of a group of people.  Notice how many are NOT interacting with each other but staring at a phone screen.  I've personally watched pedestrians walk into obstacles when distracted.  Distractions on a cell phone (especially texting) when driving is not only illegal in Wisconsin ... it can cost lives.  Telling your friend about the latest "whatever" is much, much, less important than the cyclist you didn't see because you were distracted.  Why do I say that?  I was one of those bikers hit by car!!!!   Please put the phone down when you get behind the wheel!  End of personal comments ... sorry to preach.

  There is a time and place for texting and using your phone ... behind the wheel is NOT one of them.

©2001, 2004, 2007, 2009, 2016 by Jim Mihal - All rights reserved
No portion may be distributed without the expressed written permission of the author