自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

RToax

Just for Fun

  • 博客(103)
  • 资源 (150)
  • 论坛 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 Linux内核深入理解定时器和时间管理(7):相关的系统调用

Linux内核深入理解定时器和时间管理相关的系统调用rtoax2021年3月在原文基础上,增加5.10.13内核源码相关内容。 结构体------------------------------------------------------- struct clocksource; struct clock_event_device; `clockevents_register_device()` `clockevents_config_and_registe

2021-03-31 15:23:04 16 2

原创 Linux内核深入理解定时器和时间管理(6):x86_64 相关的时钟源(kvm-clock,tsc,acpi_pm,hpet)

Linux内核深入理解定时器和时间管理 x86_64 相关的时钟源(kvm-clock,tsc,acpi_pm,hpet) rtoax2021年3月在原文基础上,增加5.10.13内核源码相关内容。概览 结构体------------------------------------------------------- struct clocksource; struct clock_event_device; `clockevents_register_device

2021-03-31 14:54:10 18

原创 Linux内核深入理解定时器和时间管理(5):clockevents 框架

Linux内核深入理解定时器和时间管理 clockevents 框架rtoax2021年3月在原文基础上,增加5.10.13内核源码相关内容。1. Introduction to the clockevents frameworkThis is fifth part of the chapter which describes timers and time management related stuff in the Linux kernel. As you might noted f

2021-03-31 13:49:16 14

原创 Linux内核深入理解定时器和时间管理(4):定时器 timer

Linux内核深入理解定时器和时间管理 定时器 timerrtoax2021年3月在原文基础上,增加5.10.13内核源码相关内容。1. TimersThis is fourth part of the chapter which describes timers and time management related stuff in the Linux kernel and in the previous part we knew about the tick broadcast fr

2021-03-31 12:43:23 28

原创 Linux内核深入理解定时器和时间管理(3):tick 广播 框架 和 dyntick

Linux内核深入理解定时器和时间管理 tick 广播 框架 和 dyntickrtoax2021年3月在原文基础上,增加5.10.13内核源码相关内容。结构体------------------------------------------------------- struct clocksource; struct clock_event_device; `clockevents_register_device()` `clockevents_config_and_r

2021-03-31 09:01:39 21

原创 GDB watch的使用

GDB watch的使用rtoax2021年3月由于寄存器限制,GDB最多支持4个watchpoint。1. 准备工作先看一眼gdb watch帮助信息:Set a watchpoint for an expression.Usage: watch [-l|-location] EXPRESSIONA watchpoint stops execution of your program whenever the value ofan expression changes.If -

2021-03-30 16:58:00 12

原创 Linux内核深入理解定时器和时间管理(2):clocksource 框架

Linux内核深入理解定时器和时间管理 clocksource 框架rtoax2021年3月在原文基础上,增加5.10.13内核源码相关内容。全局部变量-------------------------------------------------------1. jiffies = jiffies_64;2. u64 jiffies_64;3. struct clocksource clocksource_jiffies = {.name = "jiffies", ...};

2021-03-30 13:25:43 13

原创 Linux内核深入理解定时器和时间管理(1):硬件时钟和jiffies

Linux内核深入理解定时器和时间管理硬件时钟和jiffiesrtoax2021年3月在原文基础上,增加5.10.13内核源码相关内容。全局部变量-------------------------------------------------------1. jiffies = jiffies_64;2. u64 jiffies_64;3. struct clocksource clocksource_jiffies = {.name = "jiffies", ...};4.

2021-03-30 09:14:00 19

原创 Linux内核深入理解系统调用(3):open 系统调用实现以及资源限制(setrlimit/getrlimit/prlimit)

Linux内核深入理解系统调用(3)open 系统调用实现以及资源限制(setrlimit/getrlimit/prlimit)rtoax2021年3月对原文进行了5.10.13的代码分析。1. open 系统调用实现1.1. 简介本节是详述 Linux 内核中的 系统调用 机制章节的第五部分。之前的内容部分概述了这个机制,现在我将试着详细讲解 Linux 内核中不同系统调用的实现。本章之前的部分和本书其他章节描述的 Linux 内核机制大部分对用户空间是隐约可见或完全不可见。但是 Li

2021-03-29 19:12:03 22

转载 Linux内核深入理解系统调用(2):vsyscall 和 vDSO 以及程序是如何运行的(execve)

Linux内核深入理解系统调用(2)vsyscall 和 vDSO 以及程序是如何运行的(execve)rtoax2021年3月1. vsyscalls 和 vDSO这是讲解 Linux 内核中系统调用章节的第三部分,前一节讨论了用户空间应用程序发起的系统调用的准备工作及系统调用的处理过程。在这一节将讨论两个与系统调用十分相似的概念,这两个概念是vsyscall 和 vdso。我们已经了解什么是系统调用。这是 Linux 内核一种特殊的运行机制,使得用户空间的应用程序可以请求,像写入文件和

2021-03-29 13:57:26 23

转载 Virtio、Vhost、Vhost-user介绍

目录Virtio:针对Linux的I/O的虚拟化框架VhostVhost-userVhost-user与vhost的区别相关阅读Virtio:针对Linux的I/O的虚拟化框架Linux内核支持多种虚拟化模式,并且支持的数量随着虚拟化的进步和新模式的出现(例如lguest)而增加。但是,让这些虚拟化模式能够在Linux之上运行之后,又如何让它们能够在I/O虚拟化方面利用底层内核呢?答案是使用virtio,它为hypervisor和一组通用的I/O虚拟化驱动...

2021-03-28 21:17:27 25 1

转载 Virtio原理简介

实现IO虚拟化主要有三种方式:全虚拟化、半虚拟化和透传。全虚拟化Guest OS不会感知到自己是虚拟机,也无需修改Guest OS,但是它的效率比较低。半虚拟化Guest OS知道自己是虚拟机,通过Frontend/Backend驱动模拟实现IO虚拟化。透传就是直接分配物理设备给VM用。Virtio是一种半虚拟化的设备抽象接口规范,在Qemu和KVM中得到了广泛使用,本文将简单介绍Virtio的基本原理。

2021-03-28 20:48:51 25 4

转载 virtio-fs: A Shared File System for Virtual Machines

virtio-fs: A Shared File System for Virtual Machines

2021-03-28 20:28:25 13

转载 Virtio-fs Overview

https://virtio-fs.gitlab.io/index.htmlOverviewVirtio-fs is a shared file system that lets virtual machines access a directory tree on the host. Unlike existing approaches, it is designed to offer local file system semantics and performance.Virtio-.

2021-03-28 20:15:17 19

原创 Zero-copy Receive for vhost

Zero-copy Receive for vhost​

2021-03-28 20:09:34 17 1

原创 virtio Towards a De-Facto Standard For Virtual IO Devices

virtio Towards a De-Facto Standard For Virtual IO Devices​

2021-03-28 17:59:55 17 6

原创 What’s New in Virtio 1.1

What’s New in Virtio 1.1

2021-03-28 16:37:45 17

原创 Virtio: An I/O virtualization framework for Linux

2021-03-28 14:15:38 23

原创 Linux Jump Label/static-key机制详解

Linux Jump Label/static-key机制详解RToax2021年3关于Linux Jump Label(x86)已经进行过概述,下面就static-key进行详述。内核中有很多判断条件在正常情况下的结果都是固定的,除非极其罕见的场景才会改变,通常单个的这种判断的代价很低可以忽略,但是如果这种判断数量巨大且被频繁执行,那就会带来性能损失了。内核的static-key机制就是为了优化这种场景,其优化的结果是:对于大多数情况,对应的判断被优化为一个NOP指令,在非常有场景的时候就

2021-03-28 13:21:12 20

原创 Linux Jump Label(x86)

Jump LabelRToax2021年3月27日1. Jump LabelThe kernel is filled with tests whose results almost never change. A classic example is tracepoints, which will be disabled on running systems with only very rare exceptions. There has long been interest in opt

2021-03-28 11:44:59 22 2

转载 分布式定时器的实现原理

作者:刘若愚,腾讯 WXG 后台开发工程师定时器(Timer)是一种在业务开发中常用的组件,主要用在执行延时通知任务上。本文以笔者在工作中的实践作为基础,介绍如何使用平时部门最常用的组件快速实现一个业务常用的分布式定时器服务。同时介绍了过程中遇到问题的一些解决方案,希望能够给类似场景提供一些解决思路。《实现较低的计时器粒度以重传TCP(RTO):时间轮算法如何减少开销》《分级时间轮优化普通时间轮定时器》《分级时间轮优化普通时间轮定时器(2):滴答式分层计时轮》《杂乱无序的时间轮:有效.

2021-03-27 18:34:03 35

原创 Linux 原生异步 IO 原理与使用

目录什么是异步 IO?Linux 原生 AIO 原理Linux 原生 AIO 使用什么是异步 IO?异步 IO:当应用程序发起一个 IO 操作后,调用者不能立刻得到结果,而是在内核完成 IO 操作后,通过信号或回调来通知调用者。异步 IO 与同步 IO 的区别如 图1 所示:从上图可知,同步 IO 必须等待内核把 IO 操作处理完成后才返回。而异步 IO 不必等待 IO 操作完成,而是向内核发起一个 IO 操作就立刻返回,当内核完成 IO 操作后,会通过信号的方式通知应.

2021-03-27 17:23:54 35

转载 Linux虚拟化:Virtio: 一个 I/O 虚拟化框架

目录什么是 virtio#为什么是 virtio#virtio 的架构#virtio 数据流交互机制#总结:#什么是 virtio#virtio 是一种 I/O 半虚拟化解决方案,是一套通用 I/O 设备虚拟化的程序,是对半虚拟化 Hypervisor 中的一组通用 I/O 设备的抽象。提供了一套上层应用与各 Hypervisor 虚拟化设备(KVM,Xen,VMware等)之间的通信框架和编程接口,减少跨平台所带来的兼容性问题,大大提高驱动程序开发效率。为什么是 .

2021-03-27 15:52:53 38 4

原创 Linux内核深入理解系统调用(1):初始化-入口-处理-退出

Linux内核深入理解系统调用(1):初始化-入口-处理-退出rtoax2021年3月1. Linux 内核系统调用简介这次提交为 linux内核解密 添加一个新的章节,从标题就可以知道, 这一章节将介绍Linux 内核中 System Call 的概念。章节内容的选择并非偶然。在前一章节我们了解了中断及中断处理。系统调用的概念与中断非常相似,这是因为软件中断是执行系统调用最常见的方式。接下来我们将从不同的角度来审视系统调用相关概念。例如,从用户空间发起系统调用时会发生什么,Linux内核中一

2021-03-26 18:03:01 28

转载 x86 calling conventions

http://en.wikipedia.org/wiki/X86_calling_conventionsx86 calling conventionsFrom Wikipedia, the free encyclopediaThis article describes thecalling conventionsused onx86architecture chips.Calling conventions describe the interface of called co...

2021-03-26 12:24:51 15

原创 Linux内核深入理解中断和异常(8):串口驱动程序

Linux内核深入理解中断和异常(8):串口驱动程序rtoax2021年3月/** * start_kernel()->setup_arch()->idt_setup_early_traps() * start_kernel()->setup_arch()->idt_setup_early_pf() * start_kernel()->trap_init()->idt_setup_traps() * start_kernel()->tra

2021-03-25 18:51:10 18

原创 Linux内核深入理解中断和异常(7):中断下半部:Softirq, Tasklets and Workqueues

Linux内核深入理解中断和异常(7):中断下半部:Softirq, Tasklets and Workqueuesrtoax2021年3月![在这里插入图片描述](https://img-blog.csdnimg.cn/20210325171547759.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JvbmdfVG9h,size_1

2021-03-25 17:15:59 13

转载 8259 PIC Microprocessor | 8259 中断控制微处理器

8259 microprocessor is defined asProgrammable Interrupt Controller (PIC)microprocessor. There are 5 hardware interrupts and 2 hardware interrupts in 8085 and 8086 respectively. But by connecting 8259 with CPU, we can increase the interrupt handling capab..

2021-03-25 14:42:15 15 1

原创 Linux内核深入理解中断和异常(6):IRQs的非早期初始化

Linux内核深入理解中断和异常(6):IRQs的非早期初始化rtoax2021年3月0x00-0x1f architecture-defined exceptions and interrupts;0x30-0x3f are used for ISA(Industry Standard Architecture) interrupts;/** * start_kernel()->setup_arch()->idt_setup_early_traps() * star

2021-03-25 14:29:40 12

原创 Redis 的 Sentinel哨兵介绍与源码分析(1):初始化部分

http://www.redis.cn/topics/sentinel.htmlredis-6.0.8本文是在官方中文文档的基础上进行的源码分析,其中包含完整的原文,并在此基础上,添加源码介绍。目录获取 Sentinel启动 Sentinel配置 Sentinel主观下线和客观下线每个 Sentinel 都需要定期执行的任务自动发现 Sentinel 和从服务器Sentinel APISentinel 命令发布与订阅信息故障转移Sentinel 自动故

2021-03-24 22:37:02 18

原创 Linux开机启动过程:从点下电源键到系统正常运行

学习内核,只要是要以柔克刚,不能急于求成。共勉《Linux开机启动过程(1):内核引导过程》《Linux开机启动过程(2):内核启动的第一步》《Linux开机启动过程(3):显示模式初始化和进入保护模式》《Linux开机启动过程(4):切换到64位模式-长模式(直到内核解压缩之前)》《Linux开机启动过程(5):内核解压》《Linux开机启动过程(6):页表的初始化、避开保留的内存、地址随机化》《Linux开机启动过程(7):内核执行入口点》《Linux开机启动过程(8):

2021-03-24 21:09:15 41 2

原创 Linux内核深入理解中断和异常(5):外部中断

Linux内核深入理解中断和异常(5):外部中断rtoax2021年3月1. 外部中断简介外部中断包括:键盘,鼠标,打印机等。外部中断包括:I/O interrupts; IO中断Timer interrupts; 时钟中断Interprocessor interrupts;处理器间中断外部中断的一般流程:保存中断值和寄存器内容到内核栈;发送ACK到能够处理这个终端的硬件处理器;执行中断服务例程(可以称为ISR);回复寄存器并从中断返回;2. Introductio

2021-03-24 19:09:43 23 1

原创 Linux内核深入理解中断和异常(4):不可屏蔽中断NMI、浮点异常和SIMD

Linux内核深入理解中断和异常(4):不可屏蔽中断NMI、浮点异常和SIMD rtoax2021年3月本文介绍一下几种trap://* External hardware asserts (外部设备断言)the non-maskable interrupt [pin] on the CPU.//* The processor receives a message on the system bus or the APIC serial bus with a delivery mode `N

2021-03-24 17:30:19 34

原创 Linux内核深入理解中断和异常(3):异常处理的实现(X86_TRAP_xx)

Linux内核深入理解中断和异常(3):异常处理的实现(X86_TRAP_xx) rtoax2021年3月/** * start_kernel()->setup_arch()->idt_setup_early_traps() * start_kernel()->setup_arch()->idt_setup_early_pf() * start_kernel()->trap_init()->idt_setup_traps() * start_k

2021-03-24 15:35:45 32

原创 Linux内核深入理解中断和异常(2):初步中断处理-中断加载

Linux内核深入理解中断和异常(2):初步中断处理-中断加载rtoax2021年3月1. 总体概览关于idt_table结构的填充,在5.10.13中流程为: idt_setup_early_traps();/* 中断描述符表 */上面函数实现很简单:void __init idt_setup_early_traps(void)/* 中断描述符表 */{ idt_setup_from_table(idt_table, early_idts, ARRAY_SIZE(early_id

2021-03-24 13:30:56 33

原创 Linux内核深入理解中断和异常(1)

Linux内核深入理解中断和异常(1)rtoax2021年3月1. 中断介绍内核中第一个子系统是中断(interrupts)。1.1. 什么是中断?我们已经在这本书的很多地方听到过 中断(interrupts) 这个词,也看到过很多关于中断的例子。在这一章中我们将会从下面的主题开始:什么是 中断(interrupts) ?什么是 中断处理(interrupt handlers) ?我们将会继续深入探讨 中断 的细节和 Linux 内核如何处理这些中断。所以,首先什么是中断?中断

2021-03-24 10:17:19 21

原创 Linux用户程序的编译链接与加载启动过程

Linux用户程序的编译链接与加载启动过程rtoax2021年3月1. 程序的编译链接1.1. 介绍如果我们打开维基百科的 链接器 页,我们将会看到如下定义:在计算机科学中,链接器(英文:Linker),是一个计算机程序,它将一个或多个由编译器生成的目标文件链接为一个单独的可执行文件,库文件或者另外一个目标文件如果你曾经用 C 写过至少一个程序,那你就已经见过以 *.o 扩展名结尾的文件了。这些文件是目标文件。目标文件是一块块的机器码和数据,其数据包含了引用其他目标文件或库的数据和函

2021-03-23 17:25:25 40

原创 Linux内核构建与开发

Linux内核构建与开发rtoax2021年3月1. Linux 内核的构建1.1. 介绍我不会告诉你怎么在自己的电脑上去构建、安装一个定制化的 Linux 内核,这样的资料太多了,它们会对你有帮助。本文会告诉你当你在内核源码路径里敲下 make 时会发生什么。当我刚刚开始学习内核代码时,Makefile 是我打开的第一个文件,这个文件看起来真令人害怕 ????。那时候这个 Makefile 还只包含了 1591 行代码,当我开始写本文时,内核已经是 4.2.0 的第三个候选版本 了。这

2021-03-23 11:50:06 19

原创 Documentation/CodingStyle:process/coding-style.rst

[rongtao@localhost Documentation]$ reset && cat process/coding-style.rst.. _codingstyle:Linux kernel coding style=========================This is a short document describing the preferred coding style for thelinux kernel. Coding style is ..

2021-03-23 11:47:04 33

原创 Linux内存管理:分页

Linux内存管理:分页rtoax2021年3月1. 简介在 Linux 内核启动过程中的第五部分,我们学到了内核在启动的最早阶段都做了哪些工作。接下来,在我们明白内核如何运行第一个 init 进程之前,内核初始化其他部分,比如加载 initrd ,初始化 lockdep ,以及许多许多其他的工作。是的,那将有很多不同的事,但是还有更多更多更多关于内存的工作。在我看来,一般而言,内存管理是 Linux 内核和系统编程最复杂的部分之一。这就是为什么在我们学习内核初始化过程之前,需要了解分页。

2021-03-23 10:54:42 17

gnutls安装所有依赖包.rar

gnutls安装所有依赖包.rar

1956-01-17

《深入浅出DPDK》全书读书笔记.pdf

《深入浅出DPDK》全书读书笔记.pdf

2020-10-29

[done++]Vhost dataplane in Qemu.pdf

[done++]Vhost dataplane in Qemu.pdf

2021-04-04

中国电信DPDK技术白皮书.pdf

中国电信DPDK技术白皮书.pdf,中国电信DPDK技术白皮书.pdf,中国电信DPDK技术白皮书.pdf,中国电信DPDK技术白皮书.pdf

2020-10-25

[done]Introduction to PCI Express.pdf

[done]Introduction to PCI Express.pdf

2021-04-03

[done]PCI Express®Basics & Background.pdf

[done]PCI Express®Basics & Background.pdf

2021-04-03

[done]Virtio-blk Performance Improvement.pdf

[done]Virtio-blk Performance Improvement.pdf

2021-04-03

[done]Vhost and VIOMMU.pdf

Vhost and VIOMMU

2021-04-03

[done]Virtio (vDPA)Vhost Data Path Acceleration Torwards NFV Cloud.pdf

vDPA

2021-04-03

[done]DPDK Usability for OVS DPDK.pdf

[done]DPDK Usability for OVS DPDK.pdf

2021-04-02

[done]OVS-DPDK Every cycle counts.pdf

[done]OVS-DPDK Every cycle counts.pdf

2021-04-02

[done]cgroups_intro.pdf

Linux CGroups

2021-04-02

全波形反演概述-符成果图

全波形反演概述-符成果图

2020-08-03

基于Java的地震数据处理软件

基于Java的地震数据处理软件:VTI介质有限差分正演模拟,射线追踪,画图等模块

2018-05-03

空天地一体化通信系统白皮书.pdf

空天地一体化通信系统白皮书.pdf

2021-03-21

HTML+CSS从入门到精通(中文)

HTML+CSS从入门到精通(中文)

2018-10-20

最全的Java Swing示例程序

最全的Java Swing示例程序:包括Swing全部的示例,AWT的示例

2018-05-03

[done]Cgroups and Namespaces.pdf

[done]Cgroups and Namespaces.pdf

2021-03-29

[done]深⼊入解析Docker背后的Linux内核技术.pdf

[done]深⼊入解析Docker背后的Linux内核技术.pdf

2021-03-29

[done]Rooting out Root User namespaces in Docker.pdf

[done]Rooting out Root User namespaces in Docker.pdf

2021-03-29

基于NVIDIA的GPU加速的各向异性二维三维地震有限差分正演模拟软件

基于NVIDIA的GPU加速的各向异性二维三维地震有限差分正演模拟软件:包括二维VTI介质有限差分正演模拟,三维VTI介质有限差分正演模拟,等等。。。

2018-05-03

virtio-fs_ A Shared File System for Virtual Machines.pdf

virtio

2021-03-28

[done]Zero-copy Receive for vhost.pdf

[done]Zero-copy Receive for vhost.pdf

2021-03-28

Virtio PCI Card Specication v0.9.5 DRAFT.pdf

virtio

2021-03-28

[done]virtio Towards a De-Facto Standard For Virtual IO Devices.pdf

virtio

2021-03-28

Kernel-base Virtual Machine Technology.pdf

KVM

2021-03-28

[done]What’s New in Virtio 1.1.pdf

virtio1.1

2021-03-28

[done]Automotive Virtual Platform Using Virtio.pdf

virtio

2021-03-28

Virtio An IO virtualization framework for Linux.pdf

virtio

2021-03-28

实验指导手册 - 奔跑吧Linux内核入门篇第二版v2.0.2.pdf

实验指导手册 - 奔跑吧Linux内核入门篇第二版v2.0.2.pdf

2021-03-21

NanoLog A Nanosecond Scale Logging System.pdf

NanoLog A Nanosecond Scale Logging System.pdf

2021-03-23

PostgreSQL运行SQL代码-方法+源代码

PostgreSQL运行SQL代码-方法+源代码。PostgreSQL运行SQL代码-方法+源代码

2018-06-10

C语言头文件

C语言头文件,C语言头文件,C语言头文件,C语言头文件,C语言头文件

2018-06-03

LINUX设备驱动程序第三版配套源码

LINUX设备驱动程序第三版配套源码

2019-02-27

二维VTI介质射线追踪

二维VTI介质射线追踪,二维VTI介质射线追踪,二维VTI介质射线追踪,二维VTI介质射线追踪

2018-06-02

二维各项同性Lagan法射线追踪

二维各项同性Lagan法射线追踪,二维各项同性Lagan法射线追踪,二维各项同性Lagan法射线追踪

2018-06-02

《数据结构》严蔚敏

《数据结构》严蔚敏,《数据结构》严蔚敏,《数据结构》严蔚敏,

2018-06-03

Java-org.apache.hadoop

Java-org.apache.hadoop,Java-org.apache.hadoop,Java-org.apache.hadoop

2018-06-02

KASLR is Dead Long Live KASLR(address space layout randomization).pdf

地址空间随机分布

2021-03-14

Meltdown- Reading Kernel Memory from User Space.pdf

熔断漏洞

2021-03-14

C语言如何从源函数中获取指向它的函数指针的地址

发表于 2020-05-21 最后回复 2020-06-15

Koma_Wong的留言板

发表于 2020-01-02 最后回复 2020-03-08

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

TA关注的人 TA的粉丝

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