⑴ Android内核修改*_defconfig的方法
目的是为Android中的linux内核来配置CONFIG_DYNAMIC_FTRACE选项。
智能硬件Android版本:8.1
智能拆誉硬件Linux版本:4.4
智能硬件芯片平台:Arm32
实验PC环境:Ubuntu
查看KERNEL_DEFCONFIG的定义,由于只支持arm32我们只更改arm文件夹下即可。
如果是arm64位芯片,需同时更该arm和arm64文件夹下的内容。
由此非eng编译雹冲环境下配置源御歼文件应为kernel-4.4/arch/arm/configs/*_defconfig
注:产品代号已经用 * 替代,该处请自行根据需要去替换编译产品名称
kernel-4.4/arch/arm/configs/*_defconfig为上述所说的配置文件
发现依赖如下两个depends的配置项
由此在kernel-4.4/arch/arm/configs/*_defconfig文件中新增如下两个依赖的配置项
由此发现FUNCTION_TRACER的一个配置项
HAVE_DYNAMIC_FTRACE的配置项定义没有依赖项
最终把改配置项添加到kernel的配置文件kernel-4.4/arch/arm/configs/*_defconfig中
提取出终端kernel配置文件
查看config文件是否包含CONFIG_DYNAMIC_FTRACE=y,大功告成
⑵ 安卓到底是不是Linux
安卓是基于Linux内核的系统,但不是Linux本身。具体来说:
内核层面:Android 使用的是 Linux 内核,这意味着 Android 继承了 Linux 内核的许多特性,如设备驱动、文件系统、进程管理、网络通信等核心组件。这使得 Android 能够运行在广泛的硬件平台上,并受益于 Linux 内核的开源属性和稳定性。
应用执行平台:Android 在 Linux 内核之上运行着一个名为 Android Runtime 的虚拟机,这是 Android 应用程序执行的平台。与 Linux 发行版中的 Java 虚拟机类似,ART 使得开发者能够使用 Java 语言编写 Android 应用程序。这些应用能够在运行于 ART 之上的 Android 系统中运行,与 Linux 发行版中的应用程序存在区别。
特定库和环境配置:尽管 Android 和 Linux 在内核层面有紧密联系,但二者在特定的库和环境配置上存在差异。例如,Android 特有的库和环境设置使得一些 Linux 桌面应用无法在 Android 系统中直接运行,反之亦然。
兼容性问题:Android 与 Linux 发行版之间的兼容性问题需要注意。通常情况下,Android 的库与 Linux 桌面环境之间存在不兼容性,这需要通过特定的技术手段来实现跨平台运行。
综上所述,Android 系统和 Linux 在本质上是紧密相连的,但二者在应用执行平台、特定库和环境配置以及兼容性方面存在一些区别。