Operating systems

Operating systems are software that manages hardware resources and provides services to applications.

What are Operating Systems?

Operating systems are software that acts as an intermediary between hardware and applications, managing resources and providing services.

Types of Operating Systems

By Architecture

  • **Monolithic": Monolithic kernel
  • **Microkernel": Microkernel
  • **Hybrid": Hybrid kernel
  • **Exokernel": Exokernel

By Use

  • **Desktop": Desktop systems
  • **Server": Server systems
  • **Mobile": Mobile systems
  • **Embedded": Embedded systems

By License

  • **Proprietary": Proprietary software
  • **Open Source": Open source
  • **Free": Free software
  • **Commercial": Commercial software

Common Operating Systems

Windows

  • **Windows 10/11": Desktop systems
  • **Windows Server": Server systems
  • **Windows IoT": Embedded systems
  • **Features": Graphical interface, compatibility

Linux

  • **Ubuntu": Popular distribution
  • **CentOS": Enterprise distribution
  • **Red Hat": Commercial distribution
  • **Debian": Stable distribution

Unix

  • **macOS": Apple system
  • **FreeBSD": Free Unix system
  • **OpenBSD": Secure Unix system
  • **Solaris": Oracle system

Features

Process Management

  • **Multitasking": Multitasking
  • **Scheduling": Process scheduling
  • **Memory Management": Memory management
  • **Process Communication": Inter-process communication

Memory Management

  • **Virtual Memory": Virtual memory
  • **Paging": Paging
  • **Segmentation": Segmentation
  • **Memory Protection": Memory protection

File System

  • **File Systems": File systems
  • **Permissions": File permissions
  • **Backup": Backups
  • **Recovery": Recovery

Network

  • **Network Stack": Network stack
  • **Protocols": Network protocols
  • **Security": Network security
  • **Monitoring": Network monitoring

Configuration

Installation

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# Install operating system
# Use graphical installer or command line

# Configure partitions
sudo fdisk /dev/sda

# Configure network
sudo nano /etc/netplan/01-netcfg.yaml

# Configure users
sudo useradd -m -s /bin/bash usuario
sudo passwd usuario

Services

1
2
3
4
5
6
7
8
# Manage services
sudo systemctl enable apache2
sudo systemctl start apache2
sudo systemctl status apache2

# Configure services
sudo nano /etc/apache2/apache2.conf
sudo systemctl restart apache2

Security

1
2
3
4
5
6
7
8
# Configure firewall
sudo ufw enable
sudo ufw allow ssh
sudo ufw allow 80/tcp

# Configure SSH
sudo nano /etc/ssh/sshd_config
sudo systemctl restart ssh

Use Cases

Servers

  • **Web": Web servers
  • **Database": Database servers
  • **Email": Email servers
  • **File": File servers

Desktop

  • **Workstations": Workstations
  • **Development": Software development
  • **Gaming": Gaming
  • **Multimedia": Multimedia

Embedded

  • **IoT": Internet of Things
  • **Industrial": Industrial systems
  • **Automotive": Automotive systems
  • **Medical": Medical systems

Best Practices

Security

  • **Updates": Keep updated
  • **Hardening": Apply hardening
  • **Firewall": Configure firewall
  • **Monitoring": Monitor security

Performance

  • **Resources": Allocate appropriate resources
  • **Optimization": Optimize configuration
  • **Monitoring": Monitor performance
  • **Scaling": Plan scalability

Maintenance

  • **Backup": Regular backups
  • **Updates": Regular updates
  • **Monitoring": Continuous monitoring
  • **Documentation": Documentation

Tools

Management

  • **Package Managers": Package managers
  • **Configuration Management": Configuration management
  • **Monitoring": Monitoring tools
  • **Backup": Backup tools

Development

  • **IDEs": Development environments
  • **Compilers": Compilers
  • **Debuggers": Debuggers
  • **Testing": Testing tools

Administration

  • **Command Line": Command line
  • **Scripting": Scripting
  • **Automation": Automation
  • **Documentation": Documentation

References