2021年12月9日

摘要: 缘由 最早学习web开发时,在告别了最开始写web服务的兴奋之后,带来的是更多的困惑: web开发与操作系统、网络、数据结构算法这些之间的关系是什么?为什么我感觉我只是在写一些很简单的业务逻辑和数据结构算法没有什么关系? web框架的原理是什么?在整个web服务过程中他做了那些事? 除了web场景之 阅读全文
posted @ 2021-12-09 15:43 yangzhe97 阅读(113) 评论(0) 推荐(0) 编辑

2021年11月4日

摘要: 1.内存管理基础 程序运行时映像 进程映像运行时变化 栈上变化:随函数执行过程动态变化 可使用gdb打印观察,教学见https://www.icourse163.org/course/NJU-1449521162 堆上变化:通过malloc/free动态在堆上分配和释放 堆内存管理 基础 mm_st 阅读全文
posted @ 2021-11-04 21:30 yangzhe97 阅读(90) 评论(0) 推荐(0) 编辑

2021年10月16日

摘要: 目的: 1.练习泛型语法 2.练习面向对象 3.练习接口设计 4.学习邓俊辉老师的《数据结构》 typedef int Rank; #define DEFAULT_CAPACITY 3 template <typename T> class Vector { public: //构造函数 Vecto 阅读全文
posted @ 2021-10-16 18:32 yangzhe97 阅读(33) 评论(0) 推荐(0) 编辑

2021年10月5日

摘要: 可执行文件的生成过程 预处理 删除"#define"并展开所定义的宏 处理所有条件预编译指令,如"#if" ,"#ifdef","#endif"等 插入头文件到"#include"处,可以递归方式进行处理 删除所有的注释"//"和"/* */" 添加行号和文件名标识,义便编译时编译器产生调试用的行号 阅读全文
posted @ 2021-10-05 19:00 yangzhe97 阅读(220) 评论(0) 推荐(0) 编辑

2021年10月4日

摘要: 基于对象程序设计 基于对象即对应了面向对象三大特征中的“封装”,可以简单概括为: 将一组关联的数据和一组对应的操作绑定在一起 优点: 模块化,将系统分解为若干个对象的交互,降低了问题的复杂度 将接口与实现分离,实现了具体实现的灵活性 设计目标: 可读性: 内存安全 设计过程: 设计类的成员变量 选择 阅读全文
posted @ 2021-10-04 16:26 yangzhe97 阅读(69) 评论(0) 推荐(0) 编辑

2021年7月25日

摘要: socket系统调用背后:Linux内核做了什么? listen 与 accept 内核在我们调用listen方法后,就已经为这个监听端口建立了SYN队列和ACCEPT队列,当客户端使用connect方法向服务器发起TCP连接,客户端的SYN包到达服务器后,内核会将这一信息放到SYN队列,同时回一个 阅读全文
posted @ 2021-07-25 20:49 yangzhe97 阅读(225) 评论(0) 推荐(0) 编辑

2021年7月23日

摘要: Linux内核处理网络包流程 ⾸先在开始收包之前,Linux 要做许多的准备⼯作: 创建ksoftirqd线程,为它设置好它⾃⼰的线程函数,后⾯就指望着它来处理软中断呢。 协议栈注册,linux要实现许多协议,⽐如arp,icmp,ip,udp,tcp,每⼀个协议都会将⾃⼰的处理函数注册⼀下,⽅便包 阅读全文
posted @ 2021-07-23 21:38 yangzhe97 阅读(104) 评论(0) 推荐(0) 编辑