from linux kernel to kvm -- debug linux kernel by eclipse

QEMU模拟器选板指南:从STM32到树莓派,手把手教你挑对开发板做测试 本文深入解析QEMU模拟器中从STM32到树莓派等开发板的选型策略,提供硬件功能完整性、典型应用场景和性能表现的详细对比。通过实战示例和配置命令,帮助开发者高效选择适合项目的开发板,优化模拟性能,解决常见外设支持问题。 阅读详情

https://www.kernel.org/pub/linux/kernel/v2.6/ 下载linux-2.6.24.tar.gz 或者其他

由于我是在虚机(14.04ubuntu)中进行开发,可能2.6的kernel有点儿老,编译的时候不通过,make bzImage也问题多多,

后来改用linux 3.18版本通过

1. make defconfig

2. apt-get install libncurses5-dev

3. make menuconfig

进入顶级选项Kernel hacking选项,先取消再选中kernel debugging,之后再次选中Compile kernel with debug info选项,选择以后出来并保存

4.make bzImage时报错

gcc: error: elf_x86_64: No such file or directory

gcc: error: unrecognized command line option ‘-m’

在arch/x86/vdso/Makefile中修改 “-m elf_x86_64” 为 “-m64”

5. 参照mark link中的步骤配置eclipse,需要注意的是:“Debug As ..” >> “Debug Configurations” Double Click on “C/C++ Remote Application”(按照red link所说)

http://www.sw-at.com/blog/2011/02/11/linux-kernel-development-and-debugging-using-eclipse-cdt/

http://blog.youkuaiyun.com/linuxarmsummary/article/details/41596579, 感觉这个人写的比较靠谱,我也出现了相同的问题

6. 关于bzImage,zImage,vmlinuz,vmlinux分别是什么可以参考, 写的很详细,

http://blog.youkuaiyun.com/muge0913/article/details/7285009

7. 注意在步骤5中遇到“packet reply too long”的问题时要下载gdb,按照red link修改,重新编译之后,在eclipse中重新配置方可。


mark一下我的命令:qemu-system-x86_64 -s -S -kernel arch/x86/boot/bzImage -hda sid.ext3 -append "root=/dev/sda"

按照上面的步骤做完之后,断点成功的停在了start_kernel处,可以开始调试了!!

对linux kernel进行debug是个比较复杂的事情,尤其没有从事kernel 相关的开发,必须要要看一些linux kernel相关的书籍,从门电路到寄存器,到

内存管理,进程管理,VFS等要有理解,对SMP,NUMA,KVM,CGROUP在linux kernel中如如何实现的要大概有个了解,对用户态,核心态之间的

切换要有概念,即便这些,在看kernel源码时,还是力不从心,还需要对汇编,编译,链接有知识背景,对C不陌生。

这里的调试是从start_kernel开始的,运行完成之后切换到保护模式,开始有分页,而在这之前,从BIOS到boot loader,从boot loader 加载kernel 代码,

的过程并不涉及,那将又是另外一个故事,有实模式,中断re-mapping等等,并非一朝一夕就能明白的,现代linux kernel代码量已经非常惊人了,看一遍基本是不可能

的,从很早期的linux kernel看起,比如0.11或者0.95版,那时整个linux kernel代码量比较少,进程调度算法很简单,也没有多核代码的复杂性,

即便这样,要想完全弄明白也是很不容易的了,加油吧!


别再只盯着runc了!用gVisor给你的Docker容器加个‘金钟罩’(CentOS 7实战配置) 本文详细介绍了如何在CentOS 7上使用gVisor为Docker容器提供更强的安全隔离。通过对比传统runc与gVisor的安全机制差异,展示gVisor如何通过虚拟化内核接口和系统调用拦截来防止容器逃逸漏洞,并提供实战配置步骤和性能优化建议,帮助用户在安全与性能之间取得平衡。 阅读详情

相关推荐

Anthropic Managed Agents:Agent 运行时的OS级工程实践

Agent 运行时(Agent Runtime)是大模型应用落地的核心基础设施层,其本质是为LLM驱动的自主代理提供状态管理、工具调度、凭证隔离与执行追溯能力。它并非新概念,而是对传统服务运行时(如容器/VM)在AI语境下的范式演进——强调原子性、可观测性与安全边界。随着AWS Bedrock AgentCore、Google Vertex AI Agent Builder等云原生方案成熟,Runtime正加速标准化与免费化;而Anthropic Managed Agents的价值,在于以生产级工程实现,首

fanjava 536

编译NIOS2出现如下错误提示:make:***[**.mk] Error 1 或者 make: *** [**.elf] Error 1

我的系统是WIN7,QuartusII和NIOS2的版本都是10.0,按照特权同学的《特权和你一起学NIOS2--第三章 流程实践案例——手把手第一个工程》操作,前面都很顺利,后来在Eclipse里建好了软件工程之后,编译(Build Project),出现如下错误提示:make:***[**.mk] Error 1 或者  make: *** [**.elf] Error 1。 看了很多论

程序猿Boris--CodeMonkey Boris 1万+

VMware虚拟机搭建VxWorks 6.9开发环境全攻略

虚拟化技术通过软件模拟硬件环境,为嵌入式开发提供了高效、可复用的解决方案。其核心原理是利用虚拟机监控器(VMS)在物理主机上创建隔离的虚拟计算机,每个虚拟机可以独立运行操作系统和应用程序。这项技术的工程价值在于显著降低了开发成本,避免了物理硬件的依赖和损耗,并支持快速的环境克隆与恢复。在嵌入式系统开发领域,尤其是在工业控制、航空航天等对实时性要求极高的场景中,虚拟化技术常用于构建目标系统的仿真环境。本文聚焦于在VMware Workstation虚拟化平台上,部署经典的实时操作系统VxWorks 6.9,详

weixin_34252090的博客 346

gdb 调试kvm虚拟机_搭建Eclipse+QEMU+GDB调试Linux Kernel环境

0.前言本文讲述搭建环境的关键环节,相应的工具及版本如下:JDK:1.6.0_45Eclipse:eclipse-cpp-kepler-SR2-linux-gtk-x86_64.tar.gzQemu:QEMU emulator version 1.5.0 (Debian 1.5.0+dfsg-3ubuntu5.3)OS:Ubuntu13.10,64bit其中,JDK 和 Eclipse 工具下载和...

weixin_28758189的博客 613

Agent Runtime 重构:从上下文寄生到事件驱动的基础设施演进

Agent 运行时(Runtime)正经历一场类似操作系统诞生期的关键范式迁移——它不再依赖大模型上下文窗口临时承载状态,而是通过持久化事件日志、无状态执行器与隔离沙箱,构建可审计、可重放、可编排的确定性执行环境。这一转变直击传统 agent 开发中上下文溢出、凭证泄露、崩溃不可恢复等核心痛点,其技术本质是将 state 管理从 inference 层剥离,交由独立存储与调度系统协同治理。随着 AWS Bedrock AgentCore、Google Vertex AI Agent Builder 和 An

weixin_34176694的博客 349

【信息科学与工程学】【数据中心】第三十五篇 云计算数据中心的学科知识04

编号学科(课程)核心知识点在云计算/云存储/云网络/云安全/云MaaS中的作用代表教材/资料/论文 + 数学方程式列表工业界应用D1421​云原生数据库:TiDB​HTAP(混合事务/分析处理)、分布式SQL、水平扩展、强一致(Raft)、自动故障恢复、与MySQL兼容、TiFlash列式引擎提供弹性扩展的分布式数据库;支撑高并发在线交易与实时分析教材:《TiDB in Action》PingCAP(2020) 论文:《TiDB: A Raft-based HTAP Database》(2017)

weixin_49199313的博客 406

eclipse 阅读linux 内核

Linux kernel development and debugging using Eclipse CDT February 11th, 2011 by Atul Sharma This blog entry is inspired by Takis blog . This entry can be seen as the revised version of Takis blo

bugouyonggan的专栏 5737

【信息科学与工程学】计算机科学与技术——第七十七篇 系统架构设计02

编号类型模型配方企业资本运作的方法/规则/条件/依据及所有的步骤(​风险处理/异常处理/危机应对关联知识法律法规和裁决依据​​由发起人(通常是知名投资人、投行或产业资本)先设立一个只有现金、无实际业务的特殊目的收购公司(SPAC),通过IPO募集资金并在交易所上市。然后在规定时间内(通常24个月)寻找一家非上市公司进行合并(De-SPAC),使目标公司迅速实现上市,规避传统IPO的复杂流程和不确定性。1.:在开曼或特拉华注册空壳公司,注入少量种子资金。2.

weixin_49199313的博客 314

linux内核调试+qemu+eclipse【转】

本文转载自:https://blog.youkuaiyun.com/WANG__RONGWEI/article/details/54922727 一、调试环境: 在ubuntu16.04下,在虚拟机里边运行的ubuntu,装32位的运行较快,选择较新的ubuntu版本是因为安装qemu、eclipse比较简单,在安装软件上节约时间。 二、安装的软件 1----安装qemu相关软件:sudo ...

261

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Linux内核调试:GDB与QEMU实战指南

内核调试是Linux系统开发中的关键技术,涉及底层硬件控制和系统稳定性保障。通过调试工具可以分析系统运行状态、定位复杂问题,在驱动开发、性能优化等场景发挥关键作用。GDB作为通用调试器,配合QEMU虚拟化环境,为内核调试提供了可靠方案。这种方法无需专用硬件,支持断点设置、变量监控等核心功能,特别适合模块开发、启动过程分析等场景。printk和ftrace等原生工具可辅助验证调试结果,而KASLR禁用、调试符号加载等技巧能提升调试效率。掌握这些方法对操作系统开发、嵌入式系统调试等工程实践具有重要意义。

weixin_33824363的博客 346

【小宁学习日记6 PCB】电路原理图

本文系统讲解了电子硬件设计中原理图的阅读与绘制技巧。首先剖析原理图的四大核心要素(元件符号、连接线、结点、注释),强调注释对可读性的重要性。然后提出三步读懂法:查看图纸信息、分模块分析、结合芯片手册验证,并列举5个典型芯片案例(CH224K、CH343P等)进行实战解析。最后给出6条绘制规范:模块化布局、详细标注、规范命名、信号流布局、符号封装匹配、版本管理。文章指出原理图是电子设计的"地基",掌握规范阅读与绘制方法能大幅提升设计效率,避免常见错误。新手应从开源项目分析和简单电路绘制入手

qq_74376834的博客 2354

linux内核调试: qemu + eclipse 组合

一 linux内核源码阅读工具 windows下当然首选source insight, 但是linux下就没有source insight这么优秀的工具了,但是也有不少的替代品,但觉绝对部分人会选择vim+ctags+cscope的组合,还有部分人或选择wine中的source insight或选择navigatror,当然对于代码阅读来说vim+ctags+cscope的组合还是比较好的一...

系统运维 203

5G NR 物理层 流程一:从帧结构到TB块,PDSCH/PUSCH 资源映射与TBS计算实战

本文详细解析了5G NR物理层流程,从帧结构到TB块的计算,重点介绍了PDSCH/PUSCH资源映射与TBS计算的实战方法。通过具体案例和公式推导,帮助工程师掌握5G NR资源分配、MCS选择及TBS量化过程,解决实际部署中的常见问题。

weixin_30897233的博客 94

Windows系统下com0com虚拟串口安装与驱动签名禁用全攻略

本文详细介绍了在Windows系统下安装com0com虚拟串口工具的全过程,包括驱动签名问题的解决方法。通过禁用驱动程序强制签名,用户可以顺利安装并使用这款开源工具创建虚拟串口对,适用于软件开发测试、硬件调试等场景。文章还提供了验证虚拟串口功能的实用技巧和常见问题解决方案。

weixin_28720573的博客 386

AOSP linux环境配置及其编译方法

linux环境配置,android源码环境搭建

yimelancholy的博客 4497

GNSS-RTK/INS紧组合里,那个‘杆臂改正’到底怎么算?一个公式讲清INS与天线位置的关系

本文深入解析GNSS-RTK/INS紧组合导航系统中的杆臂改正(Lever Arm Correction)原理与实现方法。详细介绍了杆臂效应的物理本质、数学建模及误差扰动分析,揭示了IMU与GNSS天线位置关系的核心公式,并提供了工程实现中的常见误区与验证方法。通过Python代码示例和紧组合量测模型处理流程,帮助开发者准确理解并应用这一关键技术。

weixin_33137081的博客 357

Linux系统调试工具链与GDB实战技巧

Linux系统调试是软件开发中的核心技能,涉及从应用层到内核层的全栈问题定位。GDB作为Linux下的标准调试器,支持断点设置、调用栈分析等基础功能,配合valgrind等工具可高效解决内存泄漏问题。在嵌入式开发中,交叉调试和串口工具链是必备技能,而perf和SystemTap等性能分析工具能快速定位CPU热点。掌握strace系统调用跟踪和core dump分析等技巧,可以显著提升复杂问题的排查效率。本文通过GDB多线程调试、内核Oops解析等实战案例,系统讲解Linux调试的方法论与最佳实践。

weixin_33725270的博客 403

《第二十二篇》Cross-Attention:注意力机制详解-代码实现和公式详解《二》

本文详细介绍了Cross-Attention的原理、公式和实现。Cross-Attention用于Transformer解码器和Encoder-Decoder结构,通过查询向量(Q)与键、值向量(K、V)的交互实现序列对齐。核心公式为softmax(QK^T/√d_k)V,其中Q来自Decoder,K、V来自Encoder。文章还给出了多头注意力机制公式和PyTorch实现代码,包括投影计算、注意力分数计算和输出处理。代码示例展示了如何构建一个完整的Cross-Attention模块,并演示了其在解码器查询

guoguozgw的博客 2211

从Axure转Figma?这篇编组、缩放、圆角、评论的对比指南帮你无缝切换

本文为资深Axure设计师提供了向Figma无缝迁移的实战指南。文章深度对比了编组、缩放、圆角、评论等核心操作,重点解析了Figma独特的自动布局、组件系统和实时协作功能,旨在帮助用户快速适应新工具,实现设计思维与工作效率的跃迁。

tomato的博客 850

WSL2 图形化实战:Win10/Win11 双平台 3 种 GUI 方案配置与性能对比

本文详细介绍了在Win10/Win11双平台上配置WSL2图形化界面的三种方案:Win11原生WSLg、Win10 VcXsrv和xrdp远程桌面。通过对比分析各方案的配置步骤、性能表现和适用场景,帮助开发者选择最适合的GUI解决方案,实现在Windows系统上高效运行Linux图形应用的目标。

weixin_30315723的博客 405

高效复用PCB设计:Cadence Sub-Drawing跨项目复制技巧

本文详细介绍了Cadence Allegro中Sub-Drawing功能的应用技巧,帮助PCB工程师高效复用成熟设计模块。通过分步教学,从精准导出到完美导入,并提供了解决坐标错位与DRC冲突的实用避坑指南。掌握这一技巧能显著提升设计效率,实现团队知识的标准化积累与快速复用。

weixin_29172201的博客 397

ACRN 2.0:面向IoT场景的轻量级Type-1 Hypervisor解析

虚拟化技术正从数据中心向嵌入式与物联网领域延伸,Type-1 Hypervisor凭借直接管理硬件资源、提供强隔离与确定性响应的能力,成为混合关键性负载场景的关键底座。在工业控制、智能座舱和边缘网关中,实时任务与通用计算常需共存于同一SoC,传统容器或RTOS方案难以兼顾安全隔离与生态兼容。ACRN作为Linux基金会托管的开源轻量级Hypervisor,针对IoT场景设计了静态资源分区、预算感知的vCPU调度和灵活的设备直通机制,在保证实时性与安全性的同时,保留了Linux生态的丰富性。本文从工程实践视角

weixin_34290096的博客 402

【虚拟仿真】Unity3D中实现对大疆无人机遥控器手柄按键响应

最近项目中需要用到大疆无人机遥控器对程序中无人机进行控制,遥控器是下图这一款:博主发现接入手柄这块的可以参考的内容非常少,对于大疆遥控器的控制更是没有。博主经过一番研究,终于理通了这块的遥控器摇杆数据的控制。并且将解决思路分享出来,希望对大家有所帮助。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2819

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: make your driver as a deb package
下一篇: from linux kernel to kvm -- kinds of hypervisor
dingdingwolf
博客等级 码龄16年 7粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值