Problem
Lets begin the class by exploring the differences between application software and system software. Most of you will probably have the bulk of your experience with application software..... but what does that mean? Can you tell me which of the following are System Software and which are Applications:
- Web Browser
- Java Run Time
- Microsoft Access Database
- Printer Driver
- Process Scheduler
- Microsoft Word
- A Windows XP VM (Virtual Machine) running on a Windows 7 machine
As a second topic I would like to get you thinking about the kernel. Years ago when I programmed in MS-DOS or Windows 3.1 I would write my application program and as part of the code I would have assembly code to access the internal registers and memory. Part of the reason was so I could make better use of the memory and another was so that I could write some graphics on the screen.
In today's general computer environment I can not do this in my application. I have to make system calls and the kernel handles these functions. Why won't Microsoft or Apple allow my application to call directly to the hardware?