Embedded Linux

This course is created to target engineers who aim to develop embedded systems based on the Linux operating system.

The Embedded Linux course gives a detailed overview of the internal structure and functionalities of the Linux operating system, emphasizing its usage in embedded systems, such as cars, cellphones, TVs, etc.

Through theory, practical labs, and hands-on examples, the course makes the participant familiar with:

1. The architecture of an embedded Linux system,

2. Setting up and configuring the cross-compiling environment for target embedded system,

3. Taking advantage of the open-source components for reducing development costs when implementing system features,

4. Basics of how to modify and integrate existing device drivers both with the kernel and the user-space applications,

5. How to develop and debug user-space applications in an embedded environment.

Course Topics:

  • Linux introduction

  • Linux Bash

  • Linux Build system

  • Introduction to embedded Linux

  • Configuring, (cross)compiling and booting Linux kernel

  • Driver Development

  • Linux POSIX Multithreading

Hardware (required):

  • PC (recommended configuration)

      • 8GB of RAM or more

      • At least Intel i7 CPU or equivalent

  • Network setup

      • (Preferable) Available ethernet connection accepting Raspberry Pi on the same LAN used to connect the PC

          • Could be company OR

          • Home network

      • (Alternative) the available network adapter on PC with Firewall turned off for this connection (in case of Windows OS to avoid rejecting a connection to Raspberry Pi)

          • Note: Additional adapter (WiFi or wired) is needed for Internet connection in this case

  • Other

      • Raspberry Pi 2b+ Toolkit (including USB2Serial and ETH cable)

          • CANAKIT Toolkit with accessories provided by NIT


  • (Preferable) Windows 10 or later

      • Virtualization feature enabled in BIOS

      • Latest Oracle VirtualBox (at least 6.1)

      • Ubuntu 21.04 guest OS for Virtual Machine is provided by NIT

  • (Alternative) Linux Ubuntu 21.04 (bare metal)

  • Virgine installation

Course Typically Offered: The course gives a detailed overview of the internal structure and functionalities of the Linux operating system with emphasis on its usage in embedded systems, such as cars, cellphones, TVs, etc., and also the fundamentals for starting a project using embedded Linux, from system building to application development and basic knowledge for Linux device driver development

Prerequisites: Students should have basic programming knowledge in the C language. It is also recommended that the Advanced C course (NIT-CE-02) is already taken.

Next Step: Advanced Linux, QNX, Real-Time Programming and Operating Systems

Course Number: NIT-CE-04

Duration: 2.00 units (~20 live teaching hours, ~40 hours of individual practice and preparation work)

Offered next: Contact us!

Class type: Live Online Intensive (according to the schedule published at the beginning of the course, approximately 3x2 live classes per week)

Instructor: doc. dr Vladimir Marinković; dr Branislav Kordić

How to join: Google Meet (link will be available upon enrollment ), NIT Canvas

How to apply: Please apply by filling up the form here and we will get in touch with you as soon as possible.

Customized schedule for your company or team (call for price)

Class type: Live Online (Regular or Intensive), Live Bootcamp (Company premises)

Instructor: To be announced

For groups and organizations: please contact us directly to arrange this course according to your scheduling, needs and participant lists - via the contact form here.