当前位置:  开发笔记 > 运维 > 正文

在家学习内核黑客攻击和嵌入式开发?

如何解决《在家学习内核黑客攻击和嵌入式开发?》经验,为你挑选了2个好方法。

我一直被内核黑客和嵌入式系统所吸引.
开始乱搞这些东西有没有人有很好的教程(+容易获得的硬件)?
像写作驱动程序等工具包,有很好的文档,价格合理吗?

谢谢!



1> VolkA..:

如果您对内核开发完全不熟悉,我建议不要从硬件开发开始,转到一些"仅软件"内核模块,如proc文件/ sysfs,或者更复杂的示例文件系统/网络开发,在uml/vmware /上开发virtualbox/...机器因此崩溃你的机器不会受到太大伤害:)对于嵌入式开发,你可以选择一个小型ARM开发套件或一个小型Via C3/C4机器,或任何你可以用自制软件刻录的旧PC USB/PCI /任何设备.

一个好的起点可能是Kernelnewbies.org--它为内核开发人员提供了大量链接和有用的信息,还提供了一个易于实现的任务列表,可供初学者使用.

有些书要读:

了解Linux内核 - 一个非常好的参考,详细介绍了内核子系统的设计

Linux设备驱动程序 - 更像是一个包含大量示例代码的教程,专注于让您前进并解释Linux内核的关键方面.它介绍了构建过程和内核模块的基础知识.

Linux内核模块编程指南 - 更多介绍性材料

正如之前所建议的那样,查看linux代码总是一个好主意,特别是因为Linux Kernel API经常会发生变化...... LXR通过一个非常好的浏览界面帮助很多 - lxr.linux.no

要了解内核构建过程,此链接可能会有所帮助:

Linux内核Makefile(kbuild)

最后但并非最不重要的,浏览内核源代码分发的Documentation目录!

以下是从内核开发类中无意中窃取的一些有趣的练习:

编写一个内核模块,创建文件/ proc/jiffies,在每次读取访问时以jiffies报告当前时间.

编写提供proc文件/ proc/sleep的内核模块.当应用程序将ASCII文本作为ASCII文本写入此文件("echo 3>/proc/sleep")时,它应该阻止指定的秒数.写访问不应对文件内容产生任何副作用,即在读访问时,文件应显示为空(参见LDD3,ch.6/7)

编写一个proc文件,您可以暂时存储一些文本(使用echo"blah">/proc/pipe)并再次将其取出(cat/proc/pipe),清除文件.注意同步问题.

修改管道示例模块以注册为字符设备/ dev/pipe,为写入请求添加动态内存分配.

写一个非常简单的文件系统.



2> Andrew Edgec..:

鲁比尼的这本书是绝对必须的.(可用作硬拷贝或免费软拷贝)

他提供了几个虚拟驱动程序的实现,这些驱动程序不需要您拥有除PC之外的任何硬件.因此,对于内核开发的入门,这是最简单的方法.

至于嵌入式工作,我建议购买众多SBC(单板计算机)中的一台.其中有很多基于x86处理器,通常带有PC/104接口(电气PC/104与ISA总线标准相同,但基于可堆叠连接器而非边缘连接器 - 非常容易与定制硬件接口)

它们通常具有vga连接器,可以更容易地进行调试.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有