C语言 初学者的 Linux 内核编程

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3547097/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-02 06:16:10  来源:igfitidea点击:

Linux Kernel Programming for Beginners

clinux-kernel

提问by user428352

I have been working on LINUX for the past six years, and am a core Linux guys since I started my career on Linux. Working more on Redhat / Centos / Fedora based distribution system administration, with some basic bash scripting knowledge.

过去六年我一直在从事 LINUX 工作,自从我在 Linux 上开始我的职业生涯以来,我就是一名 Linux 核心人员。主要从事基于 Redhat/Centos/Fedora 的分发系统管理,具有一些基本的 bash 脚本知识。

Now I am looking to deep dive into programming to contribute or innovate something new on Linux operating system or kernel space. (More importantly on kvm virtualization front since I am an expert on virtualization). So I need your guidance to start my new career on Linux programming front. As of now, I am planning to start with below sequences:

现在,我希望深入研究编程,以在 Linux 操作系统或内核空间上贡献或创新一些新东西。(更重要的是在 kvm 虚拟化方面,因为我是虚拟化专家)。所以我需要你的指导来开始我在 Linux 编程方面的新职业。截至目前,我计划从以下序列开始:

  • C
  • C++
  • Linux kernel Programming
  • Python
  • Java
  • C
  • C++
  • Linux内核编程
  • Python
  • 爪哇

Kindly provide me some good web links or beginner to advanced docs for the above languages to start with.

请为我提供一些良好的网络链接或初学者到上述语言的高级文档。

回答by Chinmay Kanchi

If you don't know programming, the kernel is very far out of reach for you at this time. Learn C. Try The C Programming Languagefirst, perhaps followed by the excellent Advanced Programming in the UNIX Environment.

如果您不会编程,那么此时内核对您来说是遥不可及的。学习 C。首先尝试C 编程语言,然后可能会学习优秀的 UNIX 环境中的高级编程

And then you're ready to start looking at kernel source code and looking at kernel-specific books. Depending on what you want to do, it's probably a good idea to pick up some assembly as well.

然后您就可以开始查看内核源代码并查看特定于内核的书籍。根据您想要做什么,选择一些程序集也可能是个好主意。

C++ and Java are pretty well useless for Linuxkernel development (this is nota judgement on either language, it's just that Linux is written in C and assembly).

C++ 和 Java 对Linux内核开发毫无用处(这不是对任何一种语言的判断,只是 Linux 是用 C 和汇编编写的)。

回答by Hasturkun

Linux Device Drivers 3rd editionand Kernelnewbiesare both good places to start.

Linux Device Drivers 3rd editionKernelnewbies都是不错的起点。

回答by Pablo Santa Cruz

I've read somewhere that Robert Love's book on kernel programming is pretty good for what you are trying to accomplish. Here'sthe link on AMAZON.

我在某处读到 Robert Love 的关于内核编程的书非常适合您要完成的任务。这是亚马逊的链接。

回答by Rakholiya Jenish

You can start with Eudyptula Challenge.

您可以从Eudyptula Challenge开始。

The eudyptula-challenge site says: The Eudyptula Challenge is a series of programming exercises for the Linux kernel,that start from a very basic "Hello world" kernel module, moving on up in complexity to getting patches accepted into the main Linux kernel source tree.

eudyptula-challenge 站点说:Eudyptula Challenge 是 Linux 内核的一系列编程练习,从一个非常基本的“Hello world”内核模块开始,随着复杂性的增加,补丁被接受到主要的 Linux 内核源代码树中.

You can also go through The Linux Kernel Module Programming Guide. It is also a good guide for a beginner.

您还可以阅读The Linux Kernel Module Programming Guide。对于初学者来说,这也是一个很好的指南。

回答by taskinoor

Though I am not a kernel developer, I think thismay help you. It contains a list of kernel related documents.

虽然我不是内核开发人员,但我认为可能对您有所帮助。它包含内核相关文档的列表。