Levon's Blog

微信: L6241425

1. 基础

1.1 进程的虚拟内存

程序运行进程的总大小可以超过实际可用的物理内存的大小。每个进程都可以有自己独立的虚拟地址空间。然后通过CPU和MMU把虚拟内存地址转换为实际物理地址。

0
阅读全文 »

1. 常见的GC算法

GC 是一种自动管理内存的技术,用来回收(释放) heap 中不再使用的对象。GC 过程中涉及到两个阶段:

  1. 区分活对象(live object)与垃圾对象(garbage)
  2. 回收垃圾对象的内存,使得程序可以重复使用这些内存
阅读全文 »

1. 基础术语

1.1 并发和并行

  • 并发: 一个cpu上能同时执行多项任务,在很短时间内,cpu来回切换任务执行(在某段很短时间内执行程序a,然后又迅速得切换到程序b去执行),有时间上的重叠(宏观上是同时的,微观仍是顺序执行),这样看起来多个任务像是同时执行,这就是并发。

  • 并行: 当系统有多个CPU时,每个CPU同一时刻都运行任务,互不抢占自己所在的CPU资源,同时进行,称为并行。

img
阅读全文 »

1. alacritty

1.1 介绍

iterm2 无疑是所有平台里功能最强的终端,遗憾的是目前 GPU 加速并不完美。

alacritty是目前性能最强的终端之一. 它使用GPU进行渲染,可以做到其他启动器无法实现的性能优化。

尤其 tmux配合alacritty, 使用下来比 iTerm2 更快更顺手更省电。

阅读全文 »

1. 进程和线程

1.1 进程

当我们运行可执行文件后,它会被装载到内存中,接着 CPU 会执行程序中的每一条指令,那么这个行中的程序,就被称为进程。

进程的基本状态

在一个进程的活动期间至少具备三种基本状态,即运行状态、就绪状态、阻塞状态。

  • 运行状态(Running):该时刻进程占用 CPU;
  • 就绪状态(Ready):可运行,由于其他进程处于运行状态而暂时停止运行;
  • 阻塞状态(Blocked):该进程正在等待某一事件发生(如等待输入/输出操作的完成)而暂时停止运行,这时,即使给它CPU控制权,它也无法运行;
进程的三种基本状态
阅读全文 »

1. Iptables 的前端工具

iptables 直接操作 netfilter,但很多发行版提供了更高层的前端。它们之间不是替代关系,而是不同层级的操作入口,最终都作用于内核的 netfilter。

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#3B82F6', 'primaryTextColor': '#1E3A5F', 'primaryBorderColor': '#2563EB', 'lineColor': '#60A5FA', 'secondaryColor': '#10B981', 'tertiaryColor': '#F59E0B'}}}%%
flowchart LR
    A["用户"] --> B["firewalld"]
    A --> C["ufw"]
    A --> D["iptables"]
    A --> E["nftables"]
    B --> F["netfilter(内核)"]
    C --> F
    D --> F
    E --> F

    classDef user fill:#F59E0B,stroke:#D97706,color:#fff
    classDef frontend fill:#3B82F6,stroke:#2563EB,color:#fff
    classDef kernel fill:#10B981,stroke:#059669,color:#fff

    class A user
    class B,C,D,E frontend
    class F kernel
阅读全文 »

1. Conntrack 连接跟踪:iptables 的 “ 记忆力 “

连接跟踪(Connection Tracking,简称 conntrack)是 netfilter 最核心的子系统之一,也是理解有状态防火墙的关键。

阅读全文 »
0%