iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux内核开发工具介绍是怎么样的
  • 794
分享到

Linux内核开发工具介绍是怎么样的

2023-06-16 14:06:25 794人浏览 泡泡鱼
摘要

本篇文章给大家分享的是有关linux内核开发工具介绍是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。众所周知,Linux内核是使用make命令来配置并编译的,那必然少不

本篇文章给大家分享的是有关linux内核开发工具介绍是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

众所周知,Linux内核是使用make命令来配置并编译的,那必然少不了Makefile。如此复杂、庞大的内核源码绝不可能使用一个或几个Makefile文件来完成配置编译,而是需要一套同样复杂、庞大,且为Linux内核定制的Makefile系统。

尽管她是一个复杂的系统,但对绝大部分内核开发者来说只需要知道如何使用,而无需了解其中的细节。她对绝大部分内核开发者基本上是透明的,隐藏了大部分实现细节,有效地降低了开发者的负担,能使其能专注于内核开发,而不至于花费时间和精力在编译过程上。

1.1 Linux内核中的Makefile文件

1.1.1 顶层Makefile

源码目录树顶层Makefile是整个内核源码管理的入口,对整个内核的源码编译起着决定性作用。编译内核时,顶层Makefile会按规则递归历遍内核源码的所有子目录下的Makefile文件,完成各子目录下内核模块的编译。熟悉一下该Makefile,对内核编译等方面会有所帮助。

1. 内核版本号

打开顶层Makefile,开头的几行记录了内核源码的版本号,通常如下所示:

Linux内核开发工具介绍是怎么样的

说明代码版本为2.6.35.3,编译得到的内核在目标板运行后,输入uname -a命令可以得到印证:

Linux内核开发工具介绍是怎么样的

2. 编译控制

(1)体系结构

Linux是一个支持众多体系结构的操作系统,在编译过程中需指定体系结构,以与实际平台对应。在顶层Makefile中,通过变量ARCH来指定:

Linux内核开发工具介绍是怎么样的

如果没有在编译命令行中指定ARCH参数,系统将会进行本地编译,通过获取本机信息来自动指定:

Linux内核开发工具介绍是怎么样的

如果进行ARM嵌入式Linux开发,则必须指定ARCH为arm(注意大小写,须与arch/目录下的arm一致),如:

Linux内核开发工具介绍是怎么样的

当然,也可以修改Makefile,将修改为ARCH ?= $(SUBARCH)修改为ARCH = arm,在命令行直接make即可。

(2)编译器

如果不是进行本地编译,则须指定交叉编译器,通过CROSS_COMPILE来指定。Makefile中与交叉编译器的指定如下:

Linux内核开发工具介绍是怎么样的

CONFIG_CROSS_COMPILE是一个配置选项,可在内核配置时候指定。如果在配置内核时候没有指定CONFIG_CROSS_COMPILE,也没有在编译参数指定CROSS_COMPILE,则会采用本地编译器进行编译。

进行ARM嵌入式Linux开发,必须指定交叉编译器,可以在内核配置通过CONFIG

_CROSS_COMPILE指定交叉编译器,也可以通过CROSS_COMPILE指定。假定使用的交叉编译器是arm-linux-gnueabihf-GCc,则指定CROSS_COMPILE为arm-linux-gnueabihf-:

Linux内核开发工具介绍是怎么样的

或者在Makefile中,直接指定CROSS_COMPILE的值:

Linux内核开发工具介绍是怎么样的

注意:CROSS_COMPILE指定的交叉编译器必须事先安装并正确设置系统环境变量;如果没有设置环境变量,则需使用绝对地址,例如:

Linux内核开发工具介绍是怎么样的

如果同时指定了ARCH和CROSS_COMPILE,则在编译的时候,只需简单的make就可以了。

1.1.2 子目录的Makefile

在内核源码的子目录中,几乎每个子目录都有相应的Makefile文件,管理着对应目录下的代码。对该目录的文件或者子目录的编译控制,Makefile中有两种表示方式,一种是默认选择编译,用obj-y表示,如:

Linux内核开发工具介绍是怎么样的

另一种表示则与内核配置选项相关联,编译与否以及编译方式取决于内核配置,例如:

Linux内核开发工具介绍是怎么样的

是否编译wdt.c文件,或者以何种方式编译,取决于内核配置后的变量CONFIG_WDT值:如果在配置中设置为[*],则静态编译到内核,如果配置为[M],则编译为wdt.ko模块,否则不编译。

说明:受控目标是一个目录,obj-y并不直接决定受控目录的文件以及子目录的文件,仅仅是与受控目录Makefile交互,实际编译控制在受控子目录的Makefile中。例如“obj-y  += gpio/”,最终gpio目录下哪些文件被编译,完全取决于gpio目录下的Makefile。

“obj-$(CONFIG_PCI) += pci/”的含义同理。

以上就是Linux内核开发工具介绍是怎么样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网操作系统频道。

--结束END--

本文标题: Linux内核开发工具介绍是怎么样的

本文链接: https://www.lsjlt.com/news/283937.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux内核开发工具介绍是怎么样的
    本篇文章给大家分享的是有关Linux内核开发工具介绍是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。众所周知,Linux内核是使用make命令来配置并编译的,那必然少不...
    99+
    2023-06-16
  • Linux内核开发工具具体有哪些
    Linux内核开发工具具体有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。进行嵌入式Linux产品开发,往往需要对内核进行裁剪和定制,以满足嵌入式产品的功能...
    99+
    2023-06-16
  • Linux内核是怎么样的
    这篇文章将为大家详细讲解有关Linux内核是怎么样的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux 内核,这个经常听见,却不不知道它具体是干嘛的东西,是不是觉得非常神秘Linux 内核看不见摸不...
    99+
    2023-06-16
  • Linux内核是怎样的
    这篇文章主要介绍“Linux内核是怎样的”,在日常操作中,相信很多人在Linux内核是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux内核是怎样的”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-05
  • 基于Docker封装的开发包工具介绍
    本篇内容介绍了“基于Docker封装的开发包工具介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基于 Docker1.12+ (Docke...
    99+
    2023-06-04
  • Linux内核和Windows内核的区别是怎样的
    Linux内核和Windows内核的区别是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Windows 和 Linux 可以说是我们比较常见的两款操作系统的。Window...
    99+
    2023-06-15
  • Linux内核调优是怎样的
    这篇文章主要为大家分析了Linux内核调优是怎样的的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux内核调优是怎样的”的知识吧。一、内核文件系统操作系...
    99+
    2023-06-28
  • 新手用的Python开发工具是怎么样的
    新手用的Python开发工具是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python开发工具很多,比较大有的重型武器有Pycharm,Anaconda,VS Cod...
    99+
    2023-06-17
  • linux内核结构是怎样的
    Linux内核是一个分层的结构,由多个模块组成,每个模块负责不同的功能。下面是Linux内核的主要组成部分:1. 进程管理模块:负责...
    99+
    2023-10-08
    linux
  • Linux开发环境搭建工具vagrant的安装是怎样的
    小编今天带大家了解Linux开发环境搭建工具vagrant的安装是怎样的,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux开发...
    99+
    2023-06-28
  • JavaScript内存管理介绍是怎样的
    本篇文章为大家展示了JavaScript内存管理介绍是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。大多数时候,我们在不了解有关内存管理的知识下也只开发,因为...
    99+
    2024-04-02
  • Linux Swap交换分区介绍是怎么样的
    这篇文章给大家介绍Linux Swap交换分区介绍是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Linux Swap交换分区介绍总结Swap交换分区概念 什么是Linux swap space呢?我们先来看看...
    99+
    2023-06-06
  • 升级Linux内核的教程是怎样的
    本篇文章为大家展示了升级Linux内核的教程是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0。代号为&...
    99+
    2023-06-13
  • Linux的内存中Swap和Cache以及Buffer的介绍是怎样的
    Linux的内存中Swap和Cache以及Buffer的介绍是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 total:总内存大小。 used:已经...
    99+
    2023-06-15
  • Linux开发的五大必备工具是什么
    本篇内容介绍了“Linux开发的五大必备工具是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!容器放眼于现实,现在已经是容器的时代了。容器...
    99+
    2023-06-16
  • Linux Deepin2014的介绍以及特点是怎样的
    Linux Deepin2014的介绍以及特点是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。关于深度(Deepin),大家了解的更多应该是早期的深度Windows修...
    99+
    2023-06-13
  • thinkphp的开发工具是什么
    这篇文章给大家分享的是有关thinkphp的开发工具是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。thinkphp的开发工具有:1、PHPStorm,一款功能强劲的PHP IDE;2、Eclipse,跨平台...
    99+
    2023-06-22
  • 嵌入式linux开发工具怎么用
    今天小编给大家分享一下嵌入式linux开发工具怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-03-19
    linux
  • Linux内核测试生命周期是怎么样的
    这篇文章主要为大家展示了“Linux内核测试生命周期是怎么样的”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux内核测试生命周期是怎么样的”这篇文章吧。从一次更改开始内核中每一项令人兴奋的...
    99+
    2023-06-16
  • Linux常用的C语言开发工具是什么
    这篇文章主要介绍“Linux常用的C语言开发工具是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux常用的C语言开发工具是什么”文章能帮助大家解决问题。linux下的C语言开发(makef...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作