Computer Architecture
Abstraction
When we interact with our computers we use our mouse, keyboard or even a touch screen. We don’t tell it the actual zeros and ones it needs to understand something. But wait, we actually do. We just don’t ever have to worry about it.
We use the concept of abstraction to take a relatively complex system and simplify it for our use. You use abstraction every day in the real world, and you may not even know it.
If you’ve ever driven a car, you don’t need to know how to operate the transmission or the engine directly. There’s a steering wheel, some pedals, maybe a gear stick. If you buy a car from a different manufacturer, you operate it in pretty much the same way even though the stuff under the hood might be completely different. This is the essence of abstraction.
Abstraction hides complexity by providing a common interface, the steering wheel, pedals, gear stick, and gauges in our car example.
The same thing happens in our computer. We don’t need to know how works underneath the hood. We have a mouse and a keyboard we can use to interact with it. Thanks to abstractions, the average computer user doesn’t have to worry about the technical details.
In computing, we use abstraction to make a very complex problem, like how to make computers work, easier to think about. We do that by breaking it apart into simpler ideas that describe single concepts or individual jobs that need to be done, and then stack them in layers. It’s a fundamental concept in the computing world.
One other simple example of abstraction in an IT role that you might see a lot is an error message. We don’t have to dig through someone else’s code and find a bug. This has been abstracted out for us already in the form of an error message.
A simple error message like “file not found” actually tells us a lot of information and saves us time to figure out a solution. Can you imagine if instead of abstracting an error message our computer did nothing and we had no clue where to start looking for answers?
Abstraction helps us in many ways that we don’t even realize.
Breaking down into Parts
A computer can be cut into four main layers:
- hardware
- operating system
- software
- users
Hardware
The hardware layer is made up of the physical components of a computer. These are objects you can physically hold in your hand. Laptops, phones, monitors, keyboards, you get the idea.
Operating system
The operating system allows hardware to communicate with the system. Hardware is created by many different manufacturers. The operating system allows them to be used with our system, regardless of where it came from.
Software
The software layer is how we as humans interact with our computers. When you use a computer, you’re given a vast amount of software that you interact with, whether it’s a mobile app, a web browser, a word processor, or the operating system itself.
User
The last layer may not seem like it’s part of the system, but it’s an essential layer of the computer architecture, the user.
The user interacts with the computer and she can do more than that. She can operate, maintain, and even program the computer. The user layer is one of the most important layers we’ll learn about.
When you step into the field of IT, you may have your hands full with the technical aspects, but the most important part of IT is the human element. While we work with computers every day, it is the user interaction that makes up most of our job, from responding to user emails to fixing their computers.
Next Steps
Let’s now jump onto the first layer: the hardware.