夕元

夕元
Init的工作职责

android

Init的工作职责

原文链接:https://ovea-y.cn/init_work_1/ 总览图 ueventd其实就是init,为了方便启动所以单独设置了一个链接 Init第二阶段初始化流程 PropertyInit 它的作用初始化属性,它在非常早期的阶段(此时没有执行init脚本指令,甚至没有初始化selinux)就会执行。 它会做下面这些操作: * 创建/dev/__properties__节点 * 解析序列化的属性(在文件{分区名}__property_contexts中),并且写入到/dev/properties/property_info * 解析Kernel Device Tree,设置到ro.boot.{}中 * 解析Kernel Command Line,设置到ro.boot.{}中 * 解析Boot Config,设置到ro.boot.{}中 * 将一些Kernel

By 夕元
VMware Fusion设置端口转发(macOS)+内网穿透

macOS

VMware Fusion设置端口转发(macOS)+内网穿透

原文链接:https://ovea-y.cn/vmware_fusion_set_port_forwarding_macos_internal_network_penetration/ 很少有资料提到配置macOS上VMware Fusion的端口转发,因此我在这里进行了一些记录 打开网络设置 解锁并添加新的网络适配器 只有新的网络适配器才允许配置转发,默认的不允许这样做。 设置NAT转发 虚拟机选择使用新创建的虚拟网络适配器 Ubuntu配置静态IP/DNS服务器的方法 首先你可以在安装Ubuntu的时候配置 安装后如果需要修改,请像下面这样修改 vim /etc/netplan/00-installer-config.yaml 改完后重启。 # This is the network config written by 'subiquity' network: ethernets: ens160: addresses: - 192.168.

By 夕元
随身携带的FreeBSD U盘系统——Nomadbsd

freebsd

随身携带的FreeBSD U盘系统——Nomadbsd

原文链接:https://ovea-y.cn/portable_freebsd_usb_drive_system__nomadbsd/ 简单介绍 NomadBSD是一个基于FreeBSD的系统,专为USB存储器准备的可持久化的live系统(配置完成后就可以当成随时Unix系统使用了,当然也可以作为主系统来使用)。它是一个开箱即用的桌面系统,可以自动检查插入设备的硬件并完成设置。 FreeBSD是一个自由开源的类Unix操作系统,源自伯克利软件发行版(BSD),它是一个完整的操作系统,该项目提供内核、设备驱动程序、用户空间实用程序和文档(而Linux不提供用户空间实用程序和文档),FreeBSD系统具备一个安装和日常使用说明文档:https://docs.freebsd.org/en/books/handbook/。除此之外,FreeBSD具有很多有趣的技术实现,例如**Jails、Bhyve**等。 FreeBSD 的大部分代码库已成为其他操作系统不可或缺的一部分,例如Darwin ( macOS、iOS、iPadOS、watchOS和tvOS的基础)、Tr

By 夕元
F2FS介绍

android

F2FS介绍

原文链接:https://ovea-y.cn/f2fs_simple/ 一、背景介绍 一个对基于NAND并且具备FTL(闪存转换层)的闪存设备友好的文件系统,该文件系统依赖于FTL来处理写操作。F2FS对FTL的支持,在于一开始就将存储空间划分为若干个大小相同的segment,然后多个segment由section进行管理。F2FS期望section大小与FTL中垃圾收集单元大小相同。 需要注意的是,FTL一般处于具备SCSI/SATA/PCIe/NVMe接口的闪存中。 1.1 FTL的原理 FTL简单来说就是系统维护了一个逻辑Block地址(LBA,logical block addresses )和物理Block地址(PBA, physical block addresses)的对应关系。 这样就不需要操作系统额外针对闪存设备进行额外的优化了,优化由闪存本身内建的微型系统来完成(例如磨损均衡,废块回收等)。 举一个例子,FAT文件系统,它有很大的概率会在数据读写的过程中对同一逻辑地址的存储空间进行操作,如果没有优化操作,对应的

By 夕元
Windows 11使用WSL2进行日常工作测试

windows

Windows 11使用WSL2进行日常工作测试

原文链接:https://ovea-y.cn/windows11_uses_wsl2_for_daily_work_testing/ 背景介绍 由于Linux上缺少很多常用的软件,并且Linux加上图形界面时,有时会出现很多匪夷所思的BUG(包括但不限于压缩文件的默认打开方式变成了文本编辑器、界面卡死等情况),因此将工作流迁移到Windows上也不失为一种选择。 WSL 2相比WSL 1最大的缺点就是它运行在虚拟化层中,并且对NTFS的读写性能极差!(还有一个问题是硬件和网络端口不再共享了)但是优点是它是完整的linux系统,可以发挥Linux全部的功能。 如果要使用WSL 2进行日常工作,就必须避免使用NTFS,而是使用其他Linux上原生支持的文件系统。本篇文章的重点就是如何让WSL 2用上原生支持的文件系统。 配置环境 1. 启用Linux子系统功能(需要管理员权限),下面这个指令可以自动配置好所有环境,默认使用WSL 2,Ubuntu系统。 wsl --install 2. 重启系统,重启后会自动弹出下面这个安装框

By 夕元
Windows11使用WSL2挂载VHDX(虚拟磁盘)

windows

Windows11使用WSL2挂载VHDX(虚拟磁盘)

原文链接:https://ovea-y.cn/windows11_uses_wsl2_to_mount_vhdx/ 背景介绍 正如此前介绍的直接挂载磁盘所说的那样,无法使用trim对支持区块自动回收的磁盘触发该操作,使用VHDX就可以解决这个问题,Windows会定期同时对VHDX的数据进行trim操作,也可以在WSL2使用fstrim进行该操作。 使用VHDX还有一个好处,有时大家可能并不想让一整块硬盘用于WSL2挂载,而只是其中一部分空间,此时VHDX就可以帮上大忙了! 关于WSL的安装和配置可以查看这篇文章:使用Windows11 WSL2进行Android系统开发 本篇文章只讲述WSL2如何使VHDX虚拟磁盘。 附图:支持Trim的HDD VHD/VHDX on SSD 创建VHDX并挂载 1. 创建VHDX 2. 挂载VHDX并初始化 # Windows (管理员权限) GET-CimInstance -query "SELECT * from Win32_DiskDrive" # 执行上面的指令后会得

By 夕元
Fuse学习

fs

Fuse学习

原文链接:https://ovea-y.cn/fuse_simple/ 什么是Fuse? Fuse是一个用户空间文件系统的运行框架。它由一个内核模块(fuse.ko)、一个用户空间的库(libfuse.*)和一个挂载工具(fusemount)组成。 💡 ko是kernel object的缩写,和so库类似,都是为了模块化实现。内核把核心主干框架之外的功能拆解成模块,需要的时候就加载 ko 模块,不需要的时候卸载即可。这样带来的好处就是方便开发和使用,保持内核的核心代码极度精炼。 Linux的文件系统都是运行在内核态的,因此如果想实现一个新的文件系统,就需要让其运行在Linux Kernel中。 Fuse,即implementing filesystems in user space,在用户空间实现文件系统。 有了Fuse之后,开发者就可以在用户态开发自己的文件系统,相比于必须要运行在内核态,在用户态开发文件系统更好调试,并且不会导致Kernel崩溃,可以大大地缩短开发周期。 Fuse的文件系统类型 fuse 这是最常用的挂载Fu

By 夕元
使用Windows11 WSL2进行Android系统开发

android

使用Windows11 WSL2进行Android系统开发

原文链接:https://ovea-y.cn/using_windows_11_wsl2_for_android_system_development/ 背景介绍 由于Linux上缺少很多常用的软件,并且Linux加上图形界面时,有时会出现很多匪夷所思的BUG(包括但不限于压缩文件的默认打开方式变成了文本编辑器、界面卡死等情况),因此将工作流迁移到Windows上也不失为一种选择。 WSL 2相比WSL 1最大的缺点就是它运行在虚拟化层中,并且对Windows磁盘的读写性能极差!毕竟切换成使用网络实现方式将Windows的分区挂载到WSL 2了(还有一个问题是硬件和网络端口不再共享了)。但是优点是它是完整的linux系统,可以发挥Linux全部的功能(但是systemctl依旧不可用)。 如果要使用WSL 2进行日常工作,就必须避免使用NTFS,而是使用其他Linux上原生支持的文件系统。本篇文章的重点就是如何让WSL 2用上原生支持的文件系统,以及如何让USB设备接入WSL 2两大部分内容。 WSL2具备的优点: * 完整的Linux内核支持

By 夕元
Ubuntu多硬盘luks全盘加密自动解锁(硬件变更后失效)的方法

ubuntu

Ubuntu多硬盘luks全盘加密自动解锁(硬件变更后失效)的方法

原文链接:https://ovea-y.cn/ubuntu_mutli_disk_luks_full_encrypt_and_auto_unlock/ 简介 大家都知道,Linux现在用Luks全盘加密一直有一个痛点,就是每次开机都需要输入解密硬盘的密码,之后又要输入用户密码,非常的麻烦!本文正是为了解决这个问题诞生的! 本文多硬盘加密带来的效果是,当你的硬盘被拔出,其他人试图拿到数据时必须需要密码。而硬盘如果一直留在原来的主机中,且硬件没有发生大的变化,则不需要密码即可自动解密硬盘开机。 密钥验证逻辑链路如下: 使用TPM芯片验证当前环境是否可信,如果可信的话,则释放密钥给系统硬盘。系统启动后会释放其他硬盘的密钥来进行解锁。 其中任何一个链路被破坏,都将无法再自动解锁,必须输入密码。(其实这里有个可改进的地方,如果System Storage不是通过TPM解锁的,则销毁解密其他存储器的密钥) 1. 在安装Ubuntu的时候,进行仅对根目录进行加密 2. 设置根目录在开机时通过tpm 2.0硬件自动解密 安装所需工具

By 夕元