history of ms windows 9x and beyond william g. tanner, jr., phd

18
History of MS Windows History of MS Windows 9X 9X and Beyond and Beyond William G. Tanner, Jr., PhD William G. Tanner, Jr., PhD

Upload: vanessa-freeman

Post on 01-Jan-2016

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

History of MS Windows 9XHistory of MS Windows 9Xand Beyondand Beyond

William G. Tanner, Jr., PhDWilliam G. Tanner, Jr., PhD

Page 2: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Virtual Machine ManagementVirtual Machine Management32-bit Windows applications are preemptively scheduled within each process32-bit Windows applications are preemptively scheduled within each process

New system primitives related to preemptive scheduling environment New system primitives related to preemptive scheduling environment available for Virtual Drivers (VxDs).available for Virtual Drivers (VxDs).

VxDs can be dynamically loaded and paged with reduced working space.VxDs can be dynamically loaded and paged with reduced working space.

Each 32-bit application obtains private message queue means no more Each 32-bit application obtains private message queue means no more possible lockup of system.possible lockup of system.

Uses same two basic VM of Windows 3.11 in which Windows Kernel, User and Uses same two basic VM of Windows 3.11 in which Windows Kernel, User and GDI components run.GDI components run.

MS-DOS VMs remain simple applications in Virtual 8086 and Protected ModeMS-DOS VMs remain simple applications in Virtual 8086 and Protected Mode

MS-DOS still alive and well and living inside Windows 95MS-DOS still alive and well and living inside Windows 95

Page 3: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Virtual SchedulingVirtual SchedulingWin95 introduces “threads,” a basic unit of Win95 introduces “threads,” a basic unit of scheduling.scheduling.A Thread is:A Thread is:– An execution path within a processAn execution path within a process– can be created by any 32-bit Win95 application can be created by any 32-bit Win95 application

or VxD running on Win95or VxD running on Win95– has its own private stack storage and has its own private stack storage and

execution context (process request)execution context (process request)– shares the memory allocated to the parentshares the memory allocated to the parent– can be one of many concurrent threads can be one of many concurrent threads

created by a single process.created by a single process.

Page 4: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

The Win32 SubsystemThe Win32 SubsystemKERNAL32.DLL -- API entry points and 32-KERNAL32.DLL -- API entry points and 32-bit Windows Kernel functionsbit Windows Kernel functions

GDI32.DLL -- API entry points and support GDI32.DLL -- API entry points and support 32-bit Windows graphics functions32-bit Windows graphics functions

USER32.DLL -- API entry points and 32-bit USER32.DLL -- API entry points and 32-bit Windows Management functionsWindows Management functions

VWIN32.386 -- contains a VxD to load VWIN32.386 -- contains a VxD to load other 32-bit DLA.other 32-bit DLA.

Page 5: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Reasons for revision of Windows Reasons for revision of Windows (must be compelling)(must be compelling)

Create a Document-Centric Interface - concerned Create a Document-Centric Interface - concerned only with the creation and maintenance of only with the creation and maintenance of “documents.”“documents.”Object Linked and Embedded (OLE) has laid the Object Linked and Embedded (OLE) has laid the foundation for much of this type of activity and foundation for much of this type of activity and thinking.thinking.Fix the bugs existing in the Win 3.x products and Fix the bugs existing in the Win 3.x products and especially those which affect the GUI.especially those which affect the GUI.The goal is to make Win95 easy for users and the The goal is to make Win95 easy for users and the desire to attract more new users to the Windows desire to attract more new users to the Windows platform warranted a major effort to eliminate platform warranted a major effort to eliminate these problems.these problems.

Page 6: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Criticisms of Windows 3.xCriticisms of Windows 3.xAssociation with a program and a file perceived to be overly Association with a program and a file perceived to be overly cumbersome (and that is being overly kind).cumbersome (and that is being overly kind).““Clueless” users would remain so if all that was available Clueless” users would remain so if all that was available was default windows.was default windows.Application Icon appear on desktop only when running or in Application Icon appear on desktop only when running or in Program Manager.Program Manager.Confusion between the proper method to remove an Icon Confusion between the proper method to remove an Icon from the Program Manager; not effective if one only from the Program Manager; not effective if one only removes the Alias for the program, i.e. its Icon.removes the Alias for the program, i.e. its Icon.Copy and Move operations are obscure to an average userCopy and Move operations are obscure to an average userShort filenames pose a real hassle for the user and should Short filenames pose a real hassle for the user and should be augmented.be augmented.Task Manager also in the mix in a most disconcerting way Task Manager also in the mix in a most disconcerting way this component commands yet another shell like function of this component commands yet another shell like function of a well-connected shell program.a well-connected shell program.

Page 7: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Concepts Guiding the New User InterfaceConcepts Guiding the New User Interface

Visual Design Expertise has been brought Visual Design Expertise has been brought to bear on all Microsoft Productsto bear on all Microsoft Products

Mission has been to make all MS Mission has been to make all MS applications appear and behave in a applications appear and behave in a similar fashion so that if a user knows one similar fashion so that if a user knows one product then the learning curve for product then the learning curve for another will not be so steep.another will not be so steep.

Win95 has greatly benefited from the Win95 has greatly benefited from the efforts of the Design Team.efforts of the Design Team.

Page 8: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Document-Centric InformationDocument-Centric Information

Document-Centric derives from the desire to Document-Centric derives from the desire to implement full-functional object-oriented implement full-functional object-oriented concepts in current applications and program concepts in current applications and program packages, windows included.packages, windows included.OLE has introduced the concept of a compound OLE has introduced the concept of a compound document where many different types of data can document where many different types of data can be held and edited within a single document.be held and edited within a single document.Double clicking on an item launches the Double clicking on an item launches the application from within the object which has been application from within the object which has been linked and embedded in another document type. linked and embedded in another document type.

Page 9: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Concentration on the new and Concentration on the new and different features of Win9x.different features of Win9x.

Win32 API implementation in Win9xWin32 API implementation in Win9x

Enhancements in User - the Windows Enhancements in User - the Windows management Subsystemmanagement Subsystem

Improvements to GDI and the Improvements to GDI and the associated graphical device associated graphical device subsystems in control of display and subsystems in control of display and printersprinters

Page 10: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Win32 API Win32 API (Application Programming Interface)(Application Programming Interface)

By and large compatible with Win 3.1 API - the By and large compatible with Win 3.1 API - the real measure of success for Win95real measure of success for Win95Win95 implementation will be the de facto Win95 implementation will be the de facto standard of all Win32 applications due sheer standard of all Win32 applications due sheer numbersnumbersAPIs missing in Win95, but present in WinNT are APIs missing in Win95, but present in WinNT are largely those dealing with security measures.largely those dealing with security measures.WinNT will maintain its role as the sole full WinNT will maintain its role as the sole full implementation of Win32.implementation of Win32.Win95 will never have a non-Intel processor Win95 will never have a non-Intel processor implementation of Win32: Only WinNT will run implementation of Win32: Only WinNT will run applications compiled from other processors.applications compiled from other processors.

Page 11: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Goals of Win32Goals of Win32 MS-DOS, Win3.1, OS/2 have all been swept MS-DOS, Win3.1, OS/2 have all been swept away ... enter Win32;away ... enter Win32;Broad Support - make 16-bit applications Broad Support - make 16-bit applications compatible with 32-bit APIcompatible with 32-bit APIPortability - WinNT designed to port to RISC, but Portability - WinNT designed to port to RISC, but never mind Win32 is the API of choice for Win95.never mind Win32 is the API of choice for Win95.Room for growth - extend to new technologies Room for growth - extend to new technologies without modifications to exiting interface.without modifications to exiting interface.Scalability - WinNT supports multiprocessors, Scalability - WinNT supports multiprocessors, Win95 will support multiprocessors, but most Win95 will support multiprocessors, but most likely will not be used often to do so.likely will not be used often to do so.

Page 12: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Win9x APIs are the major Win9x APIs are the major extensions of the 3 modules:extensions of the 3 modules:

OLE - most important extensions of core codeOLE - most important extensions of core codeControls - standard interface previously describedControls - standard interface previously describedCommon Dialogs - Shared by all applicationsCommon Dialogs - Shared by all applicationsDecompression - necessary only during installation of softwareDecompression - necessary only during installation of softwareDDE - Dynamic Data Exchange - OLE should replace this one soonDDE - Dynamic Data Exchange - OLE should replace this one soonRPC - Remote Procedure Calls - distributed application RPC - Remote Procedure Calls - distributed application developmentdevelopmentSockets - WinSock interface; best hope for a non-RPC network Sockets - WinSock interface; best hope for a non-RPC network application developmentapplication developmentNetworking - Net specific APIs outside the RPC and socket Networking - Net specific APIs outside the RPC and socket interfacesinterfacesCommunications - Email and Network AccessCommunications - Email and Network AccessShell - a set of APIs to enhance shell’s capabilities through Shell - a set of APIs to enhance shell’s capabilities through installable itemsinstallable itemsMultimedia - largest single set of extensions in Win32Multimedia - largest single set of extensions in Win32Pen - Support for pen-based applicationsPen - Support for pen-based applications

Page 13: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Win32 on Win9xWin32 on Win9x

What WinNT implements but Win9x does not:What WinNT implements but Win9x does not:

– Security APIs - must use NTFS file system since FAT has been proven Security APIs - must use NTFS file system since FAT has been proven to be non-secureto be non-secure

– Console APIs - Win95 supports only a single console - WinNT multiple Console APIs - Win95 supports only a single console - WinNT multiple console support (XWindows)console support (XWindows)

– 32-bit Coordinate system - requires full 32-bit GDI which MicroSoft did 32-bit Coordinate system - requires full 32-bit GDI which MicroSoft did not include in Win95not include in Win95

– Unicode APIs - Win95 retains ANSI character set and does not support Unicode APIs - Win95 retains ANSI character set and does not support Win32 Unicode APIs (with only some very obscure exceptions).Win32 Unicode APIs (with only some very obscure exceptions).

– Server APIs - Major difference in endpoint “mapper” and locator Server APIs - Major difference in endpoint “mapper” and locator functionsfunctions

– Event Logging - Win95 does not support Win32 event logging APIsEvent Logging - Win95 does not support Win32 event logging APIs

Page 14: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Memory ManagementMemory Management

Huge flat 32-bit address spaceHuge flat 32-bit address space

Protection for each Win32 address of Protection for each Win32 address of applicationapplication

““Handles” of applications cannot be Handles” of applications cannot be passed on to other applicationspassed on to other applications

Sharing memory through APIsSharing memory through APIs

Page 15: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Structure of the Installable Structure of the Installable Filesystem ManagerFilesystem Manager

IFS ManagerIFS Manager - highest layer, a single VxD - highest layer, a single VxD interface between applications and a specific file interface between applications and a specific file system. Accepts both Win32 API calls and Win16 system. Accepts both Win32 API calls and Win16 or MS-DOS INT 21h calls.or MS-DOS INT 21h calls.VFATVFAT - - file system layer, protected mode file system layer, protected mode implementation of the FAT file system. Example implementation of the FAT file system. Example of a filesystem driver or FSD which can execute of a filesystem driver or FSD which can execute requests by the IFS manager on behalf of requests by the IFS manager on behalf of application. (Win32)application. (Win32)CDFS CDFS – file system layer, protected mode – file system layer, protected mode implementation of ISO 9660 - CD ROM file implementation of ISO 9660 - CD ROM file system. Replaces the real mode MSCDEX TSR system. Replaces the real mode MSCDEX TSR used in Win3.xx to support CD ROM file systems.used in Win3.xx to support CD ROM file systems.

Page 16: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Long Filename SupportLong Filename SupportThe compatibility requirements Win95 has to meet meant The compatibility requirements Win95 has to meet meant that it was impossible simply to change the existing FAT file that it was impossible simply to change the existing FAT file system disk format. system disk format. Modifications to the FAT to accommodate long filenames in Modifications to the FAT to accommodate long filenames in the past would have caused all of the Win16 programs to the past would have caused all of the Win16 programs to fail - a risk that was obviously unacceptable for Microsoft.fail - a risk that was obviously unacceptable for Microsoft.The new VFAT file system supports both long and short The new VFAT file system supports both long and short names and, apart from its not using the “last date names and, apart from its not using the “last date accessed” field, the 32-byte short name directory entry is accessed” field, the 32-byte short name directory entry is identical in format to the format supported by previous identical in format to the format supported by previous versions of MS-DOS.versions of MS-DOS.Implementation technique for long filenames uses the short Implementation technique for long filenames uses the short name directory entry name directory entry attributeattribute byte: byte:

Page 17: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

The rules for long filenamesThe rules for long filenamesWin9x uses multiple consecutive short name entries for a Win9x uses multiple consecutive short name entries for a single long name - protecting each of the 32-byte entries by single long name - protecting each of the 32-byte entries by using the 0Fh attribute. using the 0Fh attribute. Every long name must have a short name associated with itEvery long name must have a short name associated with itA long filename can contain as many as 255 characters, not A long filename can contain as many as 255 characters, not including the trailing null character.including the trailing null character.Valid filename characters included all the character usable Valid filename characters included all the character usable in short names plus special characters.in short names plus special characters.Leading and trailing space characters within a name are Leading and trailing space characters within a name are ignoredignoredFull path for a file with a long name can be as many as 260 Full path for a file with a long name can be as many as 260 characters, not including trailing characters.characters, not including trailing characters.The system preserves lowercase characters used in long The system preserves lowercase characters used in long filenamesfilenames

Page 18: History of MS Windows 9X and Beyond William G. Tanner, Jr., PhD

Summary of most important Summary of most important rules used in filename creation:rules used in filename creation:Creating a file by using a short name API (INT 21h) results Creating a file by using a short name API (INT 21h) results in a long name that’s identical to short name.in a long name that’s identical to short name.Creating a file by using a long name API always results in Creating a file by using a long name API always results in the creation of an associated short name.the creation of an associated short name.If a long name is a valid short name it must be unique when If a long name is a valid short name it must be unique when truncated.truncated.If a long name is not valid then the system carries out a If a long name is not valid then the system carries out a series of name truncation and translation operations in an series of name truncation and translation operations in an attempt to arrive at a valid short name: attempt to arrive at a valid short name:

NotetoKathleen_ReviewComments_.Document becomes NotetoKathleen_ReviewComments_.Document becomes NOTETOKA.DOC or NOTETO~1.DOC.NOTETOKA.DOC or NOTETO~1.DOC.

The system would then modify the ~1 suffix to ~2, ~3 and The system would then modify the ~1 suffix to ~2, ~3 and so on until it came up with a unique short name.so on until it came up with a unique short name.