Personal Computer Software Support Notes
Personal Computer Software Support Notes
SOFTWARE SUPPORT
PERSONAL COMPUTER
MR. JOHN MUCHIRI 10/27/22
SOFTWARE SUPPORT
Personal computer software support
https://warwick.ac.uk/fac/sci/physics/research/condensedmatt/imr_cdt/students/david_goodwin/teac
hing/operating_systems
Concurrency is the execution of the multiple instruction sequences at the same time. It
happens in the operating system when there are several process threads running in
parallel. The running process threads always communicate with each other through
shared memory or message passing. Concurrency results in sharing of resources result in
problems like deadlocks and resources starvation.
It helps in techniques like coordinating execution of processes, memory allocation and
execution scheduling for maximizing throughput.
Principles of Concurrency:
Both interleaved and overlapped processes can be viewed as examples of concurrent
processes, they both present the same problems.
The relative speed of execution cannot be predicted. It depends on the following:
• The activities of other processes
• The way operating system handles interrupts
• The scheduling policies of the operating system
Problems in Concurrency :
Page 1 of 20
• Optimal allocation of resources –
It is difficult for the operating system to manage the allocation of resources
optimally.
• Locating programming errors –
It is very difficult to locate a programming error because reports are usually not
reproducible.
• Locking the channel –
It may be inefficient for the operating system to simply lock the channel and
prevents its use by other processes.
Advantages of Concurrency:
• Running of multiple applications –
It enable to run multiple applications at the same time.
• Better resource utilization –
It enables that the resources that are unused by one application can be used for other
applications.
• Better average response time –
Without concurrency, each application has to be run to completion before the next
one can be run.
• Better performance –
It enables the better performance by the operating system. When one application
uses only the processor and another application uses only the disk drive then the
time to run both applications concurrently to completion will be shorter than the
time to run each application consecutively.
Drawbacks of Concurrency :
• It is required to protect multiple applications from one another.
• It is required to coordinate multiple applications through additional mechanisms.
• Additional performance overheads and complexities in operating systems are
required for switching among applications.
Page 2 of 20
• Sometimes running too many applications concurrently leads to severely degraded
performance.
Issues of Concurrency :
• Non-atomic –
Operations that are non-atomic but interruptible by multiple processes can cause
problems.
• Race conditions –
A race condition occurs of the outcome depends on which of several processes gets
to a point first.
• Blocking –
Processes can block waiting for resources. A process could be blocked for long
period of time waiting for input from a terminal. If the process is required to
periodically update some data, this would be very undesirable.
• Starvation –
It occurs when a process does not obtain service to progress.
• Deadlock –
It occurs when two processes are blocked and hence neither can proceed to execute.
Linux vs Windows: What is Windows?
Windows is a licensed operating system and its source code is inaccessible. It is designed
for business owners, other commercial user and even individuals with no computer
programming knowledge. It is simple and straightforward to use.
Page 3 of 20
The first version of Windows, known as Windows 1.0, revealed in 1985 following the
formation of Microsoft. It was based upon the MS-DOS core. Following that initial launch,
new versions of Windows were quickly rolled out. This included the first major update in
1987 and Windows 3.0 in the same year.
In 1995, perhaps the most widely used version yet, Windows 95 was born. At this point, it
ran on a 16-bit DOS-based kernel and 32-bit userspace to enhance the user experience.
Windows hasn’t changed a whole lot in terms of core architecture since this version despite
vast amounts of features that have been added to address modern computing.
You can take a look at the video tutorial for a more wholesome Idea of the same.
Linux is a free and open source operating system based on Unix standards which provides
a programming interface as well as user interface compatibility. It also contains many
separately developed elements, free from proprietary code.
The traditional monolithic kernel is employed in the Linux kernel for performance
purposes. Its modular feature allows most drivers to dynamically load and unload at run
time.
Linux was created by Finnish student Linus Torvalds, who wanted to create a free operating
system kernel that anyone could use. It was launched much later than Windows, in 1991.
Although it still was regarded as a very bare bones operating system, without a graphical
interface like Windows. With just a few lines of source code in its original release to where
Page 4 of 20
it stands today, containing more than 23.3 million lines of the source code, Linux has surely
grown considerably.
Linux was first distributed under GNU General Public License in 1992.
Linux vs Windows
Users
There are 3 types of users in Linux (Regular, Administrative(root) and Service users)
whereas, in Windows, there are 4 types of user accounts (Administrator, Standard, Child
and Guest).
Usage
According to the market research data, on 92.63% of the world’s PCs, Windows is running,
while hardly 1% of PC users use Linux. Many users say it is hard to use Linux as compared
to Windows and so the appeal of Linux is very limited for household use. It is mostly meant
for serious use such as server application. Hence, corporation servers are running on Linux,
irrespective of the GUI.
Also, due to the licensing agreement with Microsoft, various PC vendors are entitled to
bundle Windows OS with their PC, enabling Windows to gain market popularity over
Linux. Though these days many PC vendors such as Dell and HP have started to give Linux
as the pre-installed OS, Windows still rules the market.
Kernel
Linux uses the monolithic kernel which consumes more running space whereas Windows
uses the micro-kernel which takes less space but lowers the system running efficiency than
Linux.
Page 5 of 20
File Systems
In Microsoft Windows, files are stored in directories/folders on different data drives like
C: D: E: but, in Linux, files are ordered in a tree structure starting with the root directory,
further branched out to various other sub-directories.
Security
Every Windows user has faced security and stability issues at some point in time. Since
Windows is an extensively used OS, hackers, spammers target Windows frequently.
Windows (consumer versions) were originally designed for ease-of-use on a single-user
PC without a network connection and did not have security features built in. Microsoft
often releases security patches through its Windows Update service. These go out once a
month, although critical updates are made available at shorter intervals or when necessary.
Many a time, users of Windows OS face the BLUE SCREEN OF DEATH. This is caused
due to the failure of the system to respond. Eventually, the user has to keep aside his/her
frustrations and manually restart the PC.
Page 6 of 20
On the other hand, Linux is based on a multi-user architecture, making it way more stable
than a single-user OS like Windows. As Linux is community-driven with regular
monitoring by the developers from every corner of the earth, any new problem raised can
be solved within a few hours and the necessary patch can be ready for supply.
Compatibility
Windows shoots. Windows scores. This is where the Redmond offering wipes the floor
with Linux. Despite recent improvements in software being ported or developed to Linux,
Windows is still the king of compatibility.
Users of Windows can be certain that almost any software (even the most obscure, outdated
software) will work, even when it is abandoned by developers. Windows has great legacy
support. Plain and simple.
Linux, on the other hand, has been struggling with basics that Windows users take for
granted.
Ease of Use
Page 7 of 20
Linux, over recent years, has gone leaps and bounds when it comes to usability.
Distributions like Linux Mint and Ubuntu, have even gone as far as making
their installation and setup simpler for non-technical users to do carry on with day-to-day
activities with the utmost ease.
Windows, due to its market proliferation, is the default OS on many devices. Buy a new
laptop or PC, and there is quite the chance it comes with Windows 10 installed. Users are
used to clicking the toolbar and opening their favourite programs, for so many years now
that it makes it very difficult for them to make the switch.
Privacy
If you are a Linux user, you have an operating system that doesn’t spy on you. Having
Linux means the system is yours and yours alone. You can also add to the mix that most
Linux systems come with an option of built-in military-grade encryption. As a user, you
can be sure that device theft poses no real problem to your data.
On the contrary, Windows has gotten more advert driven over the last few years. Users are
definitely given the choice to opt out but then again, who can help the clever registry hacks
which are clearly a part of Redmond’s plan. Windows can watch what users do, offering
to sync to the Microsoft One-Drive service or to learn behavior to make Cortana (the
Microsoft personal assistant) better. To be honest, I do not favor these tools, as they’re
pretty intrusive. Though, some users like these features. Subjective opinion.
Source Code
Linux is an open source operating system whereas Windows OS is commercial. Linux has
access to source code and alters the code as per user need whereas Windows does not have
access to the source code.
Page 8 of 20
In Linux, the user has access to the source code of the kernel and alter the code according
to his need. It has its own advantages. Bugs in the OS will get fixed at a rapid pace but
developers may take advantage of any weakness in the OS if found.
License
The Linux kernel (and the GNU utilities and libraries which accompany it) in most
distributions are entirely free and open source. Companies offer paid support for their
distros, but the underlying software is still free to download and install.
Reliability
Windows, as we all have come to know, becomes sluggish by the day. You have to re-
install Windows after a while when you encounter crashes or slowdowns on your system.
If you are a Linux user, you will not have to re-install it just to experience a faster and a
smoother system. Linux helps your system run smoothly for a longer period. Much longer!
in fact.
Also, as a Windows user, you will have to develop a habit where you keep on rebooting
the system for just about everything.
Page 9 of 20
However, in the case of Linux, you can comfortably continue with your work, and your OS will
not bother you.
This is probably why you could observe that most of the Internet giants like Facebook and Google
run on Linux. Even supercomputers run mostly on Linux.
So, why isn’t Windows preferred over Linux in the industries? It is because Linux is far more
reliable than Windows OS. Period.
Firstly, we need to address one of the more confusing aspects to the Linux platform. While
Windows has maintained quite the standard version structure, with updates and versions split into
tiers, Linux is far more complex.
Originally designed as an OS accessible to all, the Linux Kernel today underpins all Linux
operating systems. However, as it remains open source, anyone can tweak or modify the OS for
their own purposes. What we have as a result are hundreds of bespoke Linux-based OS called
distributions, or ‘distros’. This makes it incredibly difficult to choose between them, making it far
more complicated than simply picking Windows 7, Windows 8 or Windows 10.
But this also comes with its set of advantages. Given the nature of open source software, these
distributions can vary wildly in functionality and sophistication, and many are constantly evolving.
The choice is almost overwhelming.
For those of you who are new to Linux, we’d recommend Ubuntu as a good starting point. It’s
extremely user-friendly (even compared to Windows) whilst still being versatile and feature-rich
Page 10 of 20
enough to satisfy experienced techies. It’s the closest thing Linux has to a default distribution –
although I’d urge everyone to explore the various distro options available and find their favourite.
Multimedia
Both Linux and Windows OS are pretty rich in multimedia applications. Although, setting up the
sound and video options in older versions of Linux can be relatively difficult for some users. A
key advantage of Linux is that most of the multimedia applications are freely available. In the case
of Windows, users may have to pay a hefty price to get the software although many Open
Source/free versions are often available.
Gaming
But for now, in 2018, many Linux users miss out on the top games with their choice of OS. The
graphics card vendors also tend to support Windows platforms rather than Linux. They provide
timely updates and new features that don’t always filter to other OS.
Open Source
If you are an advocate of open-source software or just plain tired of all the forced update and reboot
in Windows, then Linux may be a viable option.
Page 11 of 20
Programming
Linux supports almost all of the major programming languages (Python, C/C++, Java, Ruby, Perl,
etc.). Moreover, it portrays a vast range of applications useful for programming purposes.
The Linux terminal is far more superior to use over Window’s command line for developers. You
would find many libraries natively developed for Linux. Also, a lot of programmers point out that
they can do things easily using the package manager on Linux. The ability to script in different
shells is also one of the most compelling reasons why programmers prefer using Linux OS.
Linux brings in native support for SSH, too. This would help you manage your servers quickly.
You could include things like apt-get commands which further makes Linux a more popular
choice of the programmers.
Locating local and remote files, folders and network devices through the GUI
https://www.wikihow.com/View-Files-on-a-Networked-Computer
A command-line interface (CLI) is a text-based user interface (UI) used to run programs, manage
computer files and interact with the computer. Command-line interfaces are also called command-
line user interfaces, console user interfaces and character user interfaces. CLIs accept as
input commands that are entered by keyboard; the commands invoked at the command prompt are
then run by the computer.
Most vendors offer the graphical user interface (GUI) as the default for operating systems (OSes)
such as Windows, Linux and macOS. Most current Unix-based systems offer both a command-
line interface and a graphical user interface.
Page 12 of 20
The MS-DOS operating system and the command shell in the Windows operating system are
examples of command-line interfaces. In addition, programming language development platforms
such as Python can support command-line interfaces.
The command line dropped in popularity following the introduction of GUI-based personal
computer OSes like Microsoft Windows and Apple's "classic" Mac OS in the 1980s. The command
line remains an important tool for IT professionals, software developers, sys admins, network
administrators and many others who prefer a more precise and reproduceable interface to their
systems.
What is a shell?
In computing, a shell program provides access to an operating system's components. The shell
gives users (or other programs) a way to get "inside" the system to run programs or manage
configurations. The shell defines the boundary between inside and outside.
• CLI-based shells offer users a concise and efficient mode of interacting with the OS, without
requiring the overhead of a graphical user interface.
• GUI-based shells are considered easier for beginners to use, but they also include a CLI-based
shell for system administrators or power users who prefer to interact at a command prompt.
Bash is the most commonly used command-line shell for Unix-based OSes including Linux.
The software that handles the command-line interface is commonly referred to as a command
language interpreter, a command processor or command interpreter. Two well-known CLI shells
are PowerShell for Windows and Bash for Linux and macOS.
Shells are the outermost layer of the OS and are often separated from the underlying OS kernel.
A shell operates like an application and can be replaced as needed. An OS may have more than
one shell available, as in the following examples:
• Microsoft Windows includes the Command Prompt app as well as the PowerShell
application, both of which can be used to interact directly with the computer. The Windows
Subsystem for Linux also provides a CLI with access to the underlying system.
Page 13 of 20
• Linux and other Unix-based operating systems usually provide the Bourne-Again Shell
(bash) as the default shell. Other shells, including the C shell, Z shell and others, can be
configured as the default system shell.
Because the shell is only one layer above the OS, users can perform operations that are not
available in other interface types, such as moving files within system folders and deleting locked
files.
To get the greatest benefit from using a CLI shell, users should learn a scripting language. Most
command line shells can save sequences of commands in a script or batch file which may be
fully programmable. Shell scripting is the foundation of basic systems management automation.
• system commands that are encoded as part of the operating system interface;
• executable programs that, when successfully invoked, run text-based or
graphical applications; and
• batch programs (or batch files or shell scripts) which are text files listing a sequence of
commands. When successfully invoked, a batch program runs its commands which may
include both system commands and executable programs.
CLI is more than a simple command/response system, as most have additional features that make
one preferable to another. Some features include the following:
• Scripting capability enables users to write programs that can be run on the system from the
command line.
• Command pipes enable users to direct the output of one program to be the input for another
program ("piping" the flow of data).
• System variables can be set at the command line, or the values of those variables displayed.
Page 14 of 20
• Command history features enable the user to recall previous commands issued. Some save
command history for the session (like PowerShell), others can be configured to store session
history for longer (like bash).
Commands and syntax for CLIs tend to be very stable over time, in part to
enable backward compatibility for scripts.
Some commands run at the command line by themselves, such as the dir command:
C:\> dir
Commands can also be used with arguments (sometimes referred to as parameters) that modify
how the command should be run. Arguments follow the command and provide additional details
or specifics.
The cd "change directory" command in many CLIs is used to change the current working directory
when the desired new directory path is included as an argument -- but in some cases (as in MS-
DOS or the Windows command prompt) the command by itself returns the current working
directory.
cd \documents\user\working
Arguments enable command-line users to get very specific results that are sometimes not available
through a graphical interface.
Page 15 of 20
Modern CLIs provide pipes, or mechanisms for taking the output of one command and sending it
as input to another command. The vertical bar, or "|" symbol, is often used for this purpose.
The following "one-liner" uses pipes to string together several PowerShell commands to retrieve
detailed network configuration information from a Windows machine:
Even though this string is entered at the command line as if it were a single command, it includes
the following consecutive commands:
• Get-NetIPAddress retrieves all IP configuration information for the computer when entered
without any arguments.
• Sort InterfaceIndex accepts as input the output of the Get-NetIPAddress cmdlet and sorts it
by the InterfaceIndex value associated with each IP address included in the computer
configuration.
• FT InterfaceIndex, InterfaceAlias, AddressFamily, IPAddress uses the Format-Table
(FT) command to format the sorted output of the previous command and displays the
specified values for each IP address.
Backward compatibility is often a goal when new CLIs are introduced to replace existing CLIs,
as when Microsoft replaced MS-DOS with the Windows Command Prompt. Though some MS-
DOS commands are no longer supported, most will still work in PowerShell as originally
intended.
Page 16 of 20
Common MS-DOS commands include the following:
CHKDSK C:\> CHKDSK a: Checks the specified disk -- in this case, the floppy
disk in the A: drive -- and returns a status report
showing the disk size, number of files and
directories in use and number of bytes used.
COPY C:\> COPY Copies specified file or files. Can be used to copy
autoexec.bat files to duplicates with different file names or to
autoexec.BAK copy files into a different directory without
changing names.
DEL C:\> DEL Deletes a file or files. Can be used to delete files in
autoexec.BAK the current working directory or in some other
C:\> DEL directory. Can also be used with wildcard
C:\backups\*.BAK characters to delete groups of files.
DIR C:\> DIR Displays all contents -- files and directories -- in the
C:\> DIR specified directory. If no directory is specified, it
c:\backups\*.txt refers to the contents of the current directory. It can
also be used with wildcard characters to display
only specific files.
EDLIN C:\> edlin Starts edlin, a line editor that can be used to edit
autoexec.bat text files. In this example, it is being used to edit
the autoexec.bat file.
Page 17 of 20
Command Example Notes
TYPE C:\> type Displays content of a text file, without page breaks.
autoexec.bat
Microsoft Word is an example of a GUI-based application. A user can change options for page
layouts and styles by selecting the corresponding icon or pull-down menu with a mouse or
keyboard.
Page 18 of 20
An example of output from the PowerShell command line
One advantage of a GUI is the interface can visually display available functions. However,
because it relies on graphical display, a GUI may not have the same level of functionality
and granular control as a command-line interface. For example, it can require numerous
clicks and movement through several dialog boxes in a GUI to accomplish the same result
as a single command line.
In addition, GUIs do not readily support scripting or automation. For common tasks, a user
must repeat each click or navigate each dialog within the GUI manually.
Commands and arguments can also be combined and saved, then executed as a script each
time that specific action -- or comprehensive set of actions -- is required. The CLI is the
preferred tool for many enterprise-wide systems management tasks.
Page 19 of 20
• basic command-line interface knowledge can enable troubleshooting of network
connection issues or resolving other system tasks.
Page 20 of 20