Software Guide: Operating Systems, Applications, and Programming
Software: Operating Systems and Applications
Computers possess vast memory and process data with speed and accuracy, but require instructions to execute these processes. Software comprises the instructions and procedures that transform data for computer processing, turning it into usable information.
Types of Software
1. Operating Systems (OS)
The foundational software essential for computer function. The OS facilitates communication between users, programs, and the computer, effectively making the hardware transparent. It manages hardware resources, application programs, data storage, peripheral interactions, and more. Each OS has specific rules and standards that other programs must adhere to. For instance, a program designed for Windows may not function on a computer running Linux.
Basic Software (Operating Systems):
- Monitoring Programs: Memory Management, I/O Management, etc.
- Utility Programs: Format, Defrag, etc.
2. Programming Software
A collection of programs (tools and utilities) that aid in programming and personal use, such as editors, compilers, and linkers. A programming language consists of commands (its dictionary) used according to specific rules to create programs. Like any language, each programming language has its own grammar and syntax.
To instruct a computer to perform calculations, you must provide a program outlining the steps in a language it understands. A program is a sequence of instructions that direct the computer to solve a problem. Programs interact with hardware through specific commands.
Developing a program involves analyzing the problem, creating an algorithm (a flowchart or pseudocode outlining the steps), writing these steps in a programming language, compiling it (translating it into machine language), and linking the defined sequence.
Programming languages are categorized based on their proximity to hardware:
- Low-level: Composed of 0s and 1s (machine language), directly understood by the computer.
- Mid-level (Assembly): Replace some bit strings with words, but still require translation to machine language.
- High-level: Entirely word-based, easier to use, but still require compilation.
Programming languages have evolved towards natural language, reducing the need for specialized knowledge. Object-oriented programming, where objects with defined properties and relationships are used, has become prevalent (e.g., C++). Graphical environment programming languages like Visual Basic and Delphi are also common.
3. Applications
User-oriented software programs developed using programming languages. Several types exist:
- Sectoral (Vertical): Designed for a specific user group or a single user, addressing a particular problem (e.g., customized software for a transport company).
- Functional (Horizontal): Designed for a broader user base, often with customization options (e.g., payroll or billing software).
- Generic/General Purpose: Widely used for various activities:
- Word Processors: (e.g., Writer, WordPerfect, Word)
- Database Managers: (e.g., Access, MySQL)
- Spreadsheets: (e.g., Lotus 1-2-3, Excel)
- Presentation Software: (e.g., PowerPoint)
- Graphic Design/Desktop Publishing: (e.g., CorelDraw, Photoshop, PageMaker, Publisher)
- Integrated Packages/Suites: Combine basic functionalities of processors, databases, spreadsheets, and presentations, often with desktop publishing and drawing capabilities (e.g., Microsoft Word, Lotus SmartSuite, Microsoft Office, Star Office, OpenOffice).
Software should be characterized by:
- Multifunctionality: Ability to perform various tasks.
- Productivity: Achieving better results in less time.
- Scalability: Adaptability to future hardware and OS versions.
- Ease of Use and Learning: User-friendly interface and tutorials.
- Reliability and Robustness: Consistent and accurate performance.
Programming Languages
Operating systems include programs (translators) that assist programmers. Translators convert programs written in languages other than machine language into machine language for hardware execution. The translation process converts a source program (high-level language) into an equivalent object program (machine language).
Translator Types:
- Assemblers: Convert low-level symbolic language (assembly) into machine language.
- Compilers: Transform high-level symbolic languages into machine language, often with an intermediate step. Examples: Cobol, C, C++, Pascal, Fortran.
- Interpreters: Convert high-level language into machine language, executing each instruction immediately. The object code is not stored. Examples: Basic, JavaScript.
Legal Regulations on Software Use
Software piracy (unauthorized copying, reproduction, or use) is theft with serious consequences. Forms of piracy include end-user copying, hard disk installation, counterfeiting, electronic piracy, and license misuse.
The Business Software Alliance (BSA) (www.bsa.org) combats piracy and promotes legal software use. Data piracy includes misusing databases, accounting data, commercial information, and copyrighted digital content.
Spain’s Organic Law on Regulation of Automatic Data Processing (LORTAD), later repealed by the Law on the Protection of Personal Data, addressed software protection.
External Storage
Data is stored on media like floppy disks, hard disks, CD-ROMs, and tapes. Media are classified by access mode:
- Sequential: Access information in order (e.g., DAT tapes).
- Direct: Access information immediately (e.g., floppy disks, hard disks, CD-ROMs).
System Administrator Roles
System administrators manage computer system installation, maintenance, use, and repair. They ensure system integrity by considering factors like temperature, dust, electromagnetic fields, humidity, and liquids. They also perform backups, maintain network software, monitor operating systems, address viruses, manage printers, configure network connections, secure resource access, and prevent unauthorized access.