当前位置: 首页 > news >正文

android系列-init 挂载文件系统

1.init 挂载文件系统 

//android10\system\core\init\main.cppint main(int argc, char** argv) {return FirstStageMain(argc, argv);
}
//android10\system\core\init\first_stage_init.cppint 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ㄒ)/~~)

相关文章:

android系列-init 挂载文件系统

1.init 挂载文件系统 //android10\system\core\init\main.cppint main(int argc, char** argv) {return FirstStageMain(argc, argv); } //android10\system\core\init\first_stage_init.cppint FirstStageMain(int argc, char** argv) {CHECKCALL(mount("tmpfs",…...

Spring 七种事务传播性介绍

作者&#xff1a;vivo 互联网服务器团队 - Zhou Shaobin 本文主要介绍了Spring事务传播性的相关知识。 Spring中定义了7种事务传播性&#xff1a; PROPAGATION_REQUIRED PROPAGATION_SUPPORTS PROPAGATION_MANDATORY PROPAGATION_REQUIRES_NEW PROPAGATION_NOT_SUPPORTED…...

Count the Colors ZOJ - 1610

题目链接 题意&#xff1a; 给定n个区间[ l, r ]和颜色c, 每次给[l, r]涂上c这个颜色. 后面的涂色会覆盖之前的涂色. 最后要求输出区间[0, 8000]中每种颜色及其出现的次数, 如果该颜色没有出现过则不输出. 思路&#xff1a;典型的线段树区间染色问题&#xff0c;一般这种题…...

MATLAB点云处理总目录

一、点云滤波 原始点云包含过多噪点和冗余点&#xff0c;滤波和采样往往是点云预处理的必要步骤 1.滤波 重复点去除 NAN或INF无效点去除 自定义半径滤波 2.采样 基于空间格网的点云抽稀 随机下采样 均匀体素下采样 非均匀体素下采样 二、邻近搜索 如何组织点云快速获取当前…...

C语言逗号表达式如何计算

在 C 语言中&#xff0c;逗号表达式是一种特殊的表达式形式&#xff0c;它由逗号分隔的多个表达式组成。 逗号表达式的计算过程如下&#xff1a;1、从左到右依次计算每个表达式的值。2、最终返回的值是最右边表达式的值。3、逗号表达式的求值过程是顺序执行的&#xff0c;不会…...

Ubuntu 本地部署 ChatGPT-Next-Web

Ubuntu 本地部署 ChatGPT-Next-Web 文章目录 Ubuntu 本地部署 ChatGPT-Next-Web ChatGPT-Next-Web 项目地址&#xff1a;https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 本文主要演示如何在 Ubuntu 本地&#xff08;默认是端口 3000&#xff09;部署 ChatGPT-Next-Web&am…...

小程序商城搭建:快速入门指南

随着移动互联网的普及&#xff0c;小程序商城逐渐成为了商家们进行线上销售的重要渠道。如果你也想搭建一个小程序商城&#xff0c;那么本文将为你介绍如何使用乔拓云这一第三方小程序搭建平台来轻松搭建自己的小程序商城。 一、选择合适的第三方小程序搭建平台 在选择第三方小…...

c# windows10大小端试

测试代码&#xff1a; unsafe public void ceshi() {byte[] by BitConverter.GetBytes(0x12345678);Debug.WriteLine(" byte[0] 0x" by[0].ToString("x2"));Debug.WriteLine(" byte[1] 0x" by[1].ToString("x2"));Debug.WriteLi…...

【算法专题】动态规划之斐波那契数列模型

动态规划1.0 动态规划 - - - 斐波那契数列模型1. 第 N 个泰波那契数2. 三步问题3. 使用最小花费爬楼梯4. 解码方法 动态规划 - - - 斐波那契数列模型 1. 第 N 个泰波那契数 题目链接 -> Leetcode -1137. 第 N 个泰波那契数 Leetcode -1137. 第 N 个泰波那契数 题目&…...

K2P路由器刷OpenWrt官方最新版本固件OpenWrt 23.05.2方法 其他型号的智能路由器OpenWrt固件刷入方法也基本上适用

最近路由器在开机时总出问题,于是就那他来开刀,直接刷一个OpenWrt官方最新版本的固件, 刷其他第三方的固件总是觉得不安全, 而且很多第三方固件都带了些小工具,始终会有安全隐患, 而且占用内存空间太多,本来这个东西就没有多少内存,于是就干脆刷一个官方的原始固件(才6.3M, 相…...

AI大语言模型会带来了新一波人工智能浪潮?

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…...

How to view the high-tech zone atmospheric project

How to view the high-tech zone atmospheric project 问题与建议登录界面没有验证码部分页面加载时间过长联动型下拉列表框点击反应迟钝页面缺乏导航没有采用https协议没有完成域名实名认证左侧菜单区不能收缩大屏区域功能图层不能完全隐藏部分页面表单控件没有文案提示其功能…...

sqlalchemy 中的缓存机制解释

SQLAlchemy 的缓存机制主要涉及两个层面&#xff1a;会话&#xff08;Session&#xff09;缓存和查询缓存。这两种缓存机制对于提升应用性能和数据一致性都非常重要。下面详细解释这两种缓存机制&#xff1a; 1. 会话&#xff08;Session&#xff09;缓存 会话缓存是 SQLAlch…...

网络安全B模块(笔记详解)- 漏洞扫描与利用

漏洞扫描与利用 1.通过Kali对服务器场景server2003以半开放式不进行ping的扫描方式并配合a,要求扫描信息输出格式为xml文件格式,从生成扫描结果获取局域网(例如172.16.101.0/24)中存活靶机,以xml格式向指定文件输出信息(使用工具Nmap,使用必须要使用的参数),并将该操…...

【C语言】指针——从底层原理到应用

C语言指针-从底层原理到花式技巧&#xff0c;用图文和代码帮你讲解透彻 目录 一、前言二、变量与指针的本质 1. 内存地址2. 32位与64位系统3. 变量4. 指针变量5. 操作指针变量 5.1 指针变量自身的值5.2 获取指针变量所指向的数据5.3 以什么样的数据类型来使用/解释指针变量所指…...

想了解步进伺服的朋友可以了解下这个方案

TMC4361A 是一款小型化、高性能的驱动步进电机的运动控制器。实用于很多的斜坡轮廓的应用&#xff0c;特别是速度快、限制过冲的运动场合。用户根据自己的要求实现 S 形或 sixPoint™六点式速度轮廓配置及闭环或开环的操作、动态修改运动参数。TMC4361A 包含 SPI接口、Step/Dir…...

航天航空线束工艺3D虚拟展馆支持多人异地参观漫游

为了满足汽车线束企业员工工作需要&#xff0c;让新老员工了解到更先进、规范的线束工艺设计技术&#xff0c;华锐视点基于VR虚拟仿真、web3d开发和图形图像技术制作了一款汽车线束工艺设计VR虚拟仿真模拟展示系统。 汽车线束工艺设计VR虚拟仿真模拟展示系统共分为pc电脑端和VR…...

JAVA面向对象基础-容器

一、泛型 我们可以在类的声明处增加泛型列表&#xff0c;如&#xff1a;<T,E,V>。 此处&#xff0c;字符可以是任何标识符&#xff0c;一般采用这3个字母。 【示例9-1】泛型类的声明 1 2 3 4 5 6 7 8 9 10 class MyCollection<E> {// E:表示泛型; Object[] o…...

2022年山东省职业院校技能大赛高职组信息安全管理与评估—开发测试服务器解析

任务5:开发测试服务器 目录 任务5:开发测试服务器 解题方法:...

2024年我国网络安全发展形势展望

2023年&#xff0c;我国网络安全政策法规陆续出台&#xff0c;网络安全与数据安全产业发展势头强劲&#xff0c;网络安全形势整体向好。展望2024年&#xff0c;世界各国在网络空间中的竞争将变得愈发激烈&#xff0c;我国网络安全领域的法律法规将不断完善&#xff0c;数据安全…...

【开盘预测】2026年5月13日(周三)

生成时间&#xff1a;2026-05-12 20:30 | 数据来源&#xff1a;金融市场数据 核心预测&#xff1a;市场震荡整理&#xff0c;关注4200-4250区间&#xff0c;量能变化是关键一、今日收盘总结指数收盘点涨跌幅关键技术位上证指数4214.49-0.25%失守4220&#xff0c;守在4200上方深…...

【JVM】面试题-有哪些垃圾回收器

【JVM】面试题-有哪些垃圾回收器 在JVM的内存管理中&#xff0c;垃圾收集算法是内存回收的核心逻辑与方法论&#xff0c;而垃圾收集器则是将这套方法论落地实现的具体工具。 不同的垃圾收集器针对JVM堆的不同分代&#xff08;新生代、老年代&#xff09;设计&#xff0c;具备不…...

如何做谷歌SEO排名优化?搞定高质量外链的4种高成功率技巧

很多刚接触谷歌SEO的朋友发现&#xff0c;自己的网站内容写了不少&#xff0c;可排名始终在搜索结果的五六页开外晃悠。排除掉网站技术层面的小毛病&#xff0c;最让大家头疼的往往就是外链。你可以把外链看作是其他网站给你的“信任投票”&#xff0c;如果投给你的都是些街边的…...

从SPI模式0到Quad I/O:手把手带你玩转W25Q128JV的性能压榨与接口升级

从SPI模式0到Quad I/O&#xff1a;W25Q128JV性能优化实战指南 在嵌入式系统设计中&#xff0c;存储器的性能往往成为整个系统响应速度的瓶颈。W25Q128JV这颗128Mbit容量的串行Flash芯片&#xff0c;凭借其灵活的接口配置和出色的性价比&#xff0c;已成为众多物联网设备、消费电…...

如何快速掌握Unitree Go2机器人ROS2开发:面向初学者的完整教程

如何快速掌握Unitree Go2机器人ROS2开发&#xff1a;面向初学者的完整教程 【免费下载链接】go2_ros2_sdk Unofficial ROS2 SDK support for Unitree GO2 AIR/PRO/EDU 项目地址: https://gitcode.com/gh_mirrors/go/go2_ros2_sdk Unitree Go2 ROS2 SDK是一个强大的开源项…...

云数据中心能效优化:集成资源管理与学习中心管理的实战指南

1. 项目概述&#xff1a;当云计算撞上“能耗墙”&#xff0c;我们如何破局&#xff1f;干了十几年IT&#xff0c;从自建机房到全面上云&#xff0c;我亲眼见证了云计算如何重塑整个行业。它确实像电力网络和公路一样&#xff0c;成了现代社会不可或缺的基础设施。但这些年&…...

osModa:基于NixOS与AI智能体的下一代服务器操作系统

1. 项目概述&#xff1a;为AI智能体而生的操作系统如果你和我一样&#xff0c;长期在服务器运维和AI应用部署的一线摸爬滚打&#xff0c;那你一定对这样的场景深有体会&#xff1a;凌晨三点&#xff0c;手机突然响起刺耳的告警&#xff0c;你睡眼惺忪地爬起来&#xff0c;SSH连…...

抖音下载器:三步实现无水印高清素材批量获取

抖音下载器&#xff1a;三步实现无水印高清素材批量获取 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批…...

从灰度图到粉彩叙事,全程可复现:5个精准Prompt模板+3类LUT预设,零基础速产美术馆级Pastel印相

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;从灰度图到粉彩叙事&#xff1a;Pastel印相的美学本质与技术边界 Pastel印相并非简单的色彩叠加&#xff0c;而是一种基于人眼感知非线性响应与胶片化学特性的数字模拟范式。其核心在于将灰度图像的亮度…...

基于STM32的数控恒流源:从硬件闭环到软件PD调节的工程实践

1. 数控恒流源的核心需求与设计思路 第一次接触数控恒流源是在三年前的一个工业检测设备项目中&#xff0c;当时需要为传感器阵列提供精确的电流激励。传统模拟恒流方案遇到温度漂移问题&#xff0c;最终选择了STM32数控方案。这种方案最大的优势在于&#xff1a;硬件闭环保证响…...