HOMECOURSESSTUDENTSDONATIONSVIDEOSEVENTSTUTORIALSLINKSNEWSCONTACT


TUTORIALS 》 What is a Linux Kernel Module - a Big Picture

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 kind of true but not strictly.

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 Kernel's address space in relationship to these modules.

I also conduct sessions/classes on Systems and Network software programming and architecture. If you are interested, click HERE for more details.

Also recommend to watch:


Featured Video:



Suggested Topics:


☆ Tutorials :: Arduino UNO Projects ↗


☆ Tutorials :: Network Software Development ↗


☆ Tutorials :: Research and Projects ↗


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


☆ Tutorials :: Linux Kernel Software Development ↗


☆ 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 - [935//0] Linux Kernel skbuff data-structure - part11 - skb_put() ↗

Roadmap - How to become Systems Software Developer ↗
Friday' 13-May-2022
When you are at the beginning of your career or a student, and aspire to become a software developer, one of the avenues to choose is to become a hard-core Systems Software Developer. However it is easier said than done, since there are many aspects to it as you explore further. As a part of systems developer, you can get into core kernel space developer, kernel device drivers developer, embedded developer and get into things like board bring-up, porting, etc, or can become a user-space systems programmer, and so on. So here is my detailed multi-episode Youtube video series on Roadmap - How to become Systems Software Developer.

Bluefish IDE - a simple versatile light-weight best editor to edit kernel source files, html files, c source code, text files, SQL schema and so on ↗
Saturday' 13-Mar-2021

Raspberry Pi OS with PIXEL ↗
Saturday' 01-Jan-2022

C code to check valid IP Address (IPv4) - Live Demo and Example ↗
Saturday' 13-Mar-2021

Linux Kernel Programming - Device Drivers ↗
Saturday' 13-Mar-2021
Watch detailed videos and read topics on Linux Kernel Programming - Device Drivers

mmap() munmap() - map or unmap files or devices into memory ↗
Saturday' 13-Mar-2021

Weekly News Digest - Week 12 - March 2018 ↗
Saturday' 13-Mar-2021
> ReSpeaker Core v2 is a 6-Mic Array Audio Development Kit Powered by Rockchip RK3229 Processor > How to monitor network protocol traffic on your data center Linux servers > Open Source LimeSDR Mini Takes Off in Satellites > Marvell revs up Ethernet to 400Gbps with new ‘Alaska’ chips > Natural Language Processing (NLP) > WAGO PFC200 PLC Runs Embedded Linux, Supports Web and Mobile Visualization

Intro to Crypto and Blockchain | Progate Bangalore Meetup ↗
Saturday' 13-Mar-2021

Linux user-space Atomic Operations via GCC Atomic builtins ↗
Saturday' 13-Mar-2021

Smart NIC Cards ↗
Saturday' 13-Mar-2021
NIC Cards (Network Interface Cards) traditionally contain controller chip which takes care of the core aspects, such as packet reception, buffering (till they are read by OS device drivers), etc. But these days increasingly modern NIC cards can perform several CPU Network Offload functions such as packet/frame checksum, etc. Such hardware offload features of modern NIC cards is crucial to process packets and support packet data transfer rates of around 1Gbps, 10Gbps, even 40Gbps and so on. But beyond that such as 100Gbps and so on, at times even a high-end Xeon/ Intel/ AMD processors will struggle if need to support transfer rates of around 100Gbps or beyond (situations like Link Bonding). These are the situations we need what we call as Smart NIC Cards. A Smart NIC card implements most of the network traffic processing on the NIC itself that would necessarily be performed by the CPU (i.e Operating System) in the case of a traditional NIC card.


Trending Video:
Watch on Youtube - [495//0] Online Course - Linux CLI Scripting - Episode8 - $split command ↗

Compiling a C Compiler with a C Compilter | Compile gcc with gcc ↗
Saturday' 13-Mar-2021
The fundamental aspect of a programming language compiler is to translate code written from language to other. But most commonly compilers will compile code written in high-level human friendly language such as C, C++, Java, etc. to native CPU architecture specific (machine understandable) binary code which is nothing but sequence of CPU instructions. Hence if we see that way we should able to compile gcc Compiler source code with a gcc Compiler binary.



Recommended Video:
Watch on Youtube - [473//0] 289 - Data Transfers between - User and Kernel - Process to Process ↗