Linux Kernel
docs.kernel.org › process › development-process.html
A guide to the Kernel Development Process — The Linux Kernel documentation
The purpose of this document is to help developers (and their managers) work with the development community with a minimum of frustration. It is an attempt to document how this community works in a way which is accessible to those who are not intimately familiar with Linux kernel development (or, indeed, free software development in general).
Dumb question, is being a linux kernel dev completely different from writing cuda kernels for pytorch?
Yes. The word "kernel" is reused and has a very different meaning. Disclaimer: I'm a C++ developer that dabbles with python and wrote a Linux kernel module at some point in my career. I might have experimented with some code that ran on a GPU, but I can't remember what that was exactly. Linux kernel development means you are probably working with hardware, process/io scheduling or other resource management and/or security management parts of the system. "Linux Kernel" development almost always means you are running in the context of the main CPU and outside of the scope of a running process and inside the actual operating system. CUDA kernels are something that is going to run on the GPU and is probably more algorithmic in nature and less CPU/Memory/IO/Security focused. This is usually in the context of a library that is supporting an application and not the operating system. More on reddit.com
ELI5: Difference between Linux kernel development,linux system programming,and device driver development
Linux Kernel Development = developing components of the linux kernel, including device drivers, scheduler, memory manager, etc. Linux systems programming = Developing user mode applications that use system calls, usually implemented in libc. Device driver development = Developing drivers for hardware to interface with the kernel, usually this is related to some specific device you would install in a PC or attached to a microcontroller. More on reddit.com
Career in Kernel Development?
There are online mentorship opportunities like google summer of code, linux foundation mentorship program, outreachy which are the best way to get into kernel development IMO as you get to work with experienced kernel devs. Lurk around their mailing list and irc channels. Also Linux Kernel Development by Robert love is excellent introduction to the kernel. When you hit new concept in it just search around on Wikipedia. More on reddit.com
Kernel Dev as a career
Follow your gut. Where are you based? More on reddit.com
Videos
01:15:04
Watch kernel developer do Linux kernel development ;-) - YouTube
04:39
Introduction - Kernel Development Course Part 1 - YouTube
51:57
Linux Kernel Programming 01: Compile and Boot - YouTube
- YouTube
37:34
Linux Kernel Development, Greg Kroah-Hartman - Git Merge 2016 - ...
14:42
The Linux Kernel Development Crash Course - Hans Holmberg - YouTube
Linux Foundation Training
training.linuxfoundation.org › home › linux kernel development
Linux Kernel Development - Linux Foundation - Education
November 13, 2020 - Linux kernel development is the process of building and maintaining the core of Linux. Get started with our training.
Wikipedia
en.wikipedia.org › wiki › Kernel_(operating_system)
Kernel (operating system) - Wikipedia
1 week ago - Most commercial computer architectures ... is developing capability-based mechanisms for several architectures. An alternative approach is to simulate capabilities using commonly supported hierarchical domains. In this approach, each protected object must reside in an address space that the application does not have access to; the kernel also maintains ...
GitHub
github.com › ANSANJAY › KernelDev101
GitHub - ANSANJAY/KernelDev101: Comprehensive beginner's guide to kernel development: Dive into core concepts, hands-on tutorials, and best practices. Whether you're a novice or looking to refresh your skills, this repository offers essential resources to start your kernel programming journey · GitHub
Traditionally, to add functionalities to the kernel, it had to be recompiled and the system rebooted. Kernel Modules change this by allowing code to be dynamically loaded and unloaded from the kernel upon demand.
Starred by 90 users
Forked by 12 users
Languages C 67.3% | Makefile 32.7%
Linux Kernel
kernel.org › doc › html › v4.16 › process › howto.html
HOWTO do Linux kernel development — The Linux Kernel documentation
It is a great place to start. It describes a list of relatively simple problems that need to be cleaned up and fixed within the Linux kernel source tree. Working with the developers in charge of this project, you will learn the basics of getting your patch into the Linux kernel tree, and possibly be pointed in the direction of what to go work on next, if you do not already have an idea.
El Passion
elpassion.com › glossary › kernel-development
Kernel Development
Kernel development is a crucial aspect of software development that is often overlooked by many companies. The kernel is the core component of an operating system that manages the system's resources and provides a bridge between the hardware and software layers.
Osdever
osdever.net › bkerndev › Docs › intro.htm
Bran's Kernel Development Tutorial: Introduction
Kernel development is not an easy task. This is a testament to your programming expertise: To develop a kernel is to say that you understand how to create software that interfaces with and manages the hardware.
Wikipedia
en.wikipedia.org › wiki › Linux_kernel
Linux kernel - Wikipedia
2 weeks ago - The kernel is monolithic in an ... runs in kernel space. Linux is provided under the GNU General Public License version 2, although it contains files under other compatible licenses. In 1991, Linus Torvalds was a computer science student enrolled at the University of Helsinki. During his time there, he began to develop an operating ...
SiteGround
siteground.com › home
The Mysterious Job of a Kernel Developer: An Interview with a SiteGrounder : SiteGround Blog
September 4, 2024 - Angel: Generally, the kernel is the core of your operating system, whether it is Linux, Windows or another one. It handles various essential tasks like: managing your hardware, memory usage, pipelining your data to different storage devices and more. That’s where the mystery and importance of kernel development lies.
Reddit
reddit.com › r/kernel › dumb question, is being a linux kernel dev completely different from writing cuda kernels for pytorch?
r/kernel on Reddit: Dumb question, is being a linux kernel dev completely different from writing cuda kernels for pytorch?
December 20, 2023 -
I am getting quite confused on what a performance engineer does, and I want to ideally be a performance engineer writing cuda kernels or something, but don't quite get if they re-used the word kernel and are some other thing entirely or if it takes similar skills or what. Pls help or point to resources.
Top answer 1 of 5
14
Yes. The word "kernel" is reused and has a very different meaning. Disclaimer: I'm a C++ developer that dabbles with python and wrote a Linux kernel module at some point in my career. I might have experimented with some code that ran on a GPU, but I can't remember what that was exactly. Linux kernel development means you are probably working with hardware, process/io scheduling or other resource management and/or security management parts of the system. "Linux Kernel" development almost always means you are running in the context of the main CPU and outside of the scope of a running process and inside the actual operating system. CUDA kernels are something that is going to run on the GPU and is probably more algorithmic in nature and less CPU/Memory/IO/Security focused. This is usually in the context of a library that is supporting an application and not the operating system.
2 of 5
5
Yes, they are different. They are just named from the same metaphor of a small little seed, like a kernel of corn. The fields are sufficiently distinct that the name overlap of OS kernels and compute kernels almost never causes much confusion in practice.
Linux Foundation
training.linuxfoundation.org › home › development › a beginner’s guide to linux kernel development (lfd103)
A Beginner’s Guide to Linux Kernel Development (LFD103) - Linux Foundation - Education
September 2, 2020 - Through this course you will learn how to select and configure your development system, about Linux Kernel repositories and releases, Git basics including checking out kernel repositories and working with them, how to build and install a kernel, Linux kernel enforcement standards, how to write kernel patches and test them, how to communicate with the kernel community, how to send patches, how to act on feedback from reviewers and more.
Top answer 1 of 4
21
Linux Kernel Development = developing components of the linux kernel, including device drivers, scheduler, memory manager, etc. Linux systems programming = Developing user mode applications that use system calls, usually implemented in libc. Device driver development = Developing drivers for hardware to interface with the kernel, usually this is related to some specific device you would install in a PC or attached to a microcontroller.
2 of 4
12
Linux kernel development = building the Linux kernel Linux system programming = building the OS and low level applications on top of the Linux kernel Device driver development = building the interface between the Linux kernel and hardware
CBT Nuggets
cbtnuggets.com › blog › technology › programming › linux-kernel-development
Linux Kernel Development: A Worldwide Effort
September 14, 2023 - These contributors come from corporations like Intel, Red Hat, and SUSE, while volunteer hobbyists, university academics, and independent developers add incredible value to the undertaking. They collaborate on kernel development in various ways. Still, Linus Torvalds, the creator of Linux, has the final say about which code is merged into the stable codebase of the kernel.
Linux Journal
linuxjournal.com › content › core-knowledge-modern-linux-kernel-developer-should-have
Core Knowledge That Modern Linux Kernel Developer Should Have | Linux Journal
So, Git knowledge is a requirement. Unless kernel developers run their kernel on specific/customized hardware - emulation is the best developer's friend. The most popular platform for this is Qemu/KVM. A typical workflow looks like this: a developer introduces some changes to the kernel or a driver, builds it, copies it under a virtual environment, and tests it there.