您好🖐️,欢迎来到我的个人知识主页!🌞 我是**袁海桃** 🍑,一名 26 届的**应届硕士生**,本硕均就读于广州的 **华南理工大学**,计算机科班保研本校, 当前正在寻求 **C++ 后端开发** 相关的暑期实习机会,可 **5 月入职实习至 10 月**~ 🌟 如果您正在预期招聘一个**热爱开发、富有钻研精神、积极主动、强自驱力**的**潜力股学生**,十分希望您能给我一个面试机会🙏! 硕士阶段,我主要跟随导师聚焦**机器学习&深度学习**相关的应用研究,尝试过**金融时序预测**、**图网络推荐**方向,曾在**微信**做过半年的**推荐算法实习生**(科研型)。 在这过程中,我**清醒地意识到自己真正热衷于开发**,更喜欢 C++这样接近底层的语言,更爱好编程实践,因此希望自己未来职业生涯能够在 C++ 开发领域深耕发展! 由于是从算法转开发,我目前还没有 C++开发的实习经历,暂未接触过工业界实践,非常渴望能有一个锻炼自我的成长机会,期待加入优秀的团队,与优秀 Coder 并肩成长! 这个网站呈现了我对于计算机基础知识的学习笔记,涵盖 C++、计网、OS、数据库、数据结构、开发工具集等, 希望能让您更多地了解我的知识储备与学习习惯!(✒️关键字总结为:**电子笔记**、**系统化&易扩展的知识体系**) 笔记来自于不同时期,受限于个人当下认知,可能会存在一些错误理解,让您见笑了~😅 该网页左侧边栏为**笔记目录**,左上方支持按关键词搜索;右侧为当前笔记页的**标题大纲**,可滚动查看。 为了向您直观展示我的笔记组织,下方按板块罗列了笔记清单, 每个**文件图标**(例如 [[02-开发笔记/07-计算机网络/传输层/TCP 协议|TCP 协议]])都**链接到一份独立的笔记页面**,可点击跳转。 感谢您的阅览!🌻 <br> <br> # (1)C++ 相关 ###### 基础 - 声明说明符 - [[cpp-存储类说明符]]:存储类说明符(`static`,`extern`,`thread_local`,`register` )、存储持续性、链接性(内、外部) - [[02-开发笔记/01-cpp/cpp 基本概念/cpp-cv限定符|cpp-cv限定符]]:const(顶层、底层 const)、volatile - [[02-开发笔记/01-cpp/cpp 基本概念/cpp-constexpr 说明符|cpp-constexpr 说明符]]:constexpr、consteval、constinit - [[02-开发笔记/01-cpp/cpp 基本概念/cpp-inline 说明符|cpp-inline 说明符]]: 内联变量、内联函数 - 初始化 - [[02-开发笔记/01-cpp/cpp 基本概念/cpp-初始化声明|cpp-初始化声明]] :默认初始化、值初始化、零初始化、拷贝初始化、列表初始化等,静态变量的初始化机制 - [[02-开发笔记/02-c/c-初始化相关|c-初始化相关]]:指定初始化 - 其他 - [[02-开发笔记/01-cpp/预处理相关/cpp-宏|cpp-宏]]:宏定义、条件编译 - [[02-开发笔记/01-cpp/预处理相关/cpp-头文件说明|cpp-头文件说明]]:头文件引入、解决循环引用、分离式编译、使用建议 - [[02-开发笔记/01-cpp/cpp 基本概念/cpp-编译时名称查找|cpp-编译时名称查找]]:编译时名称查找顺序、名称隐藏 - [[02-开发笔记/01-cpp/cpp 基本概念/cpp-命名空间|cpp-命名空间]]:全局命名空间、内联命名空间、匿名命名空间、using 声明与 using namespace 指示、命名冲突报错 - [[02-开发笔记/01-cpp/cpp 基本概念/cpp-表达式|cpp-表达式]]: 表达式的值类别与值类型(lvalue, rvalue, xvalue)、常量表达式、字面量 ###### 类型相关 - 类型系统 - [[02-开发笔记/01-cpp/类型相关/cpp-类型别名|cpp-类型别名]]:`using` 与 `typedef`; - [[02-开发笔记/01-cpp/类型相关/cpp-类型转换|cpp-类型转换]]:标准转换(窄化转换)、用户定义转换、强制类型转换、隐式类型转换 - [[02-开发笔记/01-cpp/类型相关/cpp-类型推导|cpp-类型推导]]:类型推导规则、`auto`、`decltype`、`typeid`、结构化绑定 - 复合类型 - [[02-开发笔记/01-cpp/类型相关/cpp-数组相关|cpp-数组相关]]:静态数组、动态数组、字符数组 - [[02-开发笔记/01-cpp/类型相关/cpp-指针相关|cpp-指针相关]]:pointer to const & const pointer、数组指针与指针数组、字符指针、函数指针、类成员指针与成员函数指针 - [[02-开发笔记/01-cpp/类型相关/cpp-引用相关|cpp-引用相关]]: 左值引用、`const` 左值引用、右值引用、引用折叠、转发引用/万能引用、移动语义、完美转发; - 用户定义数据类型 - [[02-开发笔记/01-cpp/类型相关/cpp-结构体 Struct|cpp-结构体 Struct]] :struct 与 class 区别 - [[02-开发笔记/01-cpp/类型相关/cpp-位域 bit-field|cpp-位域 bit-field]]:位域定义、位域内存布局 - [[02-开发笔记/01-cpp/类型相关/cpp-联合体 Union|cpp-联合体 Union]]:union 初始化与赋值、匿名 union - [[02-开发笔记/01-cpp/类型相关/cpp-枚举类型 Enumeration|cpp-枚举类型 Enumeration]] :限定/未限定作用域枚举、枚举值、枚举前置声明、匿名枚举类型 ###### 函数相关 - [[02-开发笔记/01-cpp/函数相关/cpp-函数相关|cpp-函数相关]]: 函数参数、函数返回类型、函数声明、函数类型、函数签名、函数重载、谓词、`noexcept` 说明符 - [[02-开发笔记/02-c/c-函数相关|c-函数相关]]:可变参数、`void*` 形参或返回类型、`restrict` 关键字 - [[02-开发笔记/01-cpp/函数相关/cpp-可调用对象|cpp-可调用对象]]:lambda、函数对象、function 对象、bind 函数参数绑定、reference 包装器 ###### 动态内存管理 - [[02-开发笔记/01-cpp/内存管理/cpp-动态内存管理|cpp-动态内存管理]] :malloc/free 函数、new/delete 表达式、定位 new、memcpy 等内存操作 - [[02-开发笔记/01-cpp/内存管理/cpp-allocator|cpp-allocator]] :`std::allocator<T>` 分配器、`std::allocator_traits<>` 模版类 - [[02-开发笔记/01-cpp/内存管理/cpp-智能指针|cpp-智能指针]]:`unique_ptr<>`、`shared_ptr<>`、`weak_ptr<>`、删除器 ###### 类与对象 - 类相关 - [[02-开发笔记/01-cpp/类与对象/cpp-类的基本概念|cpp-类的基本概念]]:类的定义(访问说明符、成员)、类的前向声明 - [[02-开发笔记/01-cpp/类与对象/cpp-类的数据成员|cpp-类的数据成员]]:数据成员的初始化、静态数据成员、可变数据成员 - [[02-开发笔记/01-cpp/类与对象/cpp-类成员函数的基本说明|cpp-类成员函数的基本说明]]:`this` 指针、成员函数定义方式、各种说明符与限定符(`inline`、`static`、`const` 等) - [[02-开发笔记/01-cpp/类与对象/cpp-类的成员函数|cpp-类的成员函数]] :构造函数、析构函数、运算符重载、转换函数 - [[02-开发笔记/01-cpp/类与对象/cpp-对象模型|cpp-对象模型]] :类实例对象的内存模型、内存大小 - [[02-开发笔记/01-cpp/类与对象/cpp-类的友元|cpp-类的友元]] - [[02-开发笔记/01-cpp/类与对象/cpp-特殊类|cpp-特殊类]]:聚合类、字面值常量类、嵌套类、局部类 - [[02-开发笔记/01-cpp/内存管理/RAII 范式|RAII 范式]] - 面向对象编程 OOP: - [[02-开发笔记/01-cpp/类与对象/cpp-继承|cpp-继承]]:派生访问说明符、派生类与基类间的初始化构造及拷贝控制、派生类与基类的类型转换、虚继承、using 声明的作用 - [[02-开发笔记/01-cpp/类与对象/cpp-多态|cpp-多态]]:动态绑定、虚函数、虚函数表与虚指针、纯虚函数与抽象类 - [[02-开发笔记/01-cpp/类型相关/运行时类型识别 RTTI|运行时类型识别 RTTI]]:动态类型与静态类型、RTTI ###### 模版与泛型编程 - 模版相关 - [[02-开发笔记/01-cpp/模版与泛型编程/cpp-模版基本概念|cpp-模版基本概念]] :模版声明与定义、模版实例化、模版特例化、模版参数、模版参数推断、`typenname` 关键字作用 - [[02-开发笔记/01-cpp/模版与泛型编程/cpp-模版类别|cpp-模版类别]]: 别名模版、函数模版、类模版、成员模版、变量模版 - [[02-开发笔记/01-cpp/模版与泛型编程/cpp-type_traits 头文件|cpp-type_traits 头文件]]:类型转换模版、类型判断模版 ###### 输入输出相关(I/O 流) - [[02-开发笔记/01-cpp/输入输出相关/cpp-IO类说明|cpp-IO类说明]]:IO 库、IO 类的继承体系、IO 类关联的缓冲区、 IO 条件状态标志位、格式标志位、IO 操纵符(manipulator) - [[02-开发笔记/01-cpp/输入输出相关/cpp-输入输出处理|cpp-输入输出处理]] :IO 流操作、输入流总结、fstream 文件流、sstream 字符流 - [[02-开发笔记/02-c/c-输入输出相关|c-输入输出相关]]:`FILE*` 文件指针、非格式化 I/O、格式化 I/O ###### 异常机制 - [[02-开发笔记/01-cpp/异常处理相关/cpp-异常处理|cpp-异常处理]] ###### 标准库相关 - [[02-开发笔记/01-cpp/库使用/0-MOC-标准库头文件总结|0-MOC-标准库头文件总结]]:C 标准库头文件、C++标准库头文件、POSIX 头文件 - [[02-开发笔记/01-cpp/库使用/STL 标准模版库|STL 标准模版库]] :容器、容器适配器、迭代器、迭代器适配器、pair、tuple - [[02-开发笔记/01-cpp/库使用/cpp-随机数|cpp-随机数]] :`rand()` 随机数、随机数引擎类、随机数分布类 - [[02-开发笔记/01-cpp/多线程并发相关/cpp-多线程&同步|cpp-多线程&同步]]:线程对象、互斥量、条件变量、异步任务、原子操作 ###### 编译器相关 - [[02-开发笔记/01-cpp/编译器相关/cpp-编译器优化|cpp-编译器优化]] :拷贝省略、RVO 优化、常量传播 --- <br><br> # (2)OS 相关 ###### 基础 - [[02-开发笔记/05-操作系统/操作系统基本概念|操作系统基本概念]]:OS 中的虚拟化思想、用户态与内核态、系统调用 - [[02-开发笔记/05-操作系统/异常与中断|异常与中断]]:中断机制&中断处理流程、硬件中断与软件中断、trap 指令 ###### 内存管理 - [[02-开发笔记/05-操作系统/内存管理/虚拟内存管理|虚拟内存管理]]:地址翻译、分段、分页 & 多级页表、缺页异常、内存碎片、swap 交换空间 - [[02-开发笔记/03-计算机基础/机器视角下的进程|机器视角下的进程]]: - 进程的虚拟内存空间布局、运行时栈 - 常见程序错误: 栈溢出、缓冲区溢出(栈缓冲区溢出、堆缓冲区溢出)、段错误 ###### 进程管理 - [[02-开发笔记/05-操作系统/进程管理/进程基础概念|进程基础概念]]:进程状态、进程控制块 PCB、进程创建/终止/回收/加载、Linux 下进程控制相关 API、进程打开的文件 - [[02-开发笔记/05-操作系统/进程管理/进程间通信方式|进程间通信方式]]:管道、消息队列、共享内存、信号量、信号 - [[02-开发笔记/05-操作系统/进程管理/共享内存|共享内存]]:内存映射 mmap、POSIX 共享内存 ###### 多线程并发 - [[02-开发笔记/05-操作系统/并发相关/线程基础概念|线程基础概念]]: 什么是线程、进程与线程的区别、线程控制块 TCB、线程私有资源、线程上下文切换 - [[02-开发笔记/05-操作系统/并发相关/并发与并行|并发与并行]]:并发与并行 - [[02-开发笔记/05-操作系统/并发相关/同步原语|同步原语]] :锁、条件变量、信号量、原子操作 - [[02-开发笔记/05-操作系统/并发相关/常见并发问题|常见并发问题]]:条件竞争、死锁 --- <br><br> # (3)Linux 环境编程 ###### Linux 相关 - [[02-开发笔记/11-Linux/Linux 文件系统基本概念|Linux 文件系统基本概念]] - 文件系统布局、inode、目录、软链接与硬连接、文件类型 - 虚拟文件系统、伪文件系统(proc 与 sysfs) - Buffer 与 Page Cache、Write-back 回写策略 - 文件系统类型 - [[02-开发笔记/11-Linux/Linux 目录树与文件系统挂载|Linux 目录树与文件系统挂载]] :Linux 目录树、文件系统挂载、硬盘使用(分区、格式化、挂载) - [[02-开发笔记/11-Linux/shell 相关/Linux-环境变量与配置文件|Linux-环境变量与配置文件]]:登录配置文件、shell 配置文件、登录 shell 与交互式 shell - [[02-开发笔记/11-Linux/Linux 信号机制|Linux 信号机制]]:常用信号、信号发送、信号处理、信号屏蔽 - [[02-开发笔记/11-Linux/Linux 权限管理|Linux 权限管理]]:用户与组、文件权限 - [[02-开发笔记/11-Linux/Linux 软件管理|Linux 软件管理]]:dpkg、apt - [[02-开发笔记/11-Linux/Linux-终端 terminal|Linux-终端 terminal]]:终端、控制台、虚拟控制台、终端模拟器、伪终端介绍 ###### shell 相关 - [[02-开发笔记/11-Linux/shell 相关/shell 基本说明|shell 基本说明]]:shell 与 bash、shell 内部命令、shell 作业控制 - [[02-开发笔记/11-Linux/shell 相关/shell 变量|shell 变量]] - [[02-开发笔记/11-Linux/shell 相关/shell 脚本|shell 脚本]]:shell 脚本基本语法、解释器文件 - [[02-开发笔记/11-Linux/shell 相关/shell-输入输出与重定向|shell-输入输出与重定向]]:标准 IO、文件描述符、输入输出重定向、管道 Pipe、进程替换 ###### Linux 命令行 - [[02-开发笔记/11-Linux/Linux 命令行/Linux-命令行基本使用|Linux-命令行基本使用]]:帮助手册、命令列表、命令替换、条件执行、shell 选项设置、shell 变量操作、历史命令 - [[02-开发笔记/11-Linux/Linux 命令行/Linux-文件与目录相关命令|Linux-文件与目录相关命令]]:文件&目录&链接管理、文件打包/压缩/解压、文件权限管理、文件内容查看 - [[02-开发笔记/11-Linux/Linux 命令行/Linux-系统信息相关命令|Linux-系统信息相关命令]]:`/proc/*` 相关、`ulimit`、`lsof` 等 - [[02-开发笔记/11-Linux/Linux 命令行/Linux-进程相关命令|Linux-进程相关命令]]:进程相关(`pgrep`, `kill`, `pkill`)、后台作业(`&`, `jobs`, `nohup`)、`top`、`ps` - [[02-开发笔记/11-Linux/Linux 命令行/Linux-网络相关命令|Linux-网络相关命令]]:`ip *` 系列命令、网络状态相关(`ss`/`netstat`)、DNS 解析(`dig/nslookup`)、`ping`、`nc` - [[02-开发笔记/11-Linux/Linux 命令行/Linux-文件系统与磁盘管理相关命令|Linux-文件系统与磁盘管理相关命令]]:文件系统挂载 `mount`,`umount` 、磁盘空间使用情况 `df` 、磁盘分区 `fdisk`、块设备使用情况 `lsblk` ###### Linux 环境编程 - [[02-开发笔记/99-Unix 环境编程/文件 IO|文件 IO]]:C、C++、POSIX 文件 IO 相关 API - [[02-开发笔记/99-Unix 环境编程/高级 IO|高级 IO]]:阻塞/非阻塞 IO、同步/异步 IO、IO 多路复用 - [[02-开发笔记/99-Unix 环境编程/时钟 API|时钟 API]]:C、C++、POSIX 时钟相关 API、timerfd - [[02-开发笔记/99-Unix 环境编程/事件驱动模型|事件驱动模型]]:Reactor 模型、eventfd - 多线程并发 & 同步 API - [[02-开发笔记/05-操作系统/并发相关/POSIX 线程&同步 API|POSIX 线程&同步 API]]:POSIX 线程&同步原语 `<pthread.h>` 、POSIX 信号量 `<semaphore.h>` - [[02-开发笔记/01-cpp/多线程并发相关/cpp-多线程&同步|cpp-多线程&同步]]: C++标准库 `<thread>`, `<mutex>`,`<condition_variable>`, `<future>` 等 <br><br> # (4)计算机网络相关 ###### 应用层 - [[02-开发笔记/07-计算机网络/应用层/域名 & URL & URI|域名 & URL & URI]] - [[02-开发笔记/07-计算机网络/应用层/HTTP 协议|HTTP 协议]] :HTTP/1.1, 2, 3 协议、HTTPS 协议、HTTP 报文格式、HTTP 头部、HTTP 请求方法、状态码 - [[02-开发笔记/07-计算机网络/应用层/DNS 相关|DNS 相关]] :DNS 服务器、DNS 域名解析流程、DNS 缓存、hosts 文件 - [[02-开发笔记/07-计算机网络/应用层/代理协议与代理工具|代理协议与代理工具]] :SOCKS 代理协议、SS/SSR、V2Ray、Clash 代理工具 - [[02-开发笔记/07-计算机网络/应用层/SSH 协议|SSH 协议]] - [[02-开发笔记/07-计算机网络/应用层/电子邮件相关协议|电子邮件相关协议]]:SMTP、POP3、IMAP 协议 ###### 传输层 - [[02-开发笔记/07-计算机网络/传输层/TCP 协议|TCP 协议]] :TCP 报文、三次握手&四次挥手、滑动窗口机制(流量控制)、确认应答机制、重传机制(超时 & 快速)、拥塞控制 - [[02-开发笔记/07-计算机网络/传输层/UDP 协议|UDP 协议]]: UDP 报文、TCP 与 UDP 区别 - [[02-开发笔记/07-计算机网络/传输层/SSL & TLS 协议|SSL & TLS 协议]]: TLS 1.2/1.3 握手过程、密钥交换(RSA/ECDHE)、数字证书 ###### 网络层 - 路由转发 - [[02-开发笔记/07-计算机网络/网络层/路由转发|路由转发]]:路由转发流程、路由表 - [[02-开发笔记/07-计算机网络/网络层/网络地址转换 NAT|网络地址转换 NAT]] :NAT 工作原理 - IP 协议 - [[02-开发笔记/07-计算机网络/网络层/IP 协议|IP 协议]] :公网 & 私网地址,IPv4、IPv6 数据报 - [[02-开发笔记/07-计算机网络/网络层/IPv4 编址|IPv4 编址]] :分类编址、CIDR、子网掩码、子网划分、路由聚合 - [[02-开发笔记/07-计算机网络/网络层/IPv6 编址|IPv6 编址]] - 其他相关协议 - [[02-开发笔记/07-计算机网络/应用层/DHCP 协议|DHCP 协议]] - [[02-开发笔记/07-计算机网络/网络层/ICMP 协议|ICMP 协议]]:ICMP 报文格式、报文类型;ping 原理、traceroute 原理 - [[02-开发笔记/07-计算机网络/数据链路层/ARP 协议|ARP 协议]] :ARP 地址解析过程、ARP 缓存表 ###### 总结/其他 - [[02-开发笔记/07-计算机网络/总结/网络通信标识总结|网络通信标识总结 ]] :MAC 地址、IP 地址、端口号、Socket 标识 - [[02-开发笔记/07-计算机网络/总结/协议数据单元 PDU 总结|协议数据单元 PDU 总结]]: - 各层 PDU 及其封装:HTTP 报文、TCP 报文段、UDP 数据报、IP 数据报、帧 - 数据包拆分:MSS 与 TCP 分段、MTU 与 IP 分片 - [[02-开发笔记/07-计算机网络/总结/网络上两台主机之间的通信过程|网络上两台主机之间的通信过程]] :二层与三层通信、数据包中 IP 地址和 MAC 地址的变化 - [[02-开发笔记/07-计算机网络/总结/网络设备总结|网络设备总结]] :网卡、网线、集线器、网桥、交换机、路由器、Modem、光纤终端盒 - [[05-工具/网络相关工具/思科 Cisco Packet Tracer/Cisco Packet Tracer 工具|Cisco Packet Tracer 工具]]:组网示例、路由器配置说明 --- <br><br> # (5)数据库相关 - SQL/MySQL 基本语法 - [[02-开发笔记/08-数据库/SQL 语句|SQL 语句]]:数据定义 DDL、数据操作 DML、数据查询 DQL - [[02-开发笔记/08-数据库/SQL 数据库对象|SQL 数据库对象]]: 存储程序、游标、触发器、事件 - MySQL 相关 - [[02-开发笔记/08-数据库/MySQL 相关/MySQL InnoDB 引擎|MySQL InnoDB 引擎]]:数据存储层次、数据页、Buffer Pool、B+树索引实现(聚簇索引&二级索引、索引覆盖、最左匹配、索引下推)、倒排索引实现 - [[02-开发笔记/08-数据库/MySQL 相关/MySQL 索引|MySQL 索引]]: 主键索引、唯一索引、普通索引、前缀索引、全文索引、哈希索引、EXPLAIN 执行计划 - [[02-开发笔记/08-数据库/MySQL 相关/MySQL 锁|MySQL 锁]]:表锁(元数据锁、意向锁、自增锁)、行锁(记录锁、间隙锁、临键锁) - [[02-开发笔记/08-数据库/MySQL 相关/MySQL 事务|MySQL 事务]]:事务 ACID、隔离级别、快照读与当前读、MVCC、事务管理命令 - [[02-开发笔记/08-数据库/MySQL 相关/MySQL 日志|MySQL 日志]]: Server 层日志:binlog、relay log 等;InnoDB 存储引擎层日志:undo log、redo log; --- <br><br> # (6)数据结构与算法 ![[99-发布/0-MOC-数据结构与算法(publish)|0-MOC-数据结构与算法(publish)]] <br><br> # (7)设计模式 - 创建型模式: - [[02-开发笔记/16-设计模式/工厂模式|工厂模式]]:工厂方法模式、抽象工厂模式 - [[02-开发笔记/16-设计模式/单例模式|单例模式]] - 结构型模式: - [[02-开发笔记/16-设计模式/装饰器模式|装饰器模式]] - 行为型模式: - [[02-开发笔记/16-设计模式/策略模式|策略模式]] - [[02-开发笔记/16-设计模式/观察者模式|观察者模式]] --- <br><br> # (8)计算机基础相关 ###### 数值表示 - 数值表示 - [[02-开发笔记/03-计算机基础/数据的编码表示/有符号整数的表示|有符号整数的表示]]:有符号整数的表示(真值、原码、反码、补码) - [[02-开发笔记/03-计算机基础/数据的编码表示/无符号整数的表示|无符号整数的表示]] - [[02-开发笔记/03-计算机基础/数据的编码表示/浮点数的表示|浮点数的表示]]:定点数与浮点数、IEEE 754 浮点数标准 - [[02-开发笔记/03-计算机基础/数据的编码表示/Unicode字符编码|Unicode字符编码]]:ASCII 码、Unicode、UTF-8/16/32 编码方式、GBK 编码、常见乱码问题 - 数值转换 - [[02-开发笔记/03-计算机基础/数据的编码表示/有符号数与无符号数的转换|有符号数与无符号数的转换]]:有符号数与无符号数混用时的常见错误 - [[02-开发笔记/03-计算机基础/数据的编码表示/不同位宽的数据类型间的转换|不同位宽的数据类型间的转换]]:位扩展与位截断 - [[02-开发笔记/03-计算机基础/数据的编码表示/浮点数与有符号数之间的转换|浮点数与有符号数之间的转换]]:浮点数与有符号数的转换 ###### 进程相关 - [[02-开发笔记/03-计算机基础/计算机基础|计算机基础]]:大/小端字节序、机器语言/汇编语言/高级程序语言、指令集架构 ISA、API 与 ABI - [[02-开发笔记/03-计算机基础/机器视角下的进程|机器视角下的进程]]: - 进程的虚拟内存空间布局、运行时栈 - 常见程序错误: 栈溢出、缓冲区溢出(栈缓冲区溢出、堆缓冲区溢出)、段错误 - [[02-开发笔记/03-计算机基础/编译与链接/编译与链接|编译与链接]] - [[02-开发笔记/03-计算机基础/编译与链接/目标文件|目标文件]] - 目标文件的格式:ELF 头、各个节、节头部表 - 目标文件中涉及的几种表:节头部表、程序头部表、符号表、字符串表、重定位表 - [[02-开发笔记/03-计算机基础/编译与链接/链接|链接]]:符号解析、重定位、静态链接与动态链接 - [[02-开发笔记/03-计算机基础/编译与链接/静态库与动态库|静态库与动态库]] <br><br> # (9)项目文档 - [[66-项目文档/MyHttpServer 项目/MyHttpServer 项目说明|MyHttpServer 项目说明]] --- <br><br> # (10)工具集 ##### VSCode - [[05-工具/VSCode/VSCode 说明|VSCode 说明]] - [[05-工具/VSCode/VSCode 配置 C&C++ 开发环境|VSCode 配置 C&C++ 开发环境]] - [[05-工具/VSCode/VSCode 配置使用 Clangd 插件|VSCode 配置使用 Clangd 插件]] - [[05-工具/VSCode/VSCode 配置使用 CMake 插件|VSCode 配置使用 CMake 插件]] - [[05-工具/VSCode/VSCode 配置远程开发环境|VSCode 配置远程开发环境]] - [[05-工具/VSCode/VSCode 配置 Git 相关插件|VSCode 配置 Git 相关插件]] - [[05-工具/VSCode/VSCode 配置 Vim 键位环境|VSCode 配置 Vim 键位环境]] ##### Git - [[05-工具/git 使用/git 说明|git 说明]] - [[05-工具/git 使用/git 分支管理|git 分支管理]]:`git branch`、`git switch/checkout`、`git merger`、`git rebase` - [[05-工具/git 使用/git 远程仓库&远程分支管理|git 远程仓库&远程分支管理]]:`git remote`、`git push/fetch/pull` - [[05-工具/git 使用/git 工作区&暂存区管理|git 工作区&暂存区管理]]: `git stash`、`git restore`、`git rm`、`git clean` - [[05-工具/git 使用/git commit 管理|git commit 管理]]:`git reset`、`git reverse`、`git cherry-pick`、`git checkout` - [[05-工具/git 使用/git 标签管理|git 标签管理]]:`git tag` - [[05-工具/git 使用/git 信息查看|git 信息查看]]:`git status`、`git log`、`git show` - [[05-工具/git 使用/git diff 比较|git diff 比较]] - [[05-工具/git 使用/gitignore 说明|gitignore 说明]] ##### CMake - [[05-工具/CMake 构建工具/CMake 说明|CMake 说明]]:CMake 工作原理、基本概念、项目构建步骤、预设配置文件 - [[05-工具/CMake 构建工具/CMake 命令说明|CMake 命令说明]]:`cmake`、`cmake --build`、`cmake --install` - CMakeLists.txt 文件编写: - [[05-工具/CMake 构建工具/CMakeLists.txt 构建目标与属性|CMakeLists.txt 构建目标与属性]] - [[05-工具/CMake 构建工具/CMakeLists.txt 变量与缓存|CMakeLists.txt 变量与缓存]] - [[05-工具/CMake 构建工具/CMakeLists.txt 基本指令|CMakeLists.txt 基本指令]] ##### GNU 工具 - [[05-工具/GNU 工具/gcc 编译器|gcc 编译器]]:gcc 编译常用选项 - [[05-工具/GNU 工具/gdb 调试器|gdb 调试器]]:gdb 内置命令及使用、coredump 分析 - [[05-工具/GNU 工具/make 工具|make 工具]]:make 使用、makefile 编写 - [[05-工具/GNU 工具/clangd 工具|clangd 工具]]:clangd 配置 ##### Vim - [[05-工具/vim/vim 使用|vim 使用]]:vim 基本用法、编辑理念 - [[05-工具/vim/lazy.nvim 插件管理器|lazy.nvim 插件管理器]] - [[05-工具/vim/Neovim 插件|Neovim 插件]] - [[05-工具/VSCode/VSCode 配置 Vim 键位环境|VSCode 配置 Vim 键位环境]]