自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宋宝华

宋宝华

  • 博客(288)
  • 资源 (7)
  • 收藏
  • 关注

原创 火焰图系列之使用火焰图隐藏功能提高绘制精度

作者简介武汉光电国家研究中心DSAL实验室在读博士生。主要研究方向:Linux memory and storage system, Concurrency optimization.h...

2020-06-08 08:08:49 857

原创 嵌入式工程师的自我迭代之路

作者按笔者本科和研究生都是芯片专业,从研究生开始接触嵌入式软件,从学习linux到学习arm架构,再到学习Linux发行版,一步一步从工程师,架构师到项目经理。身边既有不少朋友从偏硬件的...

2020-06-07 11:07:59 3506

原创 宋宝华: kvmalloc ——倚天剑屠龙刀两大神器合体?

你应该曾经纠结过是用kmalloc(),还是vmalloc()?现在你不用那么纠结了,因为内核里面现在有个API叫kvmalloc(),可以认为是kmalloc()和vmalloc()的...

2020-06-06 17:41:48 2160 1

原创 混乱的Linux内核实时线程优先级

背景Linux会把进程分为普通进程和实时进程,普通进程采用CFS之类调度算法,而实时进程则是采用SCHED_FIFO或SCHED_RR。无论优先级高低,实时进程都会优先于SCHED_NO...

2020-06-04 08:26:00 1622

转载 7大亮点功能上线!物联网操作系统一站式开发工具RT-Thread Studio来袭

RT-Thread Studio V1.1.0在5月29号正式发布了。本次V1.1.0不提供升级包,需从官网下载V1.1.0完整版安装程序。【官网下载地址】https://www.r...

2020-06-03 17:45:00 379

转载 劫持Linux idle进程做点自己的计算任务

前面谈过如何隐藏一个进程,我说过,隐藏procfs接口那无异于掩耳盗铃,正确的做法应该是将task_struct从任何链表中摘除,仅仅保留于run queue。但CPU利用率会暴露你隐藏...

2020-06-03 17:45:00 323

转载 Linux内核态缺页会发生什么 - 玩转Exception fixup表

近日,我在写内核模块的时候犯了一个低级错误:直接access用户态的内存而没有使用copy_to_user/copy_from_user!在内核看来,用户态提供的虚拟地址是不可信的,所以...

2020-05-25 17:38:47 758

转载 Intel IOMMU Introduction

对于Intel的硬件辅助虚拟化方案而言核心的两大技术分别是VT-x和VT-d。其中VT-x中主要引入了non-root模式(VMCS)以及EPT页表等技术,主要关注于vCPU的虚拟化和内...

2020-05-22 08:15:00 2806

转载 谈谈内存压缩那些事

1. 技术背景说到压缩这个词,我们并不陌生,应该都能想到是降低占用空间,使同样的空间可以存放更多的东西,类似于我们平时常用的文件压缩,内存压缩同样也是为了节省内存。尽管当前androi...

2020-05-19 08:15:00 2884

转载 Arm服务器芯片编年史

目录1 前言2 第一波浪潮(2008-2013)2.1 启程20082.1.1 Calxeda 20112.2 Computex20122.3 Marv...

2020-05-16 08:38:08 3383

转载 Dynamic DMA mapping Guide

一、前言这是一篇指导驱动工程师如何使用DMA API的文档,为了方便理解,文档中给出了伪代码的例程。另外一篇文档dma-api.txt给出了相关API的简明描述,有兴趣也可以看看那一篇,...

2020-05-14 08:31:21 657 1

转载 Linux防止stack缓冲区溢出的有效方法

检测和防治stack缓冲区溢出的方法可谓是汗牛充栋,如果讲起来,那便是一个系列,我也不知道该从何说起。比如说stack-protector选项,我之前就介绍过:https://blog....

2020-05-13 08:21:00 582

转载 这些IO模型你都知道吗 - 五种常见IO模型介绍

面试的时候也许你被问到过IO模型,可能你知道有五种,可是却不一定能准确指出他们之间的关系,下面我们介绍下这五种IO模型五种IO模型阻塞IO非阻塞IOIO复用(select和poll)信号...

2020-05-10 17:24:39 884

原创 打通IO栈:一次编译服务器性能优化实战

作者简介廖威雄,就职于珠海全志科技股份有限公司,负责Linux IO全栈研发、性能优化、开源社区开发交流、Linux 内核开源社区pstore/blk,mtdpstore模块的作者(与m...

2020-05-08 07:58:34 1493

原创 理解Linux内核抢占模型(最透彻一篇)

本文原文地址:https://devarea.com/understanding-linux-kernel-preemption/#.XrKLcfnx05k作者:Liran B.H译者:...

2020-05-06 18:44:26 2928 1

转载 LINUX网络子系统中DMA机制的实现

...

2020-05-02 19:17:27 2553 1

转载 Linux下0号进程的前世(init_task进程)今生(idle进程)

前言Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2)* idle进程由系统自动创建, 运行在内核态idl...

2020-05-01 14:35:18 1006

原创 Linux动态为内核添加新的系统调用

先来个满满的回忆:https://blog.csdn.net/dog250/article/details/64461922011年写这篇文章的时候,我的女儿小小还没有出生。评价一下这篇...

2020-04-29 08:08:00 959 2

转载 基于dpdk的用户态协议栈f-stack实现分析

本文来源:http://chinaunix.net/uid-28541347-id-5785780.htmlf-stack是腾讯基于dpdk开发的一套用户态协议栈,目前已经开源,相关介绍...

2020-04-27 08:30:45 2707

转载 Linux环境下段错误的产生原因及调试方法小结

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmenta...

2020-04-25 09:25:32 647

转载 CFS任务的负载均衡(框架篇)

我们描述负载均衡的系列文章一共三篇,第一篇是框架部分,即本文,主要描述了负载均衡相关的原理、场景和框架。后面的两篇是对均衡代码的情景分析,通过对load balance、task pla...

2020-04-23 07:36:42 510

原创 能感知功耗的Linux调度器(EAS)

译者简介 白嘉庆,西邮陈莉君教授门下研一学生。曾在华为西安研究所任C++开发一职,目前兴趣是学习Linux内核网络安全相关内容。本文的翻译宋宝华老师指导审阅。序2014年Linux内核峰...

2020-04-21 07:00:15 3275

转载 紫藤花开

紫藤挂云木,花蔓宜阳春。密叶隐歌鸟,香风留美人。又是一年紫藤花开多情的季节坐在藤架下,看那紫中带蓝,灿若云霞的花穗如精灵般,随风摇曳。不经意间,轻轻拨动了思念的弦,让那个记忆深处的女孩在...

2020-04-20 07:21:21 751

转载 Linux内核快速处理路径尽量多用kmem_cache而慎用kmalloc

题目是一个典型 《Effective C++》 的风格。事情是这样的,我大致说一下。我在开发一个Netfilter模块,在PREROUTING匹配一些数据包,显而易见,都能想到使用哈希表...

2020-04-19 08:58:53 841

原创 Linux的中断号是假的!与硬件中断号是什么关系?

下面的这个视频解释了Linux的中断号与硬件里面中断号之间究竟是什么关系澄清关于Linux中断号的误解。# cat /proc/interrupts CPU0 ...

2020-04-16 11:57:03 2894

转载 Introduction to PCIe Address Translation Services

本文来源:http://liujunming.top/2019/11/24/Introduction-to-PCIe-Address-Translation-Services/本文将介...

2020-04-15 20:04:59 1809

转载 PCI设备驱动(二)

紧接着前文:PCI设备驱动(一)我们在浅谈Linux PCI设备驱动(一)中(以下简称 浅谈(一) )介绍了PCI的配置寄存器组,而Linux PCI初始化就是使用了这些寄存器来进行的...

2020-04-14 07:37:20 1075

转载 PCI设备驱动(一)

首先要明确两个概念:Linux内核 PCI设备驱动和设备本身驱动两部分。工作中所谓的编写设备驱动,其实就是编写设备本身驱动。因为Linux 内核的PCI驱动是内核自带的。当然,并不是说...

2020-04-13 08:00:49 5192

转载 ARMv8 Virtualization Overview

摘要:ARM处理器在移动领域已经大放异彩占据了绝对优势,但在服务器领域当前主要还是X86的天下。为了能够和X86在服务器领域展开竞争,ARM也逐渐对虚拟化扩展有了较为完善的支持。本文的...

2020-04-12 08:16:01 2802

转载 ARM SMMU学习笔记

1. 什么是SMMU?SMMU(system mmu),是I/O device与总线之间的地址转换桥。它在系统的位置如下图:它与mmu的功能类似,可以实现地址转换,内存属性转换,权限检...

2020-04-09 09:05:00 8608 1

原创 宋宝华:可以杀死的深度睡眠TASK_KILLABLE状态(最透彻一篇)

深度睡眠与浅度睡眠众所周知,Linux的进程睡眠有两种常规状态:TASK_INTERRUPTIBLE(浅度睡眠):可以被等待的资源唤醒,也能被signal唤醒;TASK_UNINTER...

2020-04-08 08:08:07 1543

原创 从big.LITTE到DynamIQ

作者简介 兰新宇,坐标成都的一名软件工程师,从事底层开发多年,对嵌入式,RTOS,Linux和虚拟化技术有一定的了解,有知乎专栏“术道经纬”进行相关技术文章的分享,欢迎大家共同探讨,一...

2020-04-07 08:02:14 1053

原创 定位并行应用程序中的可伸缩性问题(最透彻一篇)

作者简介 本文由西邮陈莉君教授研一学生梁金荣、戴君毅、马明慧翻译,宋宝华老师指导和审核。译者梁金荣、戴君毅、马明慧同学热爱开源,践行开放、自由和分享。点击左下角阅读原文可直达英文版原文...

2020-04-06 09:26:46 1356

转载 Linux网络零拷贝技术之——netmap 介绍

netmap是一个高效的收发报文的 I/O 框架,已经集成在 FreeBSD 的内部了。当然,也可以在 Linux 下编译使用 。一、架构现在的网卡都使用多个 buffer 来发送和接...

2020-04-04 07:59:43 3341

转载 早鸟报名:《Linux内核铁三角》之《进程调度》6节课

Linux的进程调度和内存管理是理解Linux的关键,如果这2个问题理不清,Linux的脉络就打不通,很多问题就无法得到解释。这是宋老师《Linux内核铁三角》的第一脉——《Linux...

2020-04-04 07:59:43 1099

转载 如何替换一个Linux内核函数的实现-热补丁原理

昨晚发过誓了。不会再接着写二进制hook的手艺了,今天有网友咨询技术细节,终于又忍不住了…为了不违背即便是胡乱说出口誓言,今天不写二进制hook,今天用C语言写,二进制只是沾点边儿!看...

2020-04-02 08:08:00 1232

转载 利用 cgroup 的 cpuset 控制器限制进程的 CPU 使用

最近在做一些性能测试的事情,首要前提是控制住 CPU 的使用量。最直观的方法无疑是安装 Docker,在每个配置了参数的容器里运行基准程序。对于计算密集型任务,在只限制 CPU 的需求...

2020-03-31 08:10:00 2972

转载 深入浅出全面解析RDMA

RDMA(RemoteDirect Memory Access)技术全称远程直接内存访问,就是为了解决网络传输中服务器端数据处理的延迟而产生的。它将数据...

2020-03-30 08:09:35 1184

转载 一张图读懂内存反碎片化

-----------分割线•以下为文字版-----------以最简单易懂的方式为大家介绍什么是内存反碎片化技术内存反碎片化引擎,是由 OPPO 自主...

2020-03-28 10:10:37 1166

转载 一文汇总Linux 系统动态追踪(高级调试)技术

目录动态追踪历史追踪机制说明常用追踪工具线上实践指南总结参考动态追踪历史严格来讲 Linux 中的动态追踪技术其实是一种高级的调试技术, 可以在内核态和...

2020-03-25 08:26:00 4707 1

宋宝华 - 深入探究Linux设备树CSDN讲座ppt

宋宝华 - 深入探究Linux设备树CSDN讲座ppt。详细的论述的device tree的方方面面。

2017-08-20

Linux总线、设备和驱动模型

宋宝华 - Linux总线、设备和驱动模型的详细讲座的ppt分享。

2017-08-12

在ARM板子上直接跑的gdb

在ARM板子上直接跑的gdb, 版本GDB 7.5,static编译的。可以放在板子上直接调程序,看bt,看core dump。

2017-02-25

Android和Ubuntu同时运行

Android和Ubuntu同时运行的视频

2012-05-03

宋宝华-PowerPC VxWorks BSP学习与分析

讲述PowerPC VxWorks BSP和设备驱动开发全套流程。

2010-03-13

LDD6410 S3C6410开发板原理图

LDD6410 S3C6410开发板原理图

2010-03-09

LDD6410 S3C6410开发板开发与使用手册

LDD6410 S3C6410开发板开发与使用手册,全面描述了U-BOOT、Linux、BSP、驱动、Android 1.6,QT embedded 4.5.3的移植和开发技术。

2010-03-09

空空如也

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

TA关注的人

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