Linux
文章平均质量分 74
XuNONO
hello emmmmm world ....
展开
-
对 CentOS cloudimage 进行小幅修改
1、下载 cloudimage 镜像http://cloud.centos.org/centos/7/images/我下载的是 centos7 2003,得到 CentOS-7-aarch64-GenericCloud-2003.qcow2.xz 镜像文件,通过命令 xz -d CentOS-7-aarch64-GenericCloud-2003.qcow2.xz 解压得到 CentOS-7-aarch64-GenericCloud-2003.qcow2。2、将 qcow2 格式镜像转换为原始格式q原创 2021-12-12 14:13:06 · 571 阅读 · 0 评论 -
对 CentOS cloudimage 进行小幅修改
1、下载 cloudimage 镜像http://cloud.centos.org/centos/7/images/我下载的是 centos7 2003,得到 CentOS-7-aarch64-GenericCloud-2003.qcow2.xz 镜像文件,通过命令 xz -d CentOS-7-aarch64-GenericCloud-2003.qcow2.xz 解压得到 CentOS-7-aarch64-GenericCloud-2003.qcow2。2、将 qcow2 格式镜像转换为原始格式q原创 2021-12-12 14:01:50 · 874 阅读 · 0 评论 -
QEMU 6.1.0 运行 RISCV64 OpenSBI + U-Boot + Linux
QEMU 6.1.0 运行 RISCV64 OpenSBI + U-Boot + Linux1. 准备OpenSBI v0.9git clone https://github.com/riscv-software-src/opensbi.git --branch v0.9U-Boot v2021.07https://source.denx.de/u-boot/u-boot.git --branch v2021.07Linux 5.10.70 (直接在 www.kernel.org 上下载即原创 2021-10-09 11:31:34 · 4219 阅读 · 1 评论 -
Linux 5.10 start_kernel 分析 —— set_task_stack_end_magic
==>开始void set_task_stack_end_magic(struct task_struct *tsk){ unsigned long *stackend; stackend = end_of_stack(tsk); *stackend = STACK_END_MAGIC; /* for overflow detection */}从注释可以看出,设置魔数的目的是为了进行栈溢出检测(for overflow detection),STACK_END_MAGIC 为栈底魔原创 2021-06-16 19:59:36 · 1658 阅读 · 3 评论 -
(番外二)Arm32 中虚拟地址机制分析(页表项属性分析)
Arm32 MMU 页表项属性本篇文章接上一篇 (番外一)Arm32 中虚拟地址机制分析(Arm cortex-A系列 MMU工作机制分析) ,在上一篇文章中根据手册(《Arm Cortex-A Series Programmer’s Guide》)简单分析了Arm32中多级页表的简单原理,即 MMU 如何通过虚拟地址转换表将 CPU 发出的虚拟地址访问指令定位到具体的物理地址,本篇主要深入了解一下每一个页表项的属性对物理内存的访问的影响,首先贴出 Arm32 一级页表与二级页表结构图:一级页表二级原创 2020-11-17 22:58:13 · 1494 阅读 · 0 评论 -
(番外一)Arm32 中虚拟地址机制分析(Arm cortex-A系列 MMU工作机制分析)
Arm Cortex-A 系列 内存管理单元(MMU)由于直接分析 linux arm32 mmu版 的启动代码会涉及到内存直接物理映射模式到开启虚拟地址映射模式的转换,这需要对 ARM32 中的虚拟地址实现机制有足够的了解才行,本文通过分析Arm Cortex-A 系列内存管理单元来分析ARM32中的虚拟地址机制。 Memory Management Unit 简称为 MMU ,它的一个最主要的功能就是进行地址转换,将处理器发出的 虚拟地址 转换为 物理地址 ,有了 MMU 的支持,才能让我们更容易地原创 2020-10-16 00:17:35 · 2726 阅读 · 5 评论 -
linux arm32 mmu 启动代码分析(汇编部分)
linux arm32启动代码分析首先将 linux kernel 代码编译好以后,在目录 arch/arm/kernel 下生成链接脚本文件 vmlinux.lds (vmlinux.lds由vmlinux.lds.S编译而来)。首先分析此脚本来熟悉 linux kernel 二进制代码分布结构。在 vmlinux.lds.S 中ENTRY(stext)指明了linux内核入口,入口为stext。符号stext定义在 arch/arm/kernel/head.S 文件中: .arm __H原创 2020-10-12 10:50:57 · 3472 阅读 · 7 评论 -
制作一个grub虚拟启动盘,在qemu下调试
首先需要一个空白文件,我将其填充为zero 512MiBdd if=/dev/zero of=./grub.img bs=1024 count=524288得到grub.img大小为512MiB的文件然后将其挂载为loop设备mknod /dev/loop200 b 7 200losetup /dev/loop200 ./grub.img为loop200分区fdisk /dev/...原创 2020-04-26 15:34:39 · 2047 阅读 · 0 评论 -
交叉编译OpenSSH容易被遗漏的步骤
OpenSSH需要zlib与openssl支持编译网上有很多讲解就不多说至于为什么很多网上的过程都无法成功,最主要的是:1.在编译zlib和openssl的时候一定要在cflags中手动加-fPIC选项,防止之后的bad value问题出现2.编译安装openssl后,需要将安装后的文件复制一份到/usr/local/ssl/中,在configure脚本中加入set -x后,可以看到,就算...原创 2020-03-16 15:55:43 · 289 阅读 · 0 评论