2. Types of Computer Software Contents
Total Page:16
File Type:pdf, Size:1020Kb
2. Types of Computer Software Contents 1 Operating system 1 1.1 Types of operating systems ...................................... 1 1.1.1 Single- and multi-tasking ................................... 1 1.1.2 Single- and multi-user ..................................... 1 1.1.3 Distributed .......................................... 1 1.1.4 Templated ........................................... 1 1.1.5 Embedded ........................................... 2 1.1.6 Real-time ........................................... 2 1.2 History ................................................. 2 1.2.1 Mainframes .......................................... 2 1.2.2 Microcomputers ....................................... 4 1.3 Examples of operating systems .................................... 4 1.3.1 Unix and Unix-like operating systems ............................ 4 1.3.2 Microsoft Windows ...................................... 6 1.3.3 Other ............................................. 7 1.4 Components .............................................. 7 1.4.1 Kernel ............................................. 7 1.4.2 Networking .......................................... 11 1.4.3 Security ............................................ 12 1.4.4 User interface ......................................... 12 1.5 Real-time operating systems ...................................... 13 1.6 Operating system development as a hobby .............................. 14 1.7 Diversity of operating systems and portability ............................. 14 1.8 Market share .............................................. 14 1.9 See also ................................................ 14 1.10 References ............................................... 14 1.11 Further reading ............................................ 15 1.12 External links ............................................. 15 2 System software 16 2.1 See also ................................................ 16 2.2 References .............................................. 16 2.3 External links ............................................. 16 i ii CONTENTS 3 Firmware 17 3.1 Origin of the term ........................................... 17 3.2 Personal computers .......................................... 17 3.3 Consumer products .......................................... 18 3.4 Automobiles .............................................. 18 3.5 Examples ............................................... 18 3.6 Flashing ................................................ 19 3.7 Firmware hacking ........................................... 19 3.7.1 HDD firmware hacks ..................................... 19 3.8 Security risks ............................................. 19 3.9 See also ................................................ 20 3.10 References .............................................. 20 3.11 External links ............................................. 20 4 Computer multitasking 21 4.1 Multiprogramming .......................................... 21 4.2 Cooperative multitasking ....................................... 22 4.3 Preemptive multitasking ....................................... 22 4.4 Real time ............................................... 23 4.5 Multithreading ............................................ 23 4.6 Memory protection .......................................... 23 4.7 Memory swapping .......................................... 23 4.8 Programming ............................................. 23 4.9 See also ................................................ 24 4.10 References .............................................. 24 5 Time-sharing 25 5.1 History ................................................. 25 5.1.1 Batch processing ....................................... 25 5.1.2 Time-sharing ......................................... 25 5.1.3 Development ......................................... 26 5.1.4 Time-sharing business .................................... 26 5.1.5 The computer utility ..................................... 26 5.1.6 Security ............................................ 27 5.2 Notable time-sharing systems ..................................... 27 5.3 See also ................................................ 28 5.4 References ............................................... 28 5.5 Further reading ............................................ 28 5.6 External links ............................................. 28 6 Real-time computing 29 6.1 History ................................................ 29 CONTENTS iii 6.2 Criteria for real-time computing ................................... 29 6.2.1 Real-time in digital signal processing ............................. 30 6.3 Real-time and high-performance ................................... 30 6.4 Near real-time ............................................ 31 6.5 Design methods ............................................ 31 6.6 See also ................................................ 31 6.7 References ............................................... 31 6.8 Further reading ............................................ 32 6.9 External links ............................................. 32 6.9.1 Technical committees .................................... 32 6.9.2 Scientific conferences .................................... 32 6.9.3 Journals ............................................ 32 6.9.4 Research groups ....................................... 32 6.9.5 Technical papers ....................................... 33 7 Fault tolerance 34 7.1 Terminology .............................................. 34 7.2 Components .............................................. 35 7.3 Redundancy .............................................. 35 7.4 Criteria ................................................ 35 7.5 Requirements ............................................. 35 7.6 Replication .............................................. 36 7.7 Disadvantages ............................................. 36 7.8 Examples ............................................... 37 7.9 Related terms ............................................. 37 7.10 See also ................................................ 37 7.11 References ............................................... 37 7.12 Bibliography .............................................. 38 7.13 External links ............................................. 38 8 Mean time between failures 39 8.1 The Overview ............................................. 39 8.2 Formal definition of MTBF ...................................... 40 8.3 Variations of MTBF ......................................... 40 8.3.1 MTTF and MTTFd calculation ................................ 40 8.4 Notes ................................................. 40 8.5 See also ................................................ 40 8.6 References ............................................... 40 8.7 External links ............................................. 40 9 Flowchart 42 9.1 Overview ............................................... 42 iv CONTENTS 9.2 History ................................................ 43 9.3 Flowchart building blocks ....................................... 43 9.3.1 Symbols ........................................... 43 9.3.2 Data-flow extensions ..................................... 44 9.4 Types of flowchart .......................................... 44 9.5 Software ............................................... 45 9.5.1 Diagramming ......................................... 45 9.5.2 Programming ......................................... 45 9.6 See also ................................................ 45 9.7 References .............................................. 45 9.8 Further reading ............................................ 45 9.9 External links ............................................. 46 10 Programming language 47 10.1 Definitions ............................................... 47 10.2 History ................................................. 48 10.2.1 Early developments ...................................... 48 10.2.2 Refinement .......................................... 49 10.2.3 Consolidation and growth ................................... 49 10.3 Elements ................................................ 50 10.3.1 Syntax ............................................. 50 10.3.2 Semantics ........................................... 51 10.3.3 Standard library and run-time system ............................. 52 10.4 Design and implementation ...................................... 53 10.4.1 Specification ......................................... 53 10.4.2 Implementation ........................................ 53 10.5 Usage ................................................. 54 10.5.1 Measuring language usage .................................. 54 10.6 Taxonomies .............................................. 54 10.7 See also ................................................ 55 10.8 References ............................................... 55 10.9 Further reading ............................................ 57 10.10External links ............................................. 58 11 History of programming languages 59 11.1 Early history .............................................. 59 11.2 First programming languages ..................................... 59 11.3 Establishing fundamental paradigms ................................. 60 11.4 1980s: consolidation, modules, performance ............................. 61 11.5 1990s: the Internet age ........................................ 61 11.6 Current trends ............................................