5 PDF
5 PDF
The hardware that runs an embedded operating system is usually quite resource-constrained. Embedded
hardware systems are typically quite specific, and it means that these systems are designed to cover certain
tasks due to limited resources.
In this article, you will learn about the embedded operating system with its types and many other features.
The embedded operating system improves overall efficiency by controlling all hardware resources and
minimizing response times for specific tasks for which devices were built.
Due to the limited scope of operating system functions, it must be reliable and run smoothly with its size,
processing power, and requirements. That specific application is essential to the end product's functionality.
Wind River VxWorks, Embedded Linux and Android, and QNX are some of the top embedded operating
systems for commercial and industrial applications.
2 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
Since then, embedded computer systems have gone a long way, and the evolution appears to be far from
over, owing to advancements in microcontroller technology from 8-bit to 16-bit, and eventually 32-bit.
Since embedded computer systems are growing more complex, operating systems have grown essential
to manage embedded software effectively.
The real-time operating system is dependent on clock interruptions. Interrupt Service Routine
(ISR) interruptions are generated by this system. The Priority system was implemented by RTOS for the
execution of all types of processes. The process and the RTOS are synchronized and can communicate with
one another. The RTOS is stored on a ROM (Read Only Memory) chip because this chip can store data
for a long time.
The multitasking operating system is switched between the multiple tasks. Some tasks are waiting for
events to occur, while others are receiving events and preparing to run. When using a multitasking
operating system, software development is easier since different software components may be made
independent of each other.
interpreters in the system and the time required by the scheduler to switch tasks. Such systems can fail to
meet a system's deadline, and the program is unaware of the missed deadline. CPU load can be naturally
measured in a preemptive operating system by defining a lower priority process that does nothing except
increment the counter.
eCos
It stands for 'Embedded Configurable Operating System', and all of its components provide a wide range
of configuration options. The eCos operating system may support a wide range of popular embedded
CPUs.
mbed OS
It is a free and open-source embedded operating system that offers a systematic and comprehensive
environment for intelligent hardware development.
4 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
VxWorks
Wind River Company firstly introduced it in 1983. It is supported with task synchronization, memory
efficiency management, and other features.
µC/OS-II:
It is introduced based on the μC/OS principle. μC/OS-II may handle 64 tasks and provide various
functionalities such as interrupt services, task scheduling, memory management, synchronization, and time
management.
FreeRTOS
It is a lightweight operating system that supports the priority scheduling algorithm. It provides various
functionalities like memory management, message queue, task management, semaphore, time
management, etc.
QNX
QNX was created in 1980 and is a commercial embedded real operating system that requires the POSIX
specification to compile.
µ Clinux
It stands for 'Micro-Control Linux', and it is the latest version of embedded Linux. It is capable of grab all
features of the Linux operating system.
Parking Metering
Smart city parking meters use the embedded system to manage the user input and track time and costs.
Depending on the design, these devices contain a variety of built-in functions. For example, some sensors
detect vehicle entry and exit, while others require the driver to enter the parking space or vehicle license.
A user interface offers the driver options, including defining the expected return time and paying
appropriately.
Medical Equipment
5 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
Medical equipment automatically monitors bio constants, administers drugs. If the bio constants exceed
or fall below a threshold value, it alerts the staff. As a result, it may help doctors treat the patients, monitor
health issues, and save their lives.
Advantages
There are various advantages of an embedded operating system. Some of them are as follows:
Disadvantages
There are various disadvantages of an embedded operating system. Some of them are as follows:
(2) eCos
What is the eCos operating system?
The Embedded Configurable Operating System (eCos) is an RTOS that is built primarily for embedded
systems and applications that require just one process with several threads. It is intended to adapt to
specific application runtime performance and hardware constraints. It is developed using the programming
languages C and C++, and it contains POSIX and The Real-time Operating System Nucleus
(TRON) variant µITRON compatibility layers and application programming interfaces. All embedded
security standards are met by eCos, which is supported by popular SSL/TLS libraries like wolfSSL.
The eCos operating system contains RedBoot, which is an open-source program that provides bootstrap
firmware for embedded devices by utilizing the eCos hardware abstraction layer.
eCos is a free and open-source operating system with a license that allows unrestricted access to its source
code while preserving the intellectual property rights of middleware and embedded programs. Engineers
have complete control, flexibility, and comprehension over all parts of their embedded design. Commercial
liberties include permanent access and rights to the codebase, no vendor lock-in, no limits on your
intellectual property, and no royalty or license costs. It is released under a variant of the well-known GPL
license that supports linking non-GPL-licensed applications with eCos. It implies that your program, system
improvements, and any third-party middleware are not needed to be licensed under the GPL.
Functionality
Many embedded applications' tools and runtime features are included in the standard eCos release,
including a priority-based real-time scheduler and synchronization primitives, language support libraries,
standards-based APIs file systems, device drivers, networking, communications, and debugging support.
The open-source GNU compiler toolset and an eCos setup tool with a graphical user interface are also
provided.
Portability
A well-defined hardware abstraction layer (HAL) built on the C programming language and strong
integration with the GNU C/C++ toolset provides eCos with its simple design and platform portability. As
a result, eCos OS has been ported to almost all current 32-bit architectures. Several of them include ARM,
Coldfire/68K, Hitachi SH2/3/4, Nios, PowerPC, Intel x 86, MIPS/microMIPS, and SPARC.
The eCos HAL is also the foundation for the RedBoot bootloader and debugs agent, which enables the
construction of an RTOS port, bootstrap, and software debug solution in a single step.
Performance
eCos implements a traditional multi-threaded architecture with a comprehensive set of synchronization
primitives since it was created from the bottom up for deeply embedded real-time applications. It provides
predictable reaction times, short interrupt latency, and low overhead context transitions.
Developers may provide the necessary features and characteristics of the operating system through the
configuration system, resulting in an application-specific version that is perfectly tailored to the needs of a
certain device. It addresses the challenge of strict RAM/ROM budgets and performance requirements while
achieving the lowest resource footprints with maximum functionality and efficiency
(3) Tiny os
8 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
TinyOS is an embedded, component-based operating system and platform for low-power wireless devices, such as
those used in wireless sensor networks (WSNs), smartdust, ubiquitous computing, personal area networks, building
automation, and smart meters. It is written in the programming language nesC, as a set of cooperating tasks and
processes. It began as a collaboration between the University of California, Berkeley, Intel Research, and Crossbow
Technology, was released as free and open-source software under a BSD license, and has since grown into an
international consortium, the TinyOS Alliance.
Implementation
TinyOS applications are written in the programming language nesC, a dialect of the C language optimized for the
memory limits of sensor networks. Its supplementary tools are mainly in the form of Java and shell script front-ends.
Associated libraries and tools, such as the nesC compiler and Atmel AVR binutils toolchains, are mostly written in C.
TinyOS programs are built of software components, some of which present hardware abstractions. Components are
connected to each other using interfaces. TinyOS provides interfaces and components for common abstractions such
as packet communication, routing, sensing, actuation and storage.
TinyOS is fully non-blocking: it has one call stack. Thus, all input/output (I/O) operations that last longer than a few
hundred microseconds are asynchronous and have a callback. To enable the native compiler to better optimize across
call boundaries, TinyOS uses nesC's features to link these callbacks, called events, statically. While being non-blocking
enables TinyOS to maintain high concurrency with one stack, it forces programmers to write complex logic by stitching
together many small event handlers. To support larger computations, TinyOS provides tasks, which are similar to
a Deferred Procedure Call and interrupt handler bottom halves. A TinyOS component can post a task, which the OS will
schedule to run later. Tasks are non-preemptive and run in first in, first out order. This simple concurrency model is
typically sufficient for I/O centric applications, but its difficulty with CPU-heavy applications has led to developing
a thread library for the OS, named TOSThreads. TOSThreads are unmaintained and have been deprecated. [1]
TinyOS code is statically linked with program code and is compiled into a small binary, using a custom GNU toolchain.
Associated utilities are provided to complete a development platform for working with TinyOS.
History
TinyOS began as a project at UC Berkeley as part of the DARPA NEST program. It has since grown to involve
thousands of academic and commercial developers and users worldwide. (list in reverse chronological order)
1. Denial of service attack or DOS: A denial of service attack is a kind of cyber attack in
which the attackers disrupt the services of the particular network by sending infinite requests
and temporary or permanently making the network or machine resources unavailable to the
intended audience.
2. Backdoor: In a backdoor attack, malware, trojan horse or virus gets installed in our system
and start affecting it’s security along with the main file. Consider an example: suppose you are
installing free software from a certain website on the Internet. Now, unknowingly, along with
this software, a malicious file also gets installed, and as soon as you execute the installed
software that file’s malware gets affected and starts affecting your computer security. This is
known as a backdoor.
3.Eavesdropping: Eavesdropping refers to secretly listening to someone’s talk without their
permission or knowledge. Attackers try to steal, manipulate, modify, hack information or
systems by passively listening to network communication, knowing passwords etc. A physical
example would be, suppose if you are talking to another person of your organization and if a
third person listens to your private talks then he/ she is said to eavesdrop on your conversation.
10 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
Similarly, your conversation on the internet maybe eavesdropped by attackers listening to your
private conversation by connecting to your network if it is insecure.
4. Phishing: Phishing is pronounced as “fishing” and working functioning is also similar. While
fishing, we catch fish by luring them with bait. Similarly, in phishing, a user is tricked by the
attacker who gains the trust of the user or acts as if he is a genuine person and then steals the
information by ditching. Not only attackers but some certain websites that seem to be genuine,
but actually they are fraud sites. These sites trick the users and they end up giving their
personal information such as login details or bank details or card number etc. Phishing is of
many types: Voice phishing, text phishing etc.
5. Spoofing: Spoofing is the act of masquerading as a valid entity through falsification of
data(such as an IP address or username), in order to gain access to information or resources
that one is otherwise unauthorized to obtain. Spoofing is of several types- email spoofing, IP
address spoofing, MAC spoofing , biometric spoofing etc.
6. Malware: Malware is made up of two terms: Malicious + Software = Malware. Malware
intrudes into the system and is designed to damage our computers. Different types of malware
are adware, spyware, ransomware, Trojan horse, etc.
7. Social engineering: Social engineering attack involves manipulating users psychologically
and extracting confidential or sensitive data from them by gaining their trust. The attacker
generally exploits the trust of people or users by relying on their cognitive basis.
8. Polymorphic Attacks: Poly means “many” and morph means “form”, polymorphic attacks
are those in which attacker adopts multiple forms and changes them so that they are not
recognized easily. These kinds of attacks are difficult to detect due to their changing forms.
In order to protect our system from the above-mentioned attacks, users should take certain
steps to ensure system security:
1. Always keep your Operating System up to date. Keeping it up to date reduces the risk of
their getting attacked by malware, viruses, etc.
2. Always use a secure network connection. One should always connect to a secure network.
Public wi-fi’s and unsecured networks should be avoided as they are at risk of being attacked
by the attacker.
3. Always install an Antivirus and keep it up to date. An antivirus is software that scans your PC
against viruses and isolates the infected file from other system files so that they don’t get
affected. Also, we should try to go for paid anti-viruses as they are more secure.
4. Enable firewall. A firewall is a system designed to prevent unauthorized access to/from a
computer or even to a private network of computers. A firewall can be either in hardware,
software or a combination of both.
5. Use strong passwords. Always make strong passwords and different passwords for all social
media accounts so that they cannot be key logged, brute forced or detected easily using
dictionary attacks. A strong password is one that has 16 characters which are a combination of
upper case and lower case alphabets, numbers and special characters. Also, keep changing
your passwords regularly.
6. Don’t trust someone easily. You never know someone’s intention, so don’t trust someone
easily and end up giving your personal information to them. You don’t know how they are going
to use your information.
11 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
7. Keep your personal information hidden. Don’t post all your personal information on social
media. You never know who is spying on you. As in the real world, we try to avoid talking to
strangers and sharing anything with them. Similarly, social media also have people whom you
don’t know and if you share all your information on it you may end up troubling yourself.
8. Don’t download attachments that come along with e-mails unless and until you know that e-
mail is from a genuine source. Mostly, these attachments contain malware which, upon
execution infect or harms your system.
9. Don’t purchase things online from anywhere. Make sure whenever you are shopping online
you are doing so from a well-known website. There are multiple fraud websites that may steal
your card information as soon as you checkout and you may get bankrupt by them.
10. Learn about computer security and ethics. You should be well aware of the safe computing
and ethics of the computing world. Gaining appropriate knowledge is always helpful in reducing
cyber-crime.
11. If you are attacked, immediately inform the cyber cell so that they may take appropriate
action and also protect others from getting attacked by the same person. Don’t hesitate to
complain just because you think people may make your fun.
12. Don’t use pirated content. Often, people try to download pirated movies, videos or web
series in order to get them for free. These pirated content are at major risk of being infected
with viruses, worms, or malware, and when you download them you end up compromising your
system security
What is a Threat?
A Threat is a possible security risk that might exploit the vulnerability of a system or asset. The origin of
the threat may be accidental or environmental, human negligence, or human failure. There are various
types of security threats such as Interruption, Interception, Fabrication, and Modification.
A threat is something that can gain access to, harm, or eliminate an asset by exploiting a vulnerability,
whether purposefully or unintentionally. Threats can be divided into three categories −
Floods, storms, and tornadoes are examples of natural disasters.
Unintentional threats, such as an employee accessing incorrect information.
Spyware, virus, adware companies, or the activities of a rogue employee are all examples of
intentional dangers.
12 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
Bugs and malware are classified as dangers because they can hurt your firm if you are exposed to a
computerized attack rather than one carried out by humans.
Many firms do cyber threat assessments to determine where they should focus their monitoring,
protection, and remediation efforts. So, if an asset is something you're attempting to protect, a threat is
something you're trying to avoid.
What is an Attack?
An Attack is an intentional unauthorized action on a system. Attacks can be grouped into two categories
−
Active Attacks − An active attack is an attempt to change system resources or influence their
operation.
Passive Attacks − A passive attack is an attempt to understand or retrieve sensitive data from a
system without influencing the system resources.
An attack always has a motivation to misuse system and generally wait for an opportunity to occur.
Intentional Threats can be intentional like human The attack is a deliberate action. An attacker
negligence or unintentional like natural have a motive and plan the attack accordingly.
disasters.
Conclusion
A Threat is a possible security risk that might exploit the vulnerability of a system or asset. An attack, on
the other hand, is the actual act of exploiting the information security system's weaknesses.
13 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
Threats and Attacks that might jeopardize information security can be prevented in a variety of ways. Soft
and physical firewalls, up-to-date antiviruses and antimalware, and other methods of protection should be
used to design and administer the IT system.
(5) Threats
Operating System Security
Every computer system and software design must handle all security risks and implement the necessary
measures to enforce security policies. At the same time, it's critical to strike a balance because strong
security measures might increase costs while also limiting the system's usability, utility, and smooth
operation. As a result, system designers must assure efficient performance without compromising security.
In this article, you will learn about operating system security with its issues and other features.
Security refers to providing safety for computer system resources like software, CPU, memory, disks, etc. It
can protect against all threats, including viruses and unauthorized access. It can be enforced by assuring
the operating system's integrity, confidentiality, and availability. If an illegal user runs a computer
application, the computer or data stored may be seriously damaged.
System security may be threatened through two violations, and these are as follows:
1. Threat
2. Attack
There are two types of security breaches that can harm the system: malicious and accidental. Malicious
threats are a type of destructive computer code or web script that is designed to cause system
vulnerabilities that lead to back doors and security breaches. On the other hand, Accidental Threats are
comparatively easier to protect against.
Security may be compromised through the breaches. Some of the breaches are as follows:
1. Breach of integrity
14 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
2. Theft of service
3. Breach of confidentiality
4. Breach of availability
5. Denial of service
It includes preventing legitimate use of the system. Some attacks may be accidental.
1. Integrity
Unauthorized users must not be allowed to access the system's objects, and users with insufficient rights
should not modify the system's critical files and resources.
2. Secrecy
The system's objects must only be available to a small number of authorized users. The system files should
not be accessible to everyone.
3. Availability
All system resources must be accessible to all authorized users, i.e., no single user/process should be able
to consume all system resources. If such a situation arises, service denial may occur. In this case, malware
may restrict system resources and preventing legitimate processes from accessing them.
Types of Threats
There are mainly two types of threats that occur. These are as follows:
Program threats
The operating system's processes and kernel carry out the specified task as directed. Program Threats occur
when a user program causes these processes to do malicious operations. The common example of a
program threat is that when a program is installed on a computer, it could store and transfer user
credentials to a hacker. There are various program threats. Some of them are as follows:
15 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
1.Virus
A virus may replicate itself on the system. Viruses are extremely dangerous and can modify/delete user files
as well as crash computers. A virus is a little piece of code that is implemented on the system program. As
the user interacts with the program, the virus becomes embedded in other files and programs, potentially
rendering the system inoperable.
2. Trojan Horse
This type of application captures user login credentials. It stores them to transfer them to a malicious user
who can then log in to the computer and access system resources.
3. Logic Bomb
A logic bomb is a situation in which software only misbehaves when particular criteria are met; otherwise,
it functions normally.
4. Trap Door
A trap door is when a program that is supposed to work as expected has a security weakness in its code
that allows it to do illegal actions without the user's knowledge.
System Threats
System threats are described as the misuse of system services and network connections to cause user
problems. These threats may be used to trigger the program threats over an entire network, known as
program attacks. System threats make an environment in which OS resources and user files may be
misused. There are various system threats. Some of them are as follows:
1. Port Scanning
It is a method by which the cracker determines the system's vulnerabilities for an attack. It is a fully
automated process that includes connecting to a specific port via TCP/IP. To protect the attacker's identity,
port scanning attacks are launched through Zombie Systems, which previously independent systems now
serve their owners while being utilized for such terrible purposes.
2. Worm
The worm is a process that can choke a system's performance by exhausting all system resources. A Worm
process makes several clones, each consuming system resources and preventing all other processes from
getting essential resources. Worm processes can even bring a network to a halt.
3. Denial of Service
Denial of service attacks usually prevents users from legitimately using the system. For example, if a denial-
of-service attack is executed against the browser's content settings, a user may be unable to access the
internet.
16 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
Malware
It contains viruses, worms, trojan horses, and other dangerous software. These are generally short code
snippets that may corrupt files, delete the data, replicate to propagate further, and even crash a system.
The malware frequently goes unnoticed by the victim user while criminals silently extract important data.
Network Intrusion
Network intruders are classified as masqueraders, misfeasors, and unauthorized users. A masquerader is
an unauthorized person who gains access to a system and uses an authorized person's account. A misfeasor
is a legitimate user who gains unauthorized access to and misuses programs, data, or resources. A rogue
user takes supervisory authority and tries to evade access constraints and audit collection.
Buffer Overflow
It is also known as buffer overrun. It is the most common and dangerous security issue of the operating
system. It is defined as a condition at an interface under which more input may be placed into a buffer and
a data holding area than the allotted capacity, and it may overwrite other information. Attackers use such
a situation to crash a system or insert specially created malware that allows them to take control of the
system.
Authentication
The process of identifying every system user and associating the programs executing with those users is
known as authentication. The operating system is responsible for implementing a security system that
ensures the authenticity of a user who is executing a specific program. In general, operating systems
identify and authenticate users in three ways.
1. Username/Password
Every user contains a unique username and password that should be input correctly before accessing a
system.
2. User Attribution
These techniques usually include biometric verification, such as fingerprints, retina scans, etc. This
authentication is based on user uniqueness and is compared to database samples already in the system.
Users can only allow access if there is a match.
To login into the system, the user must punch a card into a card slot or enter a key produced by a key
generator into an option provided by the operating system.
1. Secret Key
The user is given a hardware device that can generate a secret id that is linked to the user's id. The system
prompts for such a secret id, which must be generated each time you log in.
2. Random numbers
Users are given cards that have alphabets and numbers printed on them. The system requests numbers
that correspond to a few alphabets chosen at random.
3. Network password
Some commercial applications issue one-time passwords to registered mobile/email addresses, which must
be input before logging in.
Firewalls
Firewalls are essential for monitoring all incoming and outgoing traffic. It imposes local security, defining
the traffic that may travel through it. Firewalls are an efficient way of protecting network systems or local
systems from any network-based security threat.
Physical Security
The most important method of maintaining operating system security is physical security. An attacker with
physical access to a system may edit, remove, or steal important files since operating system code and
configuration files are stored on the hard drive.
OS Security protects systems and data from worms, malware, threats, ransomware, backdoor intrusions,
viruses, etc. Security policies handle all preventative activities and procedures to ensure an operating
system's protection, including steal, edited, and deleted data.
As OS security policies and procedures cover a large area, there are various techniques to addressing them.
Some of them are as follows:
18 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
OS security policies and procedures are developed and implemented to ensure that you must first
determine which assets, systems, hardware, and date are the most vital to your organization. Once that is
completed, a policy can be developed to secure and safeguard them properly.
In a distributed system, deadlock cannot be prevented nor avoided because the system is too vast. As a
result, only deadlock detection is possible. The following are required for distributed system deadlock
detection techniques:
1. Progress
2. Safety
1. Centralized Approach
Only one resource is responsible for detecting deadlock in the centralized method, and it is simple and
easy to use. Still, the disadvantages include excessive workload on a single node and single-point failure
(i.e., the entire system is dependent on one node, and if that node fails, the entire system crashes), making
the system less reliable.
2. Hierarchical Approach
In a distributed system, it is the integration of both centralized and distributed approaches to deadlock
detection. In this strategy, a single node handles a set of selected nodes or clusters of nodes that are in
charge of deadlock detection.
3. Distributed Approach
19 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
In the distributed technique, various nodes work to detect deadlocks. There is no single point of failure as
the workload is equally spread among all nodes. It also helps to increase the speed of deadlock detection.
1. There are mainly three approaches to handling deadlocks: deadlock prevention, deadlock avoidance, and
deadlock detection.
2. Handling deadlock becomes more complex in distributed systems since no site has complete knowledge of
the system's present state and every inter-site communication entails a limited and unpredictable latency.
3. The operating system uses the deadlock Avoidance method to determine whether the system is in a safe or
unsafe state. The process must inform the operating system of the maximum number of resources, and a
process may request to complete its execution.
4. Deadlocks prevention are commonly accomplished by implementing a process to acquire all of the essential
resources at the same time before starting execution or by preempting a process that already has the
resource.
5. In distributed systems, this method is highly inefficient and impractical.
6. The presence of cyclical wait needs an examination of the status of process resource interactions to detect
deadlock.
7. The best way to dealing with deadlocks in distributed systems appears to be deadlock detection.
1. Deadlock detection-based deadlock handling requires addressing two fundamental issues: first, detecting
existing deadlocks, and second, resolving detected deadlocks.
2. Detecting deadlocks entails tackling two issues: WFG maintenance and searching the WFG for the presence
of cycles.
3. In a distributed system, a cycle may include multiple sites. The search for cycles is highly dependent on the
system's WFG as represented across the system.
1. Deadlock resolution includes the braking existing wait-for dependencies in the system WFG.
2. It includes rolling multiple deadlocked processes and giving their resources to the blocked processes in the
deadlock so that they may resume execution.
20 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
1. Path-Pushing Algorithms
2. Edge-chasing Algorithms
3. Diffusing Computations Based Algorithms
4. Global State Detection Based Algorithms
Path-Pushing Algorithms
Path-pushing algorithms detect distributed deadlocks by keeping an explicit global WFG. The main concept
is to create a global WFG for each distributed system site. When a site in this class of algorithms performs
a deadlock computation, it sends its local WFG to all neighboring sites. The term path-pushing algorithm
was led to feature the sending around the paths of global WFG.
Edge-Chasing Algorithms
An edge-chasing method verifies a cycle in a distributed graph structure by sending special messages
called probes along the graph's edges. These probing messages are distinct from request and response
messages. If a site receives the matching probe that it previously transmitted, it can cancel the formation
of the cycle.
1. A consistent snapshot of a distributed system may be taken without freezing the underlying computation.
2. If a stable property exists in the system before the snapshot collection starts, it will be preserved.
was utilized in most of the early computers. Most computers use GUI rather than CUI. It works by permitting
the user to provide commands to a program in multiple text lines (command lines). CUIs basic instances
are MS-DOS and the Windows Command Prompt. One of the CUI's applications is that it simplifies the
creation of programming scripts.
Advantages
Disadvantages
What is GUI?
GUI stands for Graphical User Interface. A GUI enables users to interact with the operating system or
application. It performs quick calculations of arithmetic and frees up the CPU to perform other tasks. It
offers buttons, windows, scrollbars, iconic images, wizards, and other icons to facilitate users. It has a user-
friendly interface for beginners. It is easy to use, learn and also reduces the cognitive load.
Advantages
1. A GUI is a type of user interface that is much easier to use. Users can classify and navigate options since data
are represented as symbols, forms, and icons. Users only require to click on them to acquiring to their
functions.
22 | M . s c S e m 1 ADVANCED OPERATING SYSTEM
2. It's also easy to manage several jobs when you use a GUI. Users may work and view multiple programs at the
same time. For instance, when a movie file is playing in the background, it is possible to browse the internet
using a web browser.
3. The use of shortcut keys is one of the most important features of a graphical user interface. Shortcut keys are
very helpful if you require to perform a job that requires a couple of actions.
Disadvantages
1. Even though graphical user interfaces are simple to use, they are not the same when they are created. GUIs
have a lot of textual interpretations that take a lot of time and energy to create. The programmer must create,
link, and then assign specific functions to the image, which will take a long time.
2. GUI implementation is not as easy process as it looks while using it. The programmer must be aware of
properly creating functions so that users may use this interface more easily. A single error on the part of the
coder can render all of their efforts in vain.
3. It usually uses high power and computer memory than other interfaces due to all graphical representations.
It is not resource-efficient. As a result, it will use a huge amount of computer resources.
4. The design of the graphical user interface makes development more complex and expensive. Additionally, a
GUI must be linked with additional hardware, which may increase overall costs.
1. It is a user interface where the user interacts with the computer solely through the keyboard and requires a
command to perform any task. In contrast, a GUI allows the users to interact with the operating system or
application.
2. CUI is the precursor of GUI, and the user has to type on the keyboard to proceed in CUI. In contrast, GUI
making it possible to use a mouse instead of a keyboard.
3. DOS, Windows Command Prompt is an instance of a CUI, whereas Windows is an example of a GUI.
4. GUI is more user-friendly than CUI.
5. CUI has only text, and in contrast, GUI has graphics and other visual clues.
6. CUI and GUI are user interfaces used in connection with computers.
Full-Form CUI stands for Character User Interface. GUI stands for Graphical User Interface.
Interaction The user interacts with the computer The user interacts with the system using Graphics
using commands like text. like icons, images.
Peripherals used Users interact with the computer Users interact with the computer system using a
system by typing commands into the graphical interface, which includes menus and
keyboard. mouse clicks.
Flexibility It has a little flexible user interface. It has a highly flexible user interface.
Conclusion
CUI and GUI are acronyms for various types of user interface systems, and these are terms used in the
context of computers. However, both are interfaces that serve the function of running programs, and they
differ in their features and the level of control they give the user.