DHGATE

SEARCH

Google

Friday, May 9, 2008

Networking

Currently most operating systems support a variety of networking protocols, hardware, and applications for using them. This means that computers running dissimilar operating systems can participate in a common network for sharing resources such as computing, files, printers, and scanners using either wired or wireless connections. Networks can essentially allow a computer's operating system to access the resources of a remote computer to support the same functions as it could if those resources were connected directly to the local computer. This includes everything from simple communication, to using networked file systems or even sharing another computer's graphics or sound hardware. Some network services allow the resources of a computer to be accessed transparently, such as SSH which allows networked users direct access to a computer's command line interface.
Client/server networking involves program on a computer somewhere which connects via a network to another computer, called a server. Servers, usually running UNIX or Linux, offer (or host) various services to other network computers and users. These services are usually provided through ports or numbered access points beyond the server's network address. Each port number is usually associated with a maximum of one running program, which is responsible for handling requests to that port. A daemon, being a user program, can in turn access the local hardware resources of that computer by passing requests to the operating system kernel.
Many operating systems support one or more vendor-specific or open networking protocols as well, for example, SNA on IBM systems, DECnet on systems from Digital Equipment Corporation, and Microsoft-specific protocols on Windows. Specific protocols for specific tasks may also be supported such as NFS for file access. Protocols like ESound, or esd can be easily extended over the network to provide sound from local applications, on a remote system's sound hardware. Virtual3D allows a remote computer to control local 3D graphics hardware, enabling things like 3D games to be played over a network.

[edit] Security
Main article: computer security
A computer being secure depends on a number of technologies working properly. A modern operating system provides access to a number of resources, which are available to software running on the system, and to external devices like networks via the kernel.
The operating system must be capable of distinguishing between requesters which should be allowed to be processed, and others which should not be processed. While some systems may simply distinguish between "privileged" and "non-privileged", systems commonly have a form of requester identity, such as a user name. 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?").
Internal security, or security from an already running program is only possible if all possibly harmful requests must be carried out through interrupts to the operating system kernel. If programs can directly access hardware and resources, they cannot be secured. Microsoft Windows has been heavily criticized for many years for window's almost total inability to protect one running program from another, however since windows isn't generally used as a server it has been considered less of a problem. In recent years, Microsoft has added limited user accounts, and more secure logins. However most people still operate their computers using Administrator accounts, which negates any possible internal security improvements brought about by these changes.
Linux and UNIX both have two tier security, which limits any system-wide changes to the root user, a special user account on all UNIX-like systems. While the root user has unlimited permission to affect system changes, programs as a regular user are limited only in where they can save files, and what hardware they can access. This limits the damage that a regular user can do to the computer while still providing them with plenty of freedom to do everything but affect system-wide changes. The user's settings are stored in an area of the computer's file system called the user's home directory, which is also provided as a location where the user may store their work, similar to My Documents on a windows system. Should a user have to install software or make system-wide changes, they must enter the root password for the computer, which allows them to launch certain programs as the root user.
While users generally find regular user accounts on Linux installations provide plenty of freedom for day to day activities, the need to enter a password to install software has generated criticisms from many Windows users who are used to being able to change, delete, create, and rename files anywhere on the system at whim, while also making it extremely easy to accidentally delete important files, and for viruses to infect the operating system. Windows Vista has attempted to make improvements in this area, but has also generated criticism for its highly inquisitive approach, asking the user verify their desire to do many daily activities that would rarely or never compromise security.
External security involves a request from outside the computer, such as a login at a connected console or some kind of network connection. External requests are often passed through device drivers to the operating system's kernel, where they can be passed onto applications, or carried out directly. Security of operating systems has long been a concern because of highly sensitive data held on computers, both of a commercial and military nature. The United States Government Department of Defense (DoD) created the Trusted Computer System Evaluation Criteria (TCSEC) which is a standard that sets basic requirements for assessing the effectiveness of security. This became of vital importance to operating system makers, because the TCSEC was used to evaluate, classify and select computer systems being considered for the processing, storage and retrieval of sensitive or classified information.
Network services include offerings such as file sharing, print services, email, web sites, and file transfer protocols (FTP), most of which can have compromised security. At the front line of security are hardware devices known as firewalls or intrusion detection/prevention systems. At the operating system level, there are a number of software firewalls available, as well as intrusion detection/prevention systems. Most modern operating systems include a software firewall, which is enabled by default. A software firewall can be configured to allow or deny network traffic to or from a service or application running on the operating system. Therefore, one can install and be running an insecure service, such as Telnet or FTP, and not have to be threatened by a security breach because the firewall would deny all traffic trying to connect to the service on that port.
An alternative strategy, and the only sandbox strategy available in systems that do not meet the Popek and Goldberg virtualization requirements, is the operating system not running user programs as native code, but instead either emulates a processor or provides a host for a p-code based system such as Java.
Internal security is especially relevant for multi-user systems; it allows each user of the system to have private files that the other users cannot tamper with or read. Internal security is also vital if auditing is to be of any use, since a program can potentially bypass the operating system, inclusive of bypassing auditing.

Disk Access and File Systems

Access to files stored on disks is a central feature of all operating systems. Computers store data on disks using files, which are structured in specific ways in order to allow for faster access, higher reliability, and to make better use out of the drive's available space. The specific way files are stored on a disk is called a file system, and enables files to have names and attributes. It also allows them to be stored in a hierarchy of directories or folders arranged in a directory tree.
Early operating systems generally supported a single type of disk drive and only one kind of file system. Early file systems were limited in their capacity, speed, and in the kinds of file names and directory structures they could use. These limitations often reflected limitations in the operating systems they were designed for, making it very difficult for an operating system to support more than one file system.
While many simpler operating systems support a limited range of options for accessing storage systems, more modern operating systems like UNIX and Linux support a technology known as a virtual file system or VFS. A modern operating system like UNIX supports a wide array of storage devices, regardless of their design or file systems to be accessed through a common application programming interface (API). This makes it unnecessary for programs to have any knowledge about the device they are accessing. A VFS allows the operating system to provide programs with access to an unlimited number of devices with an infinite variety of file systems installed on them through the use of specific device drivers and file system drivers.
A connected storage device such as a hard drive will be accessed through a device driver. The device driver understands the specific language of the drive and is able to translate that language into a standard language used by the operating system to access all disk drives. On UNIX this is the language of block devices.
When the kernel has an appropriate device driver in place, it can then access the contents of the disk drive in raw format, which may contain one or more file systems. A file system driver is used to translate the commands used to access each specific file system into a standard set of commands that the operating system can use to talk to all file systems. Programs can then deal with these file systems on the basis of filenames, and directories/folders, contained within a hierarchical structure. They can create, delete, open, and close files, as well as gathering various information about them, including access permissions, size, free space, and creation and modification dates.
Various differences between file systems make supporting all file systems difficult. Allowed characters in file names, case sensitivity, and the presence of various kinds of file attributes makes the implementation of a single interface for every file system a daunting task. Microsoft Windows presently supports only NTFS and FAT file systems, along with network file systems shared from other computers.
The visual representations of paths and filenames also differ under various platforms, although these are a more matter of preference and have little to do with the operating system's file system support. Unix demarcates its path components with a slash (/), a convention followed by operating systems that emulated it or at least its concept of hierarchical directories, such as Linux, Amiga OS and Mac OS X. MS-DOS also emulated this feature, but had already also adopted the CP/M convention of using slashes for additional options to commands, so instead MS-DOS used the backslash (\) as its component separator. Microsoft Windows continues with this convention; Japanese editions of Windows use ¥, and Korean editions use ₩.[1] Prior to Mac OS X, versions of Mac OS use a colon (:) for a path separator. RISC OS uses a period (.).
UNIX and Unix-like operating systems allow for any character in file names other than the slash (/) and NULL characters, but allowing line feed (LF) and other control characters, which makes supporting those file systems under Microsoft Windows very difficult. UNIX file names are case sensitive, which allows multiple files to be created with names that differ only in case. By contrast, Microsoft Windows file names are not case sensitive by default, although NTFS supports case sensitivity at the file system level. Windows also has a larger set of punctuation characters that are not allowed in file names, most of which have been inherited from limitations in its original FAT file system.
File systems may provide journaling, which provides safe recovery in the event of a system crash. A journaled file system writes some information twice: first to the journal, which is a log of file system operations, then to its proper place in the ordinary file system. Journaling is handled by the file system driver, and keeps track of each operation taking place that changes the contents of the disk. In the event of a crash, the system can recover to a consistent state by replaying a portion of the journal. Many UNIX file systems provide journaling including ReiserFS, JFS, and Ext3.
In contrast, non-journaled file systems typically need to be examined in their entirety by a utility such as fsck or chkdsk for any inconsistencies after an unclean shutdown. Soft updates is an alternative to journaling that avoids the redundant writes by carefully ordering the update operations. Log-structured file systems and ZFS also differ from traditional journaled file systems in that they avoid inconsistencies by always writing new copies of the data, eschewing in-place updates.
Many Linux distributions support some or all of ext2, ext3, ReiserFS, Reiser4, GFS, GFS2, OCFS, OCFS2, and NILFS. Linux also has full support for XFS and JFS, along with the FAT file systems, and NTFS.
Microsoft Windows includes support for FAT12, FAT16, FAT32, and NTFS. The NTFS file system is the most efficient and reliable of the four Windows file systems, although details of its design are not known. As of Windows Vista, NTFS is the only file system which the operating system can be installed on. Windows Embedded CE 6.0 introduced ExFAT, a file system suitable for flash drives.
Mac OS X supports HFS+ with journaling as its primary file system. It is derived from the Hierarchical File System of the earlier Mac OS. Mac OS X has facilities to read and write FAT16, FAT32, NTFS, UDF, and other file systems, but cannot be installed to them. Also, due to its UNIX heritage Mac OS X now supports virtually all the file systems supported by the UNIX VFS.
FAT file systems are commonly found on floppy discs, flash memory cards, digital cameras, and many other portable devices because of its relative simplicity. ISO 9660 and Universal Disk Format are two common formats that target Compact Discs and DVDs, respectively. Mount Rainier is a newer extension to UDF, supported by Linux 2.6 kernels and Windows Vista that facilitates rewriting to DVDs in the same fashion as has been possible with floppy disks.

Methods of Multitasking

Multitasking refers to the running of multiple independent computer programs on the same computer, giving the appearance that it is performing the tasks at the same time. Since most computers can do at most one or two things at one time, this is generally done via time sharing, which means that each program uses a share of the computer's time to execute.
An operating system kernel contains a piece of software called a scheduler which determines how much time each program will spend executing, and in which order execution control should be passed to programs. Control is passed to a process by the kernel, which allows the program access the CPU and memory. At a later time control is returned to the kernel through some mechanism, so that another program may be allowed to user the CPU. This so-called passing of control between the kernel and applications is called a context switch.
An early model which governed the allocation of time to programs was called cooperative multitasking. In this model, when control is passed to a program by the kernel, it may execute for as long as it wants before explicitly returning control to the kernel. This means that a malfunctioning program may prevent any other programs from using the CPU.
The philosophy governing preemptive multitasking is that of ensuring that all programs are given regular time on the CPU. This implies that all programs must be limited in how much time they are allowed to spend on the CPU without being interrupted. To accomplish this, modern operating system kernels make use of a timed interrupt. A protected mode timer is set by the kernel which triggers a return to supervisor mode after the specified time has elapsed. (See above sections on Interrupts and Dual Mode Operation.)
On many single user operating systems cooperative multitasking is perfectly adequate, as home computers generally run a small number of well tested programs. Windows 95 was the first version of Microsoft Windows for the home user market which included full preemptive multitasking capability, although older legacy 16bit applications from Windows 3.0 still ran cooperatively via the 16bit mutext in Windows 95.
Windows XP was the first version of Microsoft Windows for the home user market which included full preemptive multitasking capability, since is was the first version of Windows NT designed for the home user market. Windows NT was originally designed with preemptive multitaking as a core feature, but was initially designed for professional users and business consumers.
Early UNIX also did not provide preemptive multitasking, as it was not supported on the hardware. It did however provide cooperative multitasking as it was designed from minicomputer concepts that expected multiple users accessing the system via remote terminals. Later UNIX was redesigned and written in C so that it could be ported to other hardware easier, and this is when UNIX was first capable of preemptive multitasking based on the hardware available.
Windows Vista is the first mainstream operating system that extends the concepts of CPU preemptive multitasking to the video GPU. With the intoduction of the WDDM (Windows Display Driver Model) in Windows Vista, the operating system has preemptive control for scheduling GPU operations. This is how Windows Vista can easily manage a 3D desktop metaphor while allowing 3D applications to run concurrently on the screen at the same time, or multiple 3D application at the same time onscreen, without being held hostage to 3D applcation cooperative yielding.
The WDDM in Windows Vista is technically advanced; however, it also hurt Windows Vista because the drivers available at the time of release were freshly written from scratch by the GPU manufacturers, and had no application optimizations like drivers from the previous version of Windows. Windows Vista drivers also added many other features to work with the GPU multitasking concepts, and these were very new to deal with in terms of how to effectively use them from the GPU manufacturer's viewpoint. After several months of real user feedback and time to adapt to the new features of the WDDM, GPU manufacturers started providing drivers that were finally able to perform as well or better than drivers from the previous version of Windows, while still providing all the new features of the WDDM to Windows Vista and video dependant applications like games.
Prior to Windows Vista GPU multitasking was cooperative when it was available, as OpenGL and DirectX applications had to yield the 3D aspects of the GPU to the OS and other applications, which resulted in a significant reduction in 3D performance unless the 3D application was specfically written to constantly yield as some 3D desktop composer software does.

Memory Management

Among other things, a multiprogramming operating system kernel must be responsible for managing all system memory which is currently in use by programs. This ensures that a program does not interfere with memory already used by another program. Since programs time share, each program must have independent access to memory.
Cooperative memory management, used by many early operating systems assumes that all programs make voluntary use of the kernel's memory manager, and do not exceed their allocated memory. This system of memory management is almost never seen anymore, since programs often contain bugs which can cause them to exceed their allocated memory. If a program fails it may cause memory used by one or more other programs to be affected or overwritten. Malicious programs, or viruses may purposefully alter another program's memory or may affect the operation of the operating system itself. With cooperative memory management it takes only one misbehaved program to crash the system.
Memory protection enables the kernel to limit a process' access to the computer's memory. Various methods of memory protection exist, including memory segmentation, and paging. All methods require some level of hardware support (such as the 80286 MMU) which doesn't exist in all computers.
In both segmentation and paging, certain protected mode registers specify to the CPU what memory address it should allow a running program to access. Attempts to access other addresses will trigger an interrupt which will cause the CPU to re-enter supervisor mode, placing the kernel in charge. This is called a segmentation violation or Seg-V for short, and since it is usually a sign of a misbehaving program, the kernel will generally kill the offending program, and report the error.
Windows 3.1-Me had some level of memory protection, but programs could easily circumvent the need to use it. Under Windows 9x all MS-DOS applications ran in supervisor mode, giving them almost unlimited control over the computer. A general protection fault would be produced indicating a segmentation violation had occurred, however the system would often crash anyway.

Protected Mode, and Supervisor Mode Operation

Modern CPUs support something called dual mode operation. CPUs with this capability use two modes: protected mode and supervisor mode, which allow certain CPU functions to be controlled and affected only by the operating system kernel. Here, protected mode does not refer specifically to the 80286 (Intel's x86 16-bit microprocessor) CPU feature, although its general protected modes are generally very similar to it. CPUs might have other modes similar to 80286 protected mode as well, such as the virtual 8086 mode of the 80386 (Intel's x86 32-bit microprocessor or i386).
However, the term is used here more generally in operating system theory to refer to all modes which limit the capabilities of programs running in that mode, providing things like virtual memory addressing and limiting access to hardware in a manner determined by a program running in supervisor mode. Similar modes have existed in supercomputers, minicomputers, and mainframes as they are essential to fully supporting UNIX-like multi-user operating systems.
When a computer first starts up, it is automatically running in supervisor mode. The first few programs to run on the computer, being the BIOS, bootloader and the operating system have unlimited access to hardware. However when the operating system passes control to another program, it can place the CPU into protected mode.
In protected mode, programs may have access to a more limited set of the CPU's instructions. A user program may leave protected mode only by triggering an interrupt, causing control to be passed back to the kernel. In this way the operating system can maintain exclusive control over things like access to hardware, and memory.
The term "protected mode resource" generally refers to one or more CPU registers, which contain information that the running program isn't allowed to alter. Attempts to alter these resources generally causes a switch to supervisor mode

Interrupts

Interrupts are central to operating systems as they allow the operating system to deal with the unexpected activities of running programs and the world outside the computer. Interrupt-based programming is one of the most basic forms of time-sharing, being directly supported by most CPUs. Interrupts provide a computer with a way of automatically running specific code in response to events. Even very basic computers support hardware interrupts, and allow the programmer to specify code which may be run when that event takes place.
When an interrupt is received, the computer's hardware automatically suspends whatever program is currently running, and its registers and program counter are saved. This is analogous to placing a bookmark in a book when someone is interrupted by a phone call. This task requires no operating system as such, but only that the interrupt be configured at an earlier time.
In modern operating systems, interrupts are handled by the operating system's kernel. Interrupts may come from either the computer's hardware, or from the running program. When a hardware device triggers an interrupt, the operating system's kernel decides how to deal with this event, generally by running some processing code, or ignoring it. The processing of hardware interrupts is a task that is usually delegated to software called device drivers, which may be either part of the operating system's kernel, part of another program, or both. Device drivers may then relay information to a running program by various means.
A program may also trigger an interrupt to the operating system, which are very similar in function. If a program wishes to access hardware for example, it may interrupt the operating system's kernel, which causes control to be passed back to the kernel. The kernel may then process the request which may contain instructions to be passed onto hardware, or to a device driver. When a program wishes to allocate more memory, launch or communicate with another program, or signal that it no longer needs the CPU, it does so through interrupts.

Program Execution

An operating system's most basic function is to support the running of programs by the users. On a multiprogramming operating system, running programs are commonly referred to as processes. Process management refers to the facilities provided by the operating system to support the creation, execution, and destruction of processes, and to facilitate various interactions, and limit others.
The operating system's kernel in conjunction with underlying hardware must support this functionality.
Executing a program involves the creation of a process by the operating system. The kernel creates a process by setting aside or allocating some memory, loading program code from a disk or another part of memory into the newly allocated space, and starting it running.
Operating system kernels store various information about running processes. This information might include:
A unique identifier, called a process identifier (PID).
A list of memory the program is using, or is allowed to access.
The PID of the program which requested its execution, or the parent process ID (PPID).
The filename and/or path from which the program was loaded.
A register file, containing the last values of all CPU registers.
A program counter, indicating the position in the program

Underlying Technologies

An operating system is a collection of technologies which are designed to allow the computer to perform certain functions. These technologies may or may not be present in every operating system, and there are often differences in how they are implemented. However as stated above most modern operating systems are derived from common design ancestors, and are therefore basically similar.

Operating system

An operating system (OS) is a software that manages computer resources and provides programmers/users with an interface used to access those resources. An operating system processes system data and user input, and responds by allocating and managing tasks and internal system resources as a service to users and programs of the system. An operating system performs basic tasks such as controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating computer networking and managing files. Operating systems can be found on almost anything made with integrated circuits, such as personal computers, internet servers, cellphones, music players, routers, switches, wireless access points, network storage, game consoles, digital cameras, sewing machines and telescopes.
In most cases, the operating system is not the first code to run on the computer at startup (boot) time. The initial code executing on the computer is usually loaded from firmware, which is stored in Flash ROM. This is sometimes called the BIOS or boot ROM. The firmware loads and executes the operating system kernel (usually from disk, sometimes over the network), and is usually responsible for the first graphics or text output the user sees on screen.
Common contemporary desktop OSes are Linux, Mac OS X, Microsoft Windows and Solaris. Windows is most popular on desktops while Linux is most popular in server environments. Linux, Mac OS X and MS Windows all have server and personal variants. With the exception of Microsoft Windows, the designs of each of the aforementioned OSs were inspired by, or directly inherited from, the Unix operating system. Unix was developed at Bell Labs beginning in the late 1960s and spawned the development of numerous free and proprietary operating systems.

Servers in daily life

Any computer or device serving out applications or services can technically be called a server. In an office or enterprise environment, the network server is easy to identify. A DSL/Cable router is a server as it provides a computer with application services such as assigning an IP address (via Dynamic Host Configuration Protocol, DHCP), and Network Address Translation (NAT) services which is the firewall that protects a computer from the internet. iTunes software is a music server for MP3 players. Shared printers or folders on a computer use it as a server. These instances can cause security problems for home users. Wireless access points, if not properly secured, can also serve out a network connection to those within range who may then be able to access previously shared data. This is why securing wireless networks has become important of late.[1] Many private servers are around for such online games as Everquest, Everquest II, GunZ: The Duel, World of Warcraft, Counter-strike, RuneScape, MapleStory etc.

Servers on the Internet

Almost the entire structure of the Internet is based upon a client-server model. High level Root name servers, ISP (Internet Service Providers) DNS servers (Domain Name System) and routers direct the traffic on the internet. Many millions of servers are connected to the Internet and run continuously throughout the world.
Among the many services provided by Internet servers are: the Web; the Domain Name System; electronic mail; file transfer; instant messaging; streaming audio and video, online gaming, and countless others. Virtually every action taken by an ordinary Internet user requires one or more interactions with one or more servers.
There are also technologies that operate on an inter-server level.

Server operating system

Some popular operating systems for servers—such as FreeBSD, Solaris, and Linux—are derived from or similar to the UNIX operating system. UNIX was originally a minicomputer operating system, and as servers gradually replaced traditional minicomputers, UNIX was a logical and efficient choice of operating system for the servers. UNIX-based systems, many of which are free, are the most popular.
Server-oriented operating systems tend to have certain features in common that make them more suitable for the server environment, such as the absence of a GUI (or an optional GUI); the ability to be reconfigured (in both hardware and software) to at least some extent without stopping the system; advanced backup facilities to permit online backups of critical data at regular and frequent intervals; facilities to enable the movement of data between different volumes or devices in such a way that is transparent to the end user; flexible and advanced networking capabilities; features (such as daemons in UNIX or services in Windows) that make unattended execution of programs more reliable; tight system security, with advanced user, resource, data, and memory protection, and so on. Server-oriented operating systems in many cases can interact with hardware sensors to detect conditions such as overheating, processor and disk failure, and either alert an operator, take remedial action, or both, depending on the configuration.
Because the requirements of servers are, in some cases, almost diametrically opposed to those of desktop computers, it is extremely difficult to design an operating system that handles both environments well; thus, operating systems that are well suited to the desktop may not be ideal for servers and vice versa. Regardless of OS vendor, system configurations that are ideal for servers may be unsatisfactory for desktop use, and configurations that perform well on the desktop may leave much to be desired on servers. As a result many operating systems have both a server and a desktop version released. Nevertheless, the desktop versions of Windows and the Mac OS X (also Unix-based) operating systems are used on a minority of servers, as are some proprietary mainframe operating systems, such as z/OS. The dominant operating systems among servers continues to be UNIX versions and clones.
The rise of the microprocessor-based server was facilitated by the development of several versions of Unix to run on the Intel x86 microprocessor architecture. The Microsoft Windows family of operating systems also runs on Intel hardware, and versions beginning with Windows NT have incorporated features making them suitable for use on servers.
Whilst the role of server and desktop operating systems remains distinct, improvements in both hardware performance and reliability and operating system reliability have blurred the distinction between these two classes of system, which at one point remained largely separate in terms of code base, hardware and vendor providers. Today, many desktop and server operating systems share the same code base, and differ chiefly in terms of configuration. Furthermore, the rationalisation of many corporate applications towards web-based and middleware platforms has lessened the demand for specialist application servers

Server hardware


Although servers can be built from commodity computer components—particularly for low-load and/or non-critical applications—dedicated, high-load, mission-critical servers use specialized hardware that is optimized for the needs of servers.

A server rack seen from the back
For example, servers may incorporate “industrial-strength” mechanical components such as disk drives and computer fans that provide very high reliability and performance at a correspondingly high price. Aesthetic considerations are ignored, since most servers operate in unattended computer rooms and are only visited for maintenance or repair purposes. Although servers usually require large amounts of disk space, smaller disk drives may still be used in a trade-off of capacity vs. reliability.
CPU speeds are far less critical for many servers than they are for many desktops. Not only are typical server tasks likely to be delayed more by I/O requests than processor requirements, but the lack of any graphical user interface (GUI) in many servers frees up very large amounts of processing power for other tasks, making the overall processor power requirement lower. If a great deal of processing power is required in a server, there is a tendency to add more CPUs rather than increase the speed of a single CPU, again for reasons of reliability and redundancy.
The lack of a GUI in a server (or the rare need to use it) makes it unnecessary to install expensive video adapters. Similarly, elaborate audio interfaces, joystick connections, USB peripherals, and the like are usually unnecessary.
Because servers must operate continuously and reliably, noisy but efficient and trustworthy fans may be used for ventilation instead of inexpensive and quiet fans; and in some cases, centralized air-conditioning may be used to keep servers cool, instead of or in addition to fans. Special uninterruptible power supplies may be used to ensure that the servers continue to run in the event of a power failure.
Typical servers include heavy-duty network connections in order to allow them to handle the large amounts of traffic that they typically receive and generate as they receive and reply to client requests.
The major difference between servers and desktop computers is not in the hardware but in the software. Servers often run operating systems that are designed specifically for use in servers. They also run special applications that are designed specifically to carry out server tasks.
Servers have a unique property where the more powerful and complex the system, the longer it takes for the hardware to turn on and begin loading the operating system. Servers often do extensive pre-boot memory testing and verification, along with starting up remote management services. The hard drive controllers then start up banks of drives in sequence so as not to overload the power supply with the sudden surge of everything turning on at once, then followed by RAID system prechecks for correct operation of redundancy. It is not uncommon for all these preboot hardware checks to take several minutes, but then for the machine to run continuously for over a year of uptime.

Term usage in information technology

Server is an adjective in the term server operating system. A server operating system is intended, enabled, or better able to run server applications. The differences between the server version and the "workstation" version of an operating system vary. Sometimes (as in the case of Windows 2000 and Windows 2000 Server), the primary difference is the removal of arbitrary license-dependent limits on the number of network file share connections accepted. Some server editions include additional server applications bundled with the operating system. Some server applications (e.g. Microsoft IIS) impose arbitrary limits on the number of HTTP connections they will accept, depending on whether they are running under a server operating system or not.
A server computer (often called server for short) is a computer system that has been designated for running a specific server application or applications. A computer that is designated for only one server application is often named for that application. For example, when Apache HTTP Server (software) is a company's web server, the computer running it is also called the web server. Server applications can be divided among server computers over an extreme range, depending upon the workload. Under light loading, every server application can run concurrently on a single computer. Under heavy loading, multiple server computers may be required for each application. Under medium loading, it is common to use one server computer per server application, in order to limit the amount of damage caused by failure of any single server computer or security breach of any single server application. Any server computer can also be used as a workstation, but it is avoided in practice, again to contain risk.
Server or server computer is also a designation for computer models intended for use running server applications, often under heavy workloads, unattended, for extended time. While any "workstation" computer can run server operating systems and server applications, a server computer usually has special features intended to make it more suitable. Distinctions often include faster processor and memory, more RAM, larger hard drives, higher reliability, redundant power supplies, redundant hard drives (RAID), compact size and shape, modular design (e.g., blade servers often used in server farms), rack or cabinet mountability, serial console redirection, etc.
The name server or server appliance also applies to network-connected computer appliances or "appliance hardware" that provides specific services onto the network. Though the appliance is a server computer, loaded with a server operating system and a server application, the user need not configure any of it. It is a black box that does a specific job. The simplest servers are most often sold as appliances, for example switches, routers, gateways, print servers, net modems.
A server is defined as a multiuser computer that provides a service (e.g. database access, file transfer, remote access) or resources (e.g. file space) over a network connection.

Server (computing)

In information technology, a server is an application or device that performs services for connected clients as part of a client-server architecture. A server application, as defined by RFC 2616 (HTTP/1.1), is "an application program that accepts connections in order to service requests by sending back responses." Server computers are devices designed to run such an application or applications, often for extended periods of time with minimal human direction

Ethernet repeaters and hubs

For signal degradation and timing reasons, coaxial Ethernet segments had a restricted size which depended on the medium used. For example, 10BASE5 coax cables had a maximum length of 500 meters (1,640 ft). Also, as was the case with most other high-speed buses, Ethernet segments had to be terminated with a resistor at each end. For coaxial-cable-based Ethernet, each end of the cable had a 50-ohm resistor attached. Typically this resistor was built into a male BNC or N connector and attached to the last device on the bus, or, if vampire taps were in use, to the end of the cable just past the last device. If termination was not done, or if there was a break in the cable, the AC signal on the bus was reflected, rather than dissipated, when it reached the end. This reflected signal was indistinguishable from a collision, and so no communication would be able to take place.
A greater length could be obtained by an Ethernet repeater, which took the signal from one Ethernet cable and repeated it onto another cable. If a collision was detected, the repeater transmitted a jam signal onto all ports to ensure collision detection. Repeaters could be used to connect segments such that there were up to five Ethernet segments between any two hosts, three of which could have attached devices. Repeaters could detect an improperly terminated link from the continuous collisions and stop forwarding data from it. Hence they alleviated the problem of cable breakages: when an Ethernet coax segment broke, while all devices on that segment were unable to communicate, repeaters allowed the other segments to continue working - although depending on which segment was broken and the layout of the network the partitioning that resulted may have made other segments unable to reach important servers and thus effectively useless.
People recognized the advantages of cabling in a star topology, primarily that only faults at the star point will result in a badly partitioned network, and network vendors started creating repeaters having multiple ports, thus reducing the number of repeaters required at the star point. Multiport Ethernet repeaters became known as "Ethernet hubs". Network vendors such as DEC and SynOptics sold hubs that connected many 10BASE2 thin coaxial segments. There were also "multi-port transceivers" or "fan-outs". These could be connected to each other and/or a coax backbone. The best-known early example was DEC's DELNI. These devices allowed multiple hosts with AUI connections to share a single transceiver. They also allowed creation of a small standalone Ethernet segment without using a coaxial cable.


A twisted pair CAT-3 or CAT-5 cable is used to connect 10BASE-T Ethernet
Ethernet on unshielded twisted-pair cables (UTP), beginning with StarLAN and continuing with 10BASE-T, was designed for point-to-point links only and all termination was built into the device. This changed hubs from a specialist device used at the center of large networks to a device that every twisted pair-based network with more than two machines had to use. The tree structure that resulted from this made Ethernet networks more reliable by preventing faults with (but not deliberate misbehavior of) one peer or its associated cable from affecting other devices on the network, although a failure of a hub or an inter-hub link could still affect lots of users. Also, since twisted pair Ethernet is point-to-point and terminated inside the hardware, the total empty panel space required around a port is much reduced, making it easier to design hubs with lots of ports and to integrate Ethernet onto computer motherboards.
Despite the physical star topology, hubbed Ethernet networks still use half-duplex and CSMA/CD, with only minimal activity by the hub, primarily the Collision Enforcement signal, in dealing with packet collisions. Every packet is sent to every port on the hub, so bandwidth and security problems aren't addressed. The total throughput of the hub is limited to that of a single link and all links must operate at the same speed.
Collisions reduce throughput by their very nature. In the worst case, when there are lots of hosts with long cables that attempt to transmit many short frames, excessive collisions can reduce throughput dramatically. However, a Xerox report in 1980 summarized the results of having 20 fast nodes attempting to transmit packets of various sizes as quickly as possible on the same Ethernet segment.[4] The results showed that, even for the smallest Ethernet frames (64B), 90% throughput on the LAN was the norm. This is in comparison with token passing LANs (token ring, token bus), all of which suffer throughput degradation as each new node comes into the LAN, due to token waits.This report was wildly controversial, as modeling showed that collision-based networks became unstable under loads as low as 40% of nominal capacity. Many early researchers failed to understand the subtleties of the CSMA/CD protocol and how important it was to get the details right, and were really modeling somewhat different networks (usually not as good as real Ethernet)

CSMA/CD shared medium Ethernet

Ethernet originally used a shared coaxial cable (the shared medium) winding around a building or campus to every attached machine. A scheme known as carrier sense multiple access with collision detection (CSMA/CD) governed the way the computers shared the channel. This scheme was simpler than the competing token ring or token bus technologies. When a computer wanted to send some information, it used the following algorithm:
Main procedure
Frame ready for transmission.
Is medium idle? If not, wait until it becomes ready and wait the interframe gap period (9.6 µs in 10 Mbit/s Ethernet).
Start transmitting.
Did a collision occur? If so, go to collision detected procedure.
Reset retransmission counters and end frame transmission.
Collision detected procedure
Continue transmission until minimum packet time is reached (jam signal) to ensure that all receivers detect the collision.
Increment retransmission counter.
Was the maximum number of transmission attempts reached? If so, abort transmission.
Calculate and wait random backoff period based on number of collisions.
Re-enter main procedure at stage 1.
This can be likened to what happens at a dinner party, where all the guests talk to each other through a common medium (the air). Before speaking, each guest politely waits for the current speaker to finish. If two guests start speaking at the same time, both stop and wait for short, random periods of time (in Ethernet, this time is generally measured in microseconds). The hope is that by each choosing a random period of time, both guests will not choose the same time to try to speak again, thus avoiding another collision. Exponentially increasing back-off times (determined using the truncated binary exponential backoff algorithm) are used when there is more than one failed attempt to transmit.
Computers were connected to an Attachment Unit Interface (AUI) transceiver, which was in turn connected to the cable (later with thin Ethernet the transceiver was integrated into the network adapter). While a simple passive wire was highly reliable for small Ethernets, it was not reliable for large extended networks, where damage to the wire in a single place, or a single bad connector, could make the whole Ethernet segment unusable. Multipoint systems are also prone to very strange failure modes when an electrical discontinuity reflects the signal in such a manner that some nodes would work properly while others work slowly because of excessive retries or not at all (see standing wave for an explanation of why); these could be much more painful to diagnose than a complete failure of the segment. Debugging such failures often involved several people crawling around wiggling connectors while others watched the displays of computers running a ping command and shouted out reports as performance changed.
Since all communications happen on the same wire, any information sent by one computer is received by all, even if that information is intended for just one destination. The network interface card interrupts the CPU only when applicable packets are received: the card ignores information not addressed to it unless it is put into "promiscuous mode". This "one speaks, all listen" property is a security weakness of shared-medium Ethernet, since a node on an Ethernet network can eavesdrop on all traffic on the wire if it so chooses. Use of a single cable also means that the bandwidth is shared, so that network traffic can slow to a crawl when, for example, the network and nodes restart after a power failure.

General description


Ethernet was originally based on the idea of computers communicating over a shared coaxial cable acting as a broadcast transmission medium. The methods used show some similarities to radio systems, although there are fundamental differences, such as the fact that it is much easier to detect collisions in a cable broadcast system than a radio broadcast. The common cable providing the communication channel was likened to the ether and it was from this reference that the name "Ethernet" was derived.
From this early and comparatively simple concept, Ethernet evolved into the complex networking technology that today underlies most LANs. The coaxial cable was replaced with point-to-point links connected by Ethernet hubs and/or switches to reduce installation costs, increase reliability, and enable point-to-point management and troubleshooting. StarLAN was the first step in the evolution of Ethernet from a coaxial cable bus to a hub-managed, twisted-pair network. The advent of twisted-pair wiring dramatically lowered installation costs relative to competing technologies, including the older Ethernet technologies.
Above the physical layer, Ethernet stations communicate by sending each other data packets, blocks of data that are individually sent and delivered. As with other IEEE 802 LANs, each Ethernet station is given a single 48-bit MAC address, which is used both to specify the destination and the source of each data packet. Network interface cards (NICs) or chips normally do not accept packets addressed to other Ethernet stations. Adapters generally come programmed with a globally unique address, but this can be overridden, either to avoid an address change when an adapter is replaced, or to use locally administered addresses.
Despite the significant changes in Ethernet from a thick coaxial cable bus running at 10 Mbit/s to point-to-point links running at 1 Gbit/s and beyond, all generations of Ethernet (excluding early experimental versions) share the same frame formats (and hence the same interface for higher layers), and can be readily interconnected.
Due to the ubiquity of Ethernet, the ever-decreasing cost of the hardware needed to support it, and the reduced panel space needed by twisted pair Ethernet, most manufacturers now build the functionality of an Ethernet card directly into PC motherboards, obviating the need for installation of a separate network card.

Ethernet

Ethernet was originally developed at Xerox PARC in 1973–1975.[2] Robert Metcalfe and David Boggs wrote and presented their "Draft Ethernet Overview" before March 1974. In March 1974, R.Z. Bachrach wrote a memo to Metcalfe and Boggs and their management, stating that "technically or conceptually there is nothing new in your proposal" and that "analysis would show that your system would be a failure." This analysis was flawed in that it ignored the "channel capture effect", though this was not understood until 1994. In 1975, Xerox filed a patent application listing Metcalfe and Boggs, plus Chuck Thacker and Butler Lampson, as inventors (U.S. Patent 4,063,220 : Multipoint data communication system with collision detection). In 1976, after the system was deployed at PARC, Metcalfe and Boggs published a seminal paper.[3]
The experimental Ethernet described in that paper ran at 3 Mbit/s, and had 8-bit destination and source address fields, so Ethernet addresses were not the global addresses they are today. By software convention, the 16 bits after the destination and source address fields were a packet type field, but, as the paper says, "different protocols use disjoint sets of packet types", so those were packet types within a given protocol, rather than the packet type in current Ethernet which specifies the protocol being used.
Metcalfe left Xerox in 1979 to promote the use of personal computers and local area networks (LANs), forming 3Com. He convinced DEC, Intel, and Xerox to work together to promote Ethernet as a standard, the so-called "DIX" standard, for "Digital/Intel/Xerox"; it standardized the 10 megabits/second Ethernet, with 48-bit destination and source addresses and a global 16-bit type field. The standard was first published on September 30, 1980. It competed with two largely proprietary systems, token ring and ARCNET, but those soon found themselves buried under a tidal wave of Ethernet products. In the process, 3Com became a major company.Twisted-pair Ethernet systems have been developed since the mid-80s, beginning with StarLAN, but becoming widely known with 10BASE-T. These systems replaced the coaxial cable on which early Ethernets were deployed with a system of hubs linked with unshielded twisted pair (UTP), ultimately replacing the CSMA/CD scheme in favor of a switched full duplex system offering higher performance

Airtel Broadband: a pleasant surprise!

After writing in a scathing post on Airtel, someone up there seems to have read the previous post. I got a call asking me to upgrade my plan to 512kbps for a slightly more amount than I am paying at present. I hope that someone must be looking forward for a reaction on this blog and here it is!
For 300 bucks more than the basic price for unlimited broadband, I am getting double the speed. I have had no issues with the service as a whole and I am extremely pleased about it. Specially, when I get to read what others are going through.
Interestingly, Reliance has had a soft launch in NCR and they are slowly expanding. It would not be wrong to say that Reliance would look at this extremely lucrative segment; but they would have to spend bucketloads of cash to create a demand for their broadband services. Unless, they strike where Sify or Iquara or Hathway have spread their misery far and wide. They would find droves of eager customers flock for their services. I still hold that the broadband plans have to be compelling enough for people to make the switch.
Airtel’s MBA’s need to tighten up their belts. For all their fancy cars and pay hikes (no, I am not jealous) they come out frothing idiots who would not be able to hold up a bulb to a five year old kid. Their collective IQ amounts to zilch.
Prove me wrong morons. 2Mbps unlimited for 1000 bucks? It’s worth it. I ensure that the entire broadband user forums would be singing paens about you and I promise never to trash you or your collective IQ. Mark my “dangerous” words. The truth is out there. Reliance would surely eat up your share and I am sure most of you would desert Airtel’s sinking ship like rotten rats at the first hint of danger.
Update: This was a “top up” offer where the speeds would be doubled in the night. Bah! This is called as being taken for a “ride”! Sheesh. By the way, I called up the Airtel Customer Care Centre and had to bang my head with dead beat assinine women. They had no clue about the “top up” and it took a lot of cajoling and shouting on the phone to make them see any reason.
I dread calling up the customer care centres; unless one wants to let off his/her steam on the phone or act funny with the “dames”.
Useless offer- Airtel sucks!

Airtel Broadband: Update

It’s confrmed that Airtel is offering a “top up” plan of 512kbps for about 300 bucks. Indeed, a good news. Finally, I have something to cheer for myself because I have “graduated” from the 256k to some “faster” speeds. Here is the link to the current speeds.

Airtel Broadband: Ineffective marketing?

Ever since it has introduced the new 512k unlimited plans (much to my delight), I was struck by the stupidity of the dimwits that Airtel has hired. Airtel has a fantastic infrastructure because it was not weighed in by the legacy initiatives of the older sloths, MTNL and BSNL. It introduced 8 Mbps broadband speeds with download limits that anyone would piss on. It would find some eager beavers to taste the “speeds” but it remains useless to ponder on that.
I feel that the “top up” thingy should be declared illegal because you have two plans running concurrently offering the same speeds. They should migrate the existing customers to the present price plan because it makes no sense to pay higher prices for something that doesnt cost much. No one is willing to look into this because the company and the regulator seem to share the same relationship as a client and a prostitute. As long as the right money comes in, the whore mongering goes on with everyone looking at the other way. Unfortunate.
Either way, I have been arguing that the current prices donot reflect the existing price slabs across the world. Most of the major telcos in the developing world have shifted away from the 256k plans and have focussed on higher bandwidth options. Further, the prices across the spectrum are way to expensive in terms of purchasing parity; which effectively means that there is an open loot going on.
Airtel can easily slash down the prices for access; offer unlimited plans with bundling of voice calls and along with that create demand to cater to the new customers. Airtel still advertises mobiles as a lifestyle product; it should be placed as something utilatarian instead of being aspirational. Thats the whole irony of it. Dimwits have access to bucket loads of cash to burn.