FACTOID # 5: Minnesota and Connecticut are both in the top 5 in saving money and total tax burden per capita.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Architecture of Windows NT
The Windows NT operating system family's architecture consists of two layers (user mode and kernel mode), with many different modules within both of these layers.

Windows Vista, Windows Server 2003, Windows XP, Windows 2000 and Windows NT are all part of the Windows NT family of Microsoft operating systems. They are all preemptive, reentrant operating systems, which have been designed to work with either uniprocessor- or symmetrical multi processor (SMP)-based computers. To process input/output (I/O) requests it uses packet-driven I/O which utilises I/O request packets (IRPs) and asynchronous I/O. Starting with Windows XP, Microsoft began building in 64-bit support into their operating systems—before this their operating systems were based on a 32-bit model. The architecture of Windows NT is highly modular, and consists of two main layers: a user mode and a kernel mode. Programs and subsystems in user mode are limited in terms of what system resources they have access to, while the kernel mode has unrestricted access to the system memory and external devices. The kernels of the operating systems in this line are all known as hybrid kernel, although this term is disputed, with the claim that the kernel is essentially a monolithic kernel that is structured somewhat like a microkernel. The architecture comprises a hybrid kernel, Hardware Abstraction Layer (HAL), drivers, and Executive, which all exist in kernel mode.[1] The higher-level services are implemented by the Executive. Image File history File links Windows_2000_architecture. ... Image File history File links Windows_2000_architecture. ... User mode refers to two similar concepts in computer architecture. ... In processors with memory protection, kernel mode (as opposed to user mode) is the mode in which the operating system kernel runs. ... Windows Vista is a line of graphical operating systems used on personal computers, including home and business desktops, notebook computers, Tablet PCs, and media centers. ... Windows Server 2003 is a server operating system produced by Microsoft. ... Windows XP is a line of operating systems developed by Microsoft for use on general-purpose computer systems, including home and business desktops, notebook computers, and media centers. ... Windows 2000 (also referred to as Win2K) is a preemptive, interruptible, graphical and business-oriented operating system that was designed to work with either uniprocessor or symmetric multi-processor 32-bit Intel x86 computers. ... Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. ... Pre-emption as used with respect to operating systems means the ability of the operating system to preempt or stop a currently scheduled task in favour of a higher priority task. ... A computer program or routine is described as reentrant if it can be safely called recursively or from multiple processes. ... It has been suggested that Maintenance OS be merged into this article or section. ... A uniprocessor system refers to a system with a single processor. ... Symmetric MultiProcessing, or SMP, is a multiprocessor computer architecture where two or more identical processors are connected to a single shared main memory. ... Energy Input: The energy placed into a reaction. ... I/O request packets (IRPs) are structures that are used by Windows Driver Model (WDM) and Windows NT device drivers to communicate with each other and the operating system. ... To meet Wikipedias quality standards, this article or section may require cleanup. ... User mode refers to two similar concepts in computer architecture. ... In processors with memory protection, kernel mode (as opposed to user mode) is the mode in which the operating system kernel runs. ... A kernel connects the application software to the hardware of a computer. ... Graphical overview of a hybrid kernel Hybrid kernel is a kernel architecture based on combining aspects of microkernel and monolithic kernel architectures used in computer operating systems. ... It has been suggested that Monolithic system be merged into this article or section. ... Graphical overview of a microkernel A microkernel is a minimal computer operating system kernel providing only basic operating system services (system calls), while other services (commonly provided by kernels) are provided by user-space programs called servers. ... A hardware abstraction layer (HAL) is an abstraction layer, implemented in software, between the physical hardware of a computer and the software that runs on that computer. ...


Kernel mode in the Windows NT line is made of subsystems capable of passing I/O requests to the appropriate kernel mode software drivers by using the I/O manager. Two subsystems make up the user mode layer of Windows 2000: the Environment subsystem (runs applications written for many different types of operating systems), and the Integral subsystem (operates system specific functions on behalf of the environment subsystem). Kernel mode in Windows 2000 has full access to the hardware and system resources of the computer. The kernel mode stops user mode services and applications from accessing critical areas of the operating system that they should not have access to. Windows XP loading drivers during a Safe Mode bootup A device driver, or a software driver is a specific type of computer software, typically developed to allow interaction with hardware devices. ...


The Executive interfaces with all the user mode subsystems. It deals with I/O, object management, security and process management. The kernel sits between the Hardware Abstraction Layer and the Executive to provide multiprocessor synchronization, thread and interrupt scheduling and dispatching, and trap handling and exception dispatching. The kernel is also responsible for initializing device drivers at bootup. Kernel mode drivers exist in three levels: highest level drivers, intermediate drivers and low level drivers. Windows Driver Model (WDM) exists in the intermediate layer and was mainly designed to be binary and source compatible between Windows 98 and Windows 2000. The lowest level drivers are either legacy Windows NT device drivers that control a device directly or can be a PnP hardware bus. In computing, the Windows Driver Model (WDM) — also known (somewhat misleadingly) at one point as the Win32 Driver Model — is a framework for device drivers that was introduced with Windows 98 and Windows 2000 to replace VxD, which was used on older versions of Windows such as Windows 95 and... Windows 98 (codenamed Memphis and formerly known as Windows 97[2]) is a graphical operating system released on June 25, 1998 by Microsoft and the successor to Windows 95. ... Plug and Play is a term used in the computer field to describe a computers ability to have new devices, normally peripherals, added to it without having to restart the computer. ...

Contents

User mode

The user mode is made up of subsystems which can pass I/O requests to the appropriate kernel mode drivers via the I/O manager (which exists in kernel mode). Two subsystems make up the user mode layer of Windows 2000: the Environment subsystem and the Integral subsystem.


The environment subsystem was designed to run applications written for many different types of operating systems. None of the environment subsystems can directly access hardware, and must request access to memory resources through the Virtual Memory Manager that runs in kernel mode. Also, applications run at a lower priority than kernel mode processes. There are three main environment subsystems: the Win32 subsystem, an OS/2 subsystem and a POSIX subsystem. To meet Wikipedias quality standards, this article or section may require cleanup. ... POSIX or Portable Operating System Interface[1] is the collective name of a family of related standards specified by the IEEE to define the application programming interface (API) for software compatible with variants of the Unix operating system. ...


The Win32 environment subsystem can run 32-bit Windows applications. It contains the console as well as text window support, shutdown and hard-error handling for all other environment subsystems. It also supports Virtual DOS Machines (VDMs), which allow MS-DOS and 16-bit Windows 3.x (Win16) applications to run on Windows. There is a specific MS-DOS VDM which runs in its own address space and which emulates an Intel 80486 running MS-DOS 5. Win16 programs, however, run in a Win16 VDM. Each program, by default, runs in the same process, thus using the same address space, and the Win16 VDM gives each program its own thread to run on. However, Windows 2000 does allow users to run a Win16 program in a separate Win16 VDM, which allows the program to be preemptively multitasked as Windows 2000 will pre-empt the whole VDM process, which only contains one running application. The OS/2 environment subsystem supports 16-bit character-based OS/2 applications and emulates OS/2 1.x, but not 32-bit or graphical OS/2 applications as used with OS/2 2.x or later. The POSIX environment subsystem supports applications that are strictly written to either the POSIX.1 standard or the related ISO/IEC standards. The POSIX subsystem has been an area of recent active development and is a major feature of Windows Compute Cluster Server 2003. Windows API is a set of APIs, (application programming interfaces) available in the Microsoft Windows operating systems. ... This article does not cite any references or sources. ... Microsofts disk operating system, MS-DOS, was Microsofts implementation of DOS, which was the first popular operating system for the IBM PC, and until recently, was widely used on the PC compatible platform. ... In computer science, 16-bit is an adjective used to describe integers that are at most two bytes wide, or to describe CPU architectures based on registers, address buses, or data buses of that size. ... The Windows 3. ... Windows API is a set of APIs, (application programming interfaces) available in the Microsoft Windows operating systems. ... The Intel486[1] brand refers to Intels family of i486 (incl. ... For the form of code consisting entirely of subroutine calls, see Threaded code. ... ISO has many meanings: Iso is the stem of the Latin transliteration of the Greek word ίσος (ísos, meaning equal). The iso- prefix in English derives from this and means equality or similarity. ... The initials IEC can stand for: Independent Electoral Commission Industrial Emergency Council Inertial electrostatic confinement (in fusion energy) Institut des Experts-comptables et des Conseils fiscaux Institut dEstudis Catalans, Catalan Studies Institute Interactive Evolutionary Computation International Education Centre International Electrical Congress International Electrotechnical Commission See also IEC connector for...


The integral subsystem looks after operating system specific functions on behalf of the environment subsystem. It consists of a security subsystem, a workstation service and a server service. The security subsystem deals with security tokens, grants or denies access to user accounts based on resource permissions, handles logon requests and initiates logon authentication, and determines which system resources need to be audited by Windows 2000. It also looks after Active Directory. The workstation service is an API to the network redirector, which provides the computer access to the network. The server service is an API that allows the computer to provide network services. Typically Active Directory is managed using the graphical Microsoft Management Console. ...


Kernel mode

Windows 2000 kernel mode has full access to the hardware and system resources of the computer and runs code in a protected memory area. It controls access to scheduling, thread prioritisation, memory management and the interaction with hardware. The kernel mode stops user mode services and applications from accessing critical areas of the operating system that they should not have access to as user mode processes ask the kernel mode to perform such operations on its behalf. In processors with memory protection, kernel mode (as opposed to user mode) is the mode in which the operating system kernel runs. ...


Kernel mode consists of executive services, which is itself made up on many modules that do specific tasks, kernel drivers, a kernel and a Hardware Abstraction Layer, or HAL. A kernel connects the application software to the hardware of a computer. ...


Executive

The Executive interfaces with all the user mode subsystems. It deals with I/O, object management, security and process management. It's informally divided into several subsystems, among which Cache Manager, Configuration Manager, I/O Manager, Local Procedure Call (LPC), Memory Manager, Object Manager, Process Structure and Security Reference Monitor (SRM). Grouped together, the components can be called Executive services (internal name Ex). System Services (internal name Nt), i.e. system calls, are implemented at this level, too, except very few that call directly into the kernel layer for better performance. The local procedure call (LPC) facility is a service provided by the Windows NT kernel for light weight message queue between processes on the same computer. ... In computing, a system call is the mechanism used by an application program to request service from the operating system. ...

Each object in Windows 2000 exists in a global namespace. This is a screenshot from SysInternals WinObj

The Object Manager (internal name Ob) is a special executive subsystem that all other executive subsystems, especially system calls, must pass through to gain access to Windows 2000 resources—essentially making it a resource management infrastructure service. Screenshot of WinObject from SysInternals. ... Screenshot of WinObject from SysInternals. ... A namespace is a context in which a group of one or more identifiers might exist. ... Screenshot of a KDE desktop. ...


The object manager is used to reduce the duplication of object resource management functionality in other executive subsystems, which could potentially lead to bugs and make development of Windows 2000 harder.[2] To the object manager, each resource is an object, whether that resource is a physical resource (such as a file system or peripheral) or a logical resource (such as a file). Each object has a structure or object type that the object manager must know about.


Object creation is a process in two phases, creation and insertion. Creation causes the allocation of an empty object and the reservation of any resources required by the object manager, such as an (optional) name in the namespace. If creation was successful, the subsystem responsible for the creation fills in the empty object.[3] Finally, if the subsystem deems the initialization successful, it instructs the object manager to insert the object, which makes it accessible through its (optional) name or a cookie called a handle. From then on, the lifetime of the object is handled by the object manager, and it's up to the subsystem to keep the object in a working condition until being signaled by the object manager to dispose of it. In computer programming, a magic cookie or cookie is a token or short packet of data passed between communicating programs, where the data is typically not meaningful to the recipient program. ...


Handles are similar in purpose to UNIX file descriptors, in that each represents a reference to a kernel resource through an opaque value. Similarly, opening an object through its name is subject to security checks, but acting through an existing, open handle is only limited to the level of access requested when the object was opened or created. The term file descriptor is generally used in POSIX operating systems. ...


Object types define the object procedures and any data specific to the object. In this way, the object manager allows Windows 2000 to be an object oriented operating system, as object types can be thought of as polymorphic classes that define objects. Most subsystems, though, with a notable exception in the I/O Manager, rely on the default implementation for all object type procedures. In computer science, object-oriented programming, OOP for short, is a computer programming paradigm. ... In object-oriented programming, a class is a programming language construct that is used to group related instance variables and methods. ... In strictly mathematical branches of computer science the term object is used in a purely mathematical sense to refer to any thing. While this interpretation is useful in the discussion of abstract theory, it is not concrete enough to serve as a primitive datatype in the discussion of more concrete...


Each instance of an object that is created stores its name, parameters that are passed to the object creation function, security attributes and a pointer to its object type. The object also contains an object close procedure and a reference count to tell the object manager how many other objects in the system reference that object and thereby determines whether the object can be destroyed when a close request is sent to it.[4] Every named object exists in a hierarchical object namespace. A namespace is a context in which a group of one or more identifiers might exist. ...


Further executive subsystems are the following:

  • Cache Controller (internal name Cc): closely coordinates with the Memory Manager, I/O Manager and I/O drivers to provide a common cache for regular file I/O. Uniquely, the Windows Cache Manager operates on file blocks (rather than device blocks), for consistent operation between local and remote files, and ensures a certain degree of coherency with memory-mapped views of files, since cache blocks are a special case of memory-mapped views and cache misses a special case of page faults.
  • I/O Manager (internal name Io): allows devices to communicate with user-mode subsystems. It translates user-mode read and write commands in read or write IRPs which it passes to device drivers. It accepts file system I/O requests and translates them into device specific calls, and can incorporate low-level device drivers that directly manipulate hardware to either read input or write output. It also includes a cache manager to improve disk performance by caching read requests and write to the disk in the background.
  • Local Procedure Call (LPC) (internal name Lpc): provides inter-process communication ports with connection semantics. LPC ports are used by user-mode subsystems to communicate with their clients, by Executive subsystems to communicate with user-mode subsystems, and as the basis for the local transport for MSRPC.
  • Memory Manager (internal name Mm): manages virtual memory, controlling memory protection and the paging of memory in and out of physical memory to secondary storage, and implements a general-purpose allocator of physical memory. It also implements a parser of PE executables that lets an executable be mapped or unmapped in a single, atomic step.
Starting from Windows NT Server 4.0, Terminal Server Edition, the memory manager implements a so-called session space, a range of kernel-mode memory that is subject to context switching just like user-mode memory. This lets multiple instances of the kernel-mode Win32 subsystem and GDI drivers run side-by-side, despite shortcomings in their initial design. Each session space is shared by several processes, collectively referred to as a "session".
To ensure a degree of isolation between sessions without introducing a new object type, the association between processes and sessions is handled by the Security Reference Monitor, as an attribute of a security subject (token), and it can only be changed while holding special privileges.
The relatively unsophisticated and ad-hoc nature of sessions is due to the fact they weren't part of the initial design, and had to be developed, with minimal disruption to the main line, by a third party (Citrix) as a prerequisite for their terminal server product for Windows NT, called WinFrame. Starting with Windows Vista, though, sessions finally became a proper aspect of the Windows architecture. No longer a memory manager construct that creeps into user mode indirectly through Win32, they were expanded into a pervasive abstraction affecting most Executive subsystems. As a matter of fact, regular use of Windows Vista always results in a multi-session environment.[5]
  • Process Structure (internal name Ps): handles process and thread creation and termination, and it implements the concept of Job, a group of processes that can be terminated as a whole, or be placed under shared restrictions (such a total maximum of allocated memory, or CPU time).
  • PnP Manager (internal name Pnp): handles Plug and Play and supports device detection and installation at boot time. It also has the responsibility to stop and start devices on demand—this can happen when a bus (such as USB or FireWire) gains a new device and needs to have a device driver loaded to support it. Its bulk is actually implemented in user mode, in the Plug and Play Service, which handles the often complex tasks of installing the appropriate drivers, notifying services and applications of the arrival of new devices, and displaying GUI to the user.
  • Power Manager (internal name Po): deals with power events (power-off, stand-by, hibernate, etc.) and notifies affected drivers with special IRPs (Power IRPs).
  • Security Reference Monitor (SRM) (internal name Se): the primary authority for enforcing the security rules of the security integral subsystem.[6] It determines whether an object or resource can be accessed, via the use of access control lists (ACLs), which are themselves made up of access control entries (ACEs). ACEs contain a security identifier (SID) and a list of operations that the ACE gives a select group of trustees—a user account, group account, or logon session[7]—permission (allow, deny, or audit) to that resource.[8][9]
  • Window Manager: responsible for drawing windows and menus. It controls the way that output is painted to the screen and handles input events (such as from the keyboard and mouse), then passes messages to the applications that need to receive this input
  • GDI: the Graphics Device Interface is responsible for tasks such as drawing lines and curves, rendering fonts and handling palettes. Windows 2000 introduced native alpha blending into the GDI.

The Windows registry is a database which stores settings and options for the operating system for Microsoft Windows 32-bit versions, 64-bit versions and Windows Mobile. ... It has been suggested that Crash counting be merged into this article or section. ... MSRPC (Microsoft Remote Procedure Call) is a modified version of DCE/RPC. Additions include support for Unicode strings, implicit handles, inheritance of interfaces (which are extensively used in DCOM), and complex calculations in the variable-length string and structure paradigms already present in DCE/RPC. The DCE 1. ... How virtual memory maps to physical memory Virtual memory is an addressing scheme implemented in hardware and software that allows non-contiguous memory to be addressed as if it were contiguous. ... In computer operating systems, paging memory allocation, paging refers to the process of managing program access to virtual memory pages that do not currently reside in RAM. It is implemented as a task that resides in the kernel of the operating system and gains control when a page fault takes... Citrix Systems (NASDAQ: CTXS) is a U.S. high technology software company, based in Fort Lauderdale, Florida, with subsidiary operations in the UK and Australia. ... A terminal server is a device to connect multiple, possibly remote, input/output devices to a central processing unit. ... WinFrame was a multi-user version of Windows NT 3. ... In computing, a process is an instance of a computer program that is being executed. ... For the form of code consisting entirely of subroutine calls, see Threaded code. ... This article does not cite any references or sources. ... Note: USB may also mean upper sideband in radio. ... The 6-pin and 4-pin FireWire Connectors The alternative ethernet-style cabling used by 1394c FireWire is Apple Inc. ... The access control list (ACL) is a concept in computer security, used to enforce privilege separation. ... Alpha blending is a convex combination of two colors allowing for transparency effects in computer graphics. ...

Kernel

The kernel sits between the HAL and the Executive and provides multiprocessor synchronization, thread and interrupt scheduling and dispatching, and trap handling and exception dispatching; it is also responsible for initialising device drivers at bootup that are necessary to get the operating system up and running. That is, the kernel performs almost all the tasks of a traditional microkernel; the strict distinction between Executive and Kernel is the most prominent remain of the original microkernel design, and historical design documentation consistently refers to the kernel component as "the microkernel".


The kernel often interfaces with the process manager.[10] The level of abstraction is such that the kernel never calls into the process manager, only the other way around (save for a handful of corner cases, still never to the point of a functional dependence).


Kernel-mode drivers

Windows 2000 uses kernel-mode device drivers to enable it to interact with hardware devices. Each of the drivers has well defined system routines and internal routines that it exports to the rest of the operating system. All devices are seen by user mode code as a file object in the I/O manager, though to the I/O manager itself the devices are seen as device objects, which it defines as either file, device or driver objects. Kernel mode drivers exist in three levels: highest level drivers, intermediate drivers and low level drivers. The highest level drivers, such as file system drivers for FAT and NTFS, rely on intermediate drivers. Intermediate drivers consist of function drivers—or main driver for a device—that are optionally sandwiched between lower and higher level filter drivers. The function driver then relies on a bus driver—or a driver that services a bus controller, adapter, or bridge—which can have an optional bus filter driver that sits between itself and the function driver. Intermediate drivers rely on the lowest level drivers to function. The Windows Driver Model (WDM) exists in the intermediate layer. The lowest level drivers are either legacy Windows NT device drivers that control a device directly or can be a PnP hardware bus. These lower level drivers directly control hardware and do not rely on any other drivers. Windows XP loading drivers during a Safe Mode bootup A device driver, or a software driver is a specific type of computer software, typically developed to allow interaction with hardware devices. ... Computer hardware is the physical part of a computer, including the digital circuitry, as distinguished from the computer software that executes within the hardware. ... File Allocation Table (FAT) is a partially patented file system developed by Microsoft for MS-DOS and was the primary file system for consumer versions of Microsoft Windows up to and including Windows Me. ... NTFS (New Technology File System) is the standard file system of Windows NT, including its later versions Windows 2000, Windows XP, Windows Server 2003, and Windows Vista. ... For other uses, see Bus (disambiguation). ... In computing, the Windows Driver Model (WDM) — also known (somewhat misleadingly) at one point as the Win32 Driver Model — is a framework for device drivers that was introduced with Windows 98 and Windows 2000 to replace VxD, which was used on older versions of Windows such as Windows 95 and...


Hardware abstraction layer

The Windows 2000 Hardware Abstraction Layer, or HAL, is a layer between the physical hardware of the computer and the rest of the operating system. It was designed to hide differences in hardware and therefore provide a consistent platform on which the kernel is run. The HAL includes hardware-specific code that controls I/O interfaces, interrupt controllers and multiple processors. A hardware abstraction layer (HAL) is an abstraction layer, implemented in software, between the physical hardware of a computer and the software that runs on that computer. ... A Programmable Interrupt Controller (or PIC) is an Intel 8259A chip that controls interrupts. ...


Despite its purpose and designated place within the architecture, though, the HAL isn't a layer that sits entirely below the kernel the way the kernel sits below the Executive: all known HAL implementations depend in some measure on the kernel, or even the Executive. In practice, this means kernel and HAL variants come in matching sets, specifically engineered to work together.


In particular, "hardware abstraction" does not involve abstracting the instruction set, which generally falls under the wider concept of portability. Abstracting the instruction set, when necessary (such as for handling the several revisions to the x86 instruction set, or emulating a missing math coprocessor), is performed by the kernel, or via platform virtualization. In computer science, porting is the adaptation of a piece of software so that it will function in a different computing environment to that for which it was originally written. ... x86 or 80x86 is the generic name of a microprocessor architecture first developed and manufactured by Intel. ... In computing, virtualization is a broad term that refers to the abstraction of computer resources. ...


Notes & references

Notes
  1. ^  (Finnel 2000, Chapter 1: Introduction to Microsoft Windows 2000, pp. 7–18)
  2. ^  (Russinovich 1997, Introduction)
  3. ^  (Russinovich 1997, "Object Types")
  4. ^  (Russinovich 1997, "Objects")
  5. ^  Active Directory Data Storage. Microsoft.
  6. ^  Trustee definition. MSDN.
  7. ^  (Siyan 2000)
  8. ^  ACE definition. MSDN.
  9. ^  (Salomon & Russinovich 2000, pp. 543–551)
  10. ^  Impact of Session 0 Isolation on Services and Drivers in Windows Vista. Microsoft.
References
  • Finnel, Lynn (2000). MCSE Exam 70-215, Microsoft Windows 2000 Server. Microsoft Press. ISBN 1-57231-903-8. 
  • Russinovich, Mark. "Inside NT's Object Manager", Windows IT Pro, October 1997. 
  • Active Directory Data Storage. Microsoft. Retrieved on 2005-05-09.
  • Salomon, David; Russinovich, Mark E. (2000). Inside Microsoft Windows 2000, Third Edition, Microsoft Press. ISBN 0-7356-1021-5. 
  • Siyan, Kanajit S. (2000). Windows 2000 Professional Reference. New Riders. ISBN 0-7357-0952-1. 

Microsoft Press is the publishing arm of Microsoft, usually releasing books dealing with various current Microsoft technologies. ... Wikinews has news related to this article: Sony faces class action lawsuits for DRM Mark Russinovich is a software engineer and writer. ... Year 2005 (MMV) was a common year starting on Saturday (link displays full calendar) of the Gregorian calendar. ... is the 129th day of the year (130th in leap years) in the Gregorian calendar. ...

External links

  • Microsoft's official Windows 2000 site
  • Windows 2000 Plug and Play architecture

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m