Faculty of Engineering - Ain Shams University, Home
Embedded Operating Systems
What Will Learn?
-
Course Aims- Learn the concepts of embedded Linux architecture: toolchain, kernel, bootloader, device drivers, process and memory management, and embedded storage. - Earn practical knowledge of using and customizing Linux systems. - Build and deploy embedded Linux on development and emulated boards.
-
Course Goals
- Decent Work and Economic Growth
- Industry, Innovation and Infrastructure
- Sustainable Cities and Communities
Requirements
CSE323
Description
-
English Description
Introduction to embedded Linux: Architecture, Boot sequence, Toolchains, Shell commands. Bootloaders: Phases, Customizing bootloaders. Linux kernel: Architecture and components, Kconfig and KBuild systems, Customize and build Linux kernel, Kernel modules, Booting kernel on emulators and hardware boards. Root filesystem (rootfs): Construct optimized rootfs with utils and libraries, Creating and mounting rootfs images, Lint programs. Build systems such as buildroot and yocto frameworks: Architecture, Configuration, Customization, Building custom distributions. Memory Technology Devices (MTDs) and flash storage: MTDs, Filesystems for raw and managed MTDs. Device drivers: Device tree, Device model, Bus infrastructure, Character and block drivers, Standard drivers for GPIO, I2C and SPI, Kernel frameworks for device drivers, Developing simple device drivers. Process and memory management: Process, Threads and daemons, Scheduling policy, Inter-process communication, Virtual memory concepts, Kernel and user space memory layout, Shared memory, Identifying memory leaks. Real-Time programming: Kernel preemption, Kernel locks, High-resolution timers, Measuring latency. -
Arabic Description
Introduction to embedded Linux: Architecture, Boot sequence, Toolchains, Shell commands. Bootloaders: Phases, Customizing bootloaders. Linux kernel: Architecture and components, Kconfig and KBuild systems, Customize and build Linux kernel, Kernel modules, Booting kernel on emulators and hardware boards. Root filesystem (rootfs): Construct optimized rootfs with utils and libraries, Creating and mounting rootfs images, Lint programs. Build systems such as buildroot and yocto frameworks: Architecture, Configuration, Customization, Building custom distributions. Memory Technology Devices (MTDs) and flash storage: MTDs, Filesystems for raw and managed MTDs. Device drivers: Device tree, Device model, Bus infrastructure, Character and block drivers, Standard drivers for GPIO, I2C and SPI, Kernel frameworks for device drivers, Developing simple device drivers. Process and memory management: Process, Threads and daemons, Scheduling policy, Inter-process communication, Virtual memory concepts, Kernel and user space memory layout, Shared memory, Identifying memory leaks. Real-Time programming: Kernel preemption, Kernel locks, High-resolution timers, Measuring latency.
-
DepartmentComputer and Systems Engineering
-
Credit Hours3
-
GradesTotal ( 100 ) = Midterm (25) + tr.Major Assessment (30 = tr.Industry 0% , tr.Project 15% , tr.Self_learning 0% , tr.Seminar 20% ) + tr.Minor Assessment (5) + Exam Grade (40)
-
HoursLecture Hours: 2, Tutorial Hours: 2, Lab Hours: 0
-
Required SWL125
-
Equivalent ECTS5
- Frank Vasquez, Chris Simmonds, "Mastering Embedded Linux Programming", 3rd ed, 2021
- Derek Molloy, "Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux", Jun 13, 2016 - Frank Vasquez, Chris Simmonds, Mastering Embedded Linux Programming, 3rd ed, 2021 - Frank Vasquez, Chris Simmonds, Mastering Embedded Linux Programming, 3rd ed, 2021.