Super-Lzzx
码龄3年
关注
提问 私信
  • 博客:17,581
    17,581
    总访问量
  • 21
    原创
  • 57,127
    排名
  • 201
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2021-06-25
博客简介:

weixin_59688955的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    279
    当月
    0
个人成就
  • 获得254次点赞
  • 内容获得9次评论
  • 获得321次收藏
  • 代码片获得1,363次分享
创作历程
  • 12篇
    2024年
  • 9篇
    2023年
成就勋章
兴趣领域 设置
  • 操作系统
    linuxubuntu
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

345人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

云原生安全项目Falco

Falco是Sysding公司在2016年5月正式开启的一款云原生运行时安全项目。功能​ Falco的主要功能是基于实时观测到的应用和容器的运行时安全威胁检测和告警,同时,Falco支持通过插件的方式检测和告警其他不同类型的安全风险,​ 用户及可以将系统调用事件作为Falco规则引擎处理的事件源,又可以将Kubernetes事件,云上活动事件身体任意第三方系统产生的事件作为Falco的事件源。Falco通过驱动的方式内置了两种捕获系统调用事件事件的方法。基于内核模块技术的内核模块驱动。
原创
发布博客 2024.10.24 ·
1047 阅读 ·
22 点赞 ·
1 评论 ·
14 收藏

Linux中的BPF安全

​ LSM(linux Security Module)中文翻译就是内核安全模块,从名字上来看是安全模块,其实LSM是一个在内核各个安全模块的基础上抽象出的,轻量级安全访问控制框架。该框架只是提供一个支持安全模块的接口,本身并不具备增加系统安全性的功能,具体的工作还是交给各个安全模块来做。​通俗一点来说,LSM只是搭建了一个舞台,具体的表演还是要具体实现的模块。​ LSM在内核中主要体现为一组安全相关的函数,是提供实施强制访问控制(MAC)模块的必要组件。可实现策略与内核源代码解耦,
原创
发布博客 2024.10.21 ·
1343 阅读 ·
13 点赞 ·
0 评论 ·
20 收藏

OOM killer过程分析

从内存分配函数一直到进程杀死函数,我们知道了,从内存分配到触发oomkiller,再到选择函数,这个过程其实是很严谨的一个过程,当触发oomkiller之后,操作系统并不会随便选择一个进程进行杀死,通过对系统中的进程进行筛选,打分之后再选择一个进程进行杀死。Linux提供了一个策略,可以让用户通过填写oom_score_adj文件来影响oom killer的选择,当你填-1000时,则表示该进程将不会被杀死。
原创
发布博客 2024.09.13 ·
1027 阅读 ·
8 点赞 ·
0 评论 ·
24 收藏

缺页异常分析

在malloc()和mmap()这两个用户态接口函数的内核实现时,它们只是建立了进程地址空间,在用户空间里可以看到虚拟内存,但没有建立虚拟内存和物理内存之间的映射关系。,并且linux内核必须处理此异常。异常分为同步异常和异步异常两种,通常异步异常指的是中断,同步异常指的是异常。
原创
发布博客 2024.08.20 ·
685 阅读 ·
20 点赞 ·
0 评论 ·
8 收藏

《操作系统 真相还原》第九章 线程

在高级语言中,线程是运行函数的另一种方式,也就是说,构建一套线程方法,让函数正在此线程中调用,然后处理器去执行这个函数,因此线程的实际功能就是相当于调用了这个函数,从而让函数执行。那么他跟普通的函数调用有什么区别呢?在一般的函数调用中,它是随着此函数所在的调度单元一块上处理器运行的,这个调度单元可能是这个进程,但也可能是某个线程,你可以当他是顺便执行的,也就是说咱们的处理器并不是单独的执行它。
原创
发布博客 2024.04.23 ·
747 阅读 ·
16 点赞 ·
0 评论 ·
11 收藏

《操作系统 真相还原》第八章 内存管理系统

内存池可以看成一个资源库,什么是资源呢?其实顾名思义,资源当然就是内存了。在前面的章节中,咱们实现了分页机制,所以现在地址分为了虚拟地址和物理地址,为了有效地分配他们,所以这里我们需要实现虚拟地址的内存池和物理地址的内存池。
原创
发布博客 2024.04.09 ·
1871 阅读 ·
26 点赞 ·
0 评论 ·
30 收藏

《操作系统真想还原》第七章 中断

首先我们梳理一下过程:IRQ0引脚的时钟中断信号频率是由8253计数器0设置的,所以我们要使用计数器0时钟中断信号肯定要循环,所以这里我们采用方式2计数器初值我们采用11932,这是因为计数器0的工作频率是1.19318MHz,这里我们为了实现100Hz的中断信号,所以我们需要1.19318M/100,这样就得出了我们需要的初始值了。本次我们构建一个device目录,然后目录下创建timer.c程序100//咱们所期待的频率1193180//计数器平均CLK频率。
原创
发布博客 2024.03.22 ·
976 阅读 ·
15 点赞 ·
1 评论 ·
15 收藏

《操作系统真相还原》第六章 加载内核

我们之前直接使用BIOS中断或者是往显存中写入我们的字符。之前我们还学了点显卡的知识,但是不多,没有详细的介绍显卡的端口,如同硬盘控制器那样,我们先看看显卡中的寄存器介绍如图,这是寄存器的目录,上面的目录是寄存器的分组,前四组寄存器被分为了两类寄存器,即Address Register和Data Register。
原创
发布博客 2024.03.12 ·
906 阅读 ·
19 点赞 ·
1 评论 ·
27 收藏

《操作系统真相还原》第五章 保护模式进阶,向内核迈进 下

举个例子,我们有一座房子,我们是房子的主人,我们当然可以自由进出,但是对于外人来说,必须经过我们的同意才可以进入。没有我们的同意他也就不可以进入。相当于对于这个房子来说,我们的特权级是高于其他人的。在计算机中,我们的特权级分为4中情况,分别是0,1,2,3,我们从计算机的启动到mbr再到loader以及内核都是0级特权级,下面就是各特权级的使命门结构是使得处理器从低特权级转移到高特权级的唯一途径,门结构是记录一段程序起始地址的描述符,它用来描述一段程序。
原创
发布博客 2024.03.08 ·
1826 阅读 ·
40 点赞 ·
1 评论 ·
34 收藏

分段机制源码分析

DS的Access Byte=0x93,意味着P=1(合法的Entry Pr必须为1),DPL=0,S=1,这里该段只能在Ring 0下访问,该段是数据段。CS的Access Byte=0x9b,意味着P=1(合法的Entry Pr必须为1),DPL=0,S=1,这里该段只能在Ring 0下访问,该段是代码段。CS和DS的flags为0xc0,所以G=1,意味着4K为一个页面,B/D为1,1-32位段;其中flags代表了40-47位的access byte和52-55位的flags。
原创
发布博客 2024.02.28 ·
391 阅读 ·
9 点赞 ·
0 评论 ·
7 收藏

《操作系统真相还原》第五章 保护模式进阶,向内核迈进 上

在linux2.6内核中,使用detect_memory函数来获取内存容量,其函数本质上是通过BIOS中断0x15实现的,分别是BIOS中断0x15的3个子功能,子功能号需要存放到寄存器EAX或AX中,下面介绍一下这三种模式。EAX=0xE820:遍历主机上全部内存AX=0xE801:分别检测低15MB和16MB~4GB内存,最大支持4GBAH=0x88:最多检测64MB内存,实际内存超过此容量也按照64MB返回。
原创
发布博客 2024.02.27 ·
927 阅读 ·
19 点赞 ·
0 评论 ·
25 收藏

《操作系统真相还原》第四章 保护模式入门

保护模式下内存段不再是段寄存器加载一下段基址就好了,段变得复杂起来,段的信息也开始增加,我们需要提前把段定义好再开始使用。全局描述符表就是保护模式下内存段的登记表。我们看张图就能理解这个图片展示的很清晰了。这章从为什么有保护模式到保护模式下的寄存器,寻址,运行模式,指令的扩展,到保护模式特有的全局描述符表。后面的全局描述符表部分还是十分的复杂而且有难度,还是需要反复的思考和揣摩。参考添加链接描述添加链接描述。
原创
发布博客 2024.01.18 ·
977 阅读 ·
16 点赞 ·
1 评论 ·
20 收藏

《操作系统真相还原》第三章 完善MBR

首先我们得先了解什么是地址,一句话概括就是各符号相对于文件开头的偏移量。编译器的给各符号进行编址。将源代码中的每一个符号都按照本硬件平台的特性分配空间,这些符号在空间上都是彼此相连,连续分布,他们在程序中距第一个符号的距离就是它们在程序中的地址。其实偏移量的本质就是地址,每个变量的地址是前一个变量的地址+前一个变量的内存空间大小。汇编命令反汇编命令0x7c00表示起始地址。我们应该根据我们的实际代码对其进行修改。接下来我们看一个汇编程序来真实的感受一下地址mov ax,$$
原创
发布博客 2023.11.28 ·
881 阅读 ·
19 点赞 ·
0 评论 ·
19 收藏

进程管理的学习

程序:程序通常是指完成特定任务的一系列指令集合或一个可执行文件,不具有生命力。进程:进程是一段执行中的程序。一个进程包括代码段,用户栈,数据段,内核栈和堆。进程是操作系统分配内存,cpu时间片等资源的基本单位。进程是用来实现多进程并发的实体,用于实现对cpu的虚拟化,让每个进程都感觉拥有cpu。实现cpu虚拟化的核心技术是上下文切换以及进程调度。
原创
发布博客 2023.11.13 ·
74 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《操作系统真相还原》第二章 编写MBR主引导记录,让我们开始掌权

BIOS的中文位基本输入输出系统。BIOS的主要工作就是检测,初始化硬件,硬件提供了一些初始化的功能调用,BIOS直接调用就好了。BIOS还建立了中断向量表,可以通过“int中断号“来实现相关的硬件调用,也就是对硬件进行I/O操作,也就是输入输出。但是BIOS的空间很小,只有64KB,所以可以做到的I/O操作很少,也是因为BIOS毕竟是在实模式下,只需要选择一些重要的,可以保证计算机运行的基本操作就可以了。这也就是BIOS被称为基本输入输出系统的原因。
原创
发布博客 2023.11.13 ·
115 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

通过inode初步认识文件系统

在Linux 文件系统中,inode值相同的文件是硬链接文件,也就是说,不同的文件名,inode可能是相同的,一个inode值可以对应多个文件。理解链接文件并不难,看看例子就会了。在Linux中,链接文件是通过ln工具来创建的。(1) 硬链接,以文件副本的形式存在。但不占用实际空间。(2) 不允许给目录创建硬链接。(3) 硬链接只有在同一个文件系统中才能创建。(4) 删除其中一个硬链接文件并不影响其他有相同 inode 号的文件。
原创
发布博客 2023.11.02 ·
207 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

系统调用的学习

1.应用程序调用用户空间实现的应用编程接口来编程,而不是直接执行系统调用。一个接口函数可以由一个系统调用实现,也可以由多个系统调用实现,甚至完全不使用任何系统调用实现。2.系统调用可以理解为一个应用程序要调用系统功能的入口,而操作系统通过把守这个入口,来协调管理应用程序对系统功能的调用,来保证系统的安全性。3.发出系统调用请求是在用户态,而对系统调用的响应处理是在核心态下进行。
原创
发布博客 2023.10.28 ·
97 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

打印进程的虚拟地址空间

一个可执行文件被执行的同时也伴随着一个新的进程的创建。Linux会为这个进程创建一个新的虚拟地址空间,然后会读取可执行文件的文件头,建立虚拟地址空间与可执行文件的映射关系,然后将CPU的指令指针寄存器设置成可执行文件的入口地址,然后CPU就会从这里取指令执行。一个可执行文件包含可被CPU执行的指令和待处理的数据,上CPU之前,指令和数据全部被翻译成成二进制的形式。在可执行的文件的内部,划分出了一些专门的段,如代码段,数据段,BSS段等。
原创
发布博客 2023.10.16 ·
272 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

李治军老师操作系统实验合集

实验一 熟悉实验环境实验环境和工作模式准备环境进入到 oslab 所在的文件夹$ cd /home/shiyanlou/oslab/解压,并指定解压到 /home/shiyanlou/这样的话,在 /home/shiyanlou/oslab/中就能找到解压后的所有文件解压代码$ tar -zxvf hit-oslab-linux-20110823.tar.gz \ -C /home/shiyanlou/查看是否解压成功$ ls -al除了压缩包hit-oslab-linux-201
原创
发布博客 2023.10.09 ·
2838 阅读 ·
10 点赞 ·
1 评论 ·
65 收藏

Linux内核模块大扩展-作业

6. 内核模块中采用红黑树算法,并输出树中的每个节点(参考内核代码)第5和第6目前还未完成,在接下来的学习中会逐步解决。5. Makefile文件中,至少有2个以上的文件。不知为何前面两次传入参数0709和0608失败。
原创
发布博客 2023.09.18 ·
77 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多