ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ ร่วมกับ บริษัทไอบีเอ็ม จัดอบรมหลักสูตร Linux Intenal ในวันที่ 23-27 มิถุนายน 2551 นี้ ที่ห้อง

กำแพงเพชร โรงแรมโซฟิเทลเซ็นทารา ลาดพร้าว โดยมีเนื้อหาหลักสูตรดังนี้

สำหรับผู้สนใจสามารถส่งเมล์มาสมัครที่ผม (krich.nasingkun@nectec.or.th) โดยมีข้อมูลที่ต้องการดังนี้ครับ
– ชื่อ-สกุล
– พื้นฐานความเชี่ยวชาญที่เกี่ยวข้อง
– เบอร์ติดต่อ,อีเมล์

โดยผู้เข้าอบรมจะต้องสามารถเข้าร่วมการอบรมได้ทั้งวัน ครบทุกวันรับจำกัดเพียง 15 ท่าน ครับ

Instructor : IBM
Conduct in Englist

Course name : Linux Internal

Objective :
Train students on essentials of Linux internals, debugging, development tools and performance analysis.

Prerequisites:
Its expected that all participants will have:
– Basic knowledge of Operating Systems
– Good working knowledge of C
– Hands-on experience desirable
– Kernel programming experience is a bonus
– Basic scripting knowledge (ex: shell scripts)
– Working knowledge of Linux. Ex:
– booting a Linux system
– basis system administration (adding/removing users etc)
– basic commands (ls, ps, chmod, mkdir, vi, etc)

Schedule
Day 1
– Basics of Linux programming and tools
– Use of GCC/LD with simple C programs
– Simple threaded programs
– Programs making use of system calls
– Using GDB to debug programs [EXERCISE]
– Other analysis/debugging tools: strace, ltrace, objdump, nm [EXERCISE]
– Simple Makefiles
– Quick overview of a typical hardware on which Linux runs (CPU, Memory, Interrupt controller, IO Bus etc) – Kernel’s view of hardware
– Overview of the Linux Kernel
– Kernel layout
– Important subsystems
– Kernel architecture
– Configuring, Building and Booting a new kernel [EXERCISE]
– Generating patches – quick overview of quilt [EXERCISE]
– Linux kernel modules
– Simple “Hello World” module [EXERCISE]
– EXPORT_SYMBOL and the like

Day 2
– Linux kernel internals – An overview (with focus on interfaces used by device drivers)
– Processes and threads
– Scheduler and scheduling
– policy, multi-tasking, timeslice allocation
– Memory management
– virtual memory, page tables, memory allocation
– process address space, copy-on-write
– Filesystems
– VFS, inode, dentry, file_ops
– pseudo filesystems: /proc, sysfs, debugfs
– Interrupts and exceptions
– System Calls
– Locking and synchronization
– Concurrency and need for synchronization
– Semaphores, mutexes, spinlocks, waitqueues
– Lock-free algorithms
– Demo/Exercise on:
– Creating kernel threads and synchronizing them
– Adding a system call to kernel
– Adding a psuedo file to kernel (/proc and debugfs)
– More EXERCISES on various kernel subsystems to be identified

Day3
– Device drivers
– Character drivers
– Advanced character driver operations: ioctl, poll, select, async notification, seek
– Deferred work
– Timers (EXERCISE)
– Tasklets
– Work queues (EXERCISE)
– Allocating memory and IO ports
– Interrupt handling
– Installing a handler
– Top and bottom halves
– Linux driver model
– Kobjects, Ksets and Subsystems
– Sysfs
– Hotplug
– udev
– More EXERCISES to be identified
Day 4
– Device driver hands-on (Morning session)
– Developing a complete character and a block device driver for a pseudo device.
(This exercise starts on Day 3 and would terminate on Day 4)
– Debugging exercises (Afternoon session)
– printk [EXERCISE]
– dynamic instrumentation techniques
– SystemTap [EXERCISE]
– kexec [EXERCISE]
– kdump: crash dump and analysis [EXERCISE]
Day 5
– Performance analysis
– System performance monitoring
– CPU, Memory, IO, Network Utilization
– Measurement techniques
– Tools available for measurement
– top, iostat,vmstat, systemtap, delay accounting, oprofile, perfmon etc
– Benchmarks for performance evaluation
– Configuring Linux for high performance
– Partitioning
– Choice of filesystems and fileystem tuning.
– Kernel tunables
– Scheduler tunables
– VM tunables
– Network tunables
– IO tunables
– Permormance tuning case studies
– Filesystem, Scheduler, Network performance
– Specific case studies of application tuning (yet to be identified)

Comments are closed.