Systems Software:
- Operating systems
- Sometimes called a platform
- Examples:
- The 'kernel' looks after low-level hardware operations
- User Interface
- How the user interacts with the system - can be part of OS or separate
- GUI (graphical user interface) uses icons to represent resources and actions
- GUI's use mouse pointers or touch screens
- Device drivers
- Annoying things you need to install for anything to work
- Give OS instructions on how to use the installed hardware
- Firmware
- Servers
- Utilities
- Carry out simple maintenance tasks
- Examples:
- Defragmentation
- Rearrange files for better read/write speed
- Interfaces
- Security
- Anti-Virus
- Anti-Spyware
- Firewall
Development Software
- Programming languages and utilities
- Python
- Java
- JavaScript
- C
- C#
- C++
- ActionScript
- Ruby
- Lua
- Editors
- IDE (Integrated Development Environment)
- Code highlighting
- Code prediction
- Color coding
- Auto-indentation
- Error checking/Debugging
- Compilers
- Translate high-level source code code used by prgorammer into machine code (object code)
- Source Code > Translate Code > Create Object Code > Execute Object Code
- Interpreters
- Translate the code into machine code one line at a time as the program is running
- Source Code > *Translate Line of Code > Execute Code > *
- Assemblers
- Translate assembly language into machine code
- Linkers
- Connect seperate modules of code to ensure they work together
Applications
- Useful programs run on the OS and do real world jobs
- Examples:
- Web browser (Chrome, Firefox, Opera, not IE)
- Game software (Steam, Origin, uPlay)
- Productivity (Office, Calculator)
- Custom Written
- Advantages
- Specifically written for the customers needs
- Work with devs to design and directly support the software
- Disadvantages
- Cost borne by one customer so quite expensive
- Time needed to develop product
- No community available for bug support and testing
- Likely to be more errors
- Developer may not remain in business
- Off the shelf software
- Advantages
- Available immediately
- Thoroughly tested and relatively bug free
- Wide community of users and support
- Development costs already met, so inexpensive
- Disadvantages
- May not meet exact requirements of organisation
- Open source software
- Advantages
- Software can be adapted to individual needs
- Bugs spotted and quickly fixed
Multi-Tasking
- Running - CPU is dealing with this process
- Runnable - Ready to go, awaiting running program to finish
- Waiting - These processor are waiting to get into the queue to become runnable
- Job created, loaded from secondary storage to memory
- Job waits for scheduler to allocate processing time until it is running
- If it needs resources which aren't available, it's blocked and stops running
- Wait until resources available, allocates processing time
- Job is complete, it is terminated
Windows OS Examples:
|
MS DOS |
|
Windows ME |
|
Windows 3.1 |
|
Windows XP |
|
Windows Vista |
|
Windows 8 |
Unix OS Examples:
|
Ubuntu Linux |
|
Debian Linux |
Emulators
Emulators can imitate and run the software of another OS. Examples:
|
DOSBOX - MS DOS Emulator |
|
FCEUX - NES Emulator |
|
Dolphin - Wii/GameCube Emulator |