自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (2)
  • 收藏
  • 关注

原创 bcc基础代码——Hello world

bcc代码——Hello,world1、简单监控clone()系统调用,将相关的信息打印出来#!/usr/bin/pythonfrom bcc import BPFBPF(text="""int kprobe__sys_clone(void *ctx){ bpf_trace_printk("hello,world!\\n"); return 0;}""").trace_print()test="…"包含的是C语言编写的BPF程序kprobe__sys_clone()对应内核kpr

2021-03-07 15:38:55 635

原创 【Linux】中断实践(一)

中断实践(一)中断基础知识见:https://blog.csdn.net/DXflighting/article/details/111600973实验内容:自己虚拟出来一个设备,将该设备注册到系统中,执行自己写的中断服务例程。我们要写一个中断内核模块,申请一个中断线,一个中断线对应一个IRQ号,虚拟出来的设备可以与其他中断线共用一条。# include <linux/kernel.h># include <linux/init.h># include <linu

2020-12-25 11:17:21 230

原创 shell命令中的通配符

linux的shell命令中的通配符

2020-12-23 22:45:59 479 1

原创 【linux】中断基础知识

中断基础知识中断与中断函数在linux中,中断处理程序就是普普通通的c函数,只不过这些函数必须按照特定的类型声明,以便内核能够以标准的方式传递处理程序的信息,在其他方面它们与一般的函数没有什么不同,中断处理程序与其他内核函数的真正区别在于中断处理程序是被内核调用来响应中断的。中断机制是硬件在需要的时候向cpu发出信号,cpu暂时停止正在运行的工作,来处理硬件请求的一种机制。/proc/interrupts这个文件包含有哪些中断正在使用和每个处理器各被中断多少次的信息举例16号16:

2020-12-21 09:14:53 516

原创 【Linux】页表的实现与地址转换

页表的实现与地址转换页表是软件实现的,但是页表的查找是MMU完成的,所以硬件定义了页表的实现规则,软件做的只有选择页表的级别,是否使用huge page以及填充对应的权限标志位。每个进程都拥有一个自己的页表,在linux中,有一个页目录数组,这是分页机制的最高层,每个进程的页表对应其中的一个页目录项,通过cr3寄存器(存放页目录项的物理地址)可以访问。一个进程的页表,对应的页表项中对应页的物理地址。分页机制两级页表举例:两级表的第一级表称为页目录,存储在一个4K字节的页中,页目录表共有1K个表项,每

2020-12-09 15:03:17 1954 1

原创 【linux】内存管理基础(1)

内存管理页(page)内核中把物理页作为内存管理的基本单位,一般每个页的大小为4KB,例如在有1G的物理内存的机器上,物理内存会被划分为266144个页。内核中用struct page结构表示每个物理页,该结构体位于<linux/mm.types.h>中,事实上,最新Linux版本的struct page实现中大量用到union,也就是同一个元素在不同场景下有不同的意义。因为每个page frame都需要一个struct page来描述,一个Page frame占4KB,一个struct p

2020-12-06 09:55:58 237 2

原创 UDP下的Socket编程

UDP下Socket编程1、UDP的基础知识UDP的特点:(1) UDP是无连接的,即发送数据之前不需要建立连接。(2) UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。(3) UDP 是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。(4) UDP 支持一对一、一对多、多对一和多对多的交互通信。(5) UDP 的首部开销小,只有 8 个字节。UDP报文的组成UDP通信的流程比较简单,因此要搭建这么一个常用的UDP通信框架比较简单,如下图:由以上框图可以

2020-11-10 13:36:54 2212

原创 【linux】文件系统基础知识

VFS基础1. VFS在内核中与其他的内核模块的协同关系为了能够支持各种实际文件系统,VFS 定义了所有文件系统都支持的基本的、概念上的接口和数据 结构;同时实际文件系统也提供 VFS 所期望的抽象接口和数据结构,将自身的诸如文件、目录等概念在形式 上与VFS的定义保持一致。换句话说,一个实际的文件系统想要被 Linux 支持,就必须提供一个符合VFS标准 的接口,才能与 VFS 协同工作。实际文件系统在统一的接口和数据结构下隐藏了具体的实现细节,所以在VFS 层和内核的其他部分看来,所有文件系统都是相

2020-11-09 18:11:02 146

原创 【windows】查看系统的各种信息

win+R:msinfo32,如下图:打开后:可以查看各种信息如下:(以查看本机所有的环境变量为例)

2020-10-25 20:15:32 289

原创 【linux模块】打印进程虚拟内存空间

编写内核模块:实现打印进程地址空间进程地址空间相关的知识在博客:【linux】进程地址空间 ,内核模块的相关介绍与基本操作在:【linux】内核模块的插入与删除,建议看完基础知识再来学习打印进程地址空间。首先我们写一个程序(为打印进程地址空间做准备):#include <stdio.h>#include <stdlib.h>#include <unistd.h>int A;int B=0;int C=2;static int D;static int

2020-10-23 12:04:39 956

原创 【Linux】进程地址空间

进程地址空间前言Linux操作系统采用虚拟内存技术,因此系统中的所有进程之间以虚拟方式共享内存,对一个进程而言,它好像都可以访问整个系统的所有物理内存,即使单独一个进程,它拥有的地址空间也可以远远大于系统物理内存。地址空间概述进程地址空间由进程可寻址的虚拟内存组成,内存地址的给定的一个值,它要在地址空间范围内,比4021f000。这个值表示的是进程32位地址空间中的一个特定的字节。尽管一个进程可以寻址4GB的虚拟内存(32位的地址空间中),但这并不代表它就有权访问所有的虚拟地址。这些可被访问的合法地

2020-10-22 21:23:24 342

原创 【Linux】内核模块的插入和删除

Linux内核模块的插入和删除由于现在编译一次内核需要很长时间,那么有没有一种办法让我们写的代码不需要完全和Linux内核完全捆绑在一起?由此Linux内核提供了一种机制,叫可加载的Linux内核模块(LKD),即在Linux内核运行期间,可以把这个模块加载到Linux内核,当我们不需要这个模块时可以把这个模块卸载。下面将演示Linux内核模块从插入到删除的全过程:1、在ubuntu下创建helloworld.c文件,文件内容如下: 1 //必要的头文件 2 #include<linux

2020-10-03 00:17:55 1287

原创 【linux】进程管理

进程管理1. 进程与线程进程和线程是程序运行时状态,是动态变化的,进程和线程的管理操作(比如,创建,销毁等)都是有内核来实现的。Linux中的进程于Windows相比是很轻量级的,而且不严格区分进程和线程,线程不过是一种特殊的进程。程序本身并不是进程,进程是处于执行期的程序以及相关的资源的总称,而且完全可以存在两个或多个不同的进程执行的是同一个程序,并且两个或两个以上并存的进程还可以共享许多诸如打开的文件、地址空间之类的资源。2. 进程在Linux中的表示内核中进程的信息主要保存在struct t

2020-09-25 11:09:40 432

原创 概念:明文、密文、密码、密钥、对称加密、非对称加密、摘要、数字签名、数字证书

理解HTTPS前需要理解这些概念:明文、密文、密码、密钥、对称加密、非对称加密、摘要、数字签名、数字证书密码:密码学中的密码(cipher)和我们日常生活中所说的密码不太一样,计算机术语『密码 cipher』是一种用于加密或者解密的算法,而我们日常所使用的『密码 password』是一种口令,它是用于认证用途的一组文本字符串,这里我们要讨论的是前者:cipher。密钥:密钥是一种参数,它是...

2018-10-20 16:44:04 6747

原创 PDF免费在线转换网站分享

https://www.ilovepdf.com/

2018-10-10 10:28:10 3740 1

空空如也

空空如也

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

TA关注的人

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