Red Hat Linux Internals



Similar documents
Operating Systems. Design and Implementation. Andrew S. Tanenbaum Melanie Rieback Arno Bakker. Vrije Universiteit Amsterdam

Outline. Operating Systems Design and Implementation. Chap 1 - Overview. What is an OS? 28/10/2014. Introduction

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Chapter 10 Case Study 1: LINUX

Chapter 3 Operating-System Structures

SYSTEM ecos Embedded Configurable Operating System

Advanced Linux System Administration on Red Hat

CSC 2405: Computer Systems II

Operating Systems. Lecture 03. February 11, 2013

Operating System Components and Services

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Chapter 6, The Operating System Machine Level

Linux for Embedded and Real-Time Systems

Real-time Debugging using GDB Tracepoints and other Eclipse features

White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux

Frysk The Systems Monitoring and Debugging Tool. Andrew Cagney

Lecture 5. User-Mode Linux. Jeff Dike. November 7, Operating Systems Practical. OSP Lecture 5, UML 1/33

CGL Architecture Specification

Lecture 6: Interrupts. CSC 469H1F Fall 2006 Angela Demke Brown

Survey of Filesystems for Embedded Linux. Presented by Gene Sally CELF

KVM Architecture Overview

Red Hat Enterprise Linux (RHEL 6) Courses

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

CS161: Operating Systems

Chapter 2 System Structures

REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux

EXPLORING LINUX KERNEL: THE EASY WAY!

Embedded Linux development training 4 days session

Republic Polytechnic School of Information and Communications Technology C226 Operating System Concepts. Module Curriculum

OPERATING SYSTEM SERVICES

LSN 10 Linux Overview

Introduction. What is an Operating System?

Operating System Components

Operating Systems 4 th Class

Going Linux on Massive Multicore

Security Overview of the Integrity Virtual Machines Architecture

Linux Kernel Networking. Raoul Rivas

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems

Undergraduate Course Syllabus

Operating Systems and Networks

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Safety measures in Linux

Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

System Structures. Services Interface Structure

OPERATING SYSTEMS STRUCTURES

Process Description and Control william stallings, maurizio pizzonia - sistemi operativi

COMPARISON BETWEEN QNX RTOS V6.2 AND RED HAT EMBEDDED LINUX (ELDS) V1.1

COS 318: Operating Systems

Chapter 11 I/O Management and Disk Scheduling

I/O Management. General Computer Architecture. Goals for I/O. Levels of I/O. Naming. I/O Management. COMP755 Advanced Operating Systems 1

Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:

Module 20: The Linux System

Virtual Memory Behavior in Red Hat Linux Advanced Server 2.1

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

ANDROID DEVELOPER TOOLS TRAINING GTC Sébastien Dominé, NVIDIA

Windows Kernel Internals for Security Researchers

An Implementation Of Multiprocessor Linux

Soft processors for microcontroller programming education

FAME Operating Systems

Virtual Machine Security

Linux Performance Optimizations for Big Data Environments

Operating System Tutorial

CS3600 SYSTEMS AND NETWORKS

Operating System Structures

Host-based Intrusion Prevention on Windows and UNIX. Dr. Rich Murphey White Oak Labs

Chapter 2. Basic Concepts Linux Workstation. 2.1 Types of Hosts

Processes and Non-Preemptive Scheduling. Otto J. Anshus

ELEC 377. Operating Systems. Week 1 Class 3

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

Application-Level Debugging and Profiling: Gaps in the Tool Ecosystem. Dr Rosemary Francis, Ellexus

Performance Comparison of RTOS

Overview of Operating Systems Instructor: Dr. Tongping Liu

Linux Kernel Architecture

Sierraware Overview. Simply Secure

Computer Science 4302 Operating Systems. Student Learning Outcomes

Real Time Programming: Concepts

OPERATING SYSTEMS Internais and Design Principles

Far-western University Central Office, Mahendranagar Operating System

DS-5 ARM. Using the Debugger. Version 5.7. Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0446G (ID092311)

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

RH033 Red Hat Linux Essentials or equivalent experience with Red Hat Linux..

ProMoX: A Protocol Stack Monitoring Framework

Virtual Private Systems for FreeBSD

Efficient Implementation of the bare-metal Hypervisor MetalSVM for the SCC

Chapter 14 Analyzing Network Traffic. Ed Crowley

Lecture 25 Symbian OS

TEGRA X1 DEVELOPER TOOLS SEBASTIEN DOMINE, SR. DIRECTOR SW ENGINEERING

A Look through the Android Stack

Getting Started with CodeXL

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

Transcription:

Red Hat Linux Internals Learn how the Linux kernel functions and start developing modules. Red Hat Linux internals teaches you all the fundamental requirements necessary to understand and start developing for the Linux kernel. Get deep into the internals of the Linux OS and begin to develop kernel modules for the latest Red Hat distribution. From kernel module implementation through memory and process management, which include I/O, debugging, and file system topics, this introductory course is all encompassing. Red Hat Linux Internals is designed to provide a solid foundation for those looking to start low level kernel development for this popular operating system. With the majority of the class being hands-on each student will be issued a laptop with all the necessary tools to learn the skills and essential methodologies required to be an Red Hat Linux developer. Attending students will learn: How to setup a development environment for Red Hat Linux How the Red Hat Linux kernel functions How to develop kernel modules for the Red Hat Linux operating system which interact with I/O, memory, processes, file systems, and networking Obfuscation methods used by attackers to escape detection Who should attend: Developers looking to get a grasp on Red Hat Linux kernel internals and development Individuals who have a solid understanding of low level Windows system programming and are looking to branch into the Linux OS Prerequisites: Experience in C programming Knowledge of systems programming in a UNIX or Linux environment (register-level hardware programming knowledge is recommended but not required) Familiarity with basic tools, such as vi, Emacs, and file utilities Familiarity with Unix development tools such as gcc and make Course Details: 5 Days M-F 70% Labs, 30% Lecture using the Red Hat distribution of Linux Laptops are provided during the class Students receive USB Flash drives of all programming exercises and labs Students receive Understanding the Linux Kernel Book

Day 1 Agenda Introduction Linux Versus Other Unix-Like Kernels Hardware Dependency Linux Versions Basic Operating System Concepts Review An Overview of the Linux Kernel Development Environment Setup Kernel Compilation Module Compilation Internal Kernel API s Kernel Modules Implementation Memory Memory Addressing Segmentation in Hardware Segmentation in Linux Memory Management of: Memory Areas, Page Frames, and Noncontiguous Memory Swapping Introduction Paging in Hardware Paging in RH Linux Processes Processes, Lightweight Processes, and Threads Process Descriptor Process Address Space (Creating/Deleting) Creating Processes Destroying Processes Process Management Process Scheduling: Algorithms & System Calls Process Switching Process Communication: Pipes, FIFO's and IPC Managing Kernel Threads No Labs for Intro Dev IDE Setup Compiling RedHat Kernel Compiling RedHat Kernel Module Our First Module Memory Addressing Memory Management Paging/Swapping Introduction Process Creation/Management Process Scheduling/Switching Process Communication Kernel Threading

Day 2 Agenda Interrupts and Exceptions The Role of Interrupt Signals Interrupts and Exceptions Nested Execution of Exception and Interrupt Handlers Initializing the Interrupt Descriptor Table Exception Handling in the Kernel Interrupt Handling in the Kernel Soft IRQs, Tasklets, and Bottom Halves Returning from Interrupts and Exceptions Kernel Synchronization Kernel Control Paths When Synchronization Is Not Necessary Synchronization Primitives Synchronizing Accesses to Kernel Data Structures Examples of Race Condition Prevention Timing Measurements Hardware Clocks Section The Linux Timekeeping Architecture CPU's Time Sharing Updating the Time and Date Updating System Statistics Software Timers System Calls Related to Timing Measurements Signals The Role of Signals Generating a Signal Delivering a Signal System Calls Related to Signal Handling System Calls POSIX APIs and System Calls System Call Handler and Service Routines Kernel Wrapper Routines Interrupts and Exceptions Nested Exception Handlers Resuming Code Execution from Interrupts and Exception Handlers Understanding Synchronization Understanding and Mitigating Race Conditions in the Linux Kernel Timekeeping Generating, Delivering and Handling Signals System Calls and Service Routines

Day 3 Agenda The Virtual Filesystem The Role of the Virtual Filesystem (VFS) VFS Data Structures Filesystem Types Filesystem Mounting Pathname Lookup Implementations of VFS System Calls File Locking Managing I/O Devices I/O Architecture Device Files Device Drivers Block Device Drivers Character Device Drivers Disk Caches The Page Cache The Buffer Cache Accessing Files Reading and Writing a File Memory Mapping Direct I/O Transfers Swapping: Methods for Freeing Memory What Is Swapping? Swap Area The Swap Cache Transferring Swap Pages Swapping Out Pages Swapping in Pages Reclaiming Page Frame The Ext2 and Ext3 Filesystems General Characteristics of Ext2 Ext2 Disk Data Structures Section Ext2 Memory Data Structures Section Creating the Ext2 Filesystem Section Ext2 Methods Section Managing Ext2 Disk Space Section The Ext3 Filesystem Understanding the VFS Block and Character Devices Disk Caching File Access Memory Mapping Understanding Swapping Ext2 FileSystem Ext3 FileSystem

Day 4 Agenda Program Execution Executable Files Executable Formats Execution Domains The exec Functions Executables Kernel Debugging Continuous Inspection Noncontinuous Inspection KGDB Debugger Execution Control Stack Frame Analysis Disassembly Register Dumps Target Manipulation Target Signal Catching Software Breakpoints Remote Debugging SystemTap Tracing Analysis Tapsets Networking Section Main Networking Data Structures System Calls Related to Networking Sending Packets to the Network Card Receiving Packets from the Network Card Module Implementation Linking and Unlinking Modules Linking Modules on Demand Module Loading ModProbe /proc/modules Unresolved Symbols SMP Symbols Module Licensing Debugging RH Kernel Using SystemTap SystemTap Scripting Networking Working with RH Linux Kernel Modules (LKM)

Day 5 Agenda Student Practical Demonstration: Using the tools, skills, and methodologies taught in Days 1 through 4 of the class students will derive the answers to questions regarding a Red Hat RootKit as a Linux Kernel Module. Each student will have to study how the RootKit works with the operating system to understand it s capabilities and persistence level as well as the threat level of the RootKit.