Computer Hardware and Software: Components and Types
Hardware and Software
Hardware refers to the tangible objects of a computer system, such as integrated circuits, printed circuit boards, cables, power supplies, memories, and printers. Software refers to the algorithms, represented as programs, which are detailed instructions that tell the computer how to perform tasks.
Hardware
Every computer has four main components: processors, memories, input/output devices, and a bus connecting every component.
Architecture
- Central Processing Unit (CPU): Manipulates data and controls tasks.
- Primary Storage: Temporarily stores data and program instructions during processing.
- Secondary Storage: Stores data and programs for future use (SSD or Hard Disk).
- Input Technologies: Accept data and instructions and convert them to a binary language.
- Output Technologies: Present data in a form people can understand.
- Communication Technologies: Provide data transfer between external computer networks (Internet and intranets) and the CPU.
Processors
The CPU is the brain of the computer, and its main purpose is to execute programs stored in the main memory. Inside the CPU, we find buses (parallel wires) for transmitting data.
Bus
A bus is a combination of three different buses:
- Control Bus: Connects the processes.
- Address Bus: Addresses the information.
- Data Bus: Reads or writes data.
Memories
Memory is the part of the computer where programs and data are stored. The processor can read and write information from and to the memory. The basic unit of memory is the binary digit, called a bit. A bit may contain a 0 or 1. Any number can be represented by a sequence of bits, which may be represented by any mechanism capable of being in two mutually exclusive states.
As memories grow, this casual use is becoming more inaccurate. Memory space is measured in powers of two because every bit of the address bus can point to two memory positions (0 or 1). However, when measuring data in a system without an address bus, decimal units are used.
Primary Memory
There are four types of primary memory:
- Register Memory: Inside the CPU.
- Cache: Volatile, integrated into the CPU or separate. Stores frequently used program instructions.
- Random Access Memory (RAM): Volatile, may include the cache.
- Read-Only Memory (ROM): Non-volatile, used for the computer’s start-up process.
Secondary Memory
Slower and larger memories include SSD, HDD, Optical Storage (CDs, DVDs, Blu-ray), and pen drives. SSDs offer higher performance, lower failure rates, less access time, and a higher price compared to HDDs.
Input and Output Devices
- Input Devices:
- Human data-entry: Keyboard, mouse, touchpad, joystick, etc.
- Data automation devices: Sensors, RFID, NFC, etc.
- Output Devices:
- Video output: Monitors, projectors.
- Sound output: Speakers, headphones.
- Printers: Laser, 3D printers, etc.
Performance Classification
- Supercomputers: The fastest computers available at any given time.
- Servers: High-performance computers used for large-scale computing.
- Microcomputers: The smallest and least expensive computers.
- Wearable Computers: Miniature computers that people carry with them, allowing constant interaction and multitasking.
Moore’s Law
Moore’s Law is the observation that the number of transistors in an integrated circuit doubles approximately every two years. This leads to more powerful computers at a constant price or the same computer for a lower cost each year.
Software
Computer programs provide sequences of instructions to hardware. Programming is the process of writing (coding) a program.
System Software
System software is the intermediary between hardware and application programs. The Operating System monitors the general operation of the computer, including the status of the computer, programming operations, and management of input and output processes (process management, memory management, device controllers, networks, security, etc.). Middleware software is sometimes required between application and system software.
Application Software
Application software consists of programs that perform business tasks. They are the main interface with users. An API (Application Program Interface) is code that allows two software programs to communicate with each other. A common type of API is “web services,” which return requested resources upon receiving a request.
Application Software Components
- Front End (interaction with the user) & Back End (server architecture, database administration, security, etc.). A Full-stack developer works with both.
- Online (fast operations, low data volume, high response time) and Batch (large batches of data, complex operations).
Application Software Types
- Proprietary Software: Configured to set up the product according to the organization’s needs. Example: Microsoft Windows.
- Custom-Development Software: Developed and maintained entirely within the enterprise. Example: Django.
Risks: High costs, external improvements not incorporated, non-standardized processes, lack of information integrity (developed in parts and manually integrated afterward), high dependency on people.
Pros: A completely customized solution that tailors to specific needs.
Open-Source Software: Mainly developed by the community and then evolved to fit specific requirements. Example: Linux.Software released under a license that grants the following “freedoms of free software”:
- Freedom 0: Run the program for any purpose.
- Freedom 1: Study and modify the program.
- Freedom 2: Distribute the program in a way that can help others.
- Freedom 3: Distribute the modified versions.
Open-Source vs. Proprietary Software
Open-source software offers lower costs, no vendor lock-in, independence from the original creator, and increased reliability. An alternative is to purchase implementation and support services (see business models).
Open Source Business Models
- Double Licenses: Proprietary license (without the code) and restrictive free license (redistributed with the code).
- Free Product Core and Proprietary Accessories: Basic and open source. The difficulty lies in making the open-source product interesting without detracting from the commercial version. The model may fail if the free version of accessory functions is developed.
- Free Distribution: Offering a product for free does not imply losing potential revenue associated with intellectual property. Many people are willing to pay a modest fee for a valuable service, even if it is provided for free.
- Free Product with Associated Services: Revenues are obtained through associated services, not product commercialization. Risk: very few barriers to entry.
- Software as a Service (SaaS): Companies take care of all hardware and software infrastructure. Revenue comes from subscriptions to this service. This model is establishing itself as one of the most successful in the sector.