Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Introduction to Linux Kernel Device Drivers
254 students

Introduction to Linux Kernel Device Drivers

الكورس مُجرد مقدمه عن المجال، الهدف الرئيسي منه هو كسر الحاجز المعرفي فقط
Last updated 7/2015
Arabic

What you'll learn

  • Build and run Linux Kernel from sources
  • Understand the basics of Linux Kernel Device Drivers
  • Understand the basics and write your first Linux Kernel Character Devices

Course content

1 section6 lectures47m total length
  • مُقدمه عن مُحتويات الكورس0:47

    Keywords and Links for deep divers:

    1. Linux Kernel Device Drivers book:
      • https://lwn.net/Kernel/LDD3
    2. Kernel sources
      • https://www.kernel.org
      • git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
  • Introduction to Linux Kernel Modules3:23

    Keywords and Links for deep divers:

    1. Linux Kernel Module:
      • http://linux.die.net/lkmpg/x40.html
      • https://en.wikipedia.org/wiki/Loadable_kernel_module
    2. x86 Rings:
      • https://en.wikipedia.org/wiki/Protection_ring
    3. User space & Kernel space
      • https://en.wikipedia.org/wiki/User_space
    4. System calls
      • https://en.wikipedia.org/wiki/System_call
    5. Page tables
      • https://en.wikipedia.org/wiki/Page_table
  • Kernel Module Life Cycle & Developing a Simple Module14:50

    Keywords and Links for deep divers:

    1. insmod & rmmod & lsmod & modprobe
      • http://linux.die.net/man/8/insmod
      • http://linux.die.net/man/8/rmmod
      • http://linux.die.net/man/8/lsmod
      • http://linux.die.net/man/8/modprobe
    2. Make & Makefiles
      • http://mrbook.org/blog/tutorials/make/
      • http://www.gnu.org/software/make/manual/make.html
    3. Kernel messages & dmesg
      • http://linux.die.net/man/1/dmesg
      • https://en.wikipedia.org/wiki/Dmesg
      • http://elinux.org/Debugging_by_printing
    4. ELF
      • https://en.wikipedia.org/wiki/Executable_and_Linkable_Format
    5. User space & Kernel space
      • https://en.wikipedia.org/wiki/User_space
  • Linux Kernel Build System8:02

    Keywords and Links for deep divers:

    1. Kbuild & Kconfig
      • http://www.linuxjournal.com/article/6568
      • https://www.kernel.org/doc/Documentation/kbuild/kconfig.txt
      • https://www.kernel.org/doc/Documentation/kbuild/kbuild.txt
    2. insmod & rmmod & lsmod & modprobe
      • http://linux.die.net/man/8/insmod
      • http://linux.die.net/man/8/rmmod
      • http://linux.die.net/man/8/lsmod
      • http://linux.die.net/man/8/modprobe
    3. User space & Kernel space
      • https://en.wikipedia.org/wiki/User_space
    4. Linux Kernel Module:
      • http://linux.die.net/lkmpg/x40.html
      • https://en.wikipedia.org/wiki/Loadable_kernel_module
  • Using QEMU9:01

    Keywords and Links for deep divers:

    1. QEMU
      • http://wiki.qemu.org/Main_Page
    2. qcow2 & raw
      • https://en.wikipedia.org/wiki/Qcow
      • http://www.linux-kvm.org/page/Qcow2
      • https://people.gnome.org/~markmc/qcow-image-format.html
    3. ubuntu & install ubuntu
        http://www.ubuntu.com
      • http://www.ubuntu.com/download/desktop/install-ubuntu-desktop
    4. Virtual machine
      • https://en.wikipedia.org/wiki/Virtual_machine
  • Compiling and testing the Linux Kernel with QEMU11:25

    Keywords and Links for deep divers:

    1. git
      • https://git-scm.com/
    2. vmlinux & bzImage & initrd
      • https://en.wikipedia.org/wiki/Vmlinux
    3. serial port
      • https://en.wikipedia.org/wiki/Serial_port
    4. Kbuild & Kconfig
      • http://www.linuxjournal.com/article/6568
      • https://www.kernel.org/doc/Documentation/kbuild/kconfig.txt
      • https://www.kernel.org/doc/Documentation/kbuild/kbuild.txt
    5. User space & Kernel space
      • https://en.wikipedia.org/wiki/User_space

Requirements

  • Good understanding of the 'C' language
  • Familiarity with Linux command-line tools

Description

The course gives a good introduction to Linux Kernel Device Drivers, their anatomy and their life-cycle.

It targets absolute beginners with a focus on allowing students to practice and get their hands dirty with code.

The contents are explained in simple terms and explains the development environment to allow students to replicate the setup of the instructor and apply the examples given on their own machines.

Who this course is for:

  • Students with good understanding of the 'C' language
  • Students who are familiar with Linux command-line tools