首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在家里学习内核破解和嵌入式开发?

在家里学习内核破解和嵌入式开发?
EN

Stack Overflow用户
提问于 2008-09-13 18:48:14
回答 6查看 8.3K关注 0票数 36

我总是被内核黑客和嵌入式系统的世界所吸引。

有没有人有好的教程(+容易获得的硬件)来开始使用这些东西?

像编写驱动程序的工具包之类的东西,它们都有很好的文档,而且价格合理?

谢谢!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 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目录!

下面是一些从内核开发类窃取的有趣练习:

  • 编写一个内核模块,该模块创建文件/ proc /jiffies,在每次读访问时以jiffies格式报告当前时间。
  • 编写一个内核模块,提供proc文件/proc/
  • 。当应用程序将若干秒作为ASCII文本写入此文件时("echo 3> /proc/sleep"),它应该会阻塞指定的秒数。写访问不应该对文件的内容有副作用,即在读访问时,文件应该看起来是空的(参见LDD3,ch。6/7)
  • 编写一个proc文件,您可以在其中临时存储一些文本(使用echo "blah“>/proc/
  • ),然后再次取出它(cat /proc/pipe),清除该文件。注意同步将管道示例模块注册为字符设备/dev/ issues.
  • Modify,为写入requests.
  • Write添加动态内存分配一个非常简单的文件系统。
票数 33
EN

Stack Overflow用户

发布于 2008-09-30 08:06:17

An absolute must is this一书,作者: Rubini。(提供硬拷贝或免费软件拷贝)

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

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

它们通常都有vga接口,使调试变得更容易。

票数 5
EN

Stack Overflow用户

发布于 2008-09-13 20:04:51

对于嵌入式Linux黑客来说,到处都能买到的简单Linksys WRT54G路由器是它自己的http://en.wikipedia.org/wiki/Linksys_WRT54G_series上的开发平台。

值得注意的是,WRT54G

是第一个发布固件源代码以履行GNU GPL义务的消费级网络设备。这允许程序员修改固件以改变或增加设备的功能。多个第三方固件项目为公众提供用于WRT54G的增强型固件。

我试过在上面安装OpenWrtDD-WRT固件。您可以查看这些内容,作为在低成本平台上进行黑客攻击的起点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档