跟踪分析Linux内核启动过程这次作业不需要编译,于是使用实验楼的环境。在shell中使用下面的命令启动qemu qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 可以看到成功的进入MenuOS。 因为没有学过《软件工程C编码实践篇》,所以首先简略看一下MenuOS的代码,main函数在test.c
目录前言前置知识ARM Versatile Express开发板简介ARM处理器家族简介安装qemu-system-arm安装交叉编译工具交叉编译ARM32 Linux内核交叉编译ARM32 Busybox使用busybox制作initramfs使用QEMU启动ARM32 Linux内核模拟vexpress-a9开发板模拟vexpress-a15开发板参考 前言本文介绍采用 qemu 模拟ARM
转载 2024-05-09 11:48:31
0阅读
CentOS 7 安装a. U盘安装,请选择minimal版本。(DVD那个版本,后面需要把DVD的iso还要放在u盘目录下,但DVD超过4G,用ntfs不好搞) b. 制作启动盘,Mac可用unetbootin,win下可以用大白菜那个启动u盘制作工具,把iso写入u盘,同时把iso原始文件复制到u盘目录下 c. 机器插上u盘启动 d. 启动菜单按tab,此时出现类似vmlinuz initrd
转载 2024-03-04 16:38:19
180阅读
文章目录编译内核下载qemu构建initramfs根文件系统1.编译Busybox2.生成initrd3.测试根文件系统gdb调试内核参考文献 编译内核# make menuconfig // 调整编译选项在内核编译选项中,开启如下"Compile the kernel with debug info"Kernel hacking —> Compile-time checks and co
转载 2024-03-26 07:01:34
411阅读
IoT安全基本功系列——内核的编译与qemu启动搞IoT安全绕不开的知识笔者想要完整的整理linux系统从内核的编译,文件系统的制作,bootloader引导内核启动,最终至一个块设备,字符设备,网卡驱动的编写。做这件事的目的是,笔者发现对于IoT设备的固件模拟,在开机时获取root shell,以及驱动作为攻击面的漏洞挖掘等方面的工作,都绕不开这块内容。为什么要写这个系列文章本篇文章有可能是一个
转载 2024-08-31 07:44:14
44阅读
目录启动代码分析RISC-V系统定时器初始化任务创建以及栈帧初始化启动第一个任务使用GDB跟踪任务启动过程        最近在学RISC-V架构,有幸找到了一个非常好的课程《循序渐进,学习开发一个RISC-V上的操作系统》,学完后受益匪浅,但是课程上开发的操作系统毕竟只是教学用,想对比学习一下实际商用的RTOS的实现。FreeRTOS以前也用过,是一个非常
参考:Documentation/Networking - QEMUQEMU’s new -nic command line option - QEMUQEMU新的-nic选项 - 知乎 (zhihu.com)一、网络基础知识QEMU 中的网络分为两部分:虚拟机网络设备(qemu提供给虚拟机的虚拟网卡)。宿主机网络后端设备(虚拟机往虚拟网卡写入的数据都会由网络后端设备流出到真实的网络环境中)。每个
转载 2024-03-15 07:46:40
272阅读
昨天听别人讲使用Qemu和gdb来实现源码级内核调试,今天试了一下,果然非常方便,现简单的记录一下。  Qemu是一个开源的虚拟机软件,能够提供全系统的仿真,可以运行在多个平台上,并仿真多个别的平台。Qemu虚拟机是采用动态翻译来实现CPU的仿真的,对硬件的依赖程度低,通过它提供的众多参数,你能够对虚拟的机器进行定制以满足你的需求。  要想对内核进行调试,那自然需要重新编译内
转载 2024-08-11 14:50:47
97阅读
  这阵子一直在研究qemu 磁盘io路径的源码,发现直接看代码是意见非常低效率的事情,qemu是一个比较庞大的家伙(源码部分大概154MB,完全由C语言来完成),整个结构也都非常地复杂,所以从代码上研究qemu最好的办法只有debug之。不断地收集更多的debug信息去获取源码所蕴含的道理。  很多人第一反应可能就是使用一些类似与Eclipse, gdb 这一类强大的debugger,我当然也不
目录前言qemu用户模式+IDAqemu用户模式+GDB方式一(gdb remote)方式二(gdb attach)qemu系统模式+GDB系统模式+IDA总结 前言调试环境:Ubuntu16.04IDA6(6以上版本都行)gdb-multiarch(支持不同架构)gdbserver(不同架构不同版本,网上可自行找到别人编译好的直接使用)qemu用户模式+IDA1,qemu调试模式挂起程序sud
转载 2024-05-02 21:34:02
102阅读
四月19号,新版本的QEMU 7.0 发布,本版主要包含了对英特尔 AMX 指令集支持 (高级矩阵扩展),该指令集主要用于对英特尔至强服务器的扩展,该指令集提供了新的自定义 TMM“TILE”寄存器和用于操作这些寄存器中数据的指令,例如用于矩阵乘法的 TMUL(Tile matrix MULtiply)。另一个主要的变化是改善了镜像的fleecing备份。当前系统创建快照,然后通过写前
转载 2024-02-24 00:35:46
27阅读
QEMU 是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以 GPL 许可证分发源码的模拟处理器,在GNU/Linux 平台上使用广泛。简单来说,QEMU 是一个虚拟机,与常见的 Vmware/VirtualBox 不同的是,QEMU 可以模拟不同平台的硬件,使得我们在 x86 设备上可以运行其他架构的程序。本文主要讲述如何编译符合 qemu 要求的内核,使用 qemu 成功运行内
PC机固件:uefi、传统bios 引导器:grub、syslinux、extlinux 嵌入式系统固件(兼引导器):u-boot、pmon 现PC机主流发行版启动过程:上电->uefi->grub->内核->初始化内存盘->根 在qemu也是类似过程,也可直接启动内核( qemu->内核 ) 一.平台 1.宿主 x86_64 debian 13 qemu 9.
原创 11月前
1732阅读
本文主要介绍在 MacOS 上使用 qemu 搭建 Linux Kernel 的开发环境。(在开始之前需要注意的是,本文中的 Linux 开发环境是一个远程服务器,而 qemu 被安装在本地的 MacOS 上。通常并不需要这样折腾,直接将 qemu 安装在 Linux 中更加方便,而且 qemu 是可以 -nographic 无图形界面运行的。)1. 为什么需要 qemu?qemu 是一个硬件虚拟
qemu-img 命令行工具是 Xen 和 KVM 用来格式化各种文件系统的,可使用 qemu-img 格式化虚拟客户端映像、附加存储设备以及网络存储,qemu-img 选项及用法如下: 一.格式化并创建新映像或者设备 1.创建新磁盘映像文件名为 sina_kvm,格式为 format。 # qemu-img create [-6] [-e] [-b base_ima
转载 2024-03-06 20:32:51
67阅读
Linux 内核作为操作系统的核心组件,一直以来都备受开发者关注。在开发过程中,调试内核是一个非常重要的环节,它能帮助开发者发现潜在的问题并快速修复。在使用 Linux 内核时,QEMU 是一个非常强大的工具,它为开发者提供了一种简单而有效的方式来调试内核QEMU 是一个开源的硬件模拟器和虚拟机管理器,它能够模拟多种体系结构的计算机硬件,包括 x86、ARM 和 PowerPC 等,使得开发
原创 2024-05-21 10:04:41
172阅读
文章结构    1:问题的提出 2:解决的思路 3:构建一个虚拟机 4:替换虚拟机中的内核 5:调试虚拟机一:问题的提出         参考上一篇文章,我们有-kernel -initid 的方式启动内核bzimag, 之后进入shell环境发现没有virtio设备,如果自己添加设备,十分的麻烦
转载 10月前
87阅读
(1)基本功能介绍如题,本文将介绍如何构造一个简单的操作系统内核(基于内核版本3.9.4 )。它有以下功能:1:进程的管理2:进程的初始化3 : 进程基于时间片的调度(2)实操步骤1 安装qemu, 以ubuntu为例:        sudo apt-get install qemu    sudo ln -s /u
在Linux操作系统中,GDB(GNU调试器)是一个非常常用的调试工具,特别是在调试内核和应用程序时。结合QEMU(快速轻便的模拟器)可以帮助我们更好地进行Linux内核的调试。在这篇文章中,我们将讨论如何使用GDB和QEMU进行Linux内核的调试。 首先,我们需要准备一个Linux内核镜像文件和一个虚拟机磁盘镜像文件。我们可以通过编译Linux内核源码生成zImage和initrd文件,然后
原创 2024-04-12 11:17:59
158阅读
第一章 源码下载、编译与调试**注意:**作为Android开发人员,内心多少有对源码的向往,研究源码可以说是开发人员的荣耀,彰显了对系统的认知度,本文适用于Ubuntu 16.04上编译Android 6.0.*及以上版本,其他情况请酌情处理,自行参考官网,源码针对系统8.0分析。@(源码系列)##摘要 android源码编译的四个流程:源码下载构建编译环境编译源码运行下文也将按照该流程讲述
转载 3月前
459阅读
  • 1
  • 2
  • 3
  • 4
  • 5