自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(948)
  • 资源 (59)
  • 收藏
  • 关注

转载 连接跟踪(conntrack):原理、应用及 Linux 内核实现

本文介绍连接跟踪(connection tracking,conntrack,CT)的原理,应用,及其在 Linux 内核中的实现。代码分析基于内核4.19。为使行文简洁,所贴代码只保留了核心逻辑,但都给出了代码 所在的源文件,如有需要请查阅。水平有限,文中不免有错误之处,欢迎指正交流。// 为方便 NAT 的实现,内核将 tuple 结构体拆分为 "manipulatable" 和 "non-manipulatable" 两部分// 下面结构体中的 _man 是 manipulatable 的缩写。

2024-03-20 16:32:46 107

转载 内核通信之 Netlink 源码分析和实例分析

这几天在看 ipvs 相关代码的时候又遇到了 netlink 的事情,所以这两天花了点时间重新把 netlink 的事情梳理了一下。linux 内核一直存在的一个严重问题就是内核态和用户态的交互的问题,对于这个问题内核大佬们一直在研究各种方法,想让内核和用户态交互能够安全高效的进行。如系统调用,proc,sysfs等内存文件系统,但是这些方式一般都比较简单,只能在用户空间轮询访问内核的变化,内核的变化无法主动的推送出来。

2024-03-08 13:14:56 69

转载 Linux Network Management

char c;int s;close(s);data_len;hdr_len;*data;

2024-03-03 18:51:57 47

转载 The Linux Networking

【代码】The Linux Networking。

2024-03-03 18:36:04 37

转载 What Is eBPF? The Ultimate Guide

What Is eBPF? The Ultimate Guide - The New StackeBPF stands for extended Berkeley packet filter. Find out everything you should know about Linux eBPF in this comprehensive technology guide.Dec 26th, 2023 2:00am by B. Cameron GainLogo courtesy of the eBPF F

2024-03-03 18:29:41 28

转载 A Gentle Introduction to eBPF

【代码】A Gentle Introduction to eBPF。

2024-03-03 18:27:50 14

转载 理解 TCP rate sample

内核中的 TCP rate sample 被 bbr 这样的拥塞控制算法使用,它总共也就不到200行代码,其中一半还是注释,但理解起来可能还是需要花点力气。本文将尝试解释它的实现原理.本文使用的内核代码版本是一句话概括, rate sample 的结果是在** interval **时间内发送的报文被网络成功(成功送达)的数目。比如, 5s 内, 成功送达了 10个报文、10s 内成功送达了 15 个报文 …. 等等.

2024-03-01 09:29:44 33

转载 The story of one latency spike

【代码】The story of one latency spike。

2024-02-29 10:11:51 16

转载 How to achieve low latency with 10Gbps Ethernet

In。

2024-02-29 09:05:36 18

转载 linux-network-performance-parameters

【代码】linux-network-performance-parameters。

2024-02-28 20:13:09 16

转载 使用 eBPF 扩展内核

扩展型柏克莱封包过滤器 (eBPF) 是一个内核中的虚拟机,可运行用户提供的 eBPF 程序来扩展内核功能。这些程序可以挂接到内核中的探测点或事件,并用于收集有用的内核统计信息、监控和调试。程序使用bpf(2)系统调用加载到内核中,并作为 eBPF 机器指令的二进制 blob 由用户提供。Android 构建系统支持使用本文所述的简单 build 文件语法将 C 程序编译为 eBPF 程序。如需详细了解 eBPF 内部构件和架构,请参阅。

2024-02-26 14:16:15 26

转载 通用内核映像(GKI)

是所有 Android 产品内核的基础。供应商内核和设备内核位于 ACK 的下游。供应商通过修改内核源代码并添加设备驱动程序,添加了对 SoC 和外围设备的支持。这些修改内容可能很多,以至于设备上运行的代码中有多达 50% 是树外代码(并非来自上游 Linux 和 AOSP 通用内核)。几乎所有设备都具有自定义内核。这就导致了内核碎片化问题。Android 内核层次结构导致碎片化问题。

2024-02-26 14:03:38 346

转载 L2TP over IPsec PC

ClickRUTPCRUT;PC。

2024-02-07 09:11:22 35

转载 L2TP/L2TP over IPSec

二层隧道协议L2TP ( Layer 2 Tunneling Protocol )是虚拟私有拨号网VPDN ( Virtual Private Dial-up Network )隧道协议的一种,扩展了点到点协议PPP ( Point-to-Point Protocol )的应用,是远程拨号用户接入企业总部网络的一种重要VPN技术。LAC:L2TP的访问控制中心,隧道发起方,企业分支的出口网关,用于站点到站点建立L2TP VPN,企业分支发起的L2TP VPN建立连接,中间不用经过运营商(场景三)

2024-02-07 08:40:39 122

转载 linux路由表配置

D、解决方法,由于在table 0中添加路由只能解决目的地址或目的网络不同时路由问题,但两块网卡有相同的子网,网关也一样,目的子网也一样,所以已经不能通过在table 0添加路由记录来解决问题,我们只能添加其他编号的table,并在新的table中添加路由记录,使eth1的包选路时使用新的table的路由记录,并从eth1上出去。路由规则的查看使用ip rule sh路由规则也从0开始编号,可以自由添加,来源相同IP的路由规则选择根据规则编号的大小确定优先级,编号越小优先级越高。

2024-02-04 16:25:10 106

转载 利用qemu+gdb在ubuntu下搭建调试kernel的环境

在A Terminal中运行以下命令 qemu-system-x86_64 -kernel bzImage -boot c -m 1024 -initrd initramfs.img -append "root=/dev/sda rw console=ttyS0, 115200 acpi=off nokaslr" -serial stdio -display none -s -S。如果需要调试内核的kvm模块,则向上述命令添加 -enable-kvm。

2024-01-14 20:48:10 99

转载 Tc: ingress policing and ifb mirroring

【代码】Tc: ingress policing and ifb mirroring。

2024-01-11 13:46:33 54

转载 Linux Netfilter and Traffic Control

SFQ 之所以被称为“随机”,是因为它并不是真的为每一个会话创建一个队列,而是使用一个散列算法,把所有的会话映射到有限的几个队列中去。它的精确性不如其它的方法,但是它在实现高度公平的同时,需要的计算量却很少。Linux就而言,队列规定是附带在网卡上的,所有在这个网卡上排队的数据都排进这个队列规定。令牌桶过滤器(TBF)是一个简单的队列规定:只允许以不超过事先设定的速率到来的数据包通过,但可能允许短暂突发流量朝过设定值。就象在分类的队列规定一段中解释的,过滤器用与把数据包分类并放入相应的子队列。

2024-01-11 08:42:22 47

转载 QoS in Linux with TC and Filters

filters:bytes.bpfcgroupscope.flowerfwalready.routetcindexbpfconnmarkcsumiptmirrednatpeditpolicesimpleskbeditvlanConclusion----------

2024-01-10 20:21:43 112

转载 Obtain Kernel Config from Currently Running Linux System

【代码】Obtain Kernel Config from Currently Running Linux System。

2024-01-10 16:21:24 30

转载 Linux-4.4-x86_64 内核配置选项简介

Linux-4.4-x86_64 内核配置选项简介 [金步国]作者:金步国版权声明本文作者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。无担保:本文作者不保证作品内容准确无误,亦不承担任何由于使用此文档所导致的损失。 自由使用:任何人都可以自由的阅读/链接/打印此文档,无需任何附加条件。 名誉权:任何人都可以自由的转载/引用/再创作此文档,但必须保留作者署名并注明出处。其他作品本文作者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣

2024-01-10 16:10:21 238

翻译 OpenSSL硬件加速实现

OpenSSL 可通过引擎接口将加密操作委托给各种硬件设备进行执行。在该接口之上实现的引擎 cryptodev 可用于将加密操作卸载(offload)到由操作系统内核控制的硬件设备上。Cryptodev 引擎最初是为 OpenBSD 开发的,后来相同的 API 被移植到 GNU/Linux 操作系统,通过 OCF 和 cryptodev-linux 等多个驱动程序来实现。

2024-01-07 21:31:28 313

翻译 加密硬件加速

本文主要讲述如何在 OpenSSL 中使用加密硬件加速(crypto hardware acceleration)。许多互联网应用程序,如 OpenSSH 和 OpenVPN,依赖于 OpenSSL 进行加密/解密。因此,使用硬件实现可以加速加密速度,减少CPU使用率。

2024-01-07 21:22:24 173

转载 探秘ftrace

当然,如果你再仔细看,将ftrace_trace_function赋值成ftrace_ops_list_func在某些地方还有特殊的用途。也就是表明,相同的探针,在不同的情况下会执行不同的代码。之前我们是从文件写操作ftrace_filter_write开始的,而这个秘密就隐藏在文件关闭的操作ftrace_regex_release()函数中。在函数ftrace_regex_release(),对于写操作执行的重要任务通过ftrace_hash_move_and_update_ops()来完成。

2024-01-07 20:36:53 30

转载 How to use OpenSSL: Hashes, digital signatures, and more

The。

2024-01-05 13:53:48 55

转载 Getting started with OpenSSL: Cryptography basics

Read on.

2024-01-05 13:52:15 30

转载 Accelerating crypto

【代码】Accelerating crypto。

2024-01-03 19:35:41 27

转载 OpenSSL 1.1.1: Hardware acceleration for OpenSSH via IBMCA engine

【代码】OpenSSL 1.1.1: Hardware acceleration for OpenSSH via IBMCA engine。

2024-01-03 19:25:37 28

转载 Configuring OpenSSL to use the IBMCA engine

【代码】Configuring OpenSSL to use the IBMCA engine。

2024-01-03 19:23:48 24

转载 Cryptographic Hardware Accelerators

[OpenWrt Wiki] Cryptographic Hardware AcceleratorsA Cryptographic Hardware Accelerator can beintegrated into the soc as a separate processor, as special purpose CPU (aka Core).integrated in a Coprocessor on the circuit boardcontained on a Chip on an extens

2024-01-03 19:19:00 62

原创 OpenSSL provider

如果尚未加载其他提供者,当我们首次尝试从提供者获取算法时,它将被自动加载。请注意,一旦您显式地将提供者加载到库上下文中,默认提供者将不再自动加载。如果未加载默认提供者,则应始终加载该提供者(特别是如果您使用 FIPS 提供者)。传统提供者是一组传统算法的集合,这些算法要么已不再普遍使用,要么被认为是不安全的,并且强烈建议不要使用。FIPS 提供者包含了默认提供者中可用的一部分算法实现,这些算法符合 FIPS 标准。在某些情况下,与默认提供者中等价算法相比,该提供者中的算法实现可能存在细微的行为差异。

2024-01-01 21:45:21 1356

原创 OpenSSL engine

ENGINE API在OpenSSL 0.9.6版本中作为一种底层接口被引入,用于添加加密原语的替代实现,特别是用于集成硬件加密设备。ENGINE接口存在一些限制,并已被PROVIDER API所取代,在OpenSSL version 3.0中已被弃用。以下文档被保存,以帮助需要维护或支持现有ENGINE实现的用户。应通过提供者(providers)来添加对新硬件设备或新算法的支持,并尽快将现有引擎转换为提供者(providers)。

2024-01-01 21:33:04 1044

翻译 OpenSSL 战略架构

该文件概述了OpenSSL的战略架构。从3.0.0版本开始,将需要多个发布版本来将当前的“现状”(1.1.1)架构迁移到未来的“目标”架构。未来的架构预计会有大量变化。我们将提供处理最终过渡的迁移路径。OpenSSL 3.0.0版本对绝大多数现有应用程序的影响将很小,几乎所有良好的应用程序只需要重新编译即可。随着时间的推移,当前通过引擎(engine) 接口提供的功能将替换为通过 provider 提供的接口。OpenSSL 3.0.0 将继续支持引擎(engine)。

2024-01-01 21:29:15 87

翻译 Crypto API - 9.1 编程接口-块密码算法定义

这些数据结构定义了模块化加密算法实现,通过 crypto_register_alg() 和 crypto_unregister_alg() 进行管理。cia_setkey。

2023-12-28 22:28:59 63

翻译 Crypto API - 8. 加密引擎

加密引擎 (CE) API 是一个加密队列管理器。

2023-12-28 22:28:37 37

翻译 Crypto API - 7. 用户空间接口

调用 bind 系统调用时,将选择用于密码操作的消息摘要类型。bind 要求调用方提供填充的结构 sockaddr 数据结构。salg_type 值 “hash” 适用于消息摘要和有密钥消息摘要。然而,有密钥消息摘要是通过适当的 salg_name 引用的。请参阅下面的 setsockopt 接口,了解如何为有密钥消息摘要设置密钥。使用 send() 系统调用,应用程序提供应使用消息摘要处理的数据。

2023-12-28 22:27:51 41

翻译 Crypto API - 6. 开发密码算法

Struct cipher_alg 定义单个分组密码。以下是在内核其他部分操作这些函数时,如何调用这些函数的示意图。注意,.cia_setkey()调用可以发生在这些示意图发生之前或之后,但不能发生在这些示意图发生的过程中。v vv v v v| |Struct skcipher_alg定义了多块密码,或者更一般地说,定义了保持长度的对称密码算法以下是在内核其他部分操作这些函数时,如何调用这些函数的示意图。

2023-12-28 22:27:25 33

翻译 Crypto API - 5. 非对称/公钥加密密钥类型

非对称”(asymmetric)密钥类型被设计为公钥加密中使用的密钥的容器,而不对加密的形式或机制或密钥的形式施加任何特殊限制。为非对称密钥指定一个子类型,该子类型定义与密钥关联的数据类型,并提供描述和销毁密钥的操作。但是,不要求密钥数据实际存储在密钥中。可以定义一个完全在内核中保留密钥和操作的子类型,但也可以提供对加密硬件(例如 TPM)的访问,这些硬件可以用于保留相关密钥并使用该密钥执行操作。在这种情况下,非对称密钥只是与 TPM 驱动程序的接口。还提供了数据解析器的概念。

2023-12-28 22:27:02 60

翻译 Crypto API - 4. 异步传输/转换 API

async_tx API 提供了描述异步批量内存传输/转换链的方法,并支持事务间的依赖关系。它被实现为一个 dmaengine 客户端,可以屏蔽不同硬件卸载(hardware offload )引擎实现的细节。使用该 API 编写的代码可以优化异步操作,并且该 API 将适应可用的卸载资源来适配操作链。

2023-12-27 22:56:20 37

翻译 Crypto API - 2. Scatterlist加密API

Scatterlist Crypto API 将页面向量(scatterlists)作为参数,并直接在页面上工作。在某些情况下(例如 ECB 模式密码),这将允许在不复制的情况下就地加密页面。此设计的最初目标之一是随时支持 IPsec,以便可以将处理应用于分页的 skb,而无需线性化。

2023-12-27 22:55:08 21

内存管理 作者李云

李云老师的又一个作品,自己觉得很好。好好学习,Day Day Up!

2012-03-11

栈字符数组&混淆指针和数组所导致的错误

李云老师的两篇文章,分享出来。希望可以学习学习。

2012-03-11

定时器管理

李云老师的一遍文章,讲解是定时器的管理知识

2012-03-11

Linux 程序设计源码

经典书籍Linux 程序设计源代码。看代码学习应该是比较快的学习方式了。

2012-03-10

ABI EABI规范 缔造程序兼容合约.PDF

Application Binary Interface (应用程序二进制接口),编译器和我们编写汇编代码是需要遵循的规范。

2012-03-04

熟悉binutils工具集和程序中的段

嵌入式开发中常用工具集详细讲解,以及程序中的段分析。对嵌入式开发很好的教程。

2012-03-04

驾驭makefile

学习 makefile 比较好的资料(李云编写)。讲解很详细。

2012-03-04

linux 程序设计第四版(英文原版) pdf

linux 程序设计第四版英文原版。linux 程序设计的经典书籍,适合入门学习者。

2012-02-26

Introduction to Java Programming Comprehensive Version Fifth Edition

Introduction to Java Programming Comprehensive Version Fifth Edition source code and ppt.

2012-02-18

linux 程序设计简单总结

Linux 系统程序设计的简单总结。总结了常用系统调用的方法。

2012-02-11

Fusion 基础简介

Fusion provides an implementation of abstractions needed for multi-threaded/multi-process programming: Fusion 为多线程/进程编程提供了抽象的实现。

2012-02-02

DirectFB 原码导读

DirectFB 就是一个全能系统,麻雀虽小五脏俱全。DirecttFB 源码,可以了解很多方面的技术, 包括 Framebuffer, Graphics Accelerate Card,鼠标 盘等外设的事件处理,Font, Graphics Drawing 等,例外还可以看到一下很有用的编程技巧,例如 C++思想在C 语言中的运用,动态加载链接 双 buffer的具体实现,进程通信,多进程的控制和管理等。

2012-01-31

KernelAnalysis−HOWTO

This document tries to explain some things about the Linux Kernel, such as the most important components, how they work, and so on. This HOWTO should help prevent the reader from needing to browse all the kernel source files searching for the"right function," declaration, and definition, and then linking each to the other.

2012-01-11

第七讲 内核空间和用户空间

,Linux的虚拟地址空间也为0~4G。 Linux内核将这4G字节的空间分为两部分。 将最 高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为“内核空间 ”.

2012-01-11

linux 内存寻址

详细描述80x86微处理器怎样进行芯片级的内存寻址,Linux又是如何利用寻址 硬件的。我们希望当你学习内存寻址技术在Linux最流行的硬件平台上的详细实现方法时,既能够更好地理 解分页单元的一般原理,又能更好地研究内存寻址技术在其他平台上是如何实现的。

2012-01-11

Linux中的汇编语言

尽管C语言已经成为编写操作系统的主要语言,但是,在操作系统与硬件打交道的过 程中,在需要频繁调用的函数中以及某些特殊的场合中,C语言显得力不从心,这时, 繁琐但又高效的汇编语言必须粉墨登场

2012-01-09

分页机制及Linux中的初步表示

分页机制及Linux中的初步表示 分页机制在段机制之后进行,以完成线性—物理 地址的转换过程

2012-01-09

段机制及Linux的实现

讲述了IA32下的段机制和Linux下得实现方法。

2012-01-08

非常经典的一片介绍 linker script的文章

非常经典的一片介绍 linker script的文章

2012-01-06

TN05.ELF.Format.Summary.pdf

分析了 UNIX 类操作系统中普遍采用的目标文件格式 ELF(Executable and Linkable Format) ,目的是研究操作系统中二进制级软件构件的静态、动态组装技术。 本文首先介绍 ELF 文件格式规范,然后结合一个简单的 C 语言程序,分析编 译、链接后生成的可重定位、可执行格式实例。

2012-01-06

WiFi 直连 WiFi Direct / WiFi P2P

Kemparaj Praneeth 关于 WiFi P2P 的相关博客文章

2023-02-03

使用wireshark 解析rtp流.7z

调试rtsp收发流时,经常会需要抓包以确认是网络问题还是程序问题还是其它问题。通过tcpdump或者wireshark抓到的包通常是rtp流,保存为.pcap格式文件后中,可通过wireshark进行解析,得出h264裸流,并保存为文件。 我这里有一段rtp流文件,作为演示使用(这个文件有点不标准,一般一个nal打一个mark,但这里是一帧打一个mark)

2021-09-21

各种函数零点问题的处理

高观点下函数导数压轴题的系统性解读 突出高观点,突出系统 观点越高,问题越简单, 观点越高,问题越透彻, 高观点并不是想不到,而是用最朴素的思想去推动整个思维过

2017-12-10

electric fence

内存调试工具electric fence. software that overruns the boundaries of a malloc()memory allocation, software that touches a memory allocation that has been released by free(). Unlike other malloc() debuggers, Electric Fence will detect read accesses as well as writes, and it will pinpoint the exact instruction that causes an error.

2016-04-05

A tour of C++

C++ 作者介绍C++的著作,精简全面。

2014-07-12

SDL tutorials

SDL 图形库经典教材,详细,step by step.

2014-07-12

打印日历程序的一种实现

本程序实现打印日历,可以输入年,即可打印出该年的每个月的日历;输入年和月分,则可以打印出这年这月的日历信息。

2013-12-01

Embedded Linux System Design and Development Source code

The Embedded Linux System Design and Development source code This book is worth reading.

2013-09-05

<<Programming from the Ground Up>> by Jonathan Bartlett

This book is not a reference book, it is an introductory book. It is therefore not suitable by itself to learn how to professionally program in x86 assembly language, as some details have been left out to make the learning process smoother. The point of the book is to help the student understand how assembly language and computer programming works, not to be a reference to the subject. Reference information about a particular processor can be obtained by contacting the company which makes it.

2013-04-03

The java tutorial

Java Program Tutorial. There have many skill for Java program.

2012-08-16

fb_jumpball.c

网上的关于frame buffer 的一个运用的例子。

2012-05-29

DMA Programming in Linux

DMA Programming in Linux.

2012-05-23

Direct Memory Access in Linux.doc

Direct Memory Access in Linux.

2012-05-23

Memory Mapping and DMA.pdf

Linux memory management - emphasis on techniques that are useful to the device driver writer.

2012-05-23

Hijacking the Linux Kernel.pdf

A new method of hijacking the Linux Kernel

2012-05-23

通过/dev/mem进行恶意代码注入(英语原文pdf)

通过/dev/mem进行恶意代码注入 英语原文,学习/dev/mem 相关的知识!

2012-05-23

linux frame buffer 学习资料

linux frame buffer 相关的资料。相关framebuffer 的学习还可以参考Linux 2.2 Framebuffer Device Programming Tutorial

2012-05-19

嵌入式Linux 上的C语言编程实践

Linux 嵌入式C语言编程实践Linux 嵌入式C语言编程实践

2012-04-27

autotools 工具学习

linux 中的 autotools 工具集学习。

2012-04-22

nweb: a tiny, safe Web server (static pages only)

nweb: a tiny, safe Web server (static pages only)

2012-04-22

空空如也

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

TA关注的人

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