Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何开始开发和调试Linux内核?_Linux_Debugging_Linux Kernel_Kernel_Development Environment - Fatal编程技术网

如何开始开发和调试Linux内核?

如何开始开发和调试Linux内核?,linux,debugging,linux-kernel,kernel,development-environment,Linux,Debugging,Linux Kernel,Kernel,Development Environment,我想为我的研究开始一些Linux开发。编写一些简单的调度算法并进行测试。我有几个问题: 1) 如何开发linux内核?石斑鱼类?如何导入内核文件并查看它们之间的关联或连接 2) 编写代码后,如何模拟/调试它?我的意思是,不能只构建20-30分钟的内核,创建一个新映像,每次都更改boot.ini。这是一个漫长的过程,加上你不能模拟或调试只是观察它是否工作 3) 是否有开始在Linux中开发的指南。我发现缺少文档令人惊讶 我正在开发基于ARM的主板 原谅我的无知。 谢谢您是如何开发Linux内核的

我想为我的研究开始一些Linux开发。编写一些简单的调度算法并进行测试。我有几个问题:

1) 如何开发linux内核?石斑鱼类?如何导入内核文件并查看它们之间的关联或连接

2) 编写代码后,如何模拟/调试它?我的意思是,不能只构建20-30分钟的内核,创建一个新映像,每次都更改boot.ini。这是一个漫长的过程,加上你不能模拟或调试只是观察它是否工作

3) 是否有开始在Linux中开发的指南。我发现缺少文档令人惊讶

我正在开发基于ARM的主板

原谅我的无知。
谢谢

您是如何开发Linux内核的

Linux内核中有许多组件。通常,内核分为内核和驱动程序两部分

  • 核心包括调度、MMU、内存管理、进程管理等
  • 驱动程序包括文件系统、网络、外围设备驱动程序、USB等
IDE不是开发内核代码的必备工具。对于内核老手来说,VIM/nano也可以。开发环境由您决定。如果您不熟悉内核代码,希望构建函数关系视图,一些工具可能会有所帮助:

  • Source Insight(商业版)
  • vim+ctags()
如何调试它

有许多Linux支持/发行版。您可以使用软件仿真器或硬件板来调试内核。Android基于Linux,有许多手机或开发板支持Android。iOS也是从Linux派生的,它是自己的调试方法

在哪里可以找到内核文档

  • 对于内核部分,内核源代码树中有许多自述文件。例如 printk对新手来说足够强大
  • 关于ARM部分,infocenter.ARM.com上有很多文章 使用DS-5调试Linux内核