Introduction
There are a lot of buzzwords used in the world of technology, and the biggest issue that comes from all of the buzzwords is that people are encouraged to use them without understanding what those words actually mean. Before too long, people just go along with the use of the words, and try to include them in their vocabulary; and in the process, they may confuse themselves or others about what they really want to say.
In this article, I’m going to start teaching you what some of those buzzwords REALLY mean, so you can apply them properly. If you can understand the terms and concepts here, then you’ll stand a better chance at working through other material on this site.
Computers: Hardware and Software
There are a lot of ways to categorize the makeup of a computer. In the modern age of the digital computer, an easy way to categorize all that defines your typical computer is “hardware” and “software”.
Hardware refers to all of the physical components of a computer. If you have a desktop computer, you generally have a physical box on your desk, floor or shelf which is actually the computer itself; and you connect additional hardware to it: a monitor to serve as a display, a keyboard and a mouse for input and control, perhaps a printer, and maybe even more. If you have a laptop or notebook computer, the display is part of the computer itself (often referred to as the screen). The keyboard will be a part of the same physical device. You might not have a mouse, but instead have a track pad (also called a touchpad) which gives you relatively similar functionality. You may still attach other devices like a printer with cables.
You might also consider tablets and smart phones similar to computers in this regard. In these instances, there isn’t necessarily a physical keyboard, but there is one that will appear as needed on the display. You don’t likely have a mouse or trackpad, because the screen allows you to perform those interactions by direct contact of your fingers.
In any of these cases, though, you’re still referring to the physical device as hardware.
The other category of what makes up the computer is the software. Software, while being a product and part of a computer is almost like a concept; it’s virtual – in other words, the software is something present in the computer – it occupies space within the computer, but it’s not really a physical, tangible item like hardware – not in its true form.
The concept behind it may seem murky, but the best way to understand it is to consider the computer as what it really is: a tool. If you compare it to, say, a tool like a saw, then the saw consists of some physical components (a blade and a handle), and the virtual aspect, the instructions or knowledge of how to effectively operate it.
You use the saw by gripping it by the handle, never the blade, and you can use a back-and-forth motion against certain types of material to cut through the material. Now granted, the analogy here isn’t exactly perfect, but what I said a few lines back is a fair comparison.
Your computer is a physical collection of components (like the blade and handle of the saw) and the software on it is instructions and knowledge for operation, much like you would have knowledge on how to safely and effectively use the saw.
The issue (sort of) with the analogy, the part where it breaks down, is that a saw really only does one task: it cuts through material. That’s it. A computer, on the other hand, can perform many types of tasks; hundreds, thousands, millions, probably more.
So the knowledge of how to use a computer to do all these tasks would be VAST. Ask a dozen people with different careers how they make use of a computer in their job, and they’ll give you all manner of explanations and examples of what they do, and how they do it – it’ll likely be all sorts of different tasks.
So software gives us the ability to take this physical device, and use it to perform different tasks. It’s almost like a Swiss Army knife; and what you can accomplish depends on what knowledge you have on the use of this tool, and which “attachment” you are using from that tool.
Software can be thought of, at least for now, as a series of steps to perform a task (or set of tasks) that are related. For example, word processor software give you the ability to write, organize and edit documents – novels, new articles, recipes – to store them, and to print them out to a physical form. Art software let’s you create images on a virtual canvas, to set colors, thickness of lines, to include shadows – and with that software you can often edit photos you took with some sort of camera, allowing you to alter the images as you see fit – perhaps to send to family, or to print to give to a marketing firm for inclusion in some other type of document.
The bottom line is that you can have many different types of software to perform many different types of tasks for many different purposes and outcomes. The software consists of collections of instructions, calculations, input and output that a computer can understand and act on with the hardware that makes it up, physically.
Summary: hardware is the physical aspect of computers, software instructions in the computer to effectively allow us to use the hardware.
Using the Computer: From Complicated to Trivial
These days, using computers seems very simple. They are easy to use, but the reason behind that is something most people never really stop to think about; and they don’t tend to realize what it is that makes it possible to harness the capabilities of a computer so well. It might seem logical that software tells the hardware of your computer what to do, but to get to the point of using your word processor, or art program, or a web browser actually requires a core piece of software. In the current age of computers, we tend to not think about this so much anymore, but once upon a time, running the computer itself required the manual step of starting a very specific piece of software.
This software is the one that instructs the screen on how to understand and display output. It’s the software that translates the key presses of your keyboard into something the computer can make use of. It’s the software that sends the necessary instructions to your printer to generate a physical document.
And at the center of the entire process is a very specialized collection of software, called an operating system.
An operating system is specifically software that handles all of the relevant tasks involved with configuring, accessing, securing and operating a computer’s physical hardware. For all practical intends and purposes, you can’t run a modern computer without an operating system. That’s because modern computers have such a wide array of functional capabilities that it would be practically impossible to manage the necessary tasks to make anything useful happen. There is, of course, the minor footnote that you really could try to perform tasks without an OS, but the necessary skills and effort to make anything practical happen would really overwhelm anyone who tried it. And, of course, the vast majority of software that exists is built to specifically leverage an operating system, so ultimately, you’ll rarely encounter a true modern computer that does not have some form of an operating system, no matter what that system is.
Powering Up: POST and Setup
Before anything actually happens (or before we can really make anything practical happen), a computer takes inventory of itself and checks for any potential issues. This process is referred to as POST (Power-On Self Test). The POST process is a fairly universal process. On older computers, this was part of the BIOS (Basic Input / Output System). Newer computers use something called EFI (Extensible Firmware Interface). These systems fall under the category of firmware; it is specialized code written for and stored on computer chips. Firmware is non-volatile, meaning that when power is removed, the software remains stored in memory in such a form that it can rapidly load back up and does not require restoration of settings, and won’t lose critical core configurations.
The endpoint of EFI and BIOS systems will be to initiate the startup of an operating system, with information on where the OS is located and what information to pass on to start up and prepare for use.
Operating Systems: The Gateway to Making Something Happen
Once the firmware begins the process of starting up the operating system, it loads a core for executing all of the other instructions for the system, called a kernel. This is the base interface between the physical hardware of your computer and everything else that makes up the operating system. The kernel allows for the main processor, known as the central processing unit (CPU) to handle instructions use of the computer’s Random Access Memory (RAM). The kernel also handles setting the configuration for other physical pieces of hardware on your computer: your video card which runs the display; the audio card or controller which allows for sound generation; the configuration for all of your input devices like a keyboard and mouse; and more. The components (devices) each have separate programs that help them with interpreting communications with the kernel and other elements of the operating system. These special programs are referred to as drivers, as they “drive” the use of each component. Once the kernel has been loaded and the drivers are all properly responding, other parts of the operating system can be loaded as well.
The data for the kernel, the drivers and other core aspects of your operating system are stored on devices like hard drives in your computer. This storage is rather similar, conceptually, to a file cabinet, or a series of file cabinets, depending on the computer’s construction. At any rate, the kernel and operating system really can locate and access the data it needs up to this point without user input and minimal controls. But once this point is passed, the computer and users will have need of more sophisticated tooling for accessing storage. At this stage, the kernel mounts what’s referred to as the file system.
The file system is a logical organization of all of the data your computer has on it, and a more complex set of software tooling to utilize it. This includes other parts of the operating system, other software packages and your actual data. The specific organization of the file system differs a bit with different operating system, but the end result is a special program that the operating system will use to provide you the ability to do anything else you’ll need to do. I will be writing another set of articles soon which will help you to understand and navigate the file system of your computer. Each article will cover a major Operating System series and discuss the specifics of that platforms file system.
After the loading of the file system, the last major part of the operating system that is loaded is the user interface, usually called the shell. The shell often takes the form of a command line interface (CLI) or a graphical user interface (GUI) and serves as a mechanism to run other programs within the framework that the operating system provides. Command Line shells generally implement a logical interpreter for complex commands. This logical interpreter supports a language much like many common programming languages. Graphical interfaces are capable of executing much if not all of the same logic as a command-line interface, but implement common user tasks as very simple point-and-click operations, opening up the system for novice users without an extensive background in issuing intricate commands.
The shells will also integrate directly with the file system application, allowing for seamless integration of system command and file / storage access.
Summary
This article is by no means a complete guide to operating systems. It is a very brief overview of the definition and concepts of operating systems, intended to help you understand this core piece of technology that drives modern computers. At this point, you should understand the purpose of an operating system: it is intended to provide an organizational framework to manage the physical hardware of your computer, and to allow software design to work on that particular operating system to be run in as smooth a manner as possible, with only a modest level of instruction required for a reasonable degree of productivity.
From here, there will be more articles covering the concept of file systems, specific shells (user interfaces) for various vendor platforms (Microsoft Windows, Mac OS and more). Initially, I will be focusing on the Microsoft environments, because they are the most common and likely the first environment a user will encounter and experience. As time and resources allow, I will cover other systems as well.
The most important thing to remember is that an operating system is generally designed to allow a reasonable degree of control while preventing serious mistakes from happening. Above all else, though, always research solutions to any task carefully, and consult a skilled professional as necessary to ensure you are performing tasks safely.
Oh, One More Thing
After my article summaries I’ll likely have additional notes or updates to offer. If this is the first article you’re reading on this site, my additional note is this: don’t let yourself feel overwhelmed when reading my articles. If you are well and truly confused by something you’re reading / seeing on this site, please reach out to me with your questions. It may take me a bit at times, but I will always try to get back to messages as soon as I can, and if I don’t have an immediate answer, I’ll let you know and try to find one that will help you out. That’s what I do!