Computer System Software and Communications Flashcards
Introduction to Computer System Software and Operating Systems
Software is defined as a collection of programs that enable a computer to perform specific tasks. Software is broadly classified into two primary categories: System Software and Application Software. System software is responsible for managing hardware components and providing a platform for application software to run. The components of system software include Operating Systems (OS), which manage hardware and software resources (examples include Windows, Linux, and macOS); Utility Programs, which assist in system maintenance such as antivirus and disk cleanup tools; Device Drivers, which allow communication between hardware devices and the Operating System, such as printer drivers; and Firmware, which is embedded software in hardware devices like the BIOS in a computer. An Operating System (OS) is specifically defined as system software that manages computer hardware and software, providing an interface between users and the system.
Functions and Types of Operating Systems
The functions of an Operating System are multifaceted. Process Management involves handling running applications, multitasking, and scheduling. Memory Management involves the allocation and deallocation of memory to programs. File System Management manages data storage, access, and retrieval. Device Management controls hardware devices through the use of drivers. Security and User Management provides essential authentication and access control.
There are several types of Operating Systems categorized by their operational logic. A Batch OS executes tasks in batches without user interaction. A Time-Sharing OS allocates time slots to multiple users, such as UNIX. A Distributed OS manages multiple computers as a single system. A Real-Time OS (RTOS) is utilized in critical systems like medical devices requiring immediate processing. Mobile OS are used in smartphones, with examples being Android and iOS. Common Operating Systems include Windows, which is user-friendly and widely used in personal computers; Linux, an open-source system used primarily for servers and development; MacOS, developed by Apple and known for smooth performance; and Android, which is a mobile OS based on Linux. The operating system serves as the backbone of any computer system, ensuring efficient hardware management, software execution, and user interaction.
Basic Commands and CLI in Linux and Windows
Linux uses a command-line interface (CLI) to interact with the Operating System. The advantages of using Linux commands include direct control over OS functions, speed and efficiency compared to a GUI, necessity for remote access via SSH and automation through scripting, lightweight resource usage, flexibility for complex tasks, and detailed logs for troubleshooting. Essential Linux commands for file and directory management include touch file_name to create an empty file, cp source destination to copy a file, mv old_name new_name to rename or move a file, cat file_name to display contents, nano file_name for editing, and chmod +x file_name to make a file executable. User and process management commands include whoami to show the current user, who for logged-in users, ps for active processes, top for running processes, kill PID to terminate a process using its Process ID, shutdown -h now for system shutdown, and reboot for restarts. Networking commands in Linux include ifconfig (noting it is deprecated in favor of ip a) to show IP addresses, ping website.com to test connectivity, wget URL to download files, and curl URL to fetch data from a URL.
Windows also features a CLI via Command Prompt and PowerShell for system-level tasks. Advantages include performing tasks not available in the GUI, faster execution for file management and networking, automation via batch files (.bat) or PowerShell scripts, and remote management. Windows commands include ipconfig for checking IP addresses, ping for testing connections, and resource management tools like tasklist and taskkill to monitor and control processes.
Shell Scripting with Bash
Bash scripting is used to automate tasks in Linux. Reasons for using shell scripting include the automation of repetitive tasks such as backups and updates, efficiency in running multiple commands, customization for system administration, scheduling via cron jobs, and error handling in system processes. To run a shell script, one must first create the script using nano myscript.sh, add the shebang #!/bin/bash followed by the code (e.g., echo "Hello, World!"), save it, provide execute permissions using chmod +x myscript.sh, and run it using ./myscript.sh. An example of a basic shell script includes echo "Hello, $USER!", echo "Today's date is: $(date)", and echo "Your current directory is: $(pwd)". More advanced scripting includes loops and conditionals. A loop example is for i in {1..5}; do echo $i; done, which prints numbers from to . An if-else example uses read -p to take user input and if [ condition ]; then ... else ... fi for conditional execution. Learning these scripts assists in automation, deployment, and server management.
Fundamentals of Computer Communications and Transmission
Computer communication refers to transferring data between two or more devices using technologies that can be wired (Ethernet, fiber optics) or wireless (Wi-Fi, Bluetooth). Data transmission types are classified as Simplex, where data flows in one direction (keyboard to computer); Half-Duplex, where data flows in both directions but not simultaneously (walkie-talkies); and Full-Duplex, where data flows in both directions simultaneously (phone calls). Transmission mediums include wired options like copper (Ethernet) and fiber optics, and wireless options like radio waves (Wi-Fi, Bluetooth), infrared, and satellite signals.
Communication protocols are essential for data integrity. TCP/IP (Transmission Control Protocol/Internet Protocol) is the foundational suite for the internet. HTTP/HTTPS (Hypertext Transfer Protocol/Secure) is used for web pages. FTP (File Transfer Protocol) is for file transfers, and SMTP (Simple Mail Transfer Protocol) is for sending emails. Data encoding can be Analog (continuous signals) or Digital (discrete signals using binary s and s). Performance metrics include Bandwidth, the maximum data rate supported (e.g., ), and Throughput, the actual transfer rate achieved. Error detection and correction methods include Parity Checks (adding an extra bit), Checksums (mathematical verification), and CRC (Cyclic Redundancy Check).
Network Topologies and Types (LAN, MAN, WAN, PAN)
Network topology describes the physical or logical arrangement of devices. Bus topology uses a single central cable; it is simple and cheap but fails if the main cable fails. Star topology connects all devices to a central hub or switch; it is easy to manage, but the hub is a single point of failure. Ring topology connects devices in a circular path where data moves in one direction. Mesh topology interconnects every device to every other device, offering high reliability and no single point of failure, though it is expensive and complex. Hybrid topology combines two or more topologies, such as Star and Bus, offering flexibility and scalability at a higher cost.
Networks are classified by size. Local Area Network (LAN) covers small areas like homes or offices, offering high speeds up to or more. Metropolitan Area Network (MAN) spans a city or large campus (e.g., cable TV or city-wide Wi-Fi) and uses fiber optics to connect multiple LANs. Wide Area Network (WAN) spans countries or continents (e.g., the Internet) using satellite links and leased lines, often having higher costs and slower speeds in the range compared to LANs. Personal Area Network (PAN) is for individual use, such as Bluetooth connections between a phone and a laptop.
Network Models: Client-Server and Peer-to-Peer
A network is a system of multiple devices sharing resources. A Client-Server network consists of servers—powerful computers managing resources—and clients that request services. Examples include company internal networks, the Internet, and email servers like Gmail. This model offers centralized management and better security but is expensive and vulnerable to server failure. A Peer-to-Peer (P2P) network is decentralized; every device (peer) acts as both client and server, sharing resources directly. Examples include BitTorrent, home networks, and blockchain. P2P is cheap and easy to set up with high fault tolerance but lacks central security and can slow down with many users.
IP Addressing and Subnetting
An IP Address is a unique numerical label for devices on a network (e.g., ). IPv4 uses 4 sets of numbers from to , providing approximately addresses. IPv6 uses 8 sets of hexadecimal numbers (e.g., ) to support trillions of addresses. Public IPs are assigned by ISPs, whereas Private IPs are used in local networks. Static IPs are fixed and used for servers, while Dynamic IPs are assigned temporarily. IPv4 addresses are divided into 5 classes: A, B, C, D, and E. Most home networks use Class C private IPs (). Subnetting divides a large network into subnets for efficiency. A Subnet Mask defines the network and host portions; for an IP of and mask , all devices starting with belong to the same subnet.
Networking Fundamentals: DHCP, NAT, DNS, and VPN
DHCP (Dynamic Host Configuration Protocol) automatically assigns IP addresses to devices, preventing conflicts and reducing manual work. NAT (Network Address Translation) allows multiple local devices to share one public IP address, which conserves IPv4 addresses and enhances security by hiding internal structures. NAT types include Static NAT (one-to-one mapping), Dynamic NAT (using a pool of IPs), and PAT (Port Address Translation), where multiple devices share one public IP via different ports.
Network Security involves Desktop Security (protecting individual devices with antivirus and firewalls) and Perimeter Security (protecting the entire network with firewalls, IDS/IPS, and VPNs). DNS (Domain Name System) translates domain names like google.com into IP addresses like . Commands like nslookup google.com can find these IPs. A VPN (Virtual Private Network) encrypts internet connections, hides IP addresses, and allows secure remote access to bypass restrictions.
Internet, World Wide Web, and Web Servers
A Router connects different networks and directs traffic, using DHCP and NAT to manage home or office connections. The Internet is a global, decentralized network using TCP/IP and DNS to connect millions of devices. The World Wide Web (WWW) is a service on the internet that uses HTTP/HTTPS to deliver web pages. When a user enters a URL, the browser uses DNS to find the IP, the server responds with HTML, CSS, and JavaScript, and the browser renders the page. A Web Server stores and delivers these websites; popular examples include Apache, Nginx, and Microsoft IIS. The web server handles HTTP/HTTPS requests, stores website files, and processes backend logic (PHP, Python, Node.js).