Monday 24 March 2014

Software

Systems Software:
  • Operating systems
    • Sometimes called a platform
    • Examples:
      • Windows
      • UNIX
      • Linux
      • MacOS
    • 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
  1. Job created, loaded from secondary storage to memory
  2. Job waits for scheduler to allocate processing time until it is running
  3. If it needs resources which aren't available, it's blocked and stops running
  4. Wait until resources available, allocates processing time
  5. Job is complete, it is terminated
Windows OS Examples:
MS DOS
Windows ME

Windows 3.1


Windows XP
Windows Vista

Windows 7



Windows 8
 
 
 
 
 
 
 
 
Unix OS Examples:

Android OS
Ubuntu Linux

Debian Linux

Emulators
 
Emulators can imitate and run the software of another OS. Examples:
DOSBOX - MS DOS Emulator

Super Mario Bros 3 in FCEUX
FCEUX - NES Emulator

 

Dolphin - Wii/GameCube Emulator