Windows Is A Closed Source Type Computer Science Essay

Published: November 9, 2015 Words: 1900

Windows is a closed source type operating system. In a closed source operating system user doesnt have a right to view source code even with a purchase of commercial license. It is defined as an operating system where it is distributed under license agreements to the users with private modification, copying and redistributing restrictions. Windows XP uses different license types which include:

a) KMS client and Volume MAK:

These are the volume license keys which are not for resale. These keys are issued to the client computers by the organizations. If the computer changes its ownership, the keys cannot be transferred. Microsoft volume system license system allows the clients to buys multiple license products with few physical copies to deal with.

b) OEM SLP and COA SLP:

These keys are issued by the large computer manufacturers where they uses SLP technology I.e. System Locked Pre-installation. With the use of SLP they merge the license to the motherboard with the help of software and the BIOS.

COA SLP keys are printed in a sticker form on the side of computer case (desktops) or bottom case (laptops) and for newer laptops in the battery compartment. It's a key which user enters manually when he needs to activate windows himself.

c) OEM System Builder:

System builder is defined as "an original equipment manufacturer, a refurbisher, an assembler, or a software pre-installer who sells customer system to third party."

http://social.microsoft.com/Forums/en-US/genuinewindows7/thread/44179f86-f8a6-4dc2-8692-b1637e72280b

OEM keys are for smaller clients who provide computer and services to the customers. These keys are not for resale and not transferrable.

d) Retail:

When a customer buys a FPP (Fully packaged product) or a Windows copy from a retail shop or online store he gets a retail license key. User gets a right to transfer the license to different computer to a certain limit.

Linux:

Linux is an open source type operating system which are distributed under the licensing agreement which allows it users and organizations to share, view and modify its source code. Linux is used under GNU GPL ( General Public license) which is the most widely used free license and it give right to the users to study, use, share and modify the software as they want. GPL is a copyleft license which states that all the changes made by the user in Linux Operating system can only be distributed under the license terms as in GPL. General Public license used by Linux had two main disadvantages:

1) One cannot change the license type of that software or remove copyright notice.

2) One has to share the derived work under the same license software under GPL.

Operating system design:

Linux and Windows have different Operating system design concept. Linux uses a monolithic kernel for networking, process control and file system mechanism. It is unique because of its modular nature because of which one can shed away unwanted parts of it. Windows kernel is made of two layers one is kernel and other is user mode.

http://thelinuxdesk.files.wordpress.com/2012/09/hybrid-kernel.pnghttp://thelinuxdesk.files.wordpress.com/2012/09/hybrid-kernel.png

Application tasks are split between programs in the kernel and user mode

Kernel the place where all the applications are located

Process/Thread Management:

In Linux, process is represented by a large structure known as task_struct. The data has all the important information which is needed to represent the process. All the processes are represented in two ways where one is hash table and the other is circular doubly linked list.

Process creation in Linux:

Function hierarchy for process creation

http://www.ibm.com/developerworks/linux/library/l-linux-process-management/index.html

Process scheduling:

Scheduling of the process is done by Linux scheduler.

Process destruction in Linux:

Function hierarchy for process destruction

http://www.ibm.com/developerworks/linux/library/l-linux-process-management/index.html

Windows process management is ulterior with similarities to Linux. In Windows, all the process has their own unique id's with user and group identification's. Process management can regulated in windows automatically and it controls the hardware and control the system. With the help of task manager, one can review all the running process.

Virtual Memory Management:

Virtual Memory is one of the important approach in the context of Memory Management Systems. Virtual Memory works on the idea of creating fallacy of large quantity of memory available for its use. With the use of secondary storage i.e. hard disk the kernel will meet the need of extra space requirements.

For the working of Virtual Memory System, one needs to perform address translation, where virtual address is converted to physical address with the use of mapping function. The address which the applications will use to refer to a memory location will be virtual address and the address where the actual memory location is passed to local memory bus will be physical address. Depending on the kernel its processor architecture and state, the above function will be paging or segmentation or both.

In Windows:

Virtual Memory:

In Windows XP, application programs and system processes which refer virtual memory addresses are automatically changed to RAM or real addresses by the hardware. To use real memory addresses directly, only operating system kernel will bypass this translation. Mapping of real to virtual addresses is maintained by virtual memory management (VMM) of the operating system. There will be a certain amount of RAM used by operating system which cannot be paged out as Virtual Memory Manager so it is not available to be assigned to virtual memory.

Implementation of Virtual memory to per process Virtual address space, has many advantages which includes:

a)Writing of an application becomes easy as developers don't need to worry about the RAM and addresses availability.

b) Applications will not be able to read memory or overwrite other applications making system more secure and robust.

Address Space and Process:

If a process is running under a 32-bit Windows i.e. Windows XP, it gets a fixed virtual memory address which starts from 0 to 4,294,967,295(2*32-1 = 4 GB), which doesn't depend on the RAM which is installed on the computer. This set virtual address space is same for all 32-bit operating system. In the default configuration of Windows XP, 2 GB is set for process private use and other

2 GB for shared and operating system use.

In an address space, only that portion is used by the system and the process which are associated with the page file or with page frame in real memory.

A process is a combination of:

i) executable code

ii) one or more threads of execution

iii) virtual address space

Page replacement:

It is an important part of memory management system, where page replacement where it mainly concentrates on which page needs to be swap out from the memory in need for more free memory. The ideal algorithm for page replacement is to remove the page which is not in any need in distant future by which there will be minimum page faults and minimum wastage of time while swapping, thus improving system performance but it is impossible to implement such an algorithm as it is difficult to know which page is not in need in near future.

Page replacement in Windows:

Windows uses too complicated and sophisticated system for page replacement. Windows for fetching pages uses clustered demand paging and for page replacement it uses clock algorithm.

In cluster demand paging, the need of bringing pages to the memory is when it is required and it brings cluster of 1 to 8 pages at a time which depends on the systems current state.

Five kinds of faults are received by the kernel:

a) Stack needs to grow

b) A protection violation has occurred

c) Committed page reference but unmapped currently

d) Uncommitted page reference

e) Occurrence of protection violation

The list of pages is divided in four lists in Windows:

1) Stand-by page list

2) Modified page list

3) Zeroed page list

4) Free page list

The first list is for the list of clean pages which are associated with a process currently. Modified page list is the list of dirty pages. The zeroed out pages which come in use if needed come under Zeroed list and pages which are not associated with any process comes under Free page list.

Working set manager and daemon threads such as mapped page write, swapper thread and modified page writer handle the transition between these lists.

In Linux:

Each process in Linux has its separate address space which can add up to 4 GB in x86 architecture. Out of which 1 GB is accessible from the kernel mode only and rest 3 GB to be used by both the kernel and user mode. With every context switch lower 3 GB changes and higher 1 GB does not.

Kernel Address Space:

Kernel address space is total of 1 GB and it is shared with every process in the system. In the kernel address space first 896 MB is directly mapped to ZONE_NORMAL and ZONE_DMA. The remaining kernel address space of 128 MB is used for:

https://www.kernel.org/doc/gorman/html/understand/understand-html010.png

Vmalloc represents the physical discontinuous memory in continuing virtual space by the use of address space between VMALLOC_END and VMALLOC_START. The two regions may not be present which depends on physical memory available at the time of boot. Machines should have a memory of minimum 896 MB to have these regions. To map the pages with physical address from ZONE_HIGHMEM machine uses the address space between FIXADDR_START and PKMAP_BASE.

File System Management:

File system management is a system which an operating system uses for organizing and keeping track of files. Windows uses NTFS File System (New Technology File System) but Linux supports many file system

among which few are:

Ext: The first version of Linux OS and was the first Linux file system

Ext2: Richest in features of Linux file system with no support for journaling

Ext3: With all the features of Ext2 with the support for journaling

Ext4: Latest Ext file system, which boasts faster disk performance and improved drive space management and journaling can be tuned off to speed things up

NTFS (New Technology File System): File system used by Microsoft from

Windows NT onwards

NFS (Network File System): Use for sharing file between Linux and UNIX machines

CIFS (Common Internet File System): Use to share files with Windows OS

Windows File system:

It supports NTFS file system which is a different data organization structure. It supports features like encryption, indexing, repair points and quota tracking. It has drive letter to differentiate partitions with C drive which is used to install and boot windows.

Windows vs Linux File System - CIS 301: OS & Server Administration

http://ictom.wetpaint.com/page/Windows+vs+Linux+File+System

Linux File System:

In Linux, commonly used file systems are ext* family and XFS. In linux, everything is a file and others are considered as a process. It has no difference in a file and a directory.

On comparing Linux and Windows in file management system:

Linux uses unified file system way in which it has just one hierarchy directory structure whereas in Windows it has many partitions with directories. Linux is case sensitive and works entirely different concept than Windows file management system. In Linux, everything starts from the main root directory with the representation of '/' and then divides it to sub-directories by mounting it. Linux is bootable from network drive only and has two major partitions which are data partitions and swap partitions. Linux never goes short of memory because of swap partitions. Windows has limited no of tools which are available for file systems whereas, Linux has many UNIX based tools for file systems.