soword科技言
永久公益免费API接口
提供永久免费的API接口,查看更多API接口,如果您有其他免费API资源,请联系我们,造福人类。
提供商务开发:小程序,系统,APP
定制开发,免费评估,免费咨询,价格便宜,售后保障,前往开发服务中心联系开发客服中心
成为内核黑客的4条路径

我曾经尝试寻求有关如何开始进行内核编程的建议,并且基本上被告知:

  1. 如果您不需要了解工作的内核,为什么要尝试?

  2. 您应该订阅 Linux内核邮件列表,并尽力理解。

  3. 如果您不编写本应在主要Linux内核中使用的代码,那是在浪费时间。

这确实对我没有帮助。因此,这里有一些可能的策略,让您在开心的同时学习操作系统和Linux内核如何以自己的方式工作。我仍然只知道几件事,但是我比以前知道得多:)

对于这些路径中的大多数,您需要了解一些C和一些汇编语言(至少足以复制和粘贴)。我写了一些小型的C程序,上了一门我几乎完全忘记的汇编语言课程。

路径1:编写自己的操作系统

这似乎是一条令人恐惧的道路。但是实际上不是!我从rustboot开始,至 关紧要的是,它 已经可以工作并且可以完成工作然后,我可以做一些简单的事情,例如将屏幕变成蓝色而不是红色,在屏幕上打印字符,然后继续尝试使键盘中断起作用。

MikeOS看起来也像是另一个有趣的事情。请记住,您的操作系统不一定要大而专业-如果您将它变成紫色而不是红色,然后将其打印为打油诗,那么您已经赢了。

您肯定要使用类似qemu的仿真器 来运行您的 OS。OSDevWiki也是一个有用的地方–它们具有常见问题解答,可解决您在此过程中会遇到的许多问题。

路径2:编写一些内核模块!

如果您已经在运行Linux,那么编写不执行任何操作的内核模块非常容易。

这 是打印“你好,黑客学校!” 的模块的来源到内核日志。这是18行代码。基本上,您只需要注册一个init和一个清理函数就可以了。我不太了解__initAND __exit宏的作用,但是我可以使用它们!

编写执行某项任务的内核模块会更加困难。我通过决定要执行的操作来做到这一点(例如,为通过内核的每个数据包打印一条消息),然后阅读一些内核新手,在谷歌上搜索了很多,然后复制并粘贴了很多代码以弄清楚如何做去做吧。我在此kernel-module-fun 存储库中编写了几个内核模块示例 

路径3:进行Linux内核实习!

Linux内核参与了 GNOME妇女扩展计划这是惊人的,奇妙的,令人愉快的。它的意思是,如果您是女性,并且想花3个月的时间在内核上工作,那么您可以在没有任何先验经验的情况下参与内核开发,并获得一定的报酬(5000美元)

路径4:阅读一些内核代码

这听起来像是一个可怕的建议–“想了解内核的工作原理吗?仔细阅读源代码!”

但这实际上很有趣!您不会了解所有内容。我由于不了解事物而感到愚蠢,但是后来我交谈的每个人都像“是的,当然是Linux内核!”。


这是的来源chmod_common,并附有我的一些评论:

static int chmod_common(struct path *path, umode_t mode){
struct inode *inode = path->dentry->d_inode;
struct iattr newattrs;
int error;
// No idea what this does
error = mnt_want_write(path->mnt);
if (error)
return error;
// Mutexes! Prevent race conditions! =D
mutex_lock(&inode->i_mutex);
// Check for permission to use chmod, I guess.
error = security_path_chmod(path, mode);
if (error)
goto out_unlock;
// I guess this changes the mode!
newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO);
newattrs.ia_valid = ATTR_MODE | ATTR_CTIME;
error = notify_change(path->dentry, &newattrs);out_unlock:
mutex_unlock(&inode->i_mutex); // We're done, so the mutex is over!
mnt_drop_write(path->mnt); // ???
return error;}

2023-03-22 10:04:19

新人小程序+APP定制199元起


发放福利,助力中小企业发展,真正在互联网中受益

点击询问定制

广告服务展示