Okay, software and types of interrupts. Alright?
So we all know that computers consist of two
things: software and hardware. Right? Did I miss anything? But whatever it is, software and
hardware. Without software, your hardware is useless, understand? Without software, your
hardware is completely useless.
An example that one of my professors used to give is very close to my heart even after all these
years. He used to say that hardware is just a machine, right? Any…
The hardware of a device, you know, is the next thing. And what hardware has is that it is self-
aware. Do you understand? It knows it exists. So what does hardware do? Hardware goes and
requests. Hardware goes and asks the software, which basically includes the operating system,
but hardware also asks software, “Please make me attractive so people use me.” Right? “Please
make me look good. I want to be used more.” Right? I think this is a very clear example, but
that’s how it is.
A very good example. Alright? I’m not promoting anything here, but it’s a very good example.
So that’s why, without software, hardware is useless. Hardware can’t do anything without
software. People won’t be able to use it.
So software is basically divided into two types. Right? You have system software, and then you
have application software. What is system software? It controls and manages what? It controls
and manages all the computer’s hardware. Right? All your hardware is managed through the
system.
Application software allows users to perform specific tasks. What does application software do?
It lets you do certain tasks. Let’s see how system software works. It provides the environment
necessary to run and manage a computer. Without it, you can’t operate a computer. It acts as a
bridge between hardware and user programs. Your computer’s hardware and the user programs
are connected through this bridge.
Technically, it’s a bridge between hardware and software. Right? So what are user programs?
The software that you use operates between the user and hardware. Who plays the intermediary
role between these two? Your system software.
What are its common features? It manages your hardware resources. It also provides HCI. What
is HCI? Human-Computer Interface. Right? So it provides you the means through which
humans can interact with the computer. It runs in the background and makes operations smooth.
And it provides a platform for application software. Now let’s move straight to types of system
software and examples. The most important and basic system software is the operating system.
Right? It’s really the biggest and smoothest operator. Thanks to it. What does the operating
system basically do? Everything running on your computer relies on the operating system. It
handles input/output, file storage, memory management, multitasking, security, error handling
—all the operations your computer performs. Everything a device does basically runs on top of
the operating system.
Then we have another type of software that facilitates the operating system. It’s mostly a group
of software. This group is called driver software. Right? What are drivers? They are device-
specific software. They allow communication between hardware devices and your operating
system.
Every hardware device is programmed differently. They basically “speak” a different language.
Device drivers translate this language for your computer. They ensure communication between
hardware and the operating system. Without drivers, your devices—USBs, printers, even 3D
printers—won’t work. So…
Printer drivers, graphics drivers, mouse drivers—all these are different types of drivers. Then
you have utility programs. What are utility programs? They primarily handle maintenance and
optimization of your computer. They include small tools like antivirus, device cleanup,
defragmentation tools—basically, software that provides specific functionality to make your
computing experience smoother. Then we have compilers.
What are compilers? Compilers are software that take code written in a high-level language,
like Python, C, C++, Java, JavaScript, Node, React, Angular, or any other language, and
convert it into machine language. Right? The translation is done by your compiler. It takes your
source code in high-level language and compiles it.
Object code is the code that machines can understand. Right? One big advantage of compilers is
that once you compile your code, you have a compiled file ready. You don’t need to recompile
every time; you just run this compiled file. Finally, we have linkers. What are linkers? They
combine compiled object files into a single executable program.
Application software is software that allows specific tasks on a computer. Right? It runs on top
of system software. These are the programs we directly use. They only run when the user tells
them to. All application software relies on system software to function. Simple programs can be
Notepad, Calculator, or a suite like Microsoft Office.
Some examples: word processors like Notepad or Microsoft Word let you edit text documents,
format them, copy/paste, spell check, import images, or even do translations. Spreadsheets, like
Microsoft Excel, organize numerical data in grids with rows and columns and allow formulas,
graphs, data modeling, and forecasting. Database software, like Microsoft Access, organizes
data in rows and columns, allows queries, report creation, deletion, and modification.
Other common apps you download from the Play Store or App Store include games, GPS apps,
email apps, social media apps like Facebook, Instagram, Snapchat—all are application
software. Control and measuring software interface with sensors like temperature sensors, heart
rate sensors, motion sensors, etc. Editing software is another type of application software,
mainly graphics manipulation software for photos, vector art, etc.
Utility software runs background tasks automatically, unlike application software which runs
when a user starts it. Examples: antivirus scans files and protects against viruses,
defragmentation software arranges your hard drive data for faster access, backup software
creates copies of your data, and device drivers allow your operating system to communicate
with hardware.
Screensavers were introduced to prevent screen burn-in on CRT monitors. Backup software lets
you create local or remote copies of data. Operating systems like Android, iOS, Mac, Linux,
Windows manage the system and provide a human-computer interface (HCI). HCI types
include Command Line Interface (CLI) and Graphical User Interface (GUI).
CLI requires typing commands, uses minimal memory, is flexible, but slower and prone to
errors. GUI uses icons, windows, menus, pointing devices, or touch gestures, making navigation
user-friendly but consuming more memory and less flexible.
Memory management: the OS manages RAM, transfers data between storage and RAM,
prevents conflicts between applications, ensures correct data allocation, and provides security
like access control and password protection. Multitasking allows multiple processes to run
simultaneously, allocating resources efficiently.
File management handles naming rules, extensions, creating, copying, moving, deleting, and
directory structures. Access rights and protections ensure one user’s data cannot be accessed by
another. OS updates fix bugs and security vulnerabilities. Hardware and peripheral management
via drivers ensures smooth operation of all connected devices.