Q

Our Course

Home » Trainings » Embedded » Linux Kernel Internals

Linux Kernel Internals

Categories

GIVE A BOOST TO YOUR SATURATING CAREER

Learn on weekends, get a career break

Online interventions

Showcase projects

Make a career switch

GOAL:

Write Linux system programs and applications by making use of system calls. Develop networking applications by understanding Linux networking interfaces. This Linux kernel internals programming course also builds participants with deeper knowledge of Linux Kernel subsystems.

 

TARGET AUDIENCE:

Engineers with exposure to Linux environment

 

DURATION:

4 days (Two weekends) + One month lab assistance

 

BENEFITS

Our Linux kernel internals programming course is conducted over weekends, which will enable you gain knowledge on the following core OS areas:

  • Create multi-tasking and multi-thread Linux based applications on your own
  • System programming: Gain strong knowledge of Linux system programming
  • OS concepts: Develop deeper insights into process, memory, networking, IPC mechanisms
  • Develop TCP/IP based network applications
  • Weekend option: Comfortably take time-off from your busy work schedule
  • Workshop model: High stress on hands-on approach for quick ramp-up
  • Expert trainers: Delivered by industry experienced expert trainers

 

WORK ON REAL-TIME PROJECTS

Along with learning, our linux kernel internals programming course provides participants to work on real hands-on projects to make your learning complete. Here is the list of real-time projects that you will be implementing, there are many more in the store.

  • Implementation of TCP/IP based packet generator
  • RFC implementation of standard protocols (ex: TFTP)
  • Multi-tasking based remote diagnostics
  • Implementation of system calls inside Linux Kernel

 

ADMISSION PROCEDURE

  • Call us at +91 809 555 7332, +91 809 555 7333 and enroll
  • Simply send an email to training@emertxe.com

Course Features

  • Course duration 4 days
  • Daily Duration 8 hours (Class & labs)
  • Assessments Projects
  • Skill level Beginner
  • Mode Classroom delivery (30%) Practical labs (70%)
  • Support mode online

Linux Internals & Networking workshop starts with introducing Kernel to participants. Then it progresses further into various system / library calls related to process, IPC, Networking and threads.

Key takeaways:

Linux kernel internals and programming course syllabus focuses on key Linux Kernel subsystems and associated programming aspects. Here are the key elements of the course.

  • Build deeper view about soft interrupts and how Kernel handles it
  • Usage of synchronous and asynchronous communication mechanisms in Linux
  • Linux Kernel system call implementation
  • Create multi-threading applications using POSIX threads
  • Race conditions and thread safe coding practices using mutex and semaphores
  • Internetworking concepts using TCP/IP
  • Network packet analysis using Wireshark
  • Application development using TCP/IP socket programming

Topics covered:

Linux kernel internals and programming course syllabus is delivered in a workshop manner with topics starting from beginning to advanced. Here are the day wise break-up of topics.

  • Day1: Introduction, System calls, Process management in Linux
  • Day2: Inter Process Communication mechanisms, Signals, Threads
  • Day3: Thread & process synchronization, Internetworking with TCP/IP
  • Day4: Linux network programming using sockets, process & memory management
  • Special Focus: Application optimization in Embedded systems
  • One month lab assistance

Prerequisites:

  • Good C programming Skills
  • Basic Linux Usage

Platform Details:

  • OS – Any Linux distribution, Ubuntu preferred
  • Kernel version – 3.x/4.x

js_loader

The Emertxe Technical Resource Library (TRL) is an initiative by our team of mentors to share the entire course material online. Here you will find course contents, slide-ware, sample code, assignments and a bunch of industry projects. Along with that we are in the process of adding Embedded interview preparation materials so that you can brush up your basics before showing up for an interviews.

All these materials are open and free for any engineer who is interested in having a career in core Embedded Systems domain. Click the button provided below to access the library.

Your Title Goes Here

  • Lesson 1 – Sample Text
  • Lesson 2 – Sample Text
  • Lesson 3 – Sample Text
  • Lesson 4 – Sample Text
  • Lesson 5 – Sample Text

Schedule – Linux Kernel Internals

Linux Kernel Internals Weekend workshop – For working professionals

COURSE NAMESTART DATEDURATIONREGISTRATION STATUS
Linux Internals & Network ProgrammingTo Be Announced Soon4 days + 1 Month Lab AssistanceInquire Now

Weekend workshops – For working professionals

Co-created with top notch companies

Emertxe training programs are co-created with companies who are building real-time solutions. Our tightly integrated model with companies ensure we teach what companies actually want. Have a look into what some of them have to say.

Emertxe student performance was Excellent

Our interview rounds were extremely rigorous. Emertxe students performance was excellent during all 3 rounds of F2F interviews. Though they have 6 months training background, interviewers mentioned that their performance was equivalent to 30 months experienced engineers. This immensely saved ramp up time of the team. Emertxe approach of focusing on the core knowledge along with the attitude-transformation is commendable. Looking forward for long term association with Emertxe.

Sai Madhav P

Director of Engineering, Aricent (An Altran Group)


Very Commendable Performance

Emertxe has helped us strengthen our team with talented new engineers. The recruits though fresh grads from have shown excellent confidence in handling our projects, very commendable performance especially since we work in niche space. Emertxe service and personal attention is extraordinary. We are expanding and Emertxe will surely be a part of our plans. Our thanks to the dedicated team at Emertxe and wish them all the best.

Ashwini Subbaiah

Manager, Human Resources, Chelsio


Very Good Knowledge in System Programming

We have been engaged with Emertxe for fresher’s hiring and corporate training since couple of years. I find the trainers in Emertxe are very qualified and committed. The students from this institute comes with very good knowledge in system programming. They excel in their assignments. They are hardworking , always eager to learn.

Keshav Karunakar

VP – Engineering, PathPartner Technologies


Have Good grasp over the subjects

Our company SHARP Software Development India Pvt Ltd. is a division of SHARP Corporation, Japan and a CMMI Level 5 organization. We are front-runners in the printer products and hence strongly rely on embedded programming. We had some fresher openings in Embedded Systems. Thus, during research we came across Emertxe institute and it proved to be very fruitful as we hired candidates from here. These candidates had a good grasp over the subject expertise they underwent during their course under Emertxe and are proving to be a valuable asset till date. We wish this institute to keep evolving and adapting to the future technological trend and be producing good candidates like always, every year. This immensely saved ramp up time of the team. Emertxe approach of focusing on the core knowledge along with the attitude-transformation is commendable. Looking forward for long term association with Emertxe.

Sagar Madalagi

HR - Sharp India


Knowledge to Skill Transformation by Emertxe

Skilled workforce is the desire of any company. Our system of education system has not aligned itself to cater to this requirement. The industry needs more players like Emertxe who not only understand technology, but also understand how to convert that knowledge quotient into skilled resources. Best wishes to team Emertxe.

Srinivas AN

Regional Head - South - ESSCI (Skill India)


Substantial Contributions by Emertxe Students

Thanks team Emertxe for providing us with good quality candidates to fill important positions at NXP over the last couple of years. The engineers who joined different teams ramped up quickly and are making substantial contributions in Dev, Test and Tools teams. This was possible only because of high quality training (with emphasis on fundamentals) that was imparted to engineers during their stint, while undergoing embedded systems course at Emertxe.

Anish Damodaran

Technical Manager, NXP Semiconductors


Placement Company - Altran , Yocto Projects
Placement Company - Chelsio Communications
Placement Company - Path Partner
Placement Company - Sharp
Placement Company - skill India
Placement Company - NXP semiconductors

Course flow – Linux Kernel Internals

Delivery Approach

  • Workshop based fast-track delivery
  • In-depth subject coverage by heavy hands-on
  • Online Intervention for Project Work

09:30 AM – 11:00 AM Introduction

  • Introduction to Linux & Open source
  • GPL, LGPL licensing
  • Introduction to various flavors to Linux
  • Using the command line interface
  • Components of Linux
  • The Kernel Source Organization

11:15 AM – 1:00 PMSystem Calls

2:00 PM – 03:30 PMProcess

09:30 AM – 11:00 AMInter Process Communication (IPC)

  • Introduction to IPC
  • Pipe
  • FIFO
  • Shared Memory
  • Advantages and Disadvantages of various IPC mechanisms
  • Application use cases

11:15 AM – 1:00 PMSignals

2:00 PM – 03:30 PMThreads

09:30 AM – 11:00 AMIntroduction to Synchronization

  • Introduction to race conditions
  • Critical section
  • Priority inversion
  • Deadlock
  • Atomicity & Mutual exclusion
  • Solutions to race condition

11:15 AM – 1:00 PMThread Synchronization

2:00 PM – 03:30 PMProcess synchronization

03:45 PM – 05:30 PMInternetworking with TCP/IP

09:30 AM – 11:00 AMLinux Network programming using Sockets

  • Socket APIs
  • Iterative and Concurrent servers
  • Client-server implementation using sockets
  • TCP and UDP sockets
  • Synchronous I/O using select()
  • xinetd daemon in Linux

11:15 AM – 1:00 PMProcess Management

2:00 PM – 03:30 PMMemory management

Introduction

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Writing your first Driver

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Character Drivers

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

File Operations

Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.

Project based UpSkilling

Our Linux internals courses gives very high importance on project based learning. Not only you learn a particular technology as a part of the workshop, it will enable you to build a project on your own. Here is a list of projects that will expose you to various part of Linux Kernel and System calls.

Mini Shell implementation – System calls & Signal handling

Project brief

Mini shell is a command processor, typically run in a text window, allowing the user to type commands which cause actions. BASH can also read commands from a file, called a script. Like all Unix shells, it supports piping and variables as well.

The goal of this project is to implement a mini-shell that mimics the BASH shell by using Linux Kernel System calls and IPC mechanisms like signals. It will also handle special keyboard actions (ex: Control C), can be extended for
advanced functionalities (ex: Command history) as well.

Technologies used
  • Linux Kernel System Calls usage
  • IPC – Signal handling
  • String pointers & parsing

Message Queue IPC implementation inside Linux Kernel

Project brief

Message queues are one of the IPC mechanisms that helps two user-space process to communicate and exchange information. They are exposed by the Kernel as system calls. In actual implementation the data-structures are maintained inside the Kernel to facilitate buffer transfer between two processes.

The goal of this project is to implement Message Queue IPCs inside the kernel and expose them to user space processes. Along with implementation, these new system calls need to be hooked into Kernel’s soft interrupt ecosystem.

Technologies used
  • Queue & Linked list ADTs
  • Linux Kernel data structures – process & memory
  • System call / Soft-interrupt ecosystem of Linux Kernel

Trivial File Transfer Protocol (TFTP) – RFC 1350

Project brief The Trivial File Transfer Protocol (TFTP) is a simple way of transferring file between two systems. This protocol is specified in RFC 1350.This protocol doesn’t support advanced available in FTP (ex: User authentication), typically

used in Embedded systems for its smaller footprint and simplicity.The goal of this project is to understand RFC and implement the protocol in a LAN environment. Eventually this project can be extended for advanced cases like inter-operating with standard TFTP client / servers.

Technologies used
  • TCP/IP networking
  • UDP socket APIs
  • Time-out and re-transmission used in networks

TCP based remote management

Project brief

Internet today has become a very complex entity by having different set of devices working together. In a scenario where the network devices are located remotely (ex: Wireless base station) monitoring such devices pro-actively becomes a very critical activity. Any malfunctions happen in remote device (ex: CPU usage) will result in device crash.

The goal of this project is to implement a TCP based client and server. The centralized server will connect with multiple clients and monitor various system parameters, thereby enabling remote manageability.

Technologies used
  • Linux commands used in systems management
  • TCP socket APIs
  • IPC Signal handling

Network packet injector using RAW sockets

Project brief

One of the key requirements of network is the ability to handle large volume of data. Network should have necessary resilience to handle, which is simulated using Network packet injectors in test environment.

The goal of this project is to create a command line based Network packet injector that will generate all major protocol packets (ex: HTTP). For implementation RAW sockets are used.

Technologies used
  • TCP/IP network protocols – Headers & payload
  • RAW socket usage
  • Command line parsing

TCP/IP chat room

Project brief Web based chat applications is one of the more commonly used tool for effective two way communication, starting with IRC chat-rooms. Each user need to authenticate himself and join a chat-room after which he should be able to communicate with all in the group.

The goal of this project is to simulate a chat room in a LAN by using TCP sockets and demonstrate message exchanges

Technologies used
  • TCP socket APIs
  • Server discovery in a LAN environment
  • User authentication mechanisms

FAQ – Linux Kernel Internals Course

We are pretty sure you will have lot of questions before joining our Linux Kernel Internals- Weekend Workshop. Here are the frequently asked questions for your reference. In case you still have anything specific write to us at training@emertxe.com

Course FAQ

Who should take up this course?
Emertxe Linux internals courses is ideal for anyone interested in building system programs and network applications in Linux. Working professionals looking to gain knowledge in this domain. Having some background in Linux is necessary as this requires some amount of Linux / OS level knowledge.
Do you teach Kernel Internal Architecture in this workshop?
Do you teach Kernel Internal Architecture in this workshop?
What programming environment that will be used?
For this workshop Linux standard distributions (Ubuntu / Fedora / Mandriva) is used, where necessary system call support is available in the Linux Kernel.

Project FAQ

What projects can I work on after course completion?
There are many projects that you can work on based on the course learning. A sample list of projects are provided below.

  • Implementation of TCP/IP based packet generator
  • RFC implementation of standard protocols (ex: TFTP)
  • Multi-tasking based remote diagnostics
  • Implementation of system calls inside Linux Kernel

Such comprehensive approach in our Linux internals courses enable outcome driven learning.

How working on these projects enhance my technical profile?
Our projects are designed based on practical industrial use-case, thereby you will be able to apply them in real time projects. On the other hand these projects are scoped well to be executed independently in a relatively shorter duration of time considering your other commitment. After working on them will give you necessary technical depth and application aspects thereby it will definitely enhance your technical profile.

LDD Kit FAQ

What do you mean by self-learning kits? What are the benefits?
Emertxe has created innovative self-learning kits which consist of board, tool-chain, software and self-learning materials. This makes learning easier. Along with the course, this kit comes as a bundled option, so that you can practice programming at your own pace even after workshop. Please check out our self-learning kits for more details.
What are the unique features of Linux device driver kit?
Linux device driver kit is one of the key innovations that our team has brought in the field of education. Learning device drivers is considered to be a challenging affair due to lack of proper hardware, documentation and self-learning ecosystem that consist of sample code and projects. Our team has come up with a self-learning device that addresses these limitations by bundling unique combination of hardware, software and documentation. This kit can also be used as a micro-controller kit for IoT programming by changing modes. Recently this kit related technical paper was presented in Open Source India conference, which can be accessed by clicking here. In summary you can learn device drivers like a breeze using this kit.
Can I purchase the Linux device driver kit? How?
Definitely. Self-learning kits can be purchased by anybody interested in self-learning. Request you visit self-learning kits in the web-site, choose the kit that matches your need. In each section we have provided simple ‘How to order’ section using which kits can be purchased at ease.

Trainer FAQ

Who are the trainers?

Trainers (our mentors) for this workshop are professionals who have worked with various corporate organizations like Samsung, HP, Novell, Huawei etc, who bring in 18+ years of experience on average. Our mentors understand industry requirements very well in order to maximize the value. Added to that, our mentors are passionate about training, which enables you to write a device driver on your own by the end of the workshop.

What do you mean by one month of lab assistance?
Linux Internals & Networking workshop is conducted on two consecutive weekends. Contents are delivered in a workshop manner, which is power packed. However to realize the real benefit of this workshop, participants need to work on some real time projects / assignments to make the learning effective. In order to support this need, we provide one month lab assistance after the course. During this period our mentors will be providing you support when you are facing difficulty in building projects using Linux system calls. This includes debugging issues in pair or clarifying your doubts using our online ecosystem. This way your learning will be complete & effective.
More Questions?

+91 809 555 7332

training@emertxe.com

More Questions?

+91 809 555 7333

training@emertxe.com

Courses you may like further

Q