HOMECOURSESSTUDENTSDONATIONSVIDEOSEVENTSTUTORIALSLINKSNEWSCONTACT


Tutorials :: The Linux Channel

Watch on Youtube - [959//0] x243 Why do smart or intellectual people fail ? or not successful in life ? ↗

Select a video series topic:


☆ Tutorials :: Arduino UNO Projects ↗


☆ Tutorials :: Network Software Development ↗


☆ Tutorials :: Research and Projects ↗


☆ Tutorials :: Linux (user-space), Systems Architecture ↗

Join on-line Classes


Tutorials :: Linux Kernel Software Development

How to submit your Linux Kernel Patch ↗
Saturday' 13-Mar-2021
Today I'm writing about linux kernel patch Philosophy. Oh yes, You are right submitting kernel patches is none less than a Philosophy.

How to upgrade or install a latest current release Linux Kernel version manually in Ubuntu? ↗
Saturday' 13-Mar-2021

Code with Kiran - Live Coding | Linux Kernel Programming | Kernel Libraries ↗
Saturday' 01-Jan-2022
Here is a my multi-episode Youtube video series of me doing a live code (Code with Kiran Series). Linux Kernel source consists of many libraries within. For example such as to create and manage Linked Lists, String Operations, Encryption Algorithms, Compression Algorithms, and so on. In the Kernel, various Kernel Modules (including various Device Drivers) will use these Kernel inclusive Libraries. Unlike user-space programming, in Kernel Space when you code, you have to use these Libraries which are actually part of kernel (i.e sharing the same address space). And in some cases you can also make your own libraries and publish as well. In the case of user-space programs, we use third-party libraries (explicit or implicit), but that cannot happen when you code in kernel space. The libraries share the same address space and they are part of Linux Kernel mainline source. Hence it is important to understand the significance of using such library as demonstrated in my video series bel

Roadmap - How to become Linux Kernel Developer - Device Drivers Programmer and a Systems Software Expert ↗
Saturday' 13-Mar-2021
Many viewers and even sometimes my students ask me how I can become a kernel programmer or just device driver developer and so on. So I shot this video (and an add-on video) where I summarized steps and a roadmap to become a full-fledged Linux Kernel Developer.

KERNEL - The Linux Channel - a High Performance Linux Kernel ↗
Saturday' 13-Mar-2021

Raspberry Pi GPIO Pins - Raw Kernel Access via sysfs - GPIO Linux Kernel Drivers ↗
Saturday' 01-Jan-2022
Here is a my multi-episode Youtube video series of me doing a live code (Code with Kiran Series). Linux Kernel GPIO drivers of Raspberry Pi offers access/control directly via sysfs filesystem interface. But often people don't see this aspect, instead as a part of IoT, they assume these GPIO pins can be only accessed by some Python, Java or C/C++ code libraries. But in the real case those libraries are just an abstract layer written around the core Kernel GPIO driver's sysfs filesystem. So here is an attempt where we learn this aspect in systems architecture point of view. And then later try to attempt writing such user-space GPIO control code without any third-party libraries. Since the sysfs driver access is via regular files (user-space context), we can now use any language of our choice and access the same like any files. In that process we can attempt writing our own bunch of abstract APIs resembling a typical GPIO access library.

Tracking code changes in Linux Kernel Source code ↗
Saturday' 13-Mar-2021

Adding your own Kernel Modules into Linux Kernel Source | Linux Kernel Programming ↗
Saturday' 13-Mar-2021
Whenever you do custom kernel modules, you can optionally make it a part of existing Linux Kernel source. This does not mean you are submitting your kernel module to the mainline kernel source (i.e kernel.org Linux Kernel Foundation). What I meant is, you can make your kernel module(s) part of Linux Kernel source so that when you compile your kernel you can automatically compile your kernel module(s) too. As well when you create/modify kernel .config configuration file (such as via make menuconfig, etc), you can enable or disable your kernel module(s) too.
To do the same you have to register (and include) your custom Kernel Module's Kconfig and Makefile to the existing Kconfig and Makefile of the Linux Kernel source Here is a detailed multi-episode video of mine which gives the overall idea and the big-picture.

Linux Kernel Tasklets | Big-Picture | vs User-Space pthreads ↗
Saturday' 01-Jan-2022
Linux Kernel Tasklets and Work queues are somewhat similar to user-space process threads in terms of the functionality and of course not in terms of its operation or its internal architecture. You can schedule Tasklet(s) for a registered function to run later. So typically the Interrupt top half (of the interrupt handler) performs a small amount of critical work (not to be confused with critical section), and then schedules such as a tasklet to execute later at the bottom half.

Linux Kernel Programming | with or without Kernel Modules | Device Drivers ↗
Saturday' 01-Jan-2022
When learning Linux Kernel programming, often I notice my students and viewers gets confused and they start with learning writing Linux Kernel modules. And so they develop the common misconception about Kernel Programming in general. They assume writing code in Linux Kernel means writing kernel modules. Which is absolutely not. Kernel modules are an optional choice and are part of Linux Kernel. But besides modules, Linux Kernel has lot of other mainstream code. Hence if anyone wants to be a Kernel Developer, you should be aware that sometimes you add new code via modules, sometimes without them. And if you ask me, I am not much in favor of writing Kernel modules. Instead in my code, I try to integrate and make them a part of Linux Kernel so that they all get initialized during boot time. Here is an extensive Youtube video of mine on Linux Kernel Programming, with and without Kernel Modules.

Kernel customization via make menuconfig - Linux Kernel Compilation (or a Kernel Build) ↗
Saturday' 13-Mar-2021
Here is a detailed Youtube video on Linux Kernel custom compilation and customization via make menuconfig interface

What is a Linux Kernel Module - a Big Picture ↗
Saturday' 01-Jan-2022
Learning Linux Kernel Programming is always fascinating and yet challenging. So generally you may tend to learn Kernel Module programming, since such a module can be dynamically plugged into running Linux Kernel. But this will lead to confusion, and many assume kernel source is mostly a collection of these modules. Which in reality is not. Not just that, when we say Kernel Module, its a vaguely defined term. The term Module (as we know) is nothing but a collection of APIs, bunch of variables and associated data-structures. Which may or may not be a plugable kernel module. If you ask me, I am a fan of wiring Linux Kernel Modules, which may not be necessarily a pluggable kernel module. It all boils down to the address space at which these modules function inside a monolithic Linux Kernel. Which is nothing but Linux Kernel's address space. Hence here is my detailed multi-episode Youtube video series on Linux Kernel modules, a big picture and the significance of the

Tracking Linux Kernel bugs in Kernel.org Bugzilla (or Bugzee as we call it in the Industry) ↗
Saturday' 13-Mar-2021
Here is a detailed Youtube video on tracking Linux Kernel bugs via Kernel.org Bugzilla (or Bugzee as we call it in the Industry)


☆ Tutorials :: Linux Kernel Internals (PDFs) - by Ramin Farajpour ↗


☆ Tutorials :: Software Development (Programming) Tools ↗


☆ Tutorials :: Embedded Projects ↗

Join The Linux Channel :: Facebook Group ↗

Visit The Linux Channel :: on Youtube ↗


💗 Help shape the future: Sponsor/Donate


Recommended Topics:
Featured Video:
Watch on Youtube - [483//0] 0x1e1 TCP vs UDP an Expert Opinion - Part 1 #TheLinuxChannel #Networking #KiranKankipati ↗

Linux Kernel net_device data-structure ↗
Saturday' 13-Mar-2021
struct net_device, is the main Linux Kernel network interface or network port data-structure. Each network interface entry whatever you find in user-space commands like ifconfig, ip link, ip addr, is actually a struct net_device data-structure Linux Kernel driver instance for that corresponding port. In fact every packet buffer instance managed by the Linux Kernel via struct sk_buff contains a reference pointer pointing to its corresponding TX/ RX interface struct net_device instance. Hence here is my multi-part video series and research on the struct net_device data-structure.

PyDelhi + PyData + ILUG-D + Linux Chix meetup mash @ Sarai on 17-Dec-2016 ↗
Saturday' 13-Mar-2021

How to submit your Linux Kernel Patch ↗
Saturday' 13-Mar-2021
Today I'm writing about linux kernel patch Philosophy. Oh yes, You are right submitting kernel patches is none less than a Philosophy.

UDP sample socket code for Systems and Network software developers ↗
Saturday' 13-Mar-2021
Here is my sample UDP socket code written in C. Unlike other versions you get commonly on-line this version is focused towards systems and network software developers and as a quick reference even for experienced software programmers. In this example/template, I am sending test raw binary data bytes from UDP sample client to registered UDP sample server. The code has documentation already in the form of comments (as you can see below). You can download my source below and you can use it directly in your projects or you can use the same for learning purposes to understand about user-space socket programming via IPv4 UDP transport layer protocol.

Linux Kernel /sysfs Interface ↗
Saturday' 14-May-2022
/sysfs is one of the most popular kernel to user-space interface which you can leverage to add an interface to your Kernel code such as Kernel modules, Kernel Device Drivers, etc. Although personally I prefer /proc interface than other alternatives such as /sysfs, ioctl() and so on for my personal Kernel modules/stack. So here is my detailed multi-episode Youtube video series on /sysfs Interface.

Dynamic linking without STDLIB in Linux user-space C programming ↗
Saturday' 13-Mar-2021

Online Course - Linux CLI Scripting ↗
Saturday' 13-Mar-2021

Linux Kernel /proc Interface ↗
Wednesday' 18-May-2022
/proc is one of the most popular kernel to user-space interface which you can leverage to add an interface to your Kernel code such as Kernel modules, Kernel Device Drivers, etc. Personally I prefer /proc interface than other alternatives such as /sysfs, ioctl() and so on for my personal Kernel modules/stack. So here is my detailed multi-episode Youtube video series on /sysfs Interface. I also conduct sessions/classes on Systems and Network software programming and architecture.

Using a GPS Sensor ↗
Saturday' 13-Mar-2021
A GPS receiver uses satellites to pinpoint locations, so as long as you have a GPS receiver and a clear view of the sky, you'll never be lost again!

FreeBSD Networking Sub-system ↗
Saturday' 13-Mar-2021


Trending Video:
Watch on Youtube - [959//0] x243 Why do smart or intellectual people fail ? or not successful in life ? ↗

Weekly News Digest - Week 02 - June 2020 ↗
Saturday' 13-Mar-2021
> Microchip’s New PCIe 4.0 PCIe Switches: 100 lanes, 174 GBps > Linux Writecache To See Much Greater Performance On Intel Optane Systems Soon > Toradex i.MX 8X-based System on Modules gain AWS certification and support for Torizon embedded Linux > How to block specific ports on Linux > From Earth to orbit with Linux and SpaceX > Supermicro A2SDi-TP8F Review 12C 4x10GbE and 4x1GbE mITX > Dell EMC Broadcom BCM 57414 Dual 25GbE Adapter Review



Recommended Video:
Watch on Youtube - [959//0] x243 Why do smart or intellectual people fail ? or not successful in life ? ↗