HOMEVIDEOSCOURSESSTUDENTSSPONSORSDONATIONSEVENTSTUTORIALSLINKSNEWSCONTACT


LINKS 》 Linux Kernel Data-Structures

Here is a quick reference of important Linux Kernel Data Structures of various assorted Kernel Subsystems such as: Process, Memory Management, Networking, File System, Device Drives, IPC and so on. So when you write custom Kernel code, it is often you may need to populate a new instance of one of these data-structures or just access the existing ones. Hence it is very important to know some of these and get familiarized with. You can bookmark this page, so that you can use this as a quick reference when you write your own custom Linux Kernel Modules.

Linux Kernel - Process and Memory Subsystems
struct task_struct - process/task data-structure
struct mm_struct - Virtual Memory (Memory management) data-structure

Linux Kernel - Networking Subsystem
struct sk_buff - socket buffer
struct net_device - The DEVICE structure
struct ethhdr - Ethernet frame header
struct iphdr - IP(IPv4) header
struct tcphdr - TCP header
struct udphdr - UDP header
struct tcp_congestion_ops - TCP Congestion Control registration data-structure
struct ethtool_ops - optional netdev operations
struct dst_entry - packet destination
struct sock - network layer representation of sockets
struct socket - general BSD socket

Linux Kernel - FileSystems Subsystem
struct file_system_type - file-system registration data-structure
struct inode - file and directory inode meta-data data-structure
struct file - file data-structure which holds inode and other file meta-data



Suggested Topics:


☆ Links :: Linux Kernel Software Development :: Online Bookmarks ↗

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 - [846//0] 0x18c Architecting | Process and Threads | Part 1/2 | The Linux Channel ↗

What is purpose of Kernel Development - Example SMOAD Networks SDWAN Orchestrator Firewall Kernel Engine ↗
Monday' 18-Jul-2022
Often aspiring students may have this question, that what is the purpose of Linux Kernel Development. Since Linux Kernel is very mature and it has almost everything one would need. Usually, we need custom kernel development in the case of any new driver development for new upcoming hardware. And this happens on and on. But at times we may also come across few features/modules/components which are already provided by the Linux Kernel which are not adequate or atleast not the way we exactly intended to use. So, this is the real-world example, sometimes no matter what Linux Kernel provides as a part of stock Kernel/OS features, sometimes we have to write our own custom kernel stack or module(s) which can specifically cater our exact needs.

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.

The Linux Channel :: Sponsors ↗
Monday' 30-May-2022
Here is a list of all The Linux Channel sponsors/donors (individual/companies).

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.

Support, Donate and Contribute - The Linux Channel ↗
Saturday' 13-Mar-2021
Help shape the future and make an impact by donating/sponsor The Linux Channel. Your donation will transform lives !

Research Socket overhead in Linux vs Message Queues and benchmarking ↗
Saturday' 13-Mar-2021

Linux Kernel Data-Structures ↗
Saturday' 13-Mar-2021
Here is a quick reference of important Linux Kernel Data Structures of various assorted Kernel Subsystems such as: Process, Memory Management, Networking, File System, Device Drives, IPC and so on. So when you write custom Kernel code, it is often you may need to populate a new instance of one of these data-structures or just access the existing ones. Hence it is very important to know some of these and get familiarized with. You can bookmark this page, so that you can use this as a quick reference when you write your own custom Linux Kernel Modules.

IPUtils - Source Code Walk ↗
Saturday' 13-Mar-2021

Network Packet Processing Hardware Offload ↗
Saturday' 13-Mar-2021
Here are the quick links or architecture images of various Network Packet Processing Hardware Offload via NIC card. And also here is my detailed video and demo on GRO (Generic Receive Offload).

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


Trending Video:
Watch on Youtube - [987//0] 0x186 Linux Kernel net_device - Ethernet Protocol APIs & struct ethhdr data-structure - Part 1 ↗

Linux Kernel sk_buff data-structure - Episode-11 to Episode-18 ↗
Saturday' 13-Mar-2021



Recommended Video:
Watch on Youtube - [846//0] 0x18c Architecting | Process and Threads | Part 1/2 | The Linux Channel ↗