android系列-init 挂载文件系统

这篇具有很好参考价值的文章主要介绍了android系列-init 挂载文件系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.init 挂载文件系统 

//android10\system\core\init\main.cpp

int main(int argc, char** argv) {

    return FirstStageMain(argc, argv);
}
//android10\system\core\init\first_stage_init.cpp

int FirstStageMain(int argc, char** argv) {
    
    CHECKCALL(mount("tmpfs", "/dev", "tmpfs", MS_NOSUID, "mode=0755"));

    CHECKCALL(mount("devpts", "/dev/pts", "devpts", 0, NULL));

    CHECKCALL(mount("proc", "/proc", "proc", 0, "hidepid=2,gid=" MAKE_STR(AID_READPROC)));

    CHECKCALL(mount("sysfs", "/sys", "sysfs", 0, NULL));

    CHECKCALL(mount("selinuxfs", "/sys/fs/selinux", "selinuxfs", 0, NULL));
}

2.tmpfs文件系统

(来自chatgpt的回答)

在Android系统中,`tmpfs` 是一个临时文件系统,通常用于临时存储数据。`tmpfs` 把数据存储在内存中,而不是存储在磁盘上。这样的设计使得对数据的读写速度非常快,但也意味着数据不会在设备重启时保留。

在 Android 中,`tmpfs` 主要用于 `/dev` 和 `/tmp` 这样的目录,以及一些临时文件的存储。这有助于提高临时数据的访问速度,例如在应用程序运行时创建的临时文件。

请注意,`tmpfs` 不是持久的存储解决方案,因此不适合用于需要在设备重启后仍然保留的数据。如果你需要持久存储数据,你可能需要考虑使用其他文件系统,例如 Ext4 或 F2FS,它们通常用于设备的持久性存储。

3.devpts文件系统

(来自chatgpt的回答)

在 Android 中,`devpts` 是一个伪终端文件系统,用于提供终端功能。这个文件系统负责创建和管理伪终端设备,以便支持终端应用程序、shell 进程以及与终端相关的交互。`devpts` 在 Android 系统中的作用与其在标准 Linux 系统中的作用类似。

在 Android 设备上,`devpts` 文件系统通常被挂载到 `/dev/pts` 目录。你可以使用以下命令来查看当前挂载的文件系统:

cat /proc/mounts | grep devpts

这将显示挂载的 `devpts` 文件系统的相关信息,包括挂载点(通常是 `/dev/pts`)、文件系统类型等。

伪终端设备是在 `/dev/pts` 目录下创建的,每个终端设备都对应一个文件,例如 `/dev/pts/0`、`/dev/pts/1` 等。这些设备文件允许终端应用程序与系统进行通信,执行命令行操作,以及与 shell 进程进行交互。

`devpts` 文件系统的存在使得在 Android 系统中能够进行命令行交互,例如通过终端模拟器应用或通过 ADB(Android Debug Bridge)连接到设备的命令行。这对于开发、调试和系统管理等方面是非常有用的。

4.proc文件系统

(来自chatgpt的回答)

在 Android 操作系统中,`/proc` 是一个虚拟文件系统,它提供了对内核和系统信息的访问。这个文件系统并不存储在磁盘上,而是由内核动态生成,用于向用户空间提供有关系统状态、进程信息和其他内核参数的实时数据。

在 `/proc` 文件系统中,你可以找到一系列文件和子目录,每个都包含有关系统或进程的信息。以下是一些常见的内容:

1. **/proc/cpuinfo:** 包含有关 CPU 的信息,如型号、架构、频率等。

2. **/proc/meminfo:** 提供有关内存使用情况的信息,包括总内存、空闲内存、缓冲区和缓存等。

3. **/proc/version:** 包含 Linux 内核的版本信息。

4. **/proc/sys:** 包含系统参数,例如内核参数和网络设置。这是一个可以用于读写内核参数的目录。

5. **/proc/<PID>:** 包含有关指定进程的信息,其中 `<PID>` 是进程的标识符。

在 Android 开发和系统调试中,开发者经常使用 `/proc` 文件系统来查看系统的运行状态、调试性能问题,以及了解进程的详细信息。例如,通过读取 `/proc/cpuinfo`,你可以获取有关设备上的 CPU 信息,通过读取 `/proc/meminfo`,你可以查看内存的使用情况。

注意,`/proc` 文件系统的内容可能因 Android 版本和设备而异,而不是所有的文件和信息都对应着实际的物理存储。这是一个动态生成的虚拟文件系统,它提供了一种方便的方式来获取系统和内核的运行时信息。

5.sys文件系统

(来自chatgpt的回答)

在 Android 操作系统中,`sysfs` 是一个虚拟文件系统,提供了对内核参数和硬件设备的信息的访问。与 `/proc` 文件系统类似,`sysfs` 也是一个用于与内核交互的接口。这个文件系统通常挂载在 `/sys` 目录下。

以下是一些 `sysfs` 中常见的内容:

1. **/sys/class:** 包含设备类别相关的信息,比如输入设备、网络设备等。

2. **/sys/block:** 包含块设备(如磁盘和分区)的信息。

3. **/sys/bus:** 包含总线类型相关的信息,如 USB、PCI 等。

4. **/sys/devices:** 包含系统中所有设备的信息。

5. **/sys/kernel:** 包含与内核相关的信息,如调试、参数等。

通过访问 `sysfs`,开发者可以获取关于设备和内核的运行时信息,以及对一些内核参数进行调整。这对于 Android 系统的开发和调试非常有用。

举例来说,你可以在 `/sys/class/backlight` 中找到有关设备亮度的信息,或者在 `/sys/class/net` 中找到有关网络接口的信息。这些信息可以用于调整设备的行为,进行性能优化,或者用于调试目的。

需要注意的是,`sysfs` 提供的接口可以因 Android 版本、设备型号和内核配置而异,因此在使用时应当仔细查阅相关文档,确保了解所使用 Android 版本和设备的特定细节。

6.selinuxfs文件系统

(来自chatgpt的回答)

在 Android 操作系统中,`selinuxfs`(Security-Enhanced Linux File System)是用于 SELinux(Security-Enhanced Linux)的虚拟文件系统。SELinux是一种强制访问控制(MAC)机制,用于增强Linux系统的安全性。

`selinuxfs` 通常挂载在 `/sys/fs/selinux` 目录下,提供了与 SELinux 相关的信息和控制接口。这个文件系统包含一系列文件和目录,用于配置和管理 SELinux 的策略。

以下是一些常见的 `selinuxfs` 内容:

1. **/sys/fs/selinux/enforce:** 该文件用于控制 SELinux 的强制模式。写入 `0` 可以切换到宽松模式,写入 `1` 可以切换到强制模式。

2. **/sys/fs/selinux/policy:** 该文件包含当前 SELinux 策略的二进制表示。

3. **/sys/fs/selinux/load:** 通过将 SELinux 策略的二进制表示写入此文件,可以加载新的 SELinux 策略。

4. **/sys/fs/selinux/contexts:** 包含默认的 SELinux 上下文配置。

通过访问 `selinuxfs`,Android 系统和应用程序可以与 SELinux 交互,查询当前的 SELinux 配置,加载新的策略,以及控制 SELinux 强制模式。

SELinux 在 Android 中被广泛使用,它通过强制访问控制帮助保护系统免受恶意应用程序和攻击。开发者和系统管理员可能需要在特定情况下使用 `selinuxfs` 进行配置和管理 SELinux 的运行时行为。需要注意的是,对于一般用户和应用程序来说,通常无需直接操作 `selinuxfs`。

(看不懂,也记不住 /(ㄒoㄒ)/~~)文章来源地址https://www.toymoban.com/news/detail-816227.html

到了这里,关于android系列-init 挂载文件系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Android车载系列】第1章 车载系统整体介绍

            汽车操作系统是从传统汽车电子不断演变而来的,传统汽车电子产品可分为两类: 一类是汽车电子控制装置,通过直接向执行机构(如电子阀门、继电器开关、执行马达)发送指令,以控制车辆关键部件(如发动机、变速箱、动力电池)协同工作,这类系统一般

    2023年04月25日
    浏览(42)
  • Android JNI系列详解之CMake配置库文件的输出目录

    一、前提 阅读上一篇文章Android JNI系列详解之CMake编译工具的使用,里面讲到了需要配置两个文件:CMakeList.txt和build.gradle 二、配置CMake编译工具输出库文件的路径 1.默认的库文件输出路径:app/build/intermediates/cmake/debug/obj 由此可见不便于每次查找,因此我们需要将这个路径配置

    2024年02月10日
    浏览(40)
  • Docker系列(1)安装Linux系统编译Android源码

    目录 一、开发环境搭建 1.Windows docker环境安装 2.配置ubuntu18.04系统 2.0 准备工作 2.1 安装ubuntu18.04 2.2 安装常用工具 2.3 安装rk3568环境编译工具 2.4 新增用户 2.5 注意避坑!! 二、下载编译 Android_SDK 3.1 第一步,下载 SDK 3.2 第二步,更新 SDK 3.3 第二步,编译 SDK 手动编译 iCore-3568JQ An

    2024年02月11日
    浏览(46)
  • 【Android】细数Linux和Android系统中的伪文件系统

    做了好些年Android开发,你了解过Linux伪文件系统吗? 在 Linux 中,伪文件系统(Pseudo Filesystem)是一种特殊的文件系统,它不涉及具体的物理存储设备,而是提供了一种接口,允许用户和应用程序以文件和目录的形式访问内核和其他系统信息。这些文件和目录在运行时被内核动

    2024年01月24日
    浏览(35)
  • [Android] Android文件系统中存储的内容有哪些?

    如果不考虑厂商造成的差异,Android 标准的分区还是能构成一个定义良好的文件系统层的。 纵观全文,虽然没有太多技术性和需要逻辑推理的内容,但是看完之后,相信对于Android文件系统会有更深入的理解。例如我们Android开发的时候经常需要使用到的data/data目录,例如进入

    2024年01月25日
    浏览(32)
  • 【Android车载系列】第2章 车载系统启动与CarService

              车载Android启动流程基本是在Android系统的启动流程中, 多了Car相关服务 。其他流程基本一致,下面我们来看一下Android系统的启动流程。         Android系统的启动,从设备的开机键长按开始到Android桌面展示,这个完整流程就是Android系统启动的流程。从系统层次角

    2024年02月14日
    浏览(47)
  • 【Windows优化系列】Windows11安装Android子系统

    Q:为什么要在Windows安装Android系统?直接在手机使用不好吗? A:在电脑刷酷安不比拿着手机刷酷安爽吗?在电脑版的酷安码字不比手机上码字爽吗?不用打开手机也可以在电脑上点饿了么外卖不方便吗?手机上似乎不能使用tiktok,电脑上就可以使用tiktok。 并且,使用微软的

    2024年02月07日
    浏览(60)
  • Android 系统镜像文件介绍

    Android 常见image文件 Image Description Boot.img 内核启动参数,内核等多个元素 ramdisk.img 一个小型文件系统,是安卓启动的关键 system.img 安卓系统的运行程序包(framework),被挂载在/system节点下 userdata.img 各程序的数据存储,被挂载在/data 下 recovery.img 设备进入“恢复模式”是所需

    2024年02月03日
    浏览(37)
  • 【毕业设计之Android系列】智能家居远程控制系统设计

            该系统是一种基于Android平台的应用程序,可以通过网络连接实现对家居设备的远程控制。其主要功能包括家居设备的开关控制、温度调节、音乐播放、安防监控等。系统的设计需要考虑硬件、软件、数据传输、安全性和扩展性等因素,以实现对家居设备的智能控

    2024年02月10日
    浏览(53)
  • Android系统签名jks文件

    在android framework开发过程中,通常使用系统应用在验证某些功能,(系统功能权限大,可以通过反射获取hide接口,便于功能调试)。 一般做法,是将AndroidStudio打包的apk,使用系统签名,编译到系统,使其获取到system权限,验证功能。 但是这个过程比较复杂,流程繁琐,耗时

    2024年02月02日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包