跳转至

2023

Transport Layer Interface 考古

Transport Layer Interface

现在网络编程主要采用的是 BSD Sockets API,但实际上当年还有另一套 API,就是 TLI(Transport Layer Interface),后来 BSD Sockets 胜出,进入了 POSIX 标准,TLI 后面也标准化为了 XTI,现在可以在部分 Unix 系统中找到。TLI/XTI 的使用方法和 Sockets API 有些类似,但是比较特别的一点在于,Sockets API 第一步是 socket 调用,传的参数就决定了这是 TCP 还是 UDP 还是其他什么协议,而 TLI 是通过打开不同的设备文件来进行区分:

int fd = t_open("/dev/udp", O_RDWR, NULL);

比如 TCP 就是 /dev/tcp,UDP 就是 /dev/udp,同理还有 /dev/icmp 等等。这颇有 Unix 的哲学:everything is a file。而 BSD Sockets API 则是有对应的系统调用,libc 基本不需要做什么事情。

OpenBSD xonly 实现原理

背景

最近看到 xonly status,看到 OpenBSD 最近在实现 xonly,也就是让一些页只能执行,不能读不能写。以往类似的做法是 W^X,也就是可以执行的时候不能写,可以写的时候不能执行。显然,xonly 是更加严格的,连读都不可以。查了一下历史,W^X 最早也是在 OpenBSD 中实现的,说不定以后 xonly 也会被各个操作系统实现。

Solaris 11.4 安装

下载安装镜像

访问 https://www.oracle.com/solaris/solaris11/downloads/solaris-downloads.html,点击下载,登录后跳转到一个新的页面。在 Platform 下拉框选择 x86,会出现一系列可以下载的文件。以 11.4.42.111.0 为例,需要下载的是:V1019840-01.iso Oracle Solaris 11.4.42.111.0 Interactive Text Install ISO (x86) for (Oracle Solaris on x86-64 (64-bit)), 890.5 MB。可以直接在浏览器中下载,也可以点击网页中的 WGET Options,用 wget 脚本下载。

下载以后,挂载 ISO 到虚拟机,正常按照指示进行安装。

FreeBSD/NetBSD/OpenBSD/DragonFlyBSD Cookbook

背景

最近在维护 lsof 的时候,需要在 FreeBSD/NetBSD/OpenBSD/DragonFlyBSD 上进行开发和测试,于是就装了虚拟机,特此记录我在使用过程中,与 Linux 不一样的一些常用 FreeBSD/NetBSD/OpenBSD/DragonFlyBSD 命令。

CHI 学习笔记

本文的内容已经整合到知识库中。

CHI 介绍

CHI 协议是 AMBA 5 标准中的缓存一致性协议,前身是 ACE 协议。最新的 CHI 标准可以从 AMBA 5 CHI Architecture Specification 处下载。

相比 AXI,CHI 更加复杂,进行了分层:协议层,物理层和链路层。因此,CHI 适用于片上网络,支持根据 Node ID 进行路由,而不像 AXI 那样只按照物理地址进行路由。CHI 的地位就相当于 Intel 的环形总线。CHI 也可以桥接到 CCIX 上,用 CCIX 连接 SMP 的的多个 Socket,或者连接支持 CCIX 的显卡等等。

Intel 处理器

Xeon 系列

命名方式

  • 第一位数字:8-9 对应 Platinum,5-6 对应 Gold,4 对应 Silver,3 对应 Bronze
  • 第二位数字:对应代次,1 对应 1st Generation,2 对应 2nd Generation,依此类推
  • 第三位第四位数字:一般越大性能越好
  • 后缀:H/L/M/N/P/Q/S/T/U/V/Y/Y+/+
  • L:大内存
  • M:媒体/大内存
  • N:网络
  • P:虚拟化,IaaS
  • Q: 水冷
  • S:存储/搜索
  • T:长寿命
  • U:单插槽
  • V:虚拟化,SaaS
  • Y: Speed Select

AMD 处理器

Ryzen 系列

注:下表中省略了 PRO 前缀,部分型号有带 PRO 和不带 PRO 的版本,部分型号仅有带 PRO 的版本,部分型号没有带 PRO 的版本。

Ryzen 5000

代号 用途 核显 插槽 微架构 型号
Vermeer 桌面 AM4 Zen 3 5950X/5945/5900(X)/5845/5800(X(3D))/5700(X(3D))/5645/5600(X(3D))
Chagall 工作站 sWRX8 Zen 3 5995WX/5975WX/5965WX/5955WX/5945WX
Cezanne 桌面 GCN5 AM4 Zen 3 5750G(E)/5700G(E)/5650G(E)/5600G(E)/5600GT/5500(GT)/5350G(E)/5300G(E)
Cezanne 笔记本 GCN5 FP6 Zen 3 5980HX/5980HS/5900HX/5900HS/5800H(S)/5800U/5600H(S)/5600U/5560U/5400U
Barceló 笔记本 GCN5 FP6 Zen 3 5825U/5825C/5625U/5625C/5425U/5425C/5125C
Lucienne 笔记本 GCN5 FP6 Zen 2 5700U/5500U/5300U

注:Ryzen 5 5500 虽然代号是 Cezanne,但是去掉了核显。