自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (16)
  • 收藏
  • 关注

转载 使用 VSCode + qemu 搭建 Linux 内核调试环境

Posted on2019-10-24byhowardlau目录[隐藏]1编译调试版 Linux 内核 1.1Ubuntu 1.2CentOS 1.3Fedora 2制作 initramfs 3启动内核并调试 4配置 VSCode 4.1.vscode/c_cpp_properties.json 4.2.vscode/tasks.json 4.3.vscode/launch.json 4.4.vscode/settings.json...

2021-02-24 13:42:21 2595 1

转载 Linux内核分析实验(二)——深入理解系统调用

一、实验内容找一个系统调用,系统调用号为学号最后2位相同的系统调用 通过汇编指令触发该系统调用 通过gdb跟踪该系统调用的内核处理过程 重点阅读分析系统调用入口的保存现场、恢复现场和系统调用返回,以及重点关注系统调用过程中内核堆栈状态的变化二、实验环境配置1、安装开发工具sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-devsudo apt install qemu2、下载安

2021-02-24 13:40:53 614

转载 用QEMU和GDB调试Linux内核(linux-5.5.9) --- OK -- 成功(差VScode了)

转载 :https://blog.csdn.net/eidolon_foot/article/details/104905084此调试在VisualBox虚拟机和PC都可进行。操作系统:ubuntu 19.10(unbuntu镜像下载)Linux内核:linux-5.5.9 (https://www.kernel.org/)QEMU:qemu-4.2.0(https://download.qemu.org/)GDB:gdb-9.1(https://download.qemu.or..

2021-02-24 11:49:28 471

转载 在linux下使用udev获取热插拔(hotplug)事件

https://blog.csdn.net/u012247418/article/details/80555556?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5.control&dist_request_id=43a1f2c7-77bf-4244-b079-7595b57d8dae&depth_1-utm_source=distribute.pc_relevant.none-task-bl...

2021-02-23 17:29:14 1147

原创 Dynamic Tracing with DTrace & SystemTap

Dynamic Tracing with DTrace & SystemTap http://myaut.github.io/dtrace-stap-book/DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD

2021-02-22 18:26:03 131

转载 vscode搭建linux内核开发环境

vscode在linux下搭建内核驱动开发环境一、前言Souce insight是一个阅读、开发linux内核驱动模块的好工具,但是Source insight是收费的软件,而且没有原生linux版本,要是想在纯linux环境下进行linux驱动开发,就只能wine+Source insight,而wine版的不好用容易卡死而且cpu占用还高,我就想到用开源跨平台的vscode进行linux内核开发,体验能否和source insight一样好呢?二、实践经过搜索和自己亲身实践,最后发现vs

2021-02-20 18:16:10 4352 1

转载 linux内核调试之 kdump安装配置

【1】Kexec 机制Kexec是实现 kdump 机制的关键,介绍kdump之前先介绍下linux kexec机制。kexec 是 Linux 内核的一个补丁,让您可以从当前正在运行的内核直接引导到一个新内核。起初是方便系统可以极其快速地重新启动,后来在crash dump领域得到新的应用。Kexec包括 2 个组成部分:一是内核空间的系统调用 kexec_load,负责在生产内核(production kernel 或 first kernel)启动时将捕获内核(capture kernel 或

2021-02-20 18:11:51 1715

转载 linux内核调试之 crash分析dump文件

Linux 下也有众多的内存转储分析工具,lcrash、Alicia、Crash。Crash 是由 Dave Anderson 开发和维护的一个内存转储分析工具,目前它的最新版本是 5.0.0。 在没有统一标准的内存转储文件的格式的情况下,Crash 工具支持众多的内存转储文件格式:Live linux 系统 kdump 产生的正常的和压缩的内存转储文件 由 makedumpfile 命令生成的压缩的内存转储文件 由 Netdump 生成的内存转储文件 由 Diskdump 生成的内存转储文件

2021-02-20 18:10:40 3344

转载 QEMU搭建arm64 Linux调试环境

https://zhuanlan.zhihu.com/p/345232459简述本文记录了在ubuntu20.04上,使用QEMU搭建arm64 的Linux开发调试环境。可以方便得使用gdb调试内核,既可以作为学习linux kernel源码的实验环境,也可以用于ARM64内核驱动开发调试环境。版本和环境信息如下:平台:ubuntu20.04kernel版本:linux 5.10qemu版本:5.2.0qemu模拟环境:ARM64gcc version :10.2.0交叉编.

2021-02-20 18:06:45 2318 2

转载 手把手教你利用VS Code+Qemu+GDB调试Linux内核

背景一直以来,都对linux系统的理解都是在应用层面,看过了《UNIX环境高级编程》,对于系统中的一些模块的实现方法还缺乏深刻的认识,故想研究下Linux内核机制。单纯阅读源码还是不如一步一步调试内核理解深刻,对于调试内核的方法,网上也有不少,主要是利用Qemu+GDB对内核进行调试,但网上的资料大多零散,步骤记录不够详细,笔者在实现过程中走了很多弯路,而且直接利用GDB调试查看代码还不甚方便,所以这里使用VS Code+Qemu+GDB来进行Linux内核调试,记录过程中的主要步骤。环境由

2021-02-20 17:55:44 2093

转载 常用内存泄露检测手段 dmalloc, mpatrol mtrace memwatch  dbgmem valgrind Electric Fence

dmalloc用法快速入门原文链接常用内存泄露检测手段有1mtrace 2memwatch 3mpatrol 4dmalloc 5dbgmem 6valgrind 7Electric Fencedmalloc是一个简单易用的C/C++内存leak检查工具,以一个运行库的方式发布。dmalloc能够检查出直到程序运行结束还没有释放的内存,并且能够精确指出在哪个源文件的第几行。dmalloc 主页:http://dmalloc.com支持的平台:AIX, ...

2021-02-19 13:33:52 711

转载 tcmalloc浅析

最近学习了tcmalloc机制,它是go里面用到的内存分配机制。本文参考tcmalloc,加上一部分自己的理解。tcmalloc VS ptmalloc(glibc 2.3 malloc)  对于小内存来说,tcmalloc提供线程级别的内存分配,这样就减少了线程之间的竞争,ptmalloc2也提供线程级别分配,但是它的内存被分配到某个线程后就不能重新分配给别的线程,这造成了较大的资源浪费。对于大内存来说,tcmalloc也采用了细粒度且高效的分配策略。  在2.8 GHz P4环境下,tcmal

2021-02-19 13:31:07 752

转载 dlmalloc, ptmalloc,tcmalloc和jemalloc内存分配策略研究

https://cloud.tencent.com/developer/article/1173720最近看了glibc的ptmaoolc,Goolge的tcmalloc和jemalloc,顺便做了一点记录。可能有些地方理解地不太对,如有发现还请大神指出。操作系统内存布局各种malloc的内存分配管理方式离不开操作系统的内存布局策略。32位经典内存布局32位系统下经典内存布局如上,程序起始的1GB地址为内核空间,接下来是向下增长的栈空间和由0x40000000向上增长的...

2021-02-19 13:30:22 1344 1

原创 systemd自启动一个client

#!/bin/shset -ecd /usr/local/bin/QTAPP="abc.out"#QTAPPSTART="./${QTAPP} > /var/log/Xsession.log 2>&1"QTAPPSTART="./${QTAPP}"case "$1" in start) echo "====== Starting ${QTAPP} ======" export XDG_RUNTIME_DIR=/run/user/0...

2021-02-07 15:15:03 225

转载 Unwind 栈回溯详解---good 博主的博客都很详细且深入

https://blog.csdn.net/pwl999/article/details/107569603文章目录1. 历史背景 1.1 frame pointers 1.2 .debug_frame (DWARF) 1.3 .eh_frame (LSB) 1.4 CFI directives 2. .debug_frame (DWARF) 详解 2.1 Call Frame Table 2.2 Call Frame Instructions 2.3 I.

2021-02-06 17:40:02 1239

转载 ARM Linux启动流程分析——内核自解压阶段

https://blog.csdn.net/luckyapple1028/article/details/44726131本文整理了ARM Linxu启动流程的第一阶段——内核自解压,内核版本为3.12.35。我以手上的树莓派b(ARM11)为平台示例来分析uboot跳转到Linux内核运行后做了哪些初始化动作,以及如何转入真正的内核开始运行。内核版本:Linux-3.12.35分析文件:linux/arch/arm/boot/compressed/head.S单板:...

2021-02-05 15:35:37 549

转载 ARM Linux启动流程分析——start_kernel前启动阶段(汇编部分)

https://blog.csdn.net/luckyapple1028/article/details/45287617本文整理了ARM Linxu启动流程的第二阶段——start_kernel前启动阶段(汇编部分),内核版本为3.12.35。我以手上的树莓派b(ARM11)为平台示例来分析Linux内核在自解压后到跳转运行start_kernel之前所做的主要初始化工作:包括参数有效性验证、创建初始页表和MMU初始化等。内核版本:Linux-3.12.35分析文件:arch/arm..

2021-02-05 15:32:50 675

转载 Linux设备驱动模块自加载示例与原理解析----good

https://blog.csdn.net/luckyapple1028/article/details/44261391本文介绍Linux设备驱动模块在设备注册时如何实现自动加载和创建设备节点。在Linux系统中,基于sysfs文件系统、设备驱动模型和udev工具可以实现在设备模块“冷、热”加载时自动加载设备对应的驱动程序,同时可以按需在/dev目录下创建设备节点。本文中我搭建好环境并写了两个简单的示例程序demo_device.c和device_driver.c来模拟“设备”与“驱...

2021-02-05 15:29:31 885

转载 eMMC之分区管理、总线协议和工作模式

一、eMMC 简介eMMC 是embedded MultiMediaCard的简称。MultiMediaCard,即MMC, 是一种闪存卡(Flash Memory Card)标准,它定义了 MMC 的架构以及访问 Flash Memory 的接口和协议。而eMMC 则是对 MMC 的一个拓展,以满足更高标准的性能、成本、体积、稳定、易用等的需求。eMMC 的整体架构如下图片所示:图片: eMMC 整体架构eMMC 内部主要可以分为Flash Memory、Flash Contro...

2021-02-03 17:49:54 1736

转载 深入理解uboot 2016 - 基础篇(处理器启动流程分析)

// -----------从零开始的UBOOT的学习1--UBOOT是用来干嘛的? 最近一段时间一直在做uboot移植相关的工作,需要将uboot-2016-7移植到单位设计的ARMv7的处理器上。正好元旦放假三天闲来无事,有段完整的时间来整理下最近的工作成果。之前在学习uboot时,在网上看了很多文章,很多都是基于老版本的的uboot,并且很多都是直接从代码开始分析,并没有将uboot与ARM处理器体系结构结合起来。毕竟很多时候做一件事情,你知道怎么去做这件事和你知道这件事为什么要这么...

2021-02-03 15:44:08 503

转载 《性能之巅》学习笔记之Dtrace good

前言:《性能之巅》这本书,从推荐序开始,就不停的给Dtrace打广告,按照书中的描述,这是一个非常高级的调试工具,可以用于排查难以定位的线上问题。看到cpu这章,讲了一个应用场景。如果一个进程pidstat显示sys的CPU使用率很高,可以通过dtrace -n 'profile-997 / pid == xxx / {@[stack()] = count();}'打印进程的内核栈信息,看cpu都消耗在了什么方法上。于是我就在我的Centos虚拟机上执行了一下这个命令,结果居然返回'invali

2021-02-02 17:44:58 9598 1

转载 Docker 背后的内核知识——Namespace 资源隔离

Docker 背后的内核知识——Namespace 资源隔离Docker 这么火,喜欢技术的朋友可能也会想,如果要自己实现一个资源隔离的容器,应该从哪些方面下手呢?也许你第一反应可能就是 chroot 命令,这条命令给用户最直观的感觉就是使用后根目录 / 的挂载点切换了,即文件系统被隔离了。然后,为了在分布式的环境下进行通信和定位,容器必然需要一个独立的 IP、端口、路由等等,自然就想到了网络的隔离。同时,你的容器还需要一个独立的主机名以便在网络中标识自己。想到网络,顺其自然就想到通信,也就想到了进程间

2021-02-02 16:58:41 728 1

转载 Docker 背后的内核知识——cgroups 资源限制

Docker 背后的内核知识——cgroups 资源限制上一篇中,我们了解了 Docker 背后使用的资源隔离技术 namespace,通过系统调用构建一个相对隔离的 shell 环境,也可以称之为一个简单的“容器”。本文我们则要开始讲解另一个强大的内核工具——cgroups。他不仅可以限制被 namespace 隔离起来的资源,还可以为资源设置权重、计算使用量、操控进程启停等等。在介绍完基本概念后,我们将详细讲解 Docker 中使用到的 cgroups 内容。希望通过本文,让读者对 Docker 有

2021-02-02 16:57:13 662

转载 gdb调试coredump(使用篇)

什么是coredumpCoredump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照。操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程此刻内存、寄存器状态、运行堆栈等信息转储保存在一个文件里。 该文件也是二进制文件,可以使用gdb、elfdump、objdump或者windows下的windebug、solaris下的mdb进行打开分析里面的具体内容。 注:core是在半导体作为内存材料前的线圈,当时用线圈当做内存材料,线圈叫做core。用线圈...

2021-02-01 11:06:06 939

NAU88L24_DesignUserGuide_rev1.7.pdf

NAU88L24

2021-03-12

TC358743.7z

TC358743 V1.1

2021-03-12

brezillon-drm-kms.zip

brezillon-drm-kms.pdf 介绍kms

2021-03-12

深入理解Linux虚拟内存管理CD.rar

深入理解Linux虚拟内存管理CD

2021-03-02

systemTap英文文档集合.7z

systemTap英文文档集合.7z

2021-02-26

dtrace 用户指南.zip

dtrace 用户指南 中文版

2021-02-26

Solaris动态跟踪指南.zip

Solaris动态跟踪指南 全面介绍D语言

2021-02-26

内核红黑树MAP--C语言

封装了linux 内核 红黑树,纯C语言,外层已经封装好了,直接使用,有压力测试,很不错

2019-01-17

FFmpeg Basics

Multimedia handling with a fast audio and video encoder Multimedia handling with a fast audio and video encode Multimedia handling with a fast audio and video encode Multimedia handling with a fast audio and video encoder

2017-12-01

Linux Media Subsystem Documentation

2017年 最新的 V4L2 规范 ,做 linux 摄像头的一定要看...........................................................................................................

2017-11-29

单独编译和使用 webrtc 音频回声消除模块

单独编译和使用webrtc音频回声消除模块(附完整源码+测试音频文件)

2017-11-29

live555MediaServer

live555MediaServer 服务器 实现 RTSP流媒体,实现 RTSP流媒体

2017-10-10

高通 atheros ART 校准

高通 atheros ART 校准 资料合集

2016-12-23

输入方向的流量控制 .doc

Linux中的QoS分为入口(Ingress)部分和出口(Egress)部分,入口部分主要用于进行入口流量限速(policing),出口部分主要 用于队列调度(queuing scheduling)。 大多数排队规则(qdisc)都是用于输出方向的,输入方向只有一个排队规则,即ingress qdisc。ingress qdisc本身的功能很有限, 但可用于重定向incoming packets。通过Ingress qdisc把输入方向的数据包重定向到虚拟设备ifb,而ifb的输出方向可以配置

2016-11-08

DDR DDR2 DDR3设计总结指导手册

DDR DDR2 DDR3 Layout 详细 总结 经验

2016-10-27

QT编写的超市收银系统

QT 超市收银系统 可直接运行 给大家一个参考

2016-04-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除