Computer Fundamental (part 3)

The term software describes the programs that run on your system.
This includes your computer operating system and other computer
programs which run. Software is written in a computer language
(such as Basic, C, Java, or others) by programmers.
computer language is in a text format and can be read by a
person although if you do not understand the structure and
rules of the language you may not understand it very well.
Once a program is written, an operation is performed on it
which is called compiling. Compiling is the process of changing
the textual written language into a binary language which can
be understood by the computer.

Types of Software
The term "software" was first used in this sense by John W.
in around 1957-58. In software engineering, computer
software is all computer programs.

Practical computer systems divide software into three major
1. System Software

2. Language Translator/Interpreter/Compilers Software.

3. Application Software.

Writing these text files and converting them to computer readable
files is the way operating systems and most application programs
are created.

Installing & Uninstalling Software
In order to the ease & features provided by software we first need to load that software into computer and register this new software with operating system. This process is known as Software Installation.

On the other hand unloading a software that we doesn’t need any more is known as Software Uninstallation.

Operating System
What is an Operating System?
The operating system is the core software component of your computer. It performs many functions and is, in very basic terms, an interface between your computer and the outside world. In the section about hardware, a computer is described as consisting of several component parts including your monitor, keyboard, mouse, and other parts. The operating system provides an interface to these parts using what is referred to as "drivers". This is why sometimes when you install a new printer or other piece of hardware, your system will ask you to install more software called a driver.

What Operating System does?
Basically an Operating System manages every activity of computer. It manages UI[User Interface], memory, security etc.

Task of Operating System
Process management
Every program running on a computer, be it background services or applications, is a process. Modern operating systems[Windows, Linux etc] enable concurrent execution of many processes at once via multitasking even with one CPU. Process Management is an operating system's way of dealing with running multiple processes. Since most computers contain one processor with one core, multitasking is done by simply switching processes quickly. Depending on the operating system, as more processes run, either each time slice will become smaller or there will be a longer delay before each process is given a chance to run. Process management involves computing and distributing CPU time as well as other resources. Most operating systems allow a process to be assigned a priority which affects its allocation of CPU time. Interactive operating systems also employ some level of feedback in which the task with which the user is working receives higher priority. Interrupt driven processes will normally run at a very high priority. In many systems there is a background process, such as the System Idle Process in Windows, which will run when no other process is waiting for the CPU.

Memory management
According to Parkinson's law, "Data expands to fill the space available for storage". Programmers prefer a memory of infinite size and infinite speed. Current computer architectures arrange the computer's memory in a hierarchical manner, starting from the fastest registers, CPU cache, RAM and disk storage. The memory manager in an OS coordinates the memories by tracking which one is available, which is to be allocated or deallocated and how to swap between the main memory and secondary memories. This activity, which is usually referred to as virtual memory management, increases the amount of memory available for each process by making the disk storage seem like main memory. There is a speed penalty associated with swapping RAM to disk or other slower storage, however. If running processes require significantly more RAM than is available the system may start thrashing. This can happen either because one process requires a large amount of RAM or because two or more processes compete for a larger amount of memory than is available. This then leads to constant swapping of each process to slower storage.

Another important part of memory management is managing virtual addresses. If multiple processes are in memory at once, they must be prevented from interfering with each other's memory (unless there is an explicit request to share a limited amount of memory, in controlled ways). This is achieved by having separate address spaces. Each process sees the whole virtual address space, typically from address 0 up to the maximum size of virtual memory, as uniquely assigned to it. The operating system maintains tables, so-called page tables that match virtual addresses to physical addresses.

The operating system can also write inactive memory pages to secondary storage. This process is called "paging".

The operating system tracks all memory used by each process so that when a process terminates, all memory used by that process can be made available for other processes.

Disk and File systems Management
Operating systems have a variety of native file systems. Linux has a greater range of native file systems. Windows, on the other hand, has limited file system support which only includes: FAT12, FAT16, FAT32, and NTFS. The NTFS file system is the most efficient and reliable of the four Windows systems. All the FAT systems are older than NTFS and have limitations on the partition and file size that can cause a variety of problems.

Most modern file systems are made up of similar directories and subdirectories. Along with the operating systems file system similarities, there are subtle differences. Microsoft separates its directories with a backslash and its file names are case insensitive whereas Unix/Linux-derived operating systems use the forward slash and their file names generally are case sensitive.

Most current operating systems are capable of using the TCP/IP networking protocols. This means that one system can appear on a network of the other and share resources such as files, printers, and scanners using either wired or wireless connections.

Security Management
Many operating systems include some level of security. Security is based on the two ideas that:

• The operating system provides access to a number of resources, directly or indirectly, such as files on a local disk, privileged system calls, personal information about users, and the services offered by the programs running on the system;

• The operating system is capable of distinguishing between some requesters of these resources who are authorized (allowed) to access the resource, and others who are not authorized (forbidden). While some systems may simply distinguish between "privileged" and "non-privileged", systems commonly have a form of requester identity, such as a user name. Requesters, in turn, divide into two categories:

1. Internal security: an already running program. On some systems, a program once it is running has no limitations, but commonly the program has an identity which it keeps and is used to check all of its requests for resources.

2. External security: a new request from outside the computer, such as a login at a connected console or some kind of network connection. To establish identity there may be a process of authentication. Often a username must be quoted, and each username may have a password. Other methods of authentication, such as magnetic cards or biometric data might be used instead. In some cases, especially connections from the network, resources may be accessed with no authentication at all.

In addition, to the allow/disallow model of security, a system with a high level of security will also offer auditing options. These would allow tracking of requests for access to resources (such as, "who has been reading this file?").

UI [User Interface] management
Today, most modern operating systems contain Graphical User Interfaces. More modern operating systems are modular, separating the graphics subsystem from the kernel (as is now done in Linux, and Mac OS X, and to a limited extent Windows).

GUIs tend to change with time. For example, Windows has modified its GUI every time a new major version of Windows is released and the Mac OS GUI changed dramatically with the introduction of Mac OS X.

Driver Management
A device driver is a specific type of computer software developed to allow interaction with hardware devices. Typically this constitutes an interface for communicating with the device, through the specific computer bus or communications subsystem that the hardware is connected to, providing commands to and/or receiving data from the device, and on the other end, the requisite interfaces to the operating system and software applications. It is a specialized hardware-dependent computer program which is also operating system specific that enables another program, typically an operating system or applications software package or computer program running under the operating system kernel, to interact transparently with a hardware device, and usually provides the requisite interrupt handling necessary for any necessary asynchronous time-dependent hardware interfacing needs.

Operating System Types
There are many types of operating systems. The most common is the Microsoft suite of operating systems. They include from most recent to the oldest:
Windows XP Professional Edition - A version used by many businesses on workstations. It has the ability to become a member of a corporate domain.

Windows XP Home Edition - A lower cost version of Windows XP which is for home use only and should not be used at a business.

Windows 2000 - A better version of the Windows NT operating system which works well both at home and as a workstation at a business. It includes technologies which allow hardware to be automatically detected and other enhancements over Windows NT.

Windows ME - A upgraded version from windows 98 but it has been historically plagued with programming errors which may be frustrating for home users.

Windows 98 - This was produced in two main versions. The first Windows 98 version was plagued with programming errors but the Windows 98 Second Edition which came out later was much better with many errors resolved.

Windows NT - A version of Windows made specifically for businesses offering better control over workstation capabilities to help network administrators.

Windows 95 - The first version of Windows after the older Windows 3.x versions offering a better interface and better library functions for programs.

There are other worthwhile types of operating systems not made by Microsoft. The greatest problem with these operating systems lies in the fact that not as many application programs are written for them. However if you can get the type of application programs you are looking for, one of the systems listed below may be a good choice.
UNIX - A system that has been around for many years and it is very stable. It is primary used to be a server rather than a workstation and should not be used by anyone who does not understand the system. It can be difficult to learn. UNIX must normally run a computer made by the same company that produces the software.

Linux - Linux is similar to UNIX in operation but it is free. It also should not be used by anyone who does not understand the system and can be difficult to learn.

Apple Macintosh - Most recent versions are based on UNIX but it has a good graphical interface so it is both stable (does not crash often or have as many software problems as other systems may have) and easy to learn. One drawback to this system is that it can only be run on Apple produced hardware.

Device Driver
A Driver is a specialized hardware-dependent computer program, which is also operating system specific that enables another program, typically an operating system or applications software package, to interact transparently with the given device. It usually provides the requisite interrupt handling required for any necessary asynchronous time-dependent hardware interfacing needs.

Programming Languages
Computers only understand binary codes so the first programs were written using this notation. This form of programming was soon seen to be extremely complex and error prone so assembler languages were developed. Soon it was realised that even assembler languages could be improved on. Today, a good programming language must be:

• Totally unambiguous (unlike natural languages, for example, English -- `old women and men suck eggs', does this mean that men or old men suck eggs?).

expressive -- it must be fairly easy to program common tasks,

practical -- it must be an easy language for the compiler to translate,

Simple to use.

All programming languages have a very precise syntax (or grammar). This will ensure that a syntactically-correct program only has a single meaning.

High-level Programming Languages
Assembler code is a Low-Level Language. It is so-called because the structure of the language reflects the instruction set (and architecture) of the CPU. A programmer can get very close to the physical hardware. Low-level languages allow very efficient use of the machine but are difficult to use.

Fortran 90, FORTRAN 77, ADA, C and Java are examples of High-Level Languages. They provide a much higher degree of abstraction from the physical hardware. They also allow for portable programs to be written, i.e., programs that will run on a variety of different systems and which will produce the same results regardless of the platform. As well as having the above benefits, high-level languages are more expressive and secure and are much quicker to use than low-level languages. In general, however, a well written assembler program will run faster than a high-level program that performs the same task.

At the end of the day, an executable program that runs on a CPU must still be represented as a series of binary digits. This is achieved by compiling (translating) a high-level program with a special piece of software called a compiler. Compilers are incredibly complicated programs that accept other programs as input and generate a binary executable object file as output.

Computer Networks
Computer networking is the scientific and engineering discipline concerned with communication between computer systems.

The word network can be used to describe a very large and complicated set of equipment. In its most accurate and simplest definition a network refers to the cables and electronic components that amplify the signals going through the cables. The amplifying equipment is necessary to ensure accurate communication and make the signal stronger if it needs to go long distances.

Broader Definition
When many people talk about a network, they are talking about a network using a very broad concept. For instance if someone cannot get to their email, they may say "the network is down". Likewise they may say this if they cannot surf the internet or get to their files. They may not stop to think that in each specific instance there is a single piece of equipment that may provide the capability which they are trying to use.

Most people who work on a corporate or organizational network think about the network in component parts. The three main parts are:
• The cabling and amplifiers mentioned in the first paragraph.

• The workstations which most members of the organization use to access resources.

Higher powered computers called servers - These are the machines that provide what network administrators call services. Services include the functions that most people try to use such as email, reading and writing files, printing, and getting to the internet. Whenever a user is trying to do something on the network, there is a service or machine providing the capability to do so. This even includes times when someone is trying to get to network resources from their home.

Services include:
• Email service

File service - Allows users to use and share file space on a computer with a lot of file space.

Print service - Allows printing to printers connected on the network.

Web surfing - Allowing someone to open web pages and see web sites on the internet.

Filtering out undesired sites on the internet.

• Allowing someone to access the network from the outside (from home).

• Updating virus definitions on workstations

• Allowing someone to log onto the network.

• Even giving a workstation an address on the network is a service. If your computer does not have an address, it cannot access the internet or any other resource on the network.

A Typical Network
A typical corporate or organizational network is shown below:

The private network is of course the most secure part of the network. There are several servers on this network including:
• A login server (called a domain controller) which controls everyone permissions and access to the network resources such as files. Without this server, they cannot login to the network.

• An address server (called a DHCP server) which provides addresses to computers on the network so they can communicate as discussed earlier.

• A file server which provides common files and a private folder for users

• A remote access server which allows users to connect to the network by telephone from the outside.

What is the Internet?
The word internet is used to describe a network of networks which incorporate a very large and complicated set of equipment. To understand the internet, there are three areas of discussion which are very helpful. These include the various services provided across the internet, the functions that enable the internet to work, and the various organizations that are part of the internet.

Internet Functions
The internet provides for the following two functions which support communications. Without the communications support mentioned below, the internet could not function. These two functions are provided by internet service providers listed below under the "Internet Organizations" header.

• Physical lines that data is sent across.

Routing of data - There are special machines on the internet called routers, that determine where data needs to go to get from the sender of the data to the receiver of the data.

Internet Organizations
ISPs (Internet Service Providers) - They provide the connection to the internet for users and also provide routers that direct internet traffic.

Corporations or Web hosting providers with mail servers and web servers - They provide the information posted on the internet and virtual data connections to other mail servers.

There are also other organizations that regulate the internet, providing communication standards and designing new communication standards for improvements. These communication standards are also known as protocols.

No comments:

Post a Comment