我总是被内核黑客和嵌入式系统的世界所吸引。
有没有人有好的教程(+容易获得的硬件)来开始使用这些东西?
像编写驱动程序的工具包之类的东西,它们都有很好的文档,而且价格合理?
谢谢!
发布于 2008-10-06 14:38:27
如果您对内核开发完全陌生,我建议不要从硬件开发开始,而是转到一些“纯软件”内核模块,如proc file / sysfs,或者对于更复杂的示例文件系统/网络开发,在uml/vmware/virtualbox/...上进行开发。对于嵌入式开发,你可以选择small ARM development Kit或small Via C3/C4机器,或者任何可以用你的自制USB / PCI /任何设备烧录的旧PC。
一个很好的起点可能是Kernelnewbies.org -它有很多链接和对内核开发人员有用的信息,还为初学者提供了一个易于实现的任务列表。
一些值得阅读的书:
Understanding the Linux Kernel -一个非常好的参考资料,详细介绍了内核子系统的设计
Linux Device Drivers -写得更像是一本包含大量示例代码的教程,重点是让您上手并解释linux内核的关键方面。它介绍了构建过程和内核模块的基础知识。
Linux Kernel Module Programming Guide -更多介绍性材料
正如前面所建议的,查看linux代码总是一个好主意,特别是在Linux内核API往往经常更改的情况下……LXR有一个非常好的浏览界面-- lxr.linux.no,帮了很多忙。
要了解内核构建过程,此链接可能会有所帮助:
Linux Kernel Makefiles (kbuild)
最后但并非最不重要的是,浏览Kernel Source发行版的Documentation目录!
下面是一些从内核开发类窃取的有趣练习:
发布于 2008-09-30 08:06:17
An absolute must is this一书,作者: Rubini。(提供硬拷贝或免费软件拷贝)
他给出了几个虚拟驱动程序的实现,这些驱动程序不需要您拥有除pc之外的任何硬件。因此,对于内核开发入门来说,这是最简单的方法。
至于做嵌入式工作,我建议购买众多SBC (单板计算机)中的一台。其中有许多基于x86处理器,通常带有PC/104接口(在电气上,PC/104与ISA总线标准相同,但基于堆叠式连接器,而不是边缘连接器-非常容易将自定义硬件连接到)
它们通常都有vga接口,使调试变得更容易。
发布于 2008-09-13 20:04:51
对于嵌入式Linux黑客来说,到处都能买到的简单Linksys WRT54G路由器是它自己的http://en.wikipedia.org/wiki/Linksys_WRT54G_series上的开发平台。
值得注意的是,WRT54G
是第一个发布固件源代码以履行GNU GPL义务的消费级网络设备。这允许程序员修改固件以改变或增加设备的功能。多个第三方固件项目为公众提供用于WRT54G的增强型固件。
我试过在上面安装OpenWrt和DD-WRT固件。您可以查看这些内容,作为在低成本平台上进行黑客攻击的起点。
https://stackoverflow.com/questions/60763
复制相似问题