Home
little Joy Personal
Cancel

内核模块编译优化问题

有时,需要对内核模块的编译进行优化或取消优化,加上自定义宏等。这就要对默认的编译选项进行修改了。 这一块内容属于内核的 Kbuild 系统,Kbuild系统非常灵活,在Makefile中定义了有较多的变量用于控制 编译行为,其中就有编译选项的变量。Kbuild系统的一个特点是很多变量会从顶层makefile继承下来,如果 不修改就保持一致,用户也可以在自己添加的模块的makefile中修改这...

QEMU-用户级模拟

qemu有两种仿真模式,一种是系统级仿真,一种是用户级仿真。前文中记录的都是系统级仿真。 系统级仿真,以模拟器程序名称一般都是 qemu-system-[arch]。如: ls qemu-7.2.1/build/qemu-system-* qemu-7.2.1/build/qemu-system-arm qemu-7.2.1/build/qemu-system-aa...

losetup管理loop设备

关于loop device 在Linux中,loop设备(回环设备)是一种虚拟块设备,这种技术可以实现将磁盘上的普通文件作为一个虚拟的块设备来使用,可以像对待一般的块设备一样来操作它。 可以轻松的在一个现有的文件系统中实现出一个虚拟的磁盘或文件系统。 该loop device的主要用途: 制作/修改/调试 系统镜像,比如老的光盘ISO可以通过挂载为loop设备在主机上调试,制作文...

压缩解压缩-lz4

有遇到.tar.lz4 的压缩文件,记录一下 关于lz4的压缩格式。 lz4介绍 LZ4是一种无损压缩算法,主要特点就是压缩和解压的速度非常快,能有效利用CPU多核资源。速度快是其主要特点,所以非常适合需要频繁压缩或解压的场合。其不足主要 是压缩率不高,不如gnuzip。另外它只能对单个文件压缩,无法对目录压缩,所以对目录压缩时往往需要配合tar工具,由tar工具打包后,进行lz4压缩。...

Shell脚本调试方法

最简单的调试手段,在shell脚本中添加echo打印,来排查错误,比较繁琐。这里记录一些shell脚本的其他调试方式。 以下内容全部使用bash解释器测试。 bash 内置的追踪功能 bash解释器有3个参数帮助调试。-n,-v,-x。 -n,读一遍脚本中的命令但不执行,用于检查脚本中的语法错误。 -v,一边执行脚本,一边将执行过的脚本命令打印到标准输出。 -x,提供跟...

QEMU-Arm System emulator

概述 QEMU可以模拟32位和64位Arm cpu。32为的arm架构使用 qemu-system-arm 工具,64位的aarch64架构使用 qemu-system-aarch64进行模拟。二者的命令行参数基本是通用的。 QEMU对Arm的支持较好,有较多的arm机器可以支持,毕竟arm硬件差异性比x86架构更多。Arm CPU通常被内置在SOC芯片中, 不同公司创建出不同的SOC芯...

关于ramdisk,ramfs,tmpfs及initrd,initramfs

主要记录 linux中的 ramdisk ,ramfs,tmpfs以及相关的initrd和initramfs。 ramdisk RAMDisk是一种虚拟磁盘技术,它将一部分系统内存(RAM)虚拟为硬盘,并允许用户在其中创建文件系统和存储数据等,具有非常快的读写速度, 因为它没有磁盘I/O的开销。相对的,数据将只存在于内存中,在系统重启后将不再存在,不适合保存需要持久存储的数据。 在ra...

QEMU-x86 System emulator

在x86机器上模拟x86,可以使用kvm加速。另外,x86环境中,硬件设备都相对标准(固定),参数设置可以相对简单。 Host环境 host环境为Ubuntu20.04 ,物理机。 $ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.5 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_...

busybox 根文件系统

busybox是一个开源项目,可以用来构建根文件系统。其主要特点是轻量、精简。Linux系统上的许多命令工具主要来自于 GNU Coreutils 软件包,如日常使用的基本命令,ls,cat,mv等等。这些命令工具通常支持的参数非常多,功能也 很全。而busybox则是非常精简,首先就是这些基本命令的精简实现,从源代码实现上去掉了很多不常用的参数,使得命令 工具本身精简了。其次,在根文件系统...

使用apt降级软件包

dpkg和rpm的软件包都有版本信息,依赖信息。安装一个包,需要将它依赖的软件包(如果有)先装好。 有时安装软件时,软件包安装失败,提示信息大致为依赖冲突。系统中存在更高版本的依赖兑现表包,需要降级处理。 可以根据提示的版本信息,进行降级处理。 # check 包的历史版本信息 apt-cache policy [package name] # 安装特定的版本的包(可以降级) apt i...