Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Linux kernel Module and driver Programming for x86
Rating: 3.7 out of 5(506 ratings)
14,053 students

Linux kernel Module and driver Programming for x86

Comprehensive Guide to System call and Linux internals on x86 platform
Created byShakil khan
Last updated 6/2017
English

What you'll learn

  • Write modules to insert in kernel to alter the behavior and functionality of Linux kernel.
  • Student should be able to compile linux kernel from official git source or download the standalone kernel for compilation
  • The course introduces the concept of device driver and Major and minor number to effectively write a linux driver as a module or in kernel
  • In depth explanation of jiffies and utilization of jiffies for getting either timer tick or clock for further work in those areas
  • Understanding of device file, node, major number, minor number and numerous calls with respect to rebuffs
  • Understanding of kernel file system and data structure like proc, debuts etc for easy kernel debugging

Course content

1 section14 lectures3h 2m total length
  • Introduction and Ubuntu_installation in vmware fusion15:31

    Introduction and how to install ubuntu in vmware fusion or workstation for kernel compilation


  • kernel compilation Part116:04

    How to compile Linux kernel in details part1

  • kernel compilation Part216:21

    How to compile Linux kernel in details part2

  • kernel compilation Part316:43

    How to compile Linux kernel in details part3

  • Hello World Module Part 116:05

    How to add a hello world module in linux kernel Part 1

  • Hello World Module Part 215:17

    How to add a hello world module in linux kernel Part 1

  • Character Device driver Part 110:00

    How to write a character device driver part -1

  • Character Device driver Part 210:02

    How to write a character device driver part -2

  • Character Device driver Part 38:08

    How to write a character device driver part -3

  • Character Device driver Part 410:35

    How to write a character device driver part -4

  • Debugfs.18:30

    How to Write a debugfs driver in linux kernel

  • How to Patch Linux kernel13:39

    How to Patch a linux kernel

  • Jiffies Device Driver11:49

    How to write a kernel module to read values of Jiffies

  • How System Call works in Linux3:59

    How system call works

Requirements

  • Basic understand of c language and working knowledge of Operating system is needed
  • Hands on Bash shell and Linux command line tools and utilities are needed to effectively utilize the concepts learned in these lecture series.

Description

This course guides a student for the basic understanding of Linux Kernels

Familiarize students with kernel compilations and different ways to achieve the same.

Introduce the character device Driver and explained in details like copy_to_user and copy_from_user

Explained the concept of Jiffies and a practical example of working Jiffies code

Explained in depth about debugfs and its various calls.

Explained in details with the help of power point as to how system call works.

The course provides the various way a system call can be invoked using software interrupt or directly invoking the syscall layer.

At the end of this course students would be well versed in kernel compilation and writing modules on Linux kernel.

This lecture series also guides students as to how to effectively get involved with Linux open source community and write patches which would be accepted upstream.

The course intends to build a niche in students who are devoted in kernel programming but couldn't gather enough resource at single location to build a career out of it.
The intention is to give a build blocks to students to understand the kernel, driver, file system, compilation, module insertion, deletion, device file, communication between user level and kernel level and how to code from kernel perspective rather than general c code.

In depth details of the explanation of concepts to communicate with kernel using either copy_from_user, copy_to_user or using the debugfs or proc fs.

Explained in details how to use virtual machine like VMware fusion of VMware workstation to setup a system for Linux kernel compilation and programming as virtual machines we can take snapshots and if there is problem we can simply revert to older snapshots for quick development, without corrupting the entire Operating system.


Who this course is for:

  • Students and professional who is willing to make a career in Linux internals and operating system.
  • Linux enthusiastic who would like to see what is going on in kernel level either due to hobby or curiosity and wanted to build a career out of it
  • Students who wanted to understand the kernel of other operating system but couldn't do so because of closed source, can learn linux and apply the almost similar concept in other OS