自定义博客皮肤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)
  • 收藏
  • 关注

原创 《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)进展同步更新

本博实时更新《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)的最新进展。 目前已经完成稿件。2015年8月9日,china-pub开始上线预售:http://product.china-pub.com/47339722015年8月20日,各路朋友报喜说已经拿到了书。本书已经rebase到开发中的Linux 4.0内核,案例多数基于多核CORTEX-A9平台。本书微信公众号"linux阅码场", 扫描下方二维码关注

2014-06-30 20:22:54 64333 128

原创 《Linux设备驱动开发详解》虚拟机及案例代码下载

《Linux设备驱动开发详解》虚拟机下载

2022-07-11 12:21:01 4280 6

原创 宋宝华:谈一谈Linux写时拷贝(COW)的安全漏洞(1)

COW技术,爆出了巨大的漏洞,让父子进程间可以向对方泄露写过的新数据,成为了Linux内核的惊天大瓜。

2022-01-09 20:10:20 7327 12

转载 CPU漏洞详解

1. 导言性能测试对于 Linux 发行版来说至关重要,Alibaba Cloud Linux 2 也是如此。(Alibaba Cloud Linux 2 是阿里巴巴操作系统团队推出的一款...

2021-10-03 08:33:21 5076

原创 什么时候需要cpu_relax()锁

一个最典型的要使用pu_relax()锁的场景是忙等待(也就是死循环等一个事情的发生),在内核里面有大量的代码,比如等寄存器状态:比如做延迟:简单来说,你如果在内核里面写了忙等待的代码,都...

2021-09-23 19:27:06 3116

原创 宋宝华:为了不忘却的纪念,评Linux 5.13内核

Linux 5.14于14小时之前发布了,而我5.13的总结还没有写出,我早觉得有写一点东西的必要了,这虽然于搬砖的码农毫不相干,但在追求进步的工程师那里,却大抵只能如此而已。为了不忘却的...

2021-08-30 20:29:00 11549 7

转载 深入理解Linux内核之进程睡眠(下)

4.用户态睡眠以sleep为例来说明任务在用户态是如何睡眠的。首先我们通过strace工具来看下其调用的系统调用:$stracesleep1...close(3)...

2021-08-14 16:30:40 2543

转载 深入理解Linux内核之进程睡眠(上)

1开场白环境:处理器架构:arm64内核源码:linux-5.10.50ubuntu版本:20.04.1代码阅读工具:vim+ctags+cscope无论是任务处于用户态还是内核态,经常会...

2021-08-14 16:30:40 2479

转载 谁为软件质量负责(背锅)?

这是一个残酷的世界,无论我们多么努力,结果可能还是不如意。这一点,软件人深有体会,不管我们多么认真地编码,多么仔细地测试,仍然无法抵挡Bug顽强地冒出来。如果Bug被发布出去了,谁将为此背...

2021-08-12 07:14:56 2458 1

转载 近距离看GPU计算(3)

在先前文章《近距离看GPU计算(2)》中,我们谈到现代GPU发展出SIMT(Single Instruction Multiple Thread)的执行结构,硬件线程池的线程们有相对独立的...

2021-08-12 07:14:56 2067

原创 宋宝华:slab在内核内存管理和用户态Memcached的双重存在

很多基础的概念,将跨越软件的层次而存在。比如slab,对于内核人员,我们都知道slab是buddy之上的一层。因为buddy作为Linux内核最底层的内存管理器,它分配1页,2页,4页,2...

2021-08-10 16:47:49 1572

原创 给老徐的书《软件自动化测试实战解析-基于Python3》写的序

明代学者林希元有云:"自古圣贤之言学也,咸以躬行实践为先,识见言论次之",强调了实践是第一位的,而著书立说次之。唯有经过实践总结而成的书,方能对读者形成更强的指导意义。本书...

2021-08-08 07:38:03 1571

转载 老徐自述:《软件自动化测试实战解析_基于Python3编程语言》

去年的时候,当我和身边一些朋友透露写书的想法时,有3位朋友以为我要写游记,另外至少有3位更不靠谱的朋友认为我要写段子。虽然我写过游记,也经常发段子(只为博身边的朋友们贱笑),还时不时分享辅...

2021-08-06 13:29:41 1955

转载 再谈GPU的内存带宽

在先前的文章中《近距离看GPU计算(2)》,我们谈到GPU相比CPU有更大的内存带宽,此言不虚,这也是众核GPU有源源不断数据弹药供给,能够发挥强大算力的主要原因。如下表所示(GDDR和H...

2021-08-01 17:25:22 5362

转载 Linux内核网络udp数据包发送(二)——UDP协议层分析

1. 前言本文分享了Linux内核网络数据包发送在UDP协议层的处理,主要分析了udp_sendmsg和udp_send_skb函数,并分享了UDP层的数据统计和监控以及socket发送队...

2021-07-31 17:18:42 3343

转载 Linux内核网络UDP数据包发送(四)——Linux netdevice 子系统

Linux内核网络UDP数据包发送系列:Linux内核网络UDP数据包发送(一)Linux内核网络UDP数据包发送(二)——UDP协议层分析Linux内核网络UDP数据包发送(三)——IP...

2021-07-31 17:18:42 1945

转载 Linux内核网络UDP数据包发送(三)——IP协议层分析

1. 前言Linux内核网络 UDP 协议层通过调用ip_send_skb将 skb 交给 IP 协议层,本文通过分析内核 IP 协议层的关键函数来分享内核数据包发送在 IP 协议层的...

2021-07-31 17:18:42 1936

转载 Linux内核网络udp数据包发送(一)

本系列文章1-4,来源于陈莉君老师公众号“Linux内核之旅”1. 前言本文首先从宏观上概述了数据包发送的流程,接着分析了协议层注册进内核以及被socket的过程,最后介绍了通过 sock...

2021-07-31 17:18:42 2387

原创 从前的日子很慢

从前的日子很慢车,马,邮件都慢一生只够爱一个人从前的日子很慢鲁磨路的房子,八百一平所有人都感叹,好贵从前的日子很慢西三门外的录像厅,整夜放着VCD传来阵阵,“老板换碟”从前的日子很慢在宿舍...

2021-07-24 20:07:50 1998

转载 FUTEX_SWAP补丁分析-SwitchTo 如何大幅度提升切换性能?

作者简介胡哲宁,西安邮电大学计算机科学与技术专业大二学生。Google SwitchTo由于协程本身对操作系统的不可见性,协程中出现的 BUG 往往不能通过一些已有的工具去排查。在谷歌内部...

2021-07-21 13:27:44 1755

转载 近距离看GPU计算(2)

在《近距离看GPU计算》系列第一篇里我们介绍了GPU的一些基础知识及其如何从图形加速设备演化到通用计算平台。本文我们会具体从处理单元设计和存储层次结构两个方面探讨GPU不同于CPU的特点,...

2021-07-20 16:26:24 1780

转载 深入理解Linux内核之主调度器(下)

4.进程上下文切换接前文:深入理解Linux内核之主调度器(上)前面选择了一个合适进程作为下一个进程,接下来做重要的上下文切换动作,来保存上一个进程的“上下文”恢复下一个进程的“上下文”,...

2021-07-15 11:17:54 1517

原创 宋宝华:深入理解cache对写好代码至关重要

There are only two hard things in Computer Science: cache invalidation and naming things.-- P...

2021-07-07 17:43:29 5907 12

转载 android平台eBPF初探

一、eBPF是什么eBPF是extended BPF的缩写,而BPF是Berkeley Packet Filter的缩写。对linux网络比较熟悉的伙伴对BPF应该比较了解,它通过特定的语...

2021-07-05 08:10:00 3376 3

转载 Linux内核Page Cache和Buffer Cache关系及演化历史

[注: 转载自今日头条号"闪念基因"] 在我们进行数据持久化,对文件内容进行落盘处理时,我们时常会使用fsync操作,该操作会将文件关联的脏页(dirty page)数据(...

2021-07-01 08:17:27 762 1

转载 深入理解Linux文件系统之文件系统挂载(下)

接着:深入理解Linux文件系统之文件系统挂载(上)本文为文件系统挂载专题文章的第二篇,主要介绍如何通过挂载实例关联挂载点和超级块并添加到全局文件系统树。4. 添加到全局文件系统树4.1 ...

2021-06-30 18:01:24 1568 1

转载 深入理解Linux文件系统之文件系统挂载(上)

1.开场白环境:处理器架构:arm64内核源码:linux-5.11ubuntu版本:20.04.1代码阅读工具:vim+ctags+cscope我们知道,Linux系统中我们经常将一个块...

2021-06-29 15:12:33 2088

转载 多线程计算平台的性能模型

在开始《近距离看GPU计算》系列第二篇以前,我们先介绍跟接下来的主题关系密切的一篇论文。在以前的文章里,笔者谈到单核CPU无论在PC端还是服务器上基本上已经退出历史舞台,目前主流的计算平台...

2021-06-27 08:00:00 392

转载 使用EBPF追踪LINUX内核

1. 前言我们可以使用BPF对Linux内核进行跟踪,收集我们想要的内核数据,从而对Linux中的程序进行分析和调试。与其它的跟踪技术相比,使用BPF的主要优点是几乎可以访问Linux内核...

2021-06-26 08:00:00 1383

原创 推荐Linux性能分析的一篇论文和两本书

最重要的一篇paper:A Top-Down method for performance analysis and counters architecture这篇文章提出了topdown...

2021-06-22 08:59:29 1970

原创 总是选择难的那条路

2018年10月16日,宋牧春童鞋merge了人生的第一个patch:2021年6月,宋牧春童鞋每月都在贡献有实质性价值的patch:最近的vmemmap针对大页省内存的patch,他发了...

2021-06-20 08:08:01 904 3

转载 近距离看GPU计算

在前面文章中,我们交代了计算平台相关的一些基本概念以及为什么以GPU为代表的专门计算平台能够取代CPU成为大规模并行计算的主要力量。在接下来的文章中,我们会近距离从软硬件协同角度讨论GPU...

2021-06-14 10:44:58 628

转载 Linux内核页表管理-那些鲜为人知的秘密

1.开场白环境:处理器架构:arm64内核源码:linux-5.11ubuntu版本:20.04.1代码阅读工具:vim+ctags+cscope通用操作系统,通常都会开启mmu来支持虚拟...

2021-06-08 11:50:00 1349

转载 coredump 瘦身风云

作者 / 品文、肇燕编辑 / 芹菜出品 /云巅论剑继上一篇非典型程序员青囊搞定内存泄露问题后,美美地睡了一觉。睡梦中,突然金光闪闪,万道光芒照进时光隧道,恍惚来到大唐神龙年间。青囊此时...

2021-05-30 07:28:54 518

转载 深入理解Linux文件系统之ext2路径名查找

本文以ext2文件系统为例来剖析一个真实的文件系统如何查找文件,这对于深入理解文件系统至关重要。1.准备文件系统镜像所用工具:dd、mkfs.ext2、hexdump、dumpe2fs、m...

2021-05-28 08:19:10 1114

转载 Linux系统是如何用虚拟内存来欺骗应用程序的?

一、让有意义的事情变的有意思二、物理内存、虚拟内存三、Linux 中的换页机制一、让有意义的事情变的有意思 昨天,看到下面这句话,送给您:让有意思的事情变的有意义,让有意义的事情变的有意思...

2021-05-26 08:20:00 497

原创 宋宝华:为什么numactl内存绑定对代码段不起作用

本文目录 阅读本文大约需要10分钟numactl内存绑定中代码段的问题代码段为什么没有进入指定的numa节点内核内存管理一个改进方向建议numactl内存绑定中代码段的问题在一个典型的NU...

2021-05-07 07:50:00 773

转载 边缘设备、系统及计算杂谈(1)

缘起机缘巧合,未来一段时间要从事一个新兴的领域——边缘设备、系统、及计算。边缘设备,从物理形态上看,是出现于云、端之间,更接近端侧(也就是设备侧)的一种新型设备。它是伴随万物互联IoT而出...

2021-05-03 14:41:17 467

转载 边缘设备、系统及计算杂谈(2)——go语言

缘起本期继续讨论边缘领域里的另一个有意思的东西——语言。正如前文所说,边缘设备是在终端、云端(或者叫后台系统)中出现的一种新形态的设备。它肯定不是终端,因为它比终端能力强,而且倾向于它是为...

2021-05-03 14:41:17 468

转载 边缘设备、系统及计算杂谈(4)—形态和玩家

缘起本期继续讨论边缘。前几天在朋友圈里show了个图片,图片里是我在ipad上看一本关于k8s的书。一个朋友好奇,说你一个搞终端的搞机人怎么会去看云端相关的书呢?so,结合我最近的一些深度...

2021-05-03 14:41:17 570

宋宝华 - 深入探究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关注的人

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