This is an old revision of the document!


Linux Kernel Development

Prerequisites

Acest workshop e adresat în principal studenților de anul III de la Facultatea de Automatică și Calculatoare, care au absolvit cursul de Sisteme de Operare. Pentru studenții care nu se încadrează în această categorie sunt recomandate următoarele cunoștințe:

  • Cunoștințe solide de programare în C
  • System programming
  • Operating system concepts

Desfășurare

Date Time Room
July 1-12 , 2013 8:00 - 10:30 EG106

Puteți vizualiza sesiunile de anul trecut aici.

Coordonator

Daniel Băluţă

Students

Nume și prenume Facultate An
Alexandru Preda ACS 3
Alex Grad ACS 5
Andrei Vasiliu ACS 3
Albert Zaharovits ACS 3
Ologu Robert ACS 3
Camelia Groza ACS 3
Andrei Petre ACS 3
Dragos Foianu ACS 3
Pricope Razvan ACS 3
Daniel Ciocîrlan ACS 3
Valentina Manea ACS 3
Cosmin Stanescu ACS 3

Agenda

  • Day 1: Getting started with the Linux kernel
    • general architecture, source code organization
    • source code browsing: lxr, opengrok, ctags
    • introduction to booting, initialization

* Day 2: Linux kernel modules

  • get the sources, compile the kernel, run
  • write a simple “Hello World” module
  • learn to use printk

* Day 3: Introduction to kernel space + Kernel API

  • simple tasks to demonstrate kernel API (kernel data structures)
  • opening the kernel gates (introducing system calls)
  • kernel execution contexts (process, interrupts)

* Day 4: Debugging (generate and fix bugs)

  • oops and panic
  • CONFIG_DEBUG, addr2line, objdump, printk :), gdb

* Day 5: Device Drivers

  • how linux handles device drivers
  • simple char device module
  • basic char device to control hardware (LED)

* Day 6: Processes/Scheduling/Synchronization

  • processes hierarchy, current task
  • schedulers
  • synchronization mechanisms

* Day 7: Memory management

  • __get_free_pages, kmalloc, vmalloc
  • memory zones, mapping memory into user space

* Day 8: - Networking

  • TCP/IP stack architecture overview
  • what exactly is a socket?
  • capture and analyze traffic - tcpdump, Wireshark

* Day 9: Overview on NGW100 boards

  • booting, compiling, networking, etc.

* Day 10: Recap

  • contributing to Linux kernel
  • basic git tutorial
  • versioning, patching, linux kernel community, mailing lists
  • special guest(s)
  • conquer the Solar System
sesiuni/kernel.1372067804.txt.gz · Last modified: 2013/06/24 12:56 by mbarbulescu