forked from DRAM-IT/Wiki
ComputerSystems-Virtualization-LinuxFundamentals-v2
This commit is contained in:
parent
c1c62fae5e
commit
b81e00d8b4
314
IT Sofware Engineering Training/month-01/week-01/day-01/ComputerSystems-Virtualization-LinuxFundamentals-v2
Normal file
314
IT Sofware Engineering Training/month-01/week-01/day-01/ComputerSystems-Virtualization-LinuxFundamentals-v2
Normal file
@ -0,0 +1,314 @@
|
||||
## Training and Lab Activity: Computer Systems, Virtualization & Linux Fundamentals
|
||||
|
||||
**Target Audience:** Beginners with little to no prior experience in computer systems, virtualization, or Linux.
|
||||
|
||||
**Duration:** 4 Hours (240 minutes)
|
||||
|
||||
**Materials:**
|
||||
* Projector and Whiteboard
|
||||
* Computers for each participant (or pairs) with at least 8GB RAM and 100GB free disk space.
|
||||
* Pre-installed VirtualBox on all lab machines.
|
||||
* CentOS 7 or RHEL 8 ISO image (downloaded beforehand).
|
||||
* Internet access (for potential troubleshooting and resource lookups).
|
||||
* Handouts with key commands and concepts (optional, but recommended).
|
||||
|
||||
---
|
||||
|
||||
### **Hour 1: Computer Systems & Virtualization - The Foundation (60 minutes)**
|
||||
|
||||
**Part A: Introduction to Computer System Basics and Network Fundamentals (30 minutes - Lecture/Discussion)**
|
||||
|
||||
* **Learning Objectives:**
|
||||
* Understand the fundamental components of a computer system.
|
||||
* Grasp basic network concepts and their importance.
|
||||
* Appreciate the role of operating systems.
|
||||
* **Content:**
|
||||
* **What is a Computer System?**
|
||||
* **Hardware:**
|
||||
* CPU (Processor): The brain – what it does.
|
||||
* RAM (Memory): Short-term storage, speed.
|
||||
* Storage (HDD/SSD): Long-term storage, types and differences.
|
||||
* Motherboard: The central hub.
|
||||
* Input/Output Devices (Keyboard, Mouse, Monitor, Printer).
|
||||
* **Software:**
|
||||
* Operating System (OS): The manager (Windows, macOS, Linux).
|
||||
* Applications: Programs for specific tasks.
|
||||
* **Network Fundamentals (Simplified):**
|
||||
* What is a network? Why do we need it?
|
||||
* Basic components: Routers, Switches, Cables.
|
||||
* IP Addresses: Unique identifiers.
|
||||
* Client-Server Model (brief overview).
|
||||
* The Internet as a global network.
|
||||
* **Activity:**
|
||||
* Quick Q&A: "What's the difference between RAM and a hard drive?"
|
||||
* Analogy: Compare a computer system to a human body or a factory.
|
||||
|
||||
**Part B: Bare Metal vs Virtualization vs Containerization (30 minutes - Lecture/Discussion)**
|
||||
|
||||
* **Learning Objectives:**
|
||||
* Differentiate between bare metal, virtualization, and containerization.
|
||||
* Understand the core benefits and use cases of each approach.
|
||||
* **Content:**
|
||||
* **Bare Metal:**
|
||||
* Definition: OS directly on hardware.
|
||||
* Pros: Maximum performance, direct hardware access.
|
||||
* Cons: Resource underutilization, difficult to manage multiple applications, hardware dependency.
|
||||
* **Virtualization:**
|
||||
* Concept: Running multiple virtual machines (VMs) on a single physical host.
|
||||
* Hypervisor (Type 1 vs. Type 2 - focus on Type 2 for VirtualBox): The software that manages VMs.
|
||||
* Pros: Resource isolation, efficient resource utilization, portability, disaster recovery.
|
||||
* Cons: Overhead from hypervisor, slightly lower performance than bare metal.
|
||||
* **Analogy:** An apartment building (bare metal) vs. a shared house with separate rooms (virtualization).
|
||||
* **Containerization (Brief Overview - for context):**
|
||||
* Concept: Lightweight, isolated environments sharing the host OS kernel.
|
||||
* Examples: Docker.
|
||||
* Pros: Even lighter than VMs, faster startup, highly portable.
|
||||
* Cons: Less isolation than VMs, shares host kernel.
|
||||
* **Analogy:** Virtualization is a separate house for each family; Containerization is separate apartments within one house.
|
||||
* **Activity:**
|
||||
* Interactive poll: "If you had a powerful server, would you prefer bare metal, virtualization, or containerization for running 10 different applications?" (Discuss why).
|
||||
* Quick comparison table on whiteboard (Bare Metal | Virtualization | Containerization) with Pros/Cons.
|
||||
|
||||
---
|
||||
|
||||
### **Hour 2: Virtualization with VirtualBox - Hands-On (60 minutes)**
|
||||
|
||||
**Part A: Overview of Virtualization with VirtualBox (20 minutes - Lecture/Demonstration)**
|
||||
|
||||
* **Learning Objectives:**
|
||||
* Understand the purpose and benefits of using VirtualBox.
|
||||
* Identify key system requirements for running VirtualBox and VMs.
|
||||
* Familiarize with the VirtualBox interface.
|
||||
* **Content:**
|
||||
* **Why VirtualBox?**
|
||||
* Free, open-source, widely used for personal and small-scale virtualization.
|
||||
* Great for learning and testing new OS.
|
||||
* Supports a wide range of guest OS.
|
||||
* **Benefits of Virtualization (reiterate from Hour 1, specifically for VirtualBox):**
|
||||
* Running multiple OS simultaneously.
|
||||
* Testing software in isolated environments.
|
||||
* Creating snapshots (rollback points).
|
||||
* Portability of VMs.
|
||||
* **System Requirements for Host Machine:**
|
||||
* CPU with virtualization extensions (Intel VT-x/AMD-V).
|
||||
* Sufficient RAM (min. 4GB for host + 2GB per VM).
|
||||
* Ample disk space (min. 20GB per VM).
|
||||
* **VirtualBox Interface Tour:**
|
||||
* Main window, toolbar.
|
||||
* Global settings.
|
||||
* VM settings panes (System, Display, Storage, Network).
|
||||
* **Demonstration (Trainer):**
|
||||
* Launch VirtualBox.
|
||||
* Show how to create a new VM (without installing OS yet).
|
||||
* Walk through basic VM settings (RAM, CPU cores, disk size).
|
||||
* Show how to attach an ISO image to a virtual CD/DVD drive.
|
||||
|
||||
**Part B: Lab Activity: Creating a Virtual Machine in VirtualBox (40 minutes - Hands-On)**
|
||||
|
||||
* **Learning Objectives:**
|
||||
* Successfully create a new virtual machine in VirtualBox.
|
||||
* Configure basic VM settings (RAM, CPU, storage).
|
||||
* Attach an ISO image to the VM.
|
||||
* **Activity:**
|
||||
* **Step 1: Launch VirtualBox.**
|
||||
* **Step 2: Create a New Virtual Machine.**
|
||||
* Click "New" to start the VM creation wizard.
|
||||
* Name: `MyCentOSVM` (or `MyRHELVM`)
|
||||
* Type: `Linux`
|
||||
* Version: `Red Hat (64-bit)` (or `CentOS (64-bit)`)
|
||||
* Memory size: Set to at least `2048 MB (2 GB)` (adjust based on host RAM).
|
||||
* Hard disk: `Create a virtual hard disk now`.
|
||||
* Hard disk file type: `VDI (VirtualBox Disk Image)`.
|
||||
* Storage on physical hard disk: `Dynamically allocated`.
|
||||
* File location and size: Default location, set size to `20 GB` (minimum).
|
||||
* **Step 3: Configure VM Settings (Crucial before starting).**
|
||||
* Select the newly created VM and click "Settings".
|
||||
* **System > Processor:** Enable `PAE/NX` (if available), adjust CPU cores to `2` (if host has enough).
|
||||
* **Storage:**
|
||||
* Under "Controller: IDE", click the empty CD icon.
|
||||
* On the right, click the CD icon again and select "Choose/Create a Virtual Optical Disk...".
|
||||
* Navigate to and select the downloaded CentOS/RHEL ISO image.
|
||||
* **Network:** (Briefly mention options, keep as NAT for now for simplicity).
|
||||
* **Step 4: Verify Settings.**
|
||||
* **Troubleshooting Tips (Trainer):**
|
||||
* "VT-x/AMD-V is not available" error: Explain BIOS/UEFI settings.
|
||||
* Insufficient RAM/Disk space messages.
|
||||
* **Trainer Walk-around:** Provide one-on-one assistance.
|
||||
|
||||
---
|
||||
|
||||
### **Hour 3: Linux OS Fundamentals (CentOS/RHEL) - Part 1 (60 minutes)**
|
||||
|
||||
**Part A: Introduction to Linux (30 minutes - Lecture/Discussion)**
|
||||
|
||||
* **Learning Objectives:**
|
||||
* Understand the history and philosophy of Linux.
|
||||
* Differentiate between various Linux distributions.
|
||||
* Explain why CentOS/RHEL is preferred in enterprise environments.
|
||||
* **Content:**
|
||||
* **What is Linux?**
|
||||
* Operating system kernel created by Linus Torvalds.
|
||||
* Open-source philosophy: Free to use, modify, distribute.
|
||||
* Analogy: Linux is the engine, distributions are different car models built around it.
|
||||
* **Linux Distributions (brief overview):**
|
||||
* **Debian-based:** Ubuntu, Mint (user-friendly, desktops).
|
||||
* **Red Hat-based:** RHEL, CentOS, Fedora (enterprise, servers).
|
||||
* Other popular ones: SUSE, Arch.
|
||||
* **Why CentOS/RHEL for Enterprises?**
|
||||
* **Stability and Reliability:** Long-term support (LTS) releases.
|
||||
* **Security:** Strong focus on security, regular updates.
|
||||
* **Scalability:** Designed for high-performance servers and large deployments.
|
||||
* **Support:** RHEL offers paid enterprise support; CentOS was a community-supported rebuild (now CentOS Stream).
|
||||
* **Industry Standard:** Widely adopted in data centers and cloud environments.
|
||||
* **Activity:**
|
||||
* Discussion: "Based on what we've learned, why would a company choose RHEL over Ubuntu for their critical servers?"
|
||||
* Show a picture of the Linux mascot, Tux.
|
||||
|
||||
**Part B: Lab Activity: Installing CentOS/RHEL in VirtualBox (30 minutes - Hands-On)**
|
||||
|
||||
* **Learning Objectives:**
|
||||
* Successfully start the CentOS/RHEL installation process within the VM.
|
||||
* Navigate the installation wizard (basic steps).
|
||||
* **Activity:**
|
||||
* **Step 1: Start the Virtual Machine.**
|
||||
* Select `MyCentOSVM` (or `MyRHELVM`) and click "Start".
|
||||
* **Step 2: Follow Installation Prompts.**
|
||||
* When prompted at the boot screen, select `Install CentOS Linux 7` (or RHEL equivalent) and press Enter.
|
||||
* **Language Selection:** Choose your preferred language.
|
||||
* **Installation Summary Screen:**
|
||||
* **DATE & TIME:** Set your correct time zone.
|
||||
* **KEYBOARD:** Set your keyboard layout.
|
||||
* **INSTALLATION SOURCE:** Verify it's "Local media".
|
||||
* **SOFTWARE SELECTION:** Choose "Minimal Install" for efficiency (we only need command line for basics).
|
||||
* **INSTALLATION DESTINATION:**
|
||||
* Click on the disk icon.
|
||||
* Ensure "Automatically configure partitioning" is selected.
|
||||
* Click "Done".
|
||||
* **NETWORK & HOSTNAME:** (Optional for this lab, but mention its importance).
|
||||
* **BEGIN INSTALLATION.**
|
||||
* **Step 3: Set Root Password and Create User (During Installation).**
|
||||
* While installation is running, click on `ROOT PASSWORD` and set a strong password (e.g., `Pa$$w0rd!`).
|
||||
* Click on `USER CREATION` and create a standard user (e.g., `student` with password `password`). Make this user an administrator by checking "Make this user administrator".
|
||||
* **Troubleshooting Tips (Trainer):**
|
||||
* VM not booting from ISO: Recheck Storage settings.
|
||||
* Cursor stuck: Ctrl+Right Alt (or Host key) to release.
|
||||
* **Trainer Walk-around:** Ensure everyone is successfully installing. *Note: Installation might take some time.*
|
||||
|
||||
---
|
||||
|
||||
### **Hour 4: Linux OS Fundamentals (CentOS/RHEL) - Part 2 & Lab (60 minutes)**
|
||||
|
||||
**Part A: Basic Commands, File System Structure, and User Permission Concepts (30 minutes - Lecture/Demonstration)**
|
||||
|
||||
* **Learning Objectives:**
|
||||
* Execute fundamental Linux commands.
|
||||
* Understand the hierarchical Linux file system structure.
|
||||
* Grasp basic user and file permission concepts.
|
||||
* **Content:**
|
||||
* **Booting into CentOS/RHEL:**
|
||||
* First boot after installation.
|
||||
* Login screen (text-based for minimal install).
|
||||
* Logging in as the `student` user.
|
||||
* **The Linux Command Line Interface (CLI):**
|
||||
* What is a shell? (Bash).
|
||||
* Prompt: `username@hostname ~$`
|
||||
* **Essential Basic Commands:**
|
||||
* `pwd`: Print working directory.
|
||||
* `ls`: List directory contents (`ls -l`, `ls -a`).
|
||||
* `cd`: Change directory (`cd ..`, `cd ~`, `cd /`).
|
||||
* `mkdir`: Make directory.
|
||||
* `touch`: Create empty file.
|
||||
* `cat`: Display file content.
|
||||
* `cp`: Copy files/directories.
|
||||
* `mv`: Move/rename files/directories.
|
||||
* `rm`: Remove files (`rm -rf` - caution!).
|
||||
* `clear`: Clear screen.
|
||||
* `history`: Command history.
|
||||
* `man`: Manual pages (e.g., `man ls`).
|
||||
* **Linux File System Hierarchy (Simplified):**
|
||||
* `/`: Root directory.
|
||||
* `/bin`: Essential user binaries.
|
||||
* `/etc`: Configuration files.
|
||||
* `/home`: User home directories.
|
||||
* `/var`: Variable data (logs, mail).
|
||||
* `/tmp`: Temporary files.
|
||||
* `/dev`: Device files.
|
||||
* `/proc`: Process information.
|
||||
* **User and File Permissions (Basic Concepts):**
|
||||
* Users: `root` (administrator), `standard user`.
|
||||
* Groups.
|
||||
* Permissions: Read (r), Write (w), Execute (x).
|
||||
* Owner, Group, Others.
|
||||
* `ls -l` output interpretation (e.g., `drwxr-xr-x`).
|
||||
* `chmod` (brief mention, not for deep dive).
|
||||
* `sudo`: Running commands as root.
|
||||
* **Demonstration (Trainer):**
|
||||
* Live demo of each command in a terminal.
|
||||
* Navigate through different parts of the file system.
|
||||
* Show `ls -l` output and explain permissions.
|
||||
|
||||
**Part B: Lab Activity: Basic Linux Commands and Navigation (30 minutes - Hands-On)**
|
||||
|
||||
* **Learning Objectives:**
|
||||
* Log in to the CentOS/RHEL VM.
|
||||
* Practice common file system navigation commands.
|
||||
* Create, modify, and delete files/directories.
|
||||
* Use `sudo` for administrative tasks.
|
||||
* **Activity:**
|
||||
* **Step 1: Log in to your CentOS/RHEL VM.**
|
||||
* If the installation finished, reboot the VM.
|
||||
* At the login prompt, type `student` and press Enter, then enter your password (`password`).
|
||||
* **Step 2: Explore the File System.**
|
||||
* `pwd` (should be `/home/student`)
|
||||
* `ls -l`
|
||||
* `cd /`
|
||||
* `ls -l` (observe root directory contents)
|
||||
* `cd /etc`
|
||||
* `ls`
|
||||
* `cd /home/student` (or `cd ~`)
|
||||
* **Step 3: Create and Manage Files/Directories.**
|
||||
* `mkdir my_first_directory`
|
||||
* `cd my_first_directory`
|
||||
* `touch my_file.txt`
|
||||
* `ls -l`
|
||||
* `echo "Hello Linux!" > my_file.txt` (brief intro to redirection)
|
||||
* `cat my_file.txt`
|
||||
* `mkdir another_dir`
|
||||
* `cp my_file.txt another_dir/`
|
||||
* `cd another_dir`
|
||||
* `ls`
|
||||
* `mv my_file.txt renamed_file.txt`
|
||||
* `ls`
|
||||
* `rm renamed_file.txt`
|
||||
* `cd ..`
|
||||
* `rmdir another_dir` (will fail if not empty, good teaching point)
|
||||
* `rm -rf another_dir` (demonstrate, but warn about `rm -rf`)
|
||||
* `ls`
|
||||
* **Step 4: Practice with `sudo`.**
|
||||
* `sudo ls /root` (should prompt for `student`'s password, then show root's home directory).
|
||||
* `sudo touch /testfile.txt` (create a file in root, then `sudo rm /testfile.txt`)
|
||||
* `ls -l /` (verify file creation/deletion).
|
||||
* **Step 5: Use `man` pages.**
|
||||
* `man ls`
|
||||
* Press `q` to quit the man page.
|
||||
* **Troubleshooting Tips (Trainer):**
|
||||
* Command not found errors: Typo, or not installed (unlikely for basic commands).
|
||||
* Permission denied: Try with `sudo`.
|
||||
* **Wrap-up & Q&A:**
|
||||
* Review key takeaways from the entire 4 hours.
|
||||
* Answer any remaining questions.
|
||||
* Provide resources for further learning (online tutorials, books).
|
||||
|
||||
---
|
||||
|
||||
**Post-Training Resources (Optional Handout/Email):**
|
||||
|
||||
* **VirtualBox Documentation:** [https://www.virtualbox.org/manual/](https://www.virtualbox.org/manual/)
|
||||
* **CentOS Official Site:** [https://www.centos.org/](https://www.centos.org/)
|
||||
* **RHEL Documentation:** [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/)
|
||||
* **Linux Command Line Cheat Sheets:** Search online for "Linux basic commands cheat sheet".
|
||||
* **Recommended Online Courses:** Coursera, Udemy, edX for Linux fundamentals.
|
||||
|
||||
---
|
||||
|
||||
This structured plan provides a good balance of theoretical knowledge and hands-on experience, essential for beginners to grasp these foundational concepts. Remember to encourage questions and walk around to assist participants during lab activities.
|
||||
Loading…
Reference in New Issue
Block a user