Introduction to Computers/System software

Course Navigation

System software is software designed to operate and control the hardware and to provide a platform for running application software. There are 5 main types of system software:
 * 1) Boot code
 * 2) Operating system
 * 3) User interfaces
 * 4) Widgets
 * 5) Utilities

Boot Code
Boot code is used to create a working environment for the operating system. The term, "boot" is a shortening of the term, "bootstrapping." Boot code consists of the programs parts of the hardware execute when the computer is turned on so that it can be in a working sate. Early computers required a complicated series of commands entered by hand on a switch panel followed by an "execute" command to create the system environment. Modern computers make use of boot code saved on semi-permanent memory (ROM).

A very small program, the code examines the system hardware; initializes environment variables such as date, time and device start order; identifies and starts the internal peripheral devices the computer uses, such as hard drives and video processors, and enables the various communication ports and executes the operating system. Booting

Starting a computer from a powered-off state is called, "cold-booting." If the computer is already running and is being restarted, it already has the environment parameters and settings loaded and will skip the initialization routines and perform a "warm boot" by only restarting the operating system.

Operating System
An operating system is the master program that a computer uses to execute both user-level programs as well as the environment routines and drivers necessary for the computer to run. Thus, on a standard personal computer, an operating system handles signals from input and output devices, manages memory usage and controls peripherals. Therefore, the operating system is the most important program a computer must run. An operating system has two jobs: to coordinate the computers resources and to service applications. Operating Systems were introduced in the 1950's. Operating system

MS-DOS, Microsoft Windows, and macOS are some examples of personal computer operating systems. Server-level computers use operating systems such as UNIX and Microsoft Windows Server. LINUX and BSD are versatile enough to be used either in a personal computer or as an operating system in a server, depending on which components are installed.

With the large size of most present operating systems, a hard disk is required to store its the necessary files and programs. Should the operating system become inoperable, many offer a "boot disk" option where a simpler version of the operating system with only the necessary drivers and files are stored on removable devices, usually a CD/DVD-ROM, USB flash drive or floppy disk. Booting the computer with the boot disk allows the system to be accessed and repaired.

Portable devices, such as cellular phones and personal data assistants use specialized, "embedded" operating systems that enable them to do many tasks once only found in "platform" computers, such as email transactions, document operations and database management.

UNIX
Unix is an operating system. It was one of the first operating systems to be fully portable, meaning that it is written in a machine-independent programming language known as "C."

LINUX
Linux is the name of the kernel (the core) that make up many further Operating Systems, but briefly, a few systems that work on Linux are Android, Arch [Linux], Debian, Fedora, Gentoo and Slackware. Being built on Linux makes these operating systems Unix-like and mostly POSIX-compliant in regards to their low-level system software.

PC/Microsoft DOS
A command-line operating system, MS/PC DOS helped users in the microcomputer age by providing an operating system that would run on the limited resources of the 8086/8088-based personal computer. Wikipedia: MS-DOS

Microsoft Windows
Microsoft Windows is credited with enabling the non-technical user to operate a computer without having to learn too many complicated commands and settings, and has been instrumental to the increased popularity of the personal computer.

MS Windows versions 1.0 and 2.x

MS Windows version 3.x

MS Windows 9x

MS Windows NT

MS Windows XP

MS Windows Vista

MS Windows 7

MS Windows 8

MS Windows 10

Android
Android is an embedded operating system intended for use with mobile devices that runs on a modified version of the Linux kernel.

iOS
iOS is the embedded system for the iPhone.

Palm OS
The Palm OS was produced by the Japanese company PalmSource, and is the dominant operating system for hand-held devices. Over 30.1 million PalmOS units (including licensees), according to Sept 2003 Palm Inc. financial reports; with over 22 million total USR/3Com/Palm or Palm Solutions Group branded units shipped (over 4 million per year).  Palm has many security concerns due to it's mobility, such as if lost or stolen palms may have data that can retrieved by others. Also if Palm passwords are interconnected to your PC passwords, anyone has access to personal files on your PC. Palm (PDA)

Symbian OS
Symbian is the operating software which is mostly used by the mobile phones. Symbian is the biggest software producers for smart phones. There are the Symbian codes used by different companies as well, Mika Raento has huge examples of Symbian codes [] There are different companies that owns Symbian software : examples are Sony Ericsson,Ericsson and Nokia has the highest percentage ( 47.9%) Symbian

MS Windows CE
Though most versions of Microsoft Windows were developed for desktop applications, a simpler version was created for hand-held devices called, "Windows CE."

Windows Phone
Though discontinued, the Windows Phone is from the Metro Design Language, and was mostly aimed at the consumer. Like iPhone it's the embedded system for Windows Phone. Wikipedia: Windows Phone

Interfaces
How you work with the computer...

Interfaces are the functioning of two "things" with relation to the computer. For example, the way software and hardware interacts, or how either would interact with the user. Interface (computer science)

CUI/TUI
Character User Interface (CUI) or Text User Interface (TUI). Used originally for terminals to interface with a mainframe computer, but now used in virtual terminal software or server interfaces. You type specific commands depending on the shell system (the layer between the kernel and the user) and the command is interpreted on the computer and then run. It was not easy to remember all the commands and the commands could vary between system setups. The interface didn't allow for more exciting possibilities that a Graphical User Interface offers, such as art applications. However, text interfaces worked better in some cases, as they do not use as much computer processing time to show pretty icons and background images.

This is the precursor to GUI (graphical user interface).

Graphical user interface

GUI


GUI is an acronym for "graphical user interface". It allows people to interact with a computer and computer-controlled devices using graphical icons, visual indicators or special graphical elements called "widgets". These icons are used in conjunction with text, labels or text navigation. Practically every computer used today operates on a GUI. Graphical user interface

The history of the graphical user interfaces came from the Xerox 8010 Star Information System in 1981 from PARC. GUI's familiar to most people today include Microsoft Windows and macOS. Graphical user interface

GUI's are important because they are more intuitive, more accessible, and easier to use than command driven interfaces.

Source: Graphical user interface

GUI shell
Graphical user interface (GUI) shells build on top of CUI. The GUI shell communicates visually-based operations in the GUI to/from the computer in a language the computer understands. The GUI instructs the CUI, and the CUI sends messages to the hardware. - Shell_(computing) GUI shells are very replaceable and software often allows users to create their own GUI to suit their personal need. The most active user generated GUI can be seen in games where users replace the original image with another GUI overlay to suit their personal style.

Graphical user interface

DOS Shell


This shell was one of the first successful attempts to create a basic graphical user interface (GUI) type file manager in MS-DOS

Dos Shell enables the user to type prompts and commands within a user interface. Shell (computing)

No longer in use, the DOS shell, stands for Microsoft disc operating system. Microsoft set up this 'shell'(program software), to enhance features of their system. Some of these features include: double clicking to open a file on the computer and copying, moving, and renaming files. Some of the benefits of the dos shell is that it did not require long file names to run and it could be used with Microsoft windows. One of the drawbacks to the dos shell was that it could not multitask. For this reason, it was replaced when more efficient programs were created.

widgets
Widgets are an interface that a computer user uses to communicate with the computer and its applications, such as a window or text box. Programmers use widgets to build GUI (graphical user interfaces). GUI widget A widget engine is a host software system for running and displaying desktop widgets. Widgets are downloadable interactive virtual tools. They help to show users things such as the latest news, time, or weather, among a variety of other things.

Widget engine

Files
A file is one of two things: 1) a data file, or a "named collection of data," or 2) a program file, or a program that exists in the secondary storage of a computer.

Computer files make it easier for the user to find and save their data. File system Computer files are like paper documents that used to be kept in libraries and offices Computer file.

Exporting files turn files into readable format so that it can be use with another program. Importing files gets data from another source and converts it to a compatible format. EXAMPLE:
 * IMPORTING FILES- You could write a word program and import it to a column of number from your spreadsheet program.
 * EXPORTING FILES- You could could write a list of names or addresses in a database program and export it to a word program.

Example: Certain networks are created to allow users to share files, such as audio, video and pictorial images. Networks like Limewire use a peer-to-peer file sharing method.

Tasks


A computer may perform many different tasks at the same time. Tasks include storing, printing, and calculating. Multitasking is when a computer operates more than one task at a time with one central processor.

A task is a set of instructions (like a plan) that is brought out from memory to execute certain functions. Task (computers)

In order to allow your computer to multi-task, the processor should have high speed (frequency). This will allow you to run more applications at once without affecting your computer's performance. Nowadays, multicore processors which combine two(dual core) or four(quad core) processors are coming, which have more speed than ones with only one processor.

[|podcast]

Task is a real time application which is the study of hardware and software that are subject to real time constraint Task (computers)

Security
Security could mean confidentiality, integrity, or availability of electronic information that is processed by or stored on computer systems. "The only truly secure system is one that is powered off, cast in a block of concrete and sealed in a lead-lined room with armed guards - and even then I have my doubts. ”

Eugene H. Spafford, director of the Purdue Center for Education and Research in Information Assurance and Security  Computer security

EXAMPLE: FIREWALL A system that prevents unauthorized access to/from a private network. Can be implemented in both hardware and software, or both. This form of security can be used to prevent unauthorized Internet users from accessing private networks connected to the Internet/inappropriate networks. Internet Firewalls

Utilities
Also known as service programs, utilities perform a variety of functions like disk defragmenting or data compression. When a utility becomes popular, it is usually incorporated into future versions of the operating system.

Driver


A computer driver is a program that controls a device. There are device drivers for printers, displays, graphics cards, CD-ROM readers, diskette drives, and so on. For other devices, you may need to install a new driver when you connect the device to your computer. In DOS systems, drivers are files with a.SYS extension. In Windows environments, drivers often have a.DRV extension.

A driver acts like a translator between the device and programs that use the device. Each device has its own set of specialized commands that only its driver knows. In contrast, most programs access devices by using generic commands. The driver, therefore, accepts generic commands from a program and then translates them into specialized commands for the device.

Backup
Making copies of data in case the original data is lost or destroyed.

The two reasons for backing up your files are; a) disaster recovery - to restore the files to an operational state following a disaster, and b) to restore small numbers of files after they have been corrupted or accidentally deleted.

Do not confuse backups with archives or fault-tolerant systems. Archives are the first copy of data and back ups are a second copy of data. Also back up systems assume that fault will cause data loss and fault-tolerant systems will not assume fault.

A popular backup utility is Norton ghost, where a user can make an image copy of their files in case of a system crash.

A common method of backup for isolated systems without high-speed network or backup devices is to maintain the system and applications software installation disks locally, near the system, and backup only user data. In the event of a crash one then reinstalls system and application software from scratch and then restores the user data. When using this method one should not neglect to make off-site backups of the commercial software and user data so that in the event of a local disaster such as fire, flood, or earthquake that crunches the system, rapid recovery is still possible if desirable.

A backup allows the user to make a duplicate copy in case the hard-disk drive fails.

Virus
A virus is a program that can destroy and corrupt data on a computer. It can come physically through a floppy disk, CD, or USB, but now usually comes virtually through email or pop-up advertisements.

Viruses are programs that can copy themselves and create problems in one computer without the user ever knowing or authorizing it. Virus can only be spread when they are taken to an uninfected computer. Viruses are commonly confused with computer worms and Trojan horses. A worm has the capabilities to spread itself to other computers without needing to be transferred as part of a host. Trojan horses are files that appear to be harmless until they are executed.

Anti virus software is a computer program that attempts to identify and eliminate computer viruses. There are two different techniques to accomplish this, examining (scanning) data, and identifying suspicious behavior

Defrag
The hard drive is divided into sectors that can hold files. If a file is bigger than a section (which it usually is) it is stored on the next sector. If the next sector is already being used, then it has to store it on a sector farther away, but the address of the new sector is stored so that the computer knows where all the parts of the file are. But if parts of the file are ALL OVER THE PLACE (aka "fragmented") then it takes a long time to find and make changes to it.

That's where defragmenting can help. It dutifully finds sectors that are next to each other big enough to hold a file and copies the file there, then deleting it form the fragmented sectors where it used to be. Defrag

Defragmentation reduces the amount of space or "fragmentation" in a file space. By using compaction, it creates larger regions of free space. The image to the side of the text represents the allocation of the free space as well as the combining of the files in order to defragment the hard drive.

Fragmentation occurs when the operating system cannot or will not allocate enough contiguous space to store a complete file as a unit, but instead puts parts of it in gaps between other files (usually those gaps exist because they formerly held a file that the operating system has subsequently deleted or because the operating system allocated excess space for the file in the first place). Larger files and greater numbers of files also contribute to fragmentation and consequent performance loss. Defragmentation attempts to alleviate these problems.

Scandisk
This is a utility program originally used by DOS and Microsoft Windows that checks and repairs file systems and bad clusters within the system. Previous versions were simple text-based program called CHKDSK. Subsequent versions of the scandisk were still referred to as CHKDSK, but different from the earlier version. The recent versions are now integrated in Disk Properties as "error-checking."

One of the main functions with scandisk is that it can identify and repair physically damaged hard drives by quarantining the damaged area, to avoid files being written in that area, thus avoiding damaged and lost data.

Application
Applications are referred to as a type of computer software where the computer's capabilities directly reflect that of the task. Application software

Custom


Custom software is under the category of application software. The word custom means that the software is specially made for the individual and/or company needs. This software is created by the programmers and software engineers. Custom software can be very expensive since it is only developed on demand. A very good example of a custom soft ware is the application of it in space crafts, ATM'S, and super market check out machines. Custom software, which can also be called bespoke software, is only created for individual companies to be used for research and other things. It is also a risk for a company to develop custom software since it is very expensive or demands huge sums of money to develop.

Custom software

Commercial
Commercial Software, also known as Proprietary Software or Packaged Software, is software that can be bought and sold. Commercial Software is copyrighted, so you must pay for it in some respect. Examples of this are Microsoft Excel or Adobe Photoshop.

Commercial software is generally bought in retails stores in a physical form. However, in some cases you can download the program you desire over the internet for a lesser fee. Commercial software programs uses things such as passwords and user registrations to make sure only paid customers are using the program. Commercial software such as Norton AntiVirus uses thirty day free trials to familiarize the user with the product before they purchase it.



Shareware
Shareware is basically "try before you buy" software. Unlike most software where you have to buy the software before you can actually use it, the concept of Shareware lets you try a program for a short period of time before you buy it. This gives the consumer an opportunity to test out the software and see if it suits their needs or not. This not only helps the consumer get a feel for the product but is also beneficial to the company providing the Shareware Software to market their product. Shareware has the ultimate money-back guarantee - if you don't use the product, you don't pay for it!

Examples of shareware software would be a trial version of Fracture. It is a screensaver software for macOS. In order to use the full version of the software, a ten dollar ($10) registration fee must be paid.



 

Open Source
Open-Source software is software that you can download the source code of and change privately to suit your own needs. There are restraints on the redistribution of the new software which is made from open source software.

Free Source
Free Software that you can download the source code of and modify and redistribute without any restraints making your modifications public as opposed to open source.

What Free/Open Source Does?
By making source code available freely it has allowed the rapid development of software as requesting for software is not required and is made available on some online repository for download. One example below is how one group of developers have worked more on free source software than it's own developers.

Viro has contributed 1,571 changes to the kernel, which sits at the core of the Linux operating system, over the past three years, according to a new report from the Linux Foundation. That's more than any other individual developer, the report states. In contrast, Torvalds, the kernel's creator and steward, contributed 495 changes. Viro couldn't be reached for comment about the report.

During the past three years, the top 10 individual developers have contributed nearly 15 percent of the changes to the kernel, while the top 30 developers have submitted 30 percent, the report states.