# 计算机语言与系统基础知识涵盖操作系统架构、多种编程语言特性、Web技术、网络协议、机器学习等计算机基础知识笔记

### 语言与系统基础

#### 操作系统与程序结构

**操作系统**: 应用，内核，驱动，硬件

进程管理，手动内存管理，文件管理，设备管理

系统调用，进程，线程，套接字，信号量

结构体，回调函数

#### 编程语言

**C 语言**: 静态类型，预处理，编译，汇编，链接

内存管理，错误处理，结构体

内存映射，端口 I/O

**Python**: 动态类型，自动内存管理，(GIL) 单线程，多进程，Python 环境

源码，先生成字节码，一行一行生成机器码，调用 C 函数的机器码

**Java**: 静态类型，即时编译，直接使用硬编码生成机器码，Spring 框架，jvm 环境

**JavaScript**: 动态类型，单线程，在浏览器中运行（V8 引擎 c++ 编写），node.js 运行时

**TypeScript**: 静态类型，需编译器转译 JavaScript，编译前就进行类型检查，node.js 运行时

**Go**: 高并发，直接编译为机器码，自带垃圾回收，语法简单开发效率高，云原生

**C++**: 面向对象，多范式编程，语法复杂开发效率低，手动管理内存，高性能

**C#**: 开发效率高，性能较高，需 .NET 环境，静态类型，即时编译，游戏引擎生态

**PHP**: 解释型语言，服务器脚本语言，动态类型

**Rust**: 性能，内存安全，开发效率都不错

#### Python 相关

sys.path: 导入模块时（或模块中的类，函数，变量）的搜索路径

---

### Web、网络与通信

#### Web 服务器与网络

**Apache**: web 服务器，进程/线程模式处理并发

**Ngnix**: web 服务器，事件循环处理并发，反向代理

**代理**: 客户端部署，代表客户端向服务器请求

**反向代理**: 服务器部署，隐藏真实服务器 ip，处理 ssl/tsl 加密

**套接字**: 通信端点，操作系统提供的编程接口，唯一标识 ip+端口

**邮件系统**: 发件协议 SMTP，收件协议 POP3/IMAP

**网络协议**: 定规范（发送什么样的消息）

#### 浏览器开发工具

**浏览器爬虫**:

- network 面板：筛选信息（尤其是 xhr 和 fetch），预览和响应（服务器返回的数据，判断数据价值），载荷（浏览器发给服务器的数据，破解请求规律），标头（伪造请求身份），启动器（找加密代码入口）
- Element 面板：分析静态 HTML
- Console 面板：调试 JS 代码
- Application 面板：查找 Localstorage 中的 token

#### HTTPS 加密

HTTPS: 服务器拥有证书（公钥，身份，签名），浏览器有（CA 根证书列表来验证证书），浏览器通过证书公钥加密，服务器通过私钥解密

#### 前端框架

**React**: JSX 语法可以直接在 JavaScript 代码中编写 HTML 结构，社区庞大

**Vue**: 渐进式框架，中文社区友好

#### DNS 解析记录

- **A 记录**: 将域名指向一个 ipv4 地址
- **AAAA 记录**: 将域名指向一个 ipv6 地址
- **CNAME 记录**: 将域名指向另一个域名
- **MX 记录**: 指定域名的邮件服务器
- **TXT 记录**: 用来验证域名所有权
- **NS 记录**: 指定 DNS 服务器
- **PTR 记录**: ip 反查域名

日常说的根域名/裸域名：@

#### P2P 下载

**种子**: 依赖 tracker 服务器，包括文件元数据和服务器地址

**磁力链接**: 文件的哈希值，依赖 DHT（分布式哈希表）

---

### 开发工具与软件工程

#### 包管理器

pip，npm，pnpm，uv，conda

#### 软件工程

需求分析（功能），系统设计（架构，语言选择，框架选择，模块分离，接口），编码实现，软件测试，部署上线，运维

---

### 机器学习概览

机器学习 > 神经网络 > 深度学习

**机器学习**:

- 监督学习：学习输入到输出的映射关系
- 无监督学习：从无标签数据学习内在规律和结构
- 强化学习：通过与环境互动学习，根据行动获得奖励或惩罚
- 半监督学习：利用少量标注数据带动未标注数据学习，降低标注成本

**结构化数据算法（集成树）**: 随机森林，梯度提升树

**非结构化数据算法（深度学习）**: 卷积神经网络，Transformer 架构，循环神经网络

**神经网络**: 输入，加权求和，激活函数

---

### 其他技术与应用

#### 其他技术

**RSS 订阅**: 简易信息聚合

**Discourse**: 现代化的在线讨论社区

**端到端加密**: 本地生成私钥，与证书不同

**NAS**: 网络附加存储

#### 打印技术

**喷墨打印 (2D)**: 减色法混色原理

**激光打印 (2D)**: 发射激光在感光鼓上绘制静电图像，带弱负电的碳粉被吸附到感光鼓上，转印到纸上，高温把碳粉固定到纸上

**3D 打印**: 逐层打印

- 熔融堆叠成型（塑料）
- 光固化成型（树脂）
- 选择性激光烧结（金属粉）

#### 其他

**CAD**: 计算机辅助设计

**增程车**: 多了个燃油发电机
