🔒

Basics of Unix and Network Security

Dec 11, 2024

Information Security 3: Basics of Unix and Network Administration

Introduction to the Course

  • Course Sequence:

    • Information Security 1: Introduction to info security from a systems perspective.
    • Information Security 2: Focus on using hardware features to build secure systems (architectural aid).
    • Information Security 3: Basics of UNIX and network administration with emphasis on security.
    • Future Courses: Will cover security at higher layers above OS and applications.
  • Course Structure:

    • 60 modules, 20 minutes each totaling 20 hours.
    • 8 programming assignments (MCQ and programming).
    • Requires basic programming knowledge.
    • Includes an in-course exam for certification.

Module 1: Fundamentals of Operating Systems

Different User Perspectives

  • End User:

    • Uses application software (e.g., word processor, browser).
    • Does not need to know how the software works.
  • Application Programmer:

    • Develops software using system software features.
    • Uses features like memory allocation (e.g., malloc in C).
  • System Programmer/OS Programmer:

    • Develops system software, dealing closely with hardware.
    • Needs to know about hardware use (disk reading, printer use, etc.).

System Software and Application Programmer Interface (API)

  • System Software Examples:

    • C library functions, desktop environments, databases (e.g., MySQL), device drivers.
    • Provides APIs for application development.
  • Operating System (OS):

    • Acts as a manager for software and hardware interaction.
    • Provides system software for application programmers.

Layers of Computer Systems

  • Four Layers:
    • Hardware: Base layer.
    • Operating System (OS): Manages hardware resources.
    • System/Application Programs: Compilers, databases, etc.
    • Users: End users interact with applications.

Interaction and Importance of OS

  • Service Request Cycle:

    • User input -> application -> OS -> hardware -> operation -> result to application -> user.
  • Why OS is crucial:

    • Abstraction of hardware from users.
    • Ensures efficient hardware use and correct operations.

Types of Operating Systems

  • Batch Processing OS: Handles tasks in batches.
  • Time-Sharing OS: Multiple users share system time.
  • Real-Time OS: Ensures tasks are done within strict time limits.
  • Network OS: For managing networked devices.
  • Distributed OS: Manages multiple computers as a single system.
  • Embedded OS: Lightweight for small devices (e.g., IoT).

Additional Classifications

  • Single vs Multi-user OS: E.g., personal desktops vs mail servers.
  • Single task vs Multitasking OS: Focus on task execution.

Evolution of Operating Systems

  • Transition from batch processing in mainframes to interactive, networked, handheld systems.
  • Modern OS needs to address interactive, real-time, and networked environments.

Role and Definition of Operating Systems

  • Resource Allocation: Manages and allocates resources.

  • Conflict Resolution: Serializes tasks to avoid conflicts (e.g., managing print jobs).

  • Error Management: Stops incorrect operations, reports errors.

  • No Universally Accepted Definition:

    • OS interacts with multiple hardware and software types.
    • Kernel: Core part running constantly.

Starting and Running an OS

  • Boot Process:

    • Starts from ROM -> loads bootable device -> loads OS kernel.
    • Ensures constant operation from startup to shutdown.
  • Understanding OS Functioning:

    • Requires knowledge of computer organization and operation.

This course will focus on understanding these fundamentals and preparing for advanced topics in the following courses.