Pages

Thursday, July 22, 2010

Software System use in Computer





System software

System software is computer software designed to operate the computer hardware and to provide and maintain a platform for running application software.[1][2]

The most important types of system software are:

* The computer BIOS and device firmware, which provide basic functionality to operate and control the hardware connected to or built into the computer.
* The operating system (prominent examples being Microsoft Windows, Mac OS X and Linux), which allows the parts of a computer to work together by performing tasks like transferring data between memory and disks or rendering output onto a display device. It also provides a platform to run high-level system software and application software.
* Utility software, which helps to analyze, configure, optimize and maintain the computer.

In some publications, the term system software is also used to designate software development tools (like a compiler, linker or debugger).[3]

System software is usually not what a user would buy a computer for - instead, it can be seen as the basics of a computer which come built-in or pre-installed. In contrast to system software, software that allows users to do things like create text documents, play games, listen to music, or surf the web is called application software.[4]
[edit] Types of system software programs

System software helps use the operating system and computer system. It includes diagnostic tools, compilers, servers, windowing systems, utilities, language translator, data communication programs, data management programs and more. The purpose of system software is to insulate the applications programmer as much as possible from the details of the particular computer complex being used, especially memory and other hardware features, and such accessory devices as communications, printers, readers, displays, keyboards, etc.

Specific kinds of system software include:
* Loaders
* Utility software
* Shells
* BIOS
* Hypervisors
* Boot loader
*Operating system
*Device Driver


BIOS

In IBM PC Compatible computers, the basic input/output system (BIOS)[1] , also known as the System BIOS, is a de facto standard defining a firmware interface.[2]

The BIOS of a PC software is built into the PC, and is the first code run by a PC when powered on ('boot firmware'). The primary function of the BIOS is to load and start an operating system. When the PC starts up, the first job for the BIOS is to initialize and identify system devices such as the video display card, keyboard and mouse, hard disk, CD/DVD drive and other hardware. The BIOS then locates software held on a peripheral device (designated as a 'boot device'), such as a hard disk or a CD, and loads and executes that software, giving it control of the PC.[3] This process is known as booting, or booting up, which is short for bootstrapping.

BIOS software is stored on a non-volatile, ROM chip built into the system, on the mother board and the BIOS software is specifically designed to work with the particular type of system in question including having a knowledge of the workings of various devices that make up the complementary chipset of the system. In modern computer systems, the BIOS chip's contents can be rewritten so allowing BIOS software to be upgraded.

A BIOS will also have a user interface (or UI for short). Typically this is a menu system accessed by pressing a certain key on the keyboard when the PC starts. In the BIOS UI, a user can configure hardware, set the system clock, enable or disable system components, and most importantly, select which devices are eligible to be a potential boot device and set various password prompts, most importantly a password for securing access to the BIOS UI functions itself and preventing malicious users from booting the system from unauthorized peripheral devices.

The BIOS provides a small library of basic input/output functions that to operate and control the peripherals such as the keyboard, text display functions and so forth, and these software library functions are callable by external software. In the IBM PC and AT, certain peripheral cards such as hard-drive controllers and video display adapters carried their own BIOS extension ROM, which provided additional functionality. Operating systems and executive software, designed to supersede this basic firmware functionality, will provide replacement software interfaces to applications.
Phoenix AwardBIOS CMOS (non-volatile memory) Setup utility on a standard PC
Stored on PROM
EPROM
Flash memory

SHELL

A shell is a piece of software that provides an interface for users to an operating system which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web browsers and email clients that are "shells" for HTML rendering engines. The name shell originates from shells being an outer layer of interface between the user and the internals of the operating system

Operating system

An operating system (OS) is a set of system software programs in a computer that regulate the ways application software programs use the computer hardware and the ways that users control the computer. For hardware functions such as input/output and memory space allocation, operating system programs act as an intermediary between application programs and the computer hardware,[1][2] although application programs are usually executed directly by the hardware. Operating Systems is also a field of study within Applied Computer Science. Operating systems are found on almost any device that contains a computer with multiple programs—from cellular phones and video game consoles to supercomputers and web servers. Operating systems are two-sided platforms, bringing consumers (the first side) and program developers (the second side) together in a single market. Some popular modern operating systems for personal computers include Microsoft Windows, Mac OS X, and Linux[



Utility software


Utility software is a kind of system software designed to help analyze, configure, optimize and maintain the computer. A single piece of utility software is usually called a utility or tool.

Utility software should be contrasted with application software, which allows users to do things like creating text documents, playing games, listening to music or surfing the web. Rather than providing these kinds of user-oriented or output-oriented functionality, utility software usually focuses on how the computer infrastructure (including the computer hardware, operating system, application software and data storage) operates. Due to this focus, utilities are often rather technical and targeted at people with an advanced level of computer knowledge.

Most utilities are highly specialized and designed to perform only a single task or a small range of tasks. However, there are also some utility suites that combine several features in one software.

Most major operating systems come with several pre-installed utilities.

Utility software categories
* Disk storage utilities
* Disk defragmenters can detect computer files whose contents are broken across several locations on the hard disk, and move the fragments to one location to increase efficiency.
* Disk checkers can scan the contents of a hard disk to find files or areas that are corrupted in some way, or were not correctly saved, and eliminate them for a more efficiently operating hard drive.
* Disk cleaners can find files that are unnecessary to computer operation, or take up considerable amounts of space. Disk cleaner helps the user to decide what to delete when their hard disk is full.
* Disk space analyzers for the visualization of disk space usage by getting the size for each folder (including sub folders) & files in folder or drive. showing the distribution of the used space.
* Disk partitions can divide an individual drive into multiple logical drives, each with its own file system which can be mounted by the operating system and treated as an individual drive.
* Backup utilities can make a copy of all information stored on a disk, and restore either the entire disk (e.g. in an event of disk failure) or selected files (e.g. in an event of accidental deletion).
* Disk compression utilities can transparently compress/uncompress the contents of a disk, increasing the capacity of the disk.
* File managers provide a convenient method of performing routine data management tasks, such as deleting, renaming, cataloging, uncataloging, moving, copying, merging, generating and modifying data sets.
* Archive utilities output a stream or a single file when provided with a directory or a set of files. Archive utilities, unlike archive suites, usually do not include compression or encryption capabilities. Some archive utilities may even have a separate un-archive utility for the reverse operation.
* System profilers provide detailed information about the software installed and hardware attached to the computer.
* Anti-virus utilities scan for computer viruses.
* Hex editors directly modify the text or data of a file. These files could be data or an actual program.
* Data compression utilities output a shorter stream or a smaller file when provided with a stream or file.
* Cryptographic utilities encrypt and decrypt streams and files.
* Launcher applications provide a convenient access point for application software.
* Registry cleaners clean and optimize the Windows registry by removing old registry keys that are no longer in use.
* Network utilities analyze the computer's network connectivity, configure network settings, check data transfer or log events.



    • Command line interface (CLI) and Graphical user interface (GUI) Allows the user to contact and make changes to the operating system.

Hypervisor

In computing, a hypervisor, also called virtual machine monitor (VMM), allows multiple operating systems to run concurrently on a host computer— a feature called hardware virtualization. The hypervisor presents the guest operating systems with a virtual platform and monitors the execution of the guest operating systems. In that way, multiple operating systems, including multiple instances of the same operating system, can share hardware resources. An example of a hypervisor is PR/SM, which is a type 1 hypervisor that runs on bare hardware and allocates system resources across LPARs to share physical resources such as CPUs, direct access storage devices, and memory

Booting

In computing, booting (also known as "booting up") is a bootstrapping process that starts operating systems when the user turns on a computer system. A boot sequence is the initial set of operations that the computer performs when power is switched on. The bootloader typically loads the main operating system for the computer.



Device driver

In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device.
A driver typically communicates with the device through the computer bus or communications subsystem to which the hardware connects. When a calling program invokes a routine in the driver, the driver issues commands to the device. Once the device sends data back to the driver, the driver may invoke routines in the original calling program. Drivers are hardware-dependent and operating-system-specific. They usually provide the interrupt handling required for any necessary asynchronous time-dependent hardware interface.

Conclusion 
  Software-based protection systems are coming into common use, driven by their inherent advantages in both performance and portability. Software fault isolation, proof-carrying code, or language-based mechanisms can be used to guarantee memory-safety. Secure system services cannot be built without these mechanisms, but may require additional system support to work properly.

We have described three designs which support interposition of security checks between untrusted code and important system resources. Each design has been implemented in Java and both extended stack introspection and name space management have been integrated in commercial Web browsers.
All three designs have their strengths and weaknesses. For example, capability systems are implemented very naturally in Java. However, they are only suitable for applications where programs are not expecting to use the standard Java APIs, because capabilities require a stylistic departure in API design.
Name space management offers good compatibility with existing Java applets but Java's libraries and newer Java mechanisms such as the reflection API may limit its use.
Extended stack introspection also offers good compatibility with existing Java applets and has reasonable security properties, but its complexity is troubling and it relies on several artifacts of Sun's Java Virtual Machine implementation.
We believe the best solution is to combine elements of these techniques. Name space management allows transparent interposition of security layers between system and applet code with no run-time performance penalty. Stack introspection can allow legacy system code to run with less than full privileges without being rewritten in a capability style. Yet, capabilities provide a well understood extension to remote procedure calls. Understanding how to create such a hybrid system is a main area for future research.




No comments:

Post a Comment