Microsoft Corporation to run PCs. Microsoft is an American Company which was founded by Bill Gates and Paul Allen in 1975. Windows provides GUI, virtual memory management , multitasking and support for many devices. History of Windows • MS-DOS (1981) • Windows 1.0 – 2.0 (1985-1992) • Windows 3.0 – 3.1 (1990-1994) • Windows 95 (June 1998) • Windows 98 (June 1998) • Windows NT 3.1 – 4.0 (1993 – 1996) • Windows 2000 (February 2000) • Windows ME – Millennium Edition (Sep 2000) • Windows XP (Oct 2001) • Windows Vista (Nov 2006) • Windows 7 (Oct 2009) • Windows 8 (Aug 2012) • Windows 10 (July 2015) MS-DOS (1981) • Developed by Microsoft for IBM. • A user can interact with this OS only through command prompt. • There are several commands with options are provided for furnishing the computer related tasks. Windows 1.0-2.0 (1985-1992) • Instead of typing MS-DOS commands, Windows 1.0 allowed user to point and click to access the windows. • You can display the contents of electronic folders and files with the click of a mouse button, rather than typing commands and directory paths at a text prompt. Windows 2.0 was designed for the Intel 286 processor (16 – bit microprocessor). This version added desktop icons , keyboard shortcuts and improved graphics support. Windows 3.0 – 3.1 (1990 – 1994) • It allowed better icons , performance and advanced graphics with 16 colors designed for Intel 386 processors. • It supports standard “look and feel” of Microsoft Windows for many years to come. • This included Program Manager , File Manager and Print Manager and games. • Microsoft released Windows 3.1 in 1992 with few changes. Windows 95 (1995) • As the name implies, Windows 95 was arrived in August 1995. • It bought the first ever start button and start menu. • It supported 32 – bit applications. Windows 98 ( June 1998) • Windows 98 bought with it IE 4 (Internet Explorer 4). • It supported a number of new technologies. Windows NT 3.1 – 4.0 (1993-1996) • Windows NT – 32 bit OS that supports multitasking. • It is processor independent , multiprocessing and multi – user OS. • There are two versions of Windows NT : Windows NT Server and Windows NT Workstation. Windows 2000 (February 2000) • It is abbreviated as “W2K”. • Windows 2000 is an operating system for business desktop and laptop systems to run software applications , connect to internet and intranet sites, and access files, printers, and network resources. • There are 4 versions of Windows 2000 : Professional ( for business desktop and laptop systems), Server(both Web Server and an office server), Advanced Server (for line of business applications) and Datacenter Server (for high traffic computer networks). Windows ME – Millennium Edition (Sep 2000) • Windows ME was an update to the Windows 98 core and included some features of the windows 2000 OS . • It also removed the “boot in DOS” option. • This was the last windows to be based on MS- DOS. Windows XP (Oct 2001) • Windows XP is based on Windows 2000 kernel ; giving user a more stable and reliable environment than previous versions of windows. • There are two versions of Windows : Home and Professional. Windows Vista (November 2006) • Windows vista offered an advancement in security , performance , ease of deployment and manageability over Windows XP. • It has capabilities to detect hardware problems before they occur. • Faster start-up time. • Low power consumption. • New sleep state. Windows 7 (October 2009) • Improved performance and start-up time. • It bought with it IE 8 (Internet Explorer 8) and multi-touch support. • Improved security. • It was intended to fix all the problems faced by Vista. Windows 8 (August 2012) • Windows 8 is a completely redesigned OS. • It was designed with touch screen use in mind. • Start up in a matter of seconds rather than in minutes. • Windows 8 replaced traditional “MS-DOS look and feel” with a new “Metro” design system interface. • The Metro user interface consists of “Start screen” and “Live Tiles”. • Windows 8 supports both x86 PCs and ARM processors. Windows 10 ( July 2015) • Fast start up and resume, built in security. • Return of the Start Menu , New task menu , central notification screen, Anti key logging support, advanced search facility and many more features. Programming Windows • Win32 programming subsystem introduced as a part of NTbased system and the modern WinRT that was introduced in Windows 8. • Main feature is NTOS kernel mode program which uses the same system call interface upon which the OS was built on. • It’s not open source. • It has Modern Software Development Kit which includes WinRT API. • The libraries implement high level OS functions that uses inter-process communication using the subsystem. • Calls of subsystem takes place in kernel mode. The Native NT Application Programming Interface • In this API, calls are available to create new kernel mode objects or to access existing ones. • Every call creating or opening an object returns a result called handle to the caller. • Handles are specific to the process that created them. • Following table provides a list of some of the common categories of kernel-mode objects supported by the kernel in Windows: The Win32 Application Programming Interface • The function calls are called as Win32 API. • Most of the functionality of NT APIs is available through the Win32 API. • Some Win32 calls take path names and NT calls use handles. • The table below shows the Win32 API calls and corresponding native NT API calls: The Windows Registry • Windows Registry is used to store information that is necessary to configure the system for one or more users, application, hardware etc. • This includes information such as profiles of each users, apps installed on PC, what type of documents that can be created and so on. • A registry stores a group of keys, subkeys and values in the registry that has a set of supporting files that contains backups of its data. • The supporting files for all except HKEY_CURRENT_USER are in the %SystemRoot%\System32\Config folder on Windows. Operating System Structure • Windows OS is divided into user mode and kernel mode. • The Virtual Memory, also known as virtual RAM, allows hard disk space to be used as if it were additional memory. • The kernel mode in Windows is comprised of the Windows Executive, which includes the Executive Services, the kernel, and the hardware abstraction layer(HAL). Booting Windows • Booting is the process of starting fresh(Cold Booting) or resetting (Warm Booting) the computer. • When you start your PC, BIOS Initialization starts. • Then runs a Power On Self Test (POST) which ends when BIOS detects a valid system disk. • Then reads the Master Boot Record from it and then opens Booting.exe. • This finds and starts Winload.exe which begins the OSloader phase. • It is necessary to update BIOS version and hardware components to keep computer optimized. • OSloader then loads the system registry hive and additional drvies that are marked as BOOT_START into memory. Implementation of the object Manager • The Object Manager is the Executive subsystem,which provides a resource management support infrastructure tht all other NT Executive subsystem is dependent on. • Handles:The handle is an abstraction which hides a real memory address from the API user,allowing the system to reorganize physical memory transparently to the program. • The Object Namespace:To protect named object from unauthorized access,an object namespace is used. Subsystems,DLLs,and User-Mode Services • The subsystems are the way of supporting multiple operating system with the same underlying software in kernal mode. • A second key aspect of the user-mode design of windows is Dynamic link library(DLLs),which is a library that contain code and data that can be used by more than one program at the same time. • The user mode services are not having ability to directly access hardware or reference memory. PROCESSES AND THREADS IN WINDOWS • A process is nothing but an executing program which contains its own independent virtual address sopace with both code and data,protected from other process. • The windows thread is the basic executable unit.Threads are scheduled on the basis of the usual factors such as availability of resource(CPUs and physical memory).
• Jobs and fibres
The jobs are used for resource management as once a process is in a job,all processes threads in those process create will also be in the job. The fibers are created by allocating a stack and a user mode fiber data structure for storing registers and data associated with the fiber.
• Thread pools and user-mode scheduling
The thread pool is a facility that provide a better abstraction for certain types of programs. The implementation of UMS(User-Mode scheduling) has three key elements. 1.User-mode switching 2.Re-entering the user-mode scheduler 3.System-call completion Job,Process,Thread,and fiber Management API Calls • Interprocess Communication(IPC) It allows the exchange of data between processes. • Synchronization Windows provides synchronization mechanisms such as semaphores,mutexes,critical regions ,and events. Implementation of Process aand Threads • MEMORY Virtual Address Allocation MANAGEMENT • Each page of virtual address can be in on of the three states: 1.Invalid 2.Reserved 3.Committed • Pagefiles The backing store to committed pages which are not being mapped to specific files uses the pagefiles. Memory-Management system calls Implementation of Memory Management • Page Fault Handling A page fault is a type of interrupt called trap,raised by computer hardware when a running program accesses a memory page that is mapped into the virtual address space but not actually loaded into main memory. • The Page Replacement Algorithm 1.Lots of memory available 2.Memory Getting Tight 3.Memory is tight • Physical Memory Management When a physical is no longer mapped by the page table in any process it goes onto one of three list: 1.Free 2.Modified 3.Standby