Windows XP History and Versions

Total Page:16

File Type:pdf, Size:1020Kb

Windows XP History and Versions Lecture 23: Windows XP History and Versions n Mid-80ies Microsoft and IBM cooperated to develop OS/2 n Windows XP is produced by Microsoft Co. n 1988 - Microsoft started to develop its own new technology (NT) OS n XP is multi-user, multi-process, preemptive multitasking OS, 30M lines of source code capable of running OS/2, Windows and Unix apps. Hired Dave Cutler - architect of DEC VAX/VMS to head the design n It is developed to support multiple platforms and targeted towards enterprise workstations and server market as well as n NT v. 3.1 first released commercially July 1993 desktops n NT v 4.0 adopted Windows 95 user interface, graphics code moved into kernel to improve performance n In today’s lecture n 2000 – improved networking and laptop support, support for plug-and- u XP’s predecessors, the history of XP design, XP versions play devices, support for more processors (up to 8) and memory, u design principles becomes true multi-user through terminal server u components n XP (released Oct 2001) – update for 2000 replacement for 95/98 F hardware abstraction layer u simplifies user interface, improved reliability, performance F executive improvements, partial 64-bit support F environmental subsystems n versions F file system u desktop: XP personal – 95/98 replacement, professional – advanced features like POSIX support, some network features 1 u server: .NET – support for web/print service, clusters, large memory2 and multiple processors Design goals Components n XP is microkernel-based, modular n security – NT was C-2 certified (US Gov. security classification), extensive code review and testing against defects and n run in protected (kernel) mode attacks u hardware abstraction layer (HAL) - hides hardware differences from n reliability – stringent reliability requirements, automatic and manual upper layers; supports multiprocessors code review and testing, 3d party driver testing and certification, u (micro) kernel - never paged out of memory, the execution is never automatic problem reporting to Microsoft preempted, does thread scheduling and synchronization, interrupts; n compatibility – compatible with apps. for 2000 and 95/98 (special u executive - provides other services - virtual memory management, layer to simulate 98/95), POSIX support for UNIX apps. process management (creating, deleting, using), I/O, local n performance – (non-kernel) thread preemption, optimized locking, procedure call, security reference; A collection of similar services is NUMA and SMP support, kernel-based graphics, optimized I/O, done by a service manager complex caching n run in user mode n extensibility – environmental subsystems, loadable drivers, modular u environmental subsystems – support code written for different design, RPC support platforms) n portability – most OS code is written in C/C++, most processor- u protection subsystems – provide security functions dependent code is isolated in one module (HAL), tested on multiple architectures – Intel IA32/IA64, Athlon K6/7, DEC Alpha 3 4 XP structure Hardware Abstraction Layer (HAL) n Low-level module that translates low-level OS functions into hardware behaviors n Comes as a library of functions (HAL.DLL) that are called by other parts of kernel n example u to install interrupt handler OS calls HAL’s function which knows where on this architecture the interrupt table is located and puts a reference to the handler in the table n HAL provides a fixed set specified set of services that is hardware independent. n Easy OS porting - only HAL needs to be written for the new architecture n I/O (and graphics) drivers bypass HAL for performance reasons 5 6 Kernel Kernel (cont.) n Does: thread scheduling, interrupt and exception handling, n synchronization – provides access to mutexes (locks), processor synchronization, recovery after power-failure semaphores as objects n never preempted or paged out n trap (software interrupt) processing n object-oriented - events, threads, interrupts, semaphores, etc. are u asynchronous procedure calls (APC) – “breaks” into an executing objects thread and calls a procedure; used to start new thread execution, terminate process, deliver notification of asynchronous I/O n scheduling: completion u supports real-time applications u u 32-level priority feedback queues divided into 2 classes deferred procedure calls (DPC) – to carry out more extended work than an interrupt service routine (ISR) can do, (to defer the F real-time (16-31) processing), can be scheduled in the context of any processor F variable (0-15) n exceptions and interrupt handling u higher priority threads can preempt lower priority ones u u supports processor affinity for a thread – if a thread is ready to run exceptions (memory-access violation, integer overflow, divide by but the process is not available, the thread is skipped zero, etc.) – in kernel mode: look for handler, if none – fatal system u feedback queues: error; in user: check with environmental sybsystem to see if handler is installed F at the end of time quantum the preempted thread’s priority is lowered (what’s the name of the technique?) u hardware interrupts are abstracted by HAL and mapped into F after the I/O completion the thread’s priority is boosted (?); more standard set (for portability) for mouse and keyboard, less for disk (better response for F per processor interrupt dispatch table is consulted to find an ISR interactive apps.) for each iterrupt 7 8 Executive Virtual memory manager (VM) n contains a number of components: object manager, virtual memory manager, process manager, I/O manager, n part of Executive cache manager, etc. n uses demand paging (page size is 4K on 32-bit processors, and 8K on n object manager: 64bit ones) u maintains OS constructs in the form of objects: n backing store is a paging file on disk F examples: file object, disk object, thread object, process object n 32 bit addresses create 4G user address space u keeps track of what thread is using what object, when object is not u upper 2G - process address space used - destroys it, when new is needed - creates it u lower 2G - identical to all processes, maps to kernel, can be used u provides standard methods of object access (open/close/create…) for shared memory, files in memory, cache u implements security - if thread authorized to access object? u XP can can do quotas on memory usage n VM uses per-process FIFO page replacement policy n maintains working set per process - starts with default 50 pages and decreases/increases as necessary n VM replaces or trims (removes from working set) pages according to their age (estimated in the number of trimming cycles) n VM pre-fetches continuous pages on page-fault to exploit locality of 9 reference 10 I/O manager Environmental subsystems n XP is capable of running application written for different n part of Executive platforms due to environmental subsystems n responsible for file system, cache management, device drivers and n an environmental subsystem emulates the system calls and other network drivers platform-dependent peculiarities of the applications n caching: n environmental subsystems u does caching centrally rather than as part of file-system u dos virtual machine (DVM) allows dos applications to run. XP uses implementation (Unix) 32 bits for memory addresses, DOS uses 16, DVM provides the u cache size can change depending on the amount of free space in translation, multiple DVMs may be running at the same time DOS the system applications running on one DVM do not affect dos applications on u can be mapped directly to process address space another u u breaks cache into 256KB blocks, maintains virtual-address control OS/2 subsystem - runs OS/2 programs bloc (VACB) for each block u POSIX system - runs Unix applications, enforces Unix-like u VACB stores which (and how many) treads are using the block (cf. permissions on directories Unix file handles) u Win32 subsystem - runs Win32 (32 bits for memory address) u cache manager patterns previous three requests and can pre-fetch “native” XP applications, Win32 also manages all keyboard, mouse the data if it guesses the pattern and screen I/O n has a devices stack (STREAMS – like) mechanism to simplify driver development and to incorporate third-party drivers 12 13 NT file system (NTFS) Security subsystem n FAT used in DOS has several shortcomings - 2G limit, lack of access protection for files, etc. n Provides uniform access control facility that applies to n NTFS rather than Unix file system or FAT treats each file as an object processes, files, semaphores, windows, etc. (rather than a byte-stream) with it’s attributes. n when user logins the first process the user creates is given n Master file table (MFT) - i-node equivalent, 1-4K an access token u may store data within MFT if file is small n access token indicates which privileges a user may have u data is placed in continuous portions of disk, MFT stores references n child processes inherit parent access token to portions n each object for which interprocess access is possible has security u if file is highly fragmented - single level indirection is used descriptor n directory stores a copy the I-node like info from MFT and maintains B+ tree for directory entries n security descriptor’s main component - access control list - specifies what users /user groups and in what ways can access object n NTFS provides n when process tries to access object the process’ access token is u data compression (the data can be compressed as it is written on disk so as to occupy less space) matched against the access control list of the object’s security descriptor to check if access is allowed u logging - rather than writing directly onto the file system NTFS writes into a log which is then flushed into a file-system periodically at n if access allowed XP caches the resulting access rights checkpoints; in case of system failure the correct state of the file system can be restored based on the information from the log u complex and flexible security protection for every file and directory14 15.
Recommended publications
  • A Survey on Architectures of Mobile Operating Systems: Challenges and Issues
    International Journal of Research Studies in Computer Science and Engineering (IJRSCSE) Volume 2, Issue 3, March 2015, PP 73-76 ISSN 2349-4840 (Print) & ISSN 2349-4859 (Online) www.arcjournals.org A Survey on Architectures of Mobile Operating Systems: Challenges and Issues Prof. Y. K. Sundara Krishna1 HOD, Dept. of Computer Science, Krishna University Mr. G K Mohan Devarakonda2 Research Scholar, Krishna University Abstract: In the early years of mobile evolution, Discontinued Platforms Current mobile devices are enabled only with voice services Platforms that allow the users to communicate with each other. Symbian OS Android But now a days, the mobile technology undergone Palm OS IOS various changes to a great extent so that the devices Maemo OS Windows Phone allows the users not only to communicate but also to Meego OS Firefox OS attain a variety of services such as video calls, faster Black Berry OS browsing services,2d and 3d games, Camera, 2.1 Symbian OS: This Operating system was Banking Services, GPS services, File sharing developed by NOKIA. services, Tracking Services, M-Commerce and so many. The changes in mobile technology may be due Architecture: to Operating System or Hardware or Network or Memory. This paper presents a survey on evolutions SYMBIAN OS GUI Library in mobile developments especially on mobile operating system Architectures, challenges and Issues in various mobile operating Systems. Application Engines JAVA VM 1. INTRODUCTION Servers (Operating System Services) A Mobile operating system is a System Software that is specifically designed to run on handheld devices Symbian OS Base (File Server, Kernel) such as Mobile Phones, PDA’s.
    [Show full text]
  • Illustrated Tutorial: Creating a Bootable USB Flash Drive for Windows XP
    Illustrated tutorial: Creating a bootable Version 1.0 February 15, 2007 USB flash drive for Windows XP By Greg Shultz The ability to boot Windows XP from a USB Flash Drive (UFD) offers endless possibilities. For example, you might make an easy-to-use troubleshooting tool for booting and analyzing seemingly dead PCs. Or you could transport your favorite applications back and forth from home to work without having to install them on both PCs. However, before you can create a bootable UFD, you must clear a few hurdles. You saw that one coming didn’t you? The first hurdle is having a PC in which the BIOS will allow you to configure the USB port to act as a bootable device. The second hurdle is having a UFD that that will work as a bootable device and that’s large enough and fast enough to boot an operating system such as Windows XP. The third hurdle is finding a way to condense and install Windows XP on a UFD. If you have a PC that was manufactured in the last several years, chances are that its BIOS will allow you to configure the USB port to act as a bootable device. If you have a good qual- ity UFD that’s at least 512 KB and that was manufactured in the last couple of years, you’ve probably cleared the second hurdle. And once you’ve cleared those first two hur- dles, the third one is a piece of cake. All you have to do is download and run some free soft- ware to create the bootable UFD.
    [Show full text]
  • Windows NT Architecture Previous Screen Gilbert Held Payoff Windows NT Is a Sophisticated Operating System for Workstations and Network Servers
    50-30-19 Windows NT Architecture Previous screen Gilbert Held Payoff Windows NT is a sophisticated operating system for workstations and network servers. This article helps network managers to understand the communications capability of workstations and servers running on Windows NT, and data base administrators to determine the suitability of this platform for a structured query language (SQL) data base server. Introduction Windows NT is a 32-bit, preemptive multitasking operating system that includes comprehensive networking capabilities and several levels of security. Microsoft markets two version of Windows NT: one for workstations—appropriately named Windows NT Workstation—and a second for servers—Windows NT Server. This article, which describes the workings of the NT architecture, collectively references both versions as Windows NT when information is applicable to both versions of the operating system. Similarly, it references a specific version of the operating system when the information presented is specific to either Windows NT Workstation or Windows NT Server. Architecture Windows NT consists of nine basic modules. The relationship of those modules to one another, as well as to the hardware platform on which the operating system runs, is illustrated in Exhibit 1. Windows NT Core Modules Hardware Abstraction Layer The hardware abstraction layer (HAL) is located directly above the hardware on which Windows NT operates. HAL actually represents a software module developed by hardware manufacturers that is bundled into Windows NT to allow it to operate on a specific hardware platform, such as Intel X86, DEC Alpha, or IBM PowerPC. HAL hides the specifics of the hardware platform from the rest of the operating system and represents the lowest level of Windows NT.
    [Show full text]
  • Mobile Systems
    CS 318 Principles of Operating Systems Fall 2017 Lecture 21: Mobile Systems Ryan Huang 11/30/17 CS 318 – Lecture 21 – Mobile Systems 2 Apply the security update immedidately! CS 318 – Lecture 21 – Mobile Systems Administrivia • Lab 4 deadline one week away • Groups of 2 students receive 2-day extra late hour • Groups of 3 students with 1 318 section student receive 1-day extra late-hour • Please, please don’t cheat • Homework 5 is released 11/30/17 CS 318 – Lecture 21 – Mobile Systems 4 Mobile Devices Become Ubiquitous Worldwide Devices Shipments by Device Type (Millions of Units) 3000 2500 2000 1500 1806.96 1879 1910 1959 1000 500 Google Nexus 6P 209.79 226 196 195 296.13 277 246 232 0 2013 2014 2015 2016 Traditional PCs Ultramobiles (Premium) Ultramobiles (Basic and Utility) Mobile Phones 5 History of Mobile OS (1) • Early “smart” devices are PDAs (touchscreen, Internet) • Symbian, first modern mobile OS - released in 2000 - run in Ericsson R380, the first ‘smartphone’ (mobile phone + PDA) - only support proprietary programs 11/30/17 CS 318 – Lecture 21 – Mobile Systems 6 History of Mobile OS (2) • Many smartphone and mobile OSes followed up - Kyocera 6035 running Palm OS (2001) • 8 MB non-expandable memory - Windows CE (2002) - Blackberry (2002) • was a prominent vendor • known for secure communications - Moto Q (2005) - Nokia N70 (2005) • 2-megapixel camera, bluetooth • 32 MB memory • Symbian OS • Java games 11/30/17 CS 318 – Lecture 21 – Mobile Systems 7 One More Thing… • Introduction of iPhone (2007) - revolutionize the smartphone industry - 4GB flash memory, 128 MB DRAM, multi-touch interface - runs iOS, initially only proprietary apps - App Store opened in 2008, allow third party apps 11/30/17 CS 318 – Lecture 21 – Mobile Systems 8 Android – An Unexpected Rival of iPhone • Android Inc.
    [Show full text]
  • A Hardware Abstraction Layer in Java
    A Hardware Abstraction Layer in Java MARTIN SCHOEBERL Vienna University of Technology, Austria STEPHAN KORSHOLM Aalborg University, Denmark TOMAS KALIBERA Purdue University, USA and ANDERS P. RAVN Aalborg University, Denmark Embedded systems use specialized hardware devices to interact with their environment, and since they have to be dependable, it is attractive to use a modern, type-safe programming language like Java to develop programs for them. Standard Java, as a platform independent language, delegates access to devices, direct memory access, and interrupt handling to some underlying operating system or kernel, but in the embedded systems domain resources are scarce and a Java virtual machine (JVM) without an underlying middleware is an attractive architecture. The contribution of this paper is a proposal for Java packages with hardware objects and interrupt handlers that interface to such a JVM. We provide implementations of the proposal directly in hardware, as extensions of standard interpreters, and finally with an operating system middleware. The latter solution is mainly seen as a migration path allowing Java programs to coexist with legacy system components. An important aspect of the proposal is that it is compatible with the Real-Time Specification for Java (RTSJ). Categories and Subject Descriptors: D.4.7 [Operating Systems]: Organization and Design—Real-time sys- tems and embedded systems; D.3.3 [Programming Languages]: Language Classifications—Object-oriented languages; D.3.3 [Programming Languages]: Language Constructs and Features—Input/output General Terms: Languages, Design, Implementation Additional Key Words and Phrases: Device driver, embedded system, Java, Java virtual machine 1. INTRODUCTION When developing software for an embedded system, for instance an instrument, it is nec- essary to control specialized hardware devices, for instance a heating element or an inter- ferometer mirror.
    [Show full text]
  • Operating Systems Principles Design and Implementation Policies And
    Betriebssysteme ws2000/2001 Operating Systems Principles Design and Implementation Policies and Mechanisms S 2004 CS325 1 Textbook: L.Bic and A.C Shaw: "Operating Systems Principles" Other references: • A.S. Tanenbaum, „Modern Operating Systems“, Prentice-Hall • Other references – see web site: cs.nmt.edu/~cs325 S 2004 CS325 2 Prof. H. D. Clausen 1 Betriebssysteme ws2000/2001 Simple hardware configuration control CPU data addres s controller controller main memory device_1 device_2 user IO subsystem S 2004 CS325 3 Typical hardware configuration main CPU memory IOC IOC/PPU controller controller controller controller device device device S 2004 CS325 4 Prof. H. D. Clausen 2 Betriebssysteme ws2000/2001 Processor performance This chart plots relative performance as measured by the SPECint benchmarks with base of one being a VAX 11/780. S 2004 CS325 5 Memory cost Prices of DRAMs (from 16K bits to 64M bits) over time in 1977 dollars. S 2004 CS325 6 Prof. H. D. Clausen 3 Betriebssysteme ws2000/2001 API application program application support API SVC SysCall systems programs kernel programs SW CISC driver programs RISC HW S 2004 CS325 7 Principle of abstraction • Higher-level function: – Read( file, logical_block, main_memory ) • Lower-level functions – Calculate position of logical_block on the disk; – Move Read/Write head to corresponding track; – Check for „seek“ errors; – Read physical block; – Check for „read“ errors; – Copy block to main_memory; S 2004 CS325 8 Prof. H. D. Clausen 4 Betriebssysteme ws2000/2001 Principle of abstraction extended
    [Show full text]
  • No More Excuses: Windows 7 Makes It Easy to Manage Computer Power
    • Products that earn the ENERGY STAR® prevent greenhouse gas emissions by meeting strict energy efficiency guidelines set by the U.S. Environmental Protection Agency and the U.S. Department of Energy. www.energy star.gov NO MORE EXCUSES: WINDOWS 7 MAKES IT EASY TO MANAGE COMPUTER POWER CONSUMPTION ORGANIZATION-WIDE Here’s how you can take advantage of Windows 7’s new power management features The University of Wisconsin at Oshkosh is no stranger to the idea of sustainability. In 2003 it became the first university in the state to join the Environmental Protection Agency’s Green Power Partnership. Its green initiatives also earned the university high marks from the Sierra Club, which ranked the university nationally in its Cool Schools survey. Given this commitment to green, it’s no surprise that the university first deployed computer power management back in 2005, and that it was one of the first Energy Star power management success stories. At that time, the University’s computers ran the Windows XP and Windows 2000 operating systems, neither of which included native tools for the central administration of power management features. To implement power management settings on these machines, the University used third-party software from ENERGY STAR called EZ GPO. For detailed information and resources concerning Now that Windows 7 has CPM client management features built in, it’s much the power management of easier to administer power management. This case study will show you how the University of Wisconsin at Oshkosh took full advantage of computer power PCs running Windows XP, management features on Windows Vista and Windows 7 clients managed by please see the ENERGY STAR Windows Server 2008.
    [Show full text]
  • Modeling of Hardware and Software for Specifying Hardware Abstraction
    Modeling of Hardware and Software for specifying Hardware Abstraction Layers Yves Bernard, Cédric Gava, Cédrik Besseyre, Bertrand Crouzet, Laurent Marliere, Pierre Moreau, Samuel Rochet To cite this version: Yves Bernard, Cédric Gava, Cédrik Besseyre, Bertrand Crouzet, Laurent Marliere, et al.. Modeling of Hardware and Software for specifying Hardware Abstraction Layers. Embedded Real Time Software and Systems (ERTS2014), Feb 2014, Toulouse, France. hal-02272457 HAL Id: hal-02272457 https://hal.archives-ouvertes.fr/hal-02272457 Submitted on 27 Aug 2019 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Modeling of Hardware and Software for specifying Hardware Abstraction Layers Yves BERNARD1, Cédric GAVA2, Cédrik BESSEYRE1, Bertrand CROUZET1, Laurent MARLIERE1, Pierre MOREAU1, Samuel ROCHET2 (1) Airbus Operations SAS (2) Subcontractor for Airbus Operations SAS Abstract In this paper we describe a practical approach for modeling low level interfaces between software and hardware parts based on SysML operations. This method is intended to be applied for the development of drivers involved on what is classically called the “hardware abstraction layer” or the “basic software” which provide high level services for resources management on the top of a bare hardware platform.
    [Show full text]
  • Flexible Hardware Abstraction for Wireless Sensor Networks
    Flexible Hardware Abstraction for Wireless Sensor Networks Vlado Handziski∗, Joseph Polastrey, Jan-Hinrich Hauer∗, Cory Sharpy, Adam Wolisz∗ and David Cullery ∗Technische Universitat¨ Berlin; Telecommunication Networks Group Sekr. FT 5, Einsteinufer 25, 10587 Berlin, GERMANY yUniversity of California, Berkeley; Computer Science Department Berkeley, CA 94720 US Abstract— We present a flexible Hardware Abstraction Our analysis of several embedded and general- Architecture (HAA) that balances conflicting requirements purpose operating systems (eCos [1], WindowsCE [2], of Wireless Sensor Networks (WSNs) applications and the NetBSD [3] and Linux[4]) that have mature hardware ab- desire for increased portability and streamlined develop- straction architectures has shown us that existing designs ment of applications. Our three-layer design gradually are poorly suited to the flexible abstraction required by adapts the capabilities of the underlying hardware plat- forms to the selected platform-independent hardware inter- WSNs. Their interfaces are rigid and expose the capa- face between the operating system core and the application bilities of the hardware at a single level of abstraction, code. At the same time, it allows the applications to utilize preventing an application from taking full advantage of a platform’s full capabilities – exported at the second layer, the hardware’s capabilities when needed. when the performance requirements outweigh the need for Thus, we need a better Hardware Abstraction Archi- cross-platform compatibility. We demonstrate the practical tecture (HAA) that can strike a balance between the value of our approach by presenting how it can be applied two conflicting goals that are present in the WSNs to the most important hardware modules that are found context.
    [Show full text]
  • Upgrading to Windows 7
    Upgrading to Windows 7 Windows 7 was designed to upgrade from Windows Vista and not from Windows XP. Additionally, Microsoft will only allow the following upgrade path to Vista users: • Windows Vista Home Premium to Windows 7 Home Premium • Windows Vista Business to Windows 7 Professional • Windows Vista Enterprise to Windows 7 Enterprise • Windows Vista Ultimate to Windows 7 Ultimate ***Any other upgrade path from Vista to Windows 7 will require a clean install*** ***Any upgrade from Windows XP to Windows 7 will require a clean install*** Before proceeding with an installation of Windows 7, you are strongly advised to run Windows 7 Upgrade Advisor. Windows 7 Upgrade Advisor will check the compatibility of your computer with Windows 7 and alert you to any issues that you should address before installing Windows 7. The download is available at http://www.microsoft.com/windows/windows‐7/get/upgrade‐advisor.aspx. 1. From the Microsoft website click on Download the Windows Upgrade Advisor Beta. 2. Click Download and then click Run. 3. A window will display that says “Do you want to run this software?” Click Run. 4. On the Setup Wizard screen, click Next. 5. Click I accept the license terms and click Next. 6. Click Install. When installation is complete, click Close. 7. When you see the screen below, click Start Check. 8. Windows Upgrade Advisor will start checking compatibility. 9. Once the scan is complete, Upgrade Advisor will display any issues that you should be aware of. 10. Click Close to exit Windows Upgrade Advisor. You will be unable to do an in-place upgrade in the following situations: 1.
    [Show full text]
  • Unifying the User and Kernel Environments
    Unifying the User and Kernel Environments Richard P. Draves Scott M. Cutshall March 12, 1997 Technical Report MSR-TR-97-10 Microsoft Research Microsoft Corporation One Microsoft Way Redmond, WA 98052 Unifying the User and Kernel Environments Richard P. Draves and Scott M. Cutshall Microsoft Research One Microsoft Way Redmond, WA 98052 http://www.research.microsoft.com Abstract Vendors of commercial operating systems today invest resources in two very different environments—one for user- level (application or server) programming and one for kernel-level (device driver or subsystem) programming. The kernel environment is typically more restrictive, with completely different interfaces and programming conventions. Based on our experience developing and deploying an operating system for an interactive TV system, we believe that it is desirable to unify the user and kernel environments. We structured our operating system to provide common programming and run-time environments for user-level code and kernel-level code. For example, modules loaded into the kernel did not have any restrictions on their use of shared libraries or stack space. We found that unifying the user and kernel environments with common interfaces and run-time requirements, common documentation, and a common debugger produced significant software-engineering benefits. In addition, we could transparently collocate trusted server code in the kernel to reduce memory usage and improve performance. 1. Introduction We advocate structuring operating systems to unify the user and kernel environments. The operating system should present a single environment, with common interfaces or APIs, common run-time characteristics for scheduling, paging, stack usage, and shared libraries, common debugger and development tools, etc.
    [Show full text]
  • Microsoft® Windows® XP Professional, Microsoft® Windows
    Microsoft Windows XP Professional, Microsoft Windows XP Tablet PC Edition and Microsoft® Windows® XP Media Center Edition 2004 END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE IMPORTANT—READ CAREFULLY: This End-User License Agreement (“EULA”) is a legal agreement between you (either an individual or a single entity) and the manufacturer ("Manufacturer") of the computer system or computer system component (“HARDWARE”) with which you acquired the Microsoft software product(s) identified on the Certificate of Authenticity ("COA") affixed to the HARDWARE or on the associated product documentation (“SOFTWARE”). The SOFTWARE includes Microsoft computer software, and may include associated media, printed materials, “online” or electronic documentation, and Internet based services. Note, however, that any software, documentation, or web services that are included in the SOFTWARE, or accessible via the SOFTWARE, and are accompanied by their own license agreements or terms of use are governed by such agreements rather than this EULA. The terms of a printed paper EULA, which may accompany the SOFTWARE, supersede the terms of any on-screen EULA. This EULA is valid and grants the end-user rights ONLY if the SOFTWARE is genuine and a genuine Certificate of Authenticity for the SOFTWARE is included. For more information on identifying whether your software is genuine, please see http://www.microsoft.com/piracy/howtotell. YOU AGREE TO BE BOUND BY THE TERMS OF THIS EULA BY INSTALLING, COPYING, OR OTHERWISE USING THE SOFTWARE. IF YOU DO NOT AGREE TO THE TERMS OF THIS EULA, YOU MAY NOT USE OR COPY THE SOFTWARE, AND YOU SHOULD PROMPTLY CONTACT MANUFACTURER FOR INSTRUCTIONS ON RETURN OF THE UNUSED PRODUCT(S) FOR A REFUND IN ACCORDANCE WITH MANUFACTURER’S RETURN POLICIES.
    [Show full text]