Pybind Analyze

作用在于将 C++ 实现的函数封装为 module,供 python 代码调用。

想要理解 pybind 的封装逻辑,还需要理解 python 是如何使用 pybind 生成的内容的,即关键点在于 python 的 import 机制的基本原理。

SSH Local and Remote Port Forwarding

https://cdn.jsdelivr.net/gh/gaohongy/cloudImages@master/202411232237252.png 1

Understanding of forwarding

  1. 转发的是什么?

答:port forwarding 其中的 port 就已经指明了这一点,传输层的 port 标定了具体的 application,所以转发的实际是对于这个 application 的请求。

C++ Class Inheritance

Access Modifiers

  1. public: 成员可以被任意地方访问,包括类的外部
  2. protected: 成员可以被类本身及其子类访问
  3. private: 成员只能被类本身访问

We can use different modifier to modify super class and different modifier has different effect

Terminal

特性真实的虚拟终端 (VT)伪终端 (PTS)
硬件依赖直接与物理硬件(显示器、键盘)交互软件仿真,不直接与物理硬件交互
设备文件/dev/tty1, /dev/tty2 等/dev/pts/0, /dev/pts/1 等
使用场景物理机的控制台登录,无需图形界面图形终端仿真器、远程登录(如 SSH)会话
固定数量通常有 6 个或更多虚拟终端动态创建,按需分配
终端切换方式Ctrl + Alt + F1 到 Ctrl + Alt + F6软件仿真器或通过网络远程连接,如 ssh 登录

通过 /proc/<PID> 可以查看进程的相关信息,一些命令的实现也是基于这个文件

Linux Device Drivers

IO 设备

IO 设备的基本形态就是一些寄存器(以及一些 protocol,说明在寄存器接收到某些值时要做出何种处理) + 控制器,从而能够与 CPU 交互数据,通过 mmap 的方式映射到内存空间中,CPU 可以对这些寄存器的值进行修改

Runtime

在主板上增加 PLX 芯片以提供更多的 PCIe 通道

PCIe 设备插到 PCIe 插槽需要由 PLX 芯片提供支持

一个PCIe插槽在物理层面上确实只能插入一个设备。例如,你只能插入一张显卡或一块SSD到一个PCIe插槽中。但是通过PLX芯片等交换设备,可以让多个PCIe设备通过该插槽共享带宽并同时被RC识别和使用(PLX芯片实际上是在分配带宽,这并没有改变某一时刻 RC 只会和某个插槽上的一台设备进行通信的事实,对于资源有限的PCIe插槽环境比较有意义)

0%