Photo by Claudio Schwarz on Unsplash
Introductions Computer Software and Operating Systems
Nepal, HSEB Course, Class - XI, Chapter 3
This blog is for Class XI, Computer Science Students, Nepal. The blog is a summary of Chapter 3, of the computer science book by Kriti's Publication. Please read the book for details.
Introduction
Chapter 3, introduces different types of software in broad categories on brief. After that, the majority of this chapter is dedicated to understanding Operating Systems.
Software is a set of programs created to perform specific tasks. Software programs are written in various programming languages like C, C++, Python, Java, etc. Machines and Humans communicate with each other with the help of software. Most of us know applications on our smartphones like Facebook, Instagram, etc. However, the software can be divided into several categories. Other forms of software are applications in printers, washing machines, automobiles, heavy machines in manufacturing industries, and so on.
There are broadly five categories of software:
Application Software
Web-based Software
Mobile Applications
Utility Software
System Software
1. Application Software
Software that is created to assist individuals or organizations to complete a specific task. They can help you automate tasks or stay productive and many more. They can be further categorized into Customized and General/Packaged Software.
1.1. Customized Software
Software that has been custom-made for a person/company that might not work for other individuals or scenarios. Many companies order custom-made software to handle employee salaries, Contracts, and more.
1.2. Packaged Software
These are software that is made for general purposes and fit the necessities of companies and professionals from different industries. Popular software in this genre is Office 365.
2. Web-Based Software
These are software that is run on a server and accessed via browsers. They are device independent. You just need a computing device that has a browser, like Chrome among many others, installed and has internet to access this software. Popular web-based apps are web versions of Facebook, YouTube, Instagram, etc.
3. Mobile Applications
These are the most commonly known versions of software in the world. They are built to run on mobile devices. These apps can be native, web-based, or hybrid applications.
3.1. Native Application
They are built to be run on a local device's operating system. The two most popular operating systems nowadays are Android and IOS. Apps like Facebook, and Tiktok are examples of native apps. Programming languages like Java/Kotlin, Swift/Objective C are used to build native apps for android and ios respectively
3.2. Web-Based Application
These are applications that can be installed but they run on browsers. They are also called progressive web applications. Many applications mentioned above already offer this type of software service as well for users who don't want to run apps locally. These apps are usually built with HTML, CSS, and JavaScript libraries.
3.3. Hybrid Applications
They are a combination of web and native apps. They can run on multiple platforms and are built with programming languages like React Native, Ionic, Flutter, etc.
4. System Software
It's software that controls the main computer hardware. It provides instruction to control resources, checks data I/O, and processes information. There are four types of system software:
4.1. System Utilities
Utility software is software that helps to configure the resources of an operating system. They are technical or require a little advanced mastery in computer usage. Some popular utility software in Windows OS is File Explorer, Disk Partition, Control Panel, Task Manager, etc.
4.2. Language Translator
Computers can't understand the human language or the programming language humans write. Hence, the software is needed to translate programs written with a programming language, for instance, Python, or Java, etc to be translated into machine-readable combinations of 1s and 0s(binary numbers). That is done by a translator also known as an interpreter or assembler.
4.3. Device Driver
An essential software that acts as a bridge between the operating system(OS) and hardware like a monitor, keyboard, mic, etc. Without drivers, computer hardware won't work with OS. In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton.
4.4. Operating System
It's an interface layer between hardware and software. It controls and allocates resources for different software and allows users to interact with different hardware and many more. Some of the most popular OS out there are Windows, Ubuntu, Mac OS, Android, IOS, etc.
Let's dive into the details of the Operating System.
Operating Systems
An operating system (OS) is system software that manages computer hardware and software resources. It provides common services for computer programs. The music app that somehow allows you to manipulate the speakers of your phone is connected to the speaker via the operating system of your phone.
It allows users to interact with hardware. It also provides a platform to execute programs. In the need to utilize the advanced technology of a computer, an OS is a must.
OS plays an active role in resource management like RAM(Random Access Memory) and Harddisk. It helps to prioritize resource allocations among various applications running at the same time. Solves errors and prevents improper use of programs.
Functions Of OS
The majority of functionalities of operating systems are:
Process Mangement
Central Processing Unit(CPU) manages currently running programs which are called processes. In other words, a running program is called a process. Any given process at any given time is at one of these five states of the process.
New: I'm a new program to be put on queue.
Ready: I'm ready to be executed.
Running: I'm being currently run by the microprocessor.
Waiting: I'm being paused by the microprocessor. May be user is running another program and I'm in the background.
End: User/OS has terminated me and I'm no longer on the list.
If your Computer has a multi-core processor then multiple processors are running at once otherwise it's just one.
For windows, they can be viewed in Task Manager.
Memory Management
Memory is a virtual space that is occupied by software. There are two types of memory RAM and ROM, that are managed by OS. HDD and SSD are neither RAM nor ROM. OS keeps track of memory being consumed by processes and allocated or de-allocates when needed.
Storage Management
Also called secondary storage devices. They are larger spaces to store data and information. OS allows users to store files and folders. Applications are installed in a computer using the storage area on SSD or HDD using OS. OS also does other tasks like formatting disk to clean up, and fragmenting disk to different drives like C, D, and E.
Input/Output Management
The operating system is responsible for managing IO systems, the hardware, and the software necessary to handle input and output devices on a computer. OS also manages buffer and queuing of jobs like printing, reading, and copying file from one source to another. Find the details in this article by code academy.
Files and Folder Management
From Wikipedia: A computer file is a computer resource for recording data in a computer storage device, primarily identified by its file name. OS handles tools and apps for the creation, manipulation, backup, and storage of files and folders(directories).
Protection and Security Management
When we say protecting we mean securing data and information from unwanted users, users can be a person, group of hackers, virus software, etc. OS can restrict access to unauthorized users to protect data. Many trusted anti-viruses can be used to detect and remove viruses that might be attached to files we download from various sources. OS also prevents corruption, theft, and loss of data.
Network Management
Network management is the process of administering, managing, and operating a data network, using a network management system. Modern network management systems use software and hardware to constantly collect and analyze data and push out configuration changes for improving performance, reliability, and security. You can read more here. Part of the OS responsible for network management is responsible for sharing resources both hardware and software, sharing data and information, generating computational speed, etc.
Command Interpretation
A command is an input signal that tells the user to perform certain tasks. OS has interfaces to take commands to perform various tasks from users, interprets them into machine-readable instructions, and then the computer executes them.
Virtual Memory Management
Computers can handle more memory than physical memory. The extra memory is called Virtual Memory. The advantage of this is that programs larger than physical memory can be run. Virtual memory serves two purposes. First, it allows us to extend the use of physical memory by using a disk. Second, it allows us to have memory protection because each virtual address is translated into a physical address. Virtual memory is commonly implemented by demand paging. It can also be implemented in a segmentation system.
Read more on the book
Operating System Terminology
Based on Processing Methods
A running of a program is called a task. An OS may process tasks one at a time or concurrently(many in parallel mode). Based on this processing method OS can be described as:
Batch processing is a method of processing one task at a time.
Multitasking/Multiprogramming is the processing of two or more tasks at once when required. Any OS capable of multitasking is a multitasking OS. Modern-day Operating systems like Windows, macOS, and Linux are all multitasking OSs.
Time-Sharing Operating System is an extension of MultiTasking OS, here, each process gets equal time. OS tries to minimize the response time of the CPU. It allows many users to share resources at the same time.
Check out this article on the difference between TimeSharing between Multitasking OS.Real-Time OS provides a very quick response to input variables in real-time(as it is happening). It's used in very critical tasks like Missile guide systems, and flight control systems.
Multiprocessing OS is an OS that can handle multiprocessors at once in an efficient manner. The term multiprocessing refers computing system with more than one processor.
Networking and Distributed System is when multiple computers are connected in a network and working in harmony giving a distributed system. It follows the client/server principle. A Client-server is a relationship in which one program (the client) requests a service or resource from another program (the server). They are used for resource sharing, and backup and recoveries between users.
**Online processing ** is a system where the input device is connected to the computer and operations happens in a fast and prompt manner. ATM is an online processing system.
Based On Interface
The interface is a platform that helps the user to communicate with the computer. They can be an icon of software, to some commands to run on the terminal. They all are collectively known as interfaces. There are two types of Use Interfaces
Character User Interface(CUI) / Command Line Interface(CLI)
Graphical User Interface(GUI)
Character User Interface(CUI) / Command Line Interface(CLI)
CLI/CUI also commonly known as command terminal, is an earlier version of communication, where users communicate on a text-based system. To open up the command terminal in a Windows operating system you:
Open the Start Menu./Press the windows key.
Type cmd
Hit enter
Operating systems like Unix, and DOS only had CLI unlike modern days OSs like Linux, Windows consists of both GUI and CUI.
Advantages of CLI
One of the best pros of CLI over GUI is its efficiency to perform tasks.
It's faster to execute tasks.
Burden over CPU is less.
Disadvantages of CLI
It runs on commands. So, the user has to remember them.
Absence of Graphics makes it unpleasant to look at.
Checkout book for more
Graphical User Interface
GUI is a visual computing environment with graphical images such as icons, dialog boxes, menus, etc. In GUI we can interact with the computer using a mouse and sometimes a mic on top of the keyboard.
Features of GUI
It's graphical and user friendly
Learning curve is short. Anyone can master it.
Provides icons and menus to interact.
Has alert boxes to provide feedback to users for their actions.
Advantages of GUI
Easy to use and master.
Built for the general public instead of technical experts.
Programs can be run with a mouse click unlike in text-based CLI.
Disadvantages Of GUI
It is burdensome on the CPU, utilizing a large chunk of memory and processing power.
It's slower to do complex tasks like installing, updating the system, etc.
Based On the Mode Of User
OS can also be categorized based on the number of users operating on a system at a time. Based on user number it can be further categorized into two categories.
- Single User OS
A computer/OS operated by only one user at a time is a single user os. Personal Computers(PC) are examples of single-user os. for example Windows XP, Vista, etc.
- Multiple User OS
A Multi-user operating system is a computer operating system that allows multiple users to access a single system with one operating system on it. It is generally used on large mainframe computers. In the multi-user operating system, different users are connected at different terminals and we can access, these users through the network. for example Linux, Unix, Ubuntu, Mac OS, etc.
Windows OS
Graphical User Interface On OSs
The rise of Apple's Macintosh and Windows computers has popularized GUI interfaces and they have become synonyms for GUI computers.
Some features of GUI:
Secondary input devices like mouse, trackball, keyboard, mic, etc.
Point and Shooting features like menus.
Working on Desktop Application and Windows Environment
Windows and Other OS graphical user interfaces are combinations of many terminologies. Some of them are listed below.
Window: When a screen is split into several regions by programs, each split region is a window.
Menu: It's a list consisting of functions/options for the user to select to perform certain actions.
Dialog Boxes: A special window for feedback/guidance/interaction with users.
Button: An element that will start an intended action upon click.
Check out the book to find the remaining ones and try to explore them during practical sessions.
Open Sources and Mobile Operating Systems
Open source is a concept where the design, development, and distribution of software are made freely available to the public. If the open-source software is an operating system then it's called an open-source operating system. For instance, Linux Distributions(like Ubuntu, and Kali Linux.), Android Operating System
Characteristics of Open Source
Free Redistribution of Software and Code: Open source licenses (there are several of them) allow the redistribution of software and codes for free or may allow monetization. But distributors have to share source code(a set of files written in programming languages like Python, Java, etc).
Derived Works: The license must allow the original work(software) to be copied and modified by another developer, but should be distributed under the same conditions as stated in the original software.
Integrity Of Authors Code: The license can restrict modification of the original author's code.
No Discrimination against Persons, Groups, or Fileds: The license must not restrict or discriminate against a certain race, ethnicity, gender, scientific group, or organization.
Distribution Of License: The distribution & redistribution rights attached to the software must apply to all parties without bias.
License must not put restrictions on other software that is being distributed along with licensed software.
Pros/Advantages of Open Source Software
It is free mostly or has a minimal fee which makes it extremely popular.
Freely available on the internet with source code.
No need to buy licenses from publishing companies.
Cons/Disadvantages of Open Source Software
Support is not available.
Limited choice of applications.
Can be complex to use for non-technical users.
Intro To Unix and Linux
Unix and its children, based on their licensing terms, is an open-source operating system. They are available for different hardware devices and many are still free. Some of the attractive features of Unix are multiuser and multitasking operating systems, portable OS, reliability, and efficiency.
In simple terms, Linux is a clone of the Unix system developed By Linus Torvalds, developed for PC systems in 1969. Now, developers around the world contribute regularly to Linux projects to make them free and efficient. There are also paid versions of Linux like Fedora, Red Hat Linux, etc. This clone of Unix is efficient, fast, stable, and inexpensive(many being free). However, Linux is still complex for non-tech professionals since its heavy use of CLI. Just as mentioned before Applications for Linux Systems are limited compared to Mac or Windows OS.
Read more on Linux from the book
Concept Of Mobile OS
It's an operating system for mobile phones, tablets, smartphones, or other mobile devices. Mobile OS on top of a traditional OS adds other features suitable for mobile devices like a built-in modem, camera access, SIM tray for telephone and internet connection, etc.
Modern smartphones have two operating systems.
Main user-facing software platform.
Low-level proprietary real-time os which operates on radio and other hardware.
Types Of Mobile OS
Android OS
Android OS, developed and released by Google in 2008, is an open-source Linux-based OS. It offers a wide range of libraries for developers to create different applications for consumers.
Apple IOS Apple IOS is a closed source(meaning other companies can use it as their phones os like Samsung/One plus for android ) OS, released by apple in 2007. It's used in iPhones and iPads. Developers can also create applications for iPhones and iPad using different programming languages and their libraries.
Other mobile OSs that are not popular or are no longer on the market are Windows Phone OS, Blackberry OS, and Symbian OS.
Questions
Try to find answers to the following questions.
What is software? Give few examples
What is a program?
Why is utility software important?
What are web-based applications?
What is an interpreter?
What is an Operating System(OS)? List some examples of OS.
Write some functions of OS.
What is virtual storage?
What is deadlock?
How does OS helps in storage management?
List some types of OS based on operation?
What is batch processing? List some OS that does batch processing.
Write four differences between Multiprocessing and MultiTasking Systems?
What is a CLI? Write some of the advantages of CLI.
What is GUI? Write a few disadvantages of GUI.
What is an open-source application? Give some examples
Write 4 pros and cons of open-source software.
What are some cons of Unix OS?
What is Linux Operating System. List some free and paid versions of Linux.
Check out exercises in books as well.
Practicals You Can Try
The following tasks should be explored during practical sessions. This can be done in any operating system(the term used can be different based on os).
Managing Files and Folders with Explorer, like creating, renaming, deleting, and hiding the files and folders.
Customizing the Task Bar. For instance, manipulating their size, only appearing on hover(otherwise hide), changing color, and adding/removing applications to the taskbar.
Installing and Uninstalling/Removing applications from your devices. Try to explore the app store of your operating system like Windows App Store, Linux Snap Store, or Mac App Store, and install/remove apps.
Try to Create shortcuts for applications from the Desktop or Add App to Task Bar.
Open the control panel in windows and try to be familiar with icons/tools and their purpose/functions.
Manage sessions and create different user profiles to share your PC with other users from the control panel in windows.
Learn how to perform disk partitions, and create new Directories. Caution: You might have to format if there isn't space available for division.
Explore other user accessories from Start --> All Programs --> Accessories --> System Tools.(On windows)
Thanks for reading. It is Nibesh Khadka from Khadka's Coding Lounge. Find more of my blogs @ kcl.hashnode.dev.
Find out more blogs in this series here.