大家好,今天小编关注到一个比较有意思的话题,就是关于linux怎么学习内核编程的问题,于是小编就整理了3个相关介绍Linux怎么学习内核编程的解答,让我们一起看看吧。
- 学习linux内核,请推荐几本书及顺序,谢谢?
- 如何在嵌入式linux操作系统环境下进行程序的开发?
- 嵌入式Linux系统开发模式?
linux内核最经典的书是《深入理解Linux内核》,这本书内核编程看;如果你是搞UNIX/Linux环境下的应用程序编程,那么就看《UNIX环境高级编程》;如果做Linux下设备驱动程序开发,就看《Linux设备驱动》(第三版)。这几本都是老外写的,都是很经典的书。
因为LINUX的先天优势导致嵌入式开发大多***用LINUX系统:
1.开源,代码开放,省去了自己编写的麻烦,节约成本而且不会涉及到专利和产权***。
2.功能齐全,对于很多硬件设备都有丰富的驱动程序,只需要移植一下,不需要改动太多。
3.稳定,linux确实比windows要稳定。
4.对于大多数芯片,都有裁剪的配置文件,在Linux内核源代码下,arch/arm/configs中有许多芯片的配置文件。
5.Linux分而治之的思想,可以使得驱动和应用程序并行开发,加快开发速度。
嵌入式Linux系统开发模式?
嵌入式系统通常为一个***受限的系统。
直接在嵌入式系统的硬件
平台上编写
软件比较困难,有时甚至是不可能的。目前,
一般***用的办法是,先在通用
计算机上编写程序,
然后,通过交叉
编译,
生成目标平台上可
运行的
二进制代码
格式,最后
下载到目标平台上的特定
位置上运行,下面就由福州卓跃
教育做具体
步骤介绍。 第一步,建立嵌入式Linux应用开发环境。目前,
常用的交叉开发环境
主要有开放和商业两种
类型。开放的交叉开发环境的典型
代表是GNU
工具链,目前已经能够
支持x86、ARM、MIPS、PowerPC等多种
处理器。商业的交叉开发环境主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded
Visual C++等。交叉开发环境是指编译、链接和
调试嵌入式应用软件的环境。它与运行嵌入式应用软件的环境有所
不同,通常***用宿
主机/目标机模式。第二步,交叉编译和链接。在完成嵌入式软件的
编码之后,就是进行编译和链接,以生成可代码。由于开发
过程大多是在Intel
公司x86
系列CPU的通用
计算机上进行的,而目标环境的
处理器芯片却大多为ARM、MIPS、PowerPC、Dr***onBall等系列的微处理器,这就在建立好的交叉开发环境中进行交叉编译和链接。第三步,交叉调试。①硬件调试。如果不***用在线
仿真器,可以让CPU直接在其内部
实现调试功能,并通过在开发板上引出的调试
端口,发送调试
命令和接收调试
信息,完成调试过程。目前,Motorola公司
提供的开发板上
使用的是DBM调试端口,而ARM公司提供的开发板上使用的则是JT***调试端口。使用合适的软件工具与这些调试端口进行
连接,可以获得与ICE类似的调试
效果。②软件调试。在嵌入式Linux应用开发系统中,Linux系统内核调试,可以先在Linux内核中
设置一个调试桩(debug stub),用作调试过程中和宿主机之间的
通信[_a***_]。然后,可以在宿主机中通过调试器的
串口与调试桩进行通信,并通过调试器
控制目标机上Linux内核的运行。
到此,以上就是小编对于linux怎么学习内核编程的问题就介绍到这了,希望介绍关于linux怎么学习内核编程的3点解答对大家有用。