-
Linux环境编程与内核之线程
线程和进程在Linux下,程序或可执行文件是一个静态的实体,它只是一组指令的集合,没有执行的含义。进程是一个动态的实体,有自己的生命周期。线程是操作系统进程调度器可以调度的最小执行单元。进程和线程的关系如图: 一个进程可能包含多个线程,传统意义上的进程,不过是多线程的一种特例,即该进程只包含一个线程。为什么要有多线程?举个生活中的例子,这就好比去银行办理业务。到达银行后,首先找到领导的机器... -
Linux环境编程与内核之信号
信号概念信号是一种软件中断,用来处理异步事件。内核递送这些异步事件到某个进程,告诉进程某个特殊事件发生了。这些异步事件,可能来自硬件,比如访问了非法的内存地址,或者除以0了;可能来自用户的输入,比如shell终端上用户在键盘上敲击了Ctrl+C;还可能来自另一个进程,甚至有些来自进程自身。信号的本质是一种进程间的通信,一个进程向另一个进程发送信号,内核至少传递了信号值这个字段。实际上,通信的... -
操作系统
前言我的博客中大部分文章都离不开操作系统的知识。大学时反看过操作系统导论一书,写的很好,推荐看完以后再来学习本文,后面主要研究Linux操作系统,也分析了Linux内核的原理和安全性。本片打算从零写一个操作系统出来,语言暂且选择最近比较火 Rust,初步为以后开发一款安全且智能的嵌入式操作系统组准备。 -
计算机组成原理
前言这门的重要性对于我们来说无需多言,但该怎麼去写,以什么样的结构展开是一个很值得讨论的问题。 -
计算机网络
前言这是计算机基础很重要的一门课,大学为了应付学分草草了事,如今打算重拾计网,以开发和安全研究的视角重新审视学习计算机网路这门熟悉又陌生的学科。 -
Shell编程与工程管理
Linux shell 编程Linux 命令工具perf工程管理MakefileCMakeGitRepo -
BPF学习
Here’s something encrypted, password is required to continue reading.
-
eBPF学习
Here’s something encrypted, password is required to continue reading.
-
CPP语言编程
前言如果你是一个刚开始学CPP语言的小白,那么这篇文章并不适合你,本文主要聚焦于CPP语言的一些陷阱和缺陷,以及一些新标准的使用,和一些编程相关指南。我的本职工作是二进制安全研究,关于这些缺陷导致的致命问题也写了很多文章,本文不对漏洞的利用进行深入讲解。 Effective CPP 系列无锁编程内存模式设计模式C++ 11C++ 14C++ 17C++ 20C++ 23