平时林林星星给大家说的一些兴趣知识点,绝大部分童鞋都做的比较好,也做了较全面和深入的总结汇总,并及时分享到讨论群里,这也是我们一直鼓励和引导的学习氛围,赠人玫瑰手留余香也是这个道理。
为了帮助更多备战校招和实习生,春招等在校大学生们,这里简单汇总一下《剑指BAT》的兴趣作业。当你寒假玩累了,可以match几个去扩展自己的知识面。
1.负载均衡是什么?有哪些类型,作用是什么?(推荐Nginx、Haproxy、LVS)
2.TCP建立链接为什么要三次握手?两次握手为何不行?而断开链接需要四次辉手?
3.TCP建立链接的数据包交互流程, 状态, 拥塞控制和滑动窗口的实现,建议深入探究一下超时重传机制,看下内核如何在高负载时依然能处理大量数据包?
4.accept函数的实现是否有惊群效应?如果有原因是什么,怎么解决?(推荐看下Nginx如何解决惊群)
5.TCP 连接编程中的系列函数(socket、bind、listen、accept、connect、send/write、recv/read、close/shudown)哪些是阻塞的,哪些是非阻塞的,为何这么设计和实现?listen和 accept 的内核实现是什么?
6.多线程编程 线程游离态 信号量 锁
7.网络相关基本命令,如wget、curl、netstat、ss、tcpdump、route等命令的实现
8.CDN加速
9.视频缓存文件 视频是如何高效传输的?
10.Cookie和Seesion是什么,怎么实现?
11.移动端代理服务器 和 PC端代理服务器
12.千兆网卡和万兆网卡是什么,如何检测流量?
13.异构网络
14.netstat 命令 netstat -anl|greep 4000
15.ss 命令
16.跳跃表 压缩链表 字典树 B+Tree 红黑树
17.try_lock和lock的底层实现(原子指令如何实现)
18.无锁队列(CAS)是什么,有哪些运用场景
19.netstat -anl | grep 8080 查看8080端口的连接信息 只有服务器才处于listen状态
20.du df top ps kill pkill killall strace
21.C语言代码异常捕获的实现方法
22.C语言多态的实现方法
23.CPU调度算法有哪些,各自适用场景和优缺点是什么?CFS的原理和实现是什么?
24.CPU绑定 将某一个进程和某个CPU或某个范围的CPU进行绑定(taskset、nice、renice、nohup)
25.关系型数据库 SQL(Structure Query Language)MySql Oracle
分布式数据库 NoSQL(Not Only SQL) 使用与存储大数据(一个属性可以存一个GB数据)
26.SMP 对称多处理器
27.海量数据常规处理方案有哪些
28.MMU 虚拟地址 线性地址 逻辑地址 物理地址
29.MVCC(+无锁队列 + 协程 = 双十一)CAP
30.raid 磁盘阵列
31.Fuse打造自己的文件系统(推荐淘宝的文件系统TFS)
32.进程通信机制的实用场景和优缺点
33.常见信号的作用,如, SEGV: CHLD:子进程意外退出,通知父进程 HUP: INT: QUIT: TRAP: ABRT:
34.ps -efL 查看进程下的线程
35.如何生产孤儿进程, 僵尸进程, 守护进程?孤儿进程和僵尸进程对系统有何危害,如何预防?
36.sleep 100 & 后台进程 不会被进程打扰,除非有信号传递过来sleep 100 前台进程 很容易会打断 终止(相关命令 &、ctrl+z、fg、bg)
37.sleep(10):睡眠的进程还在使用CPU???
38.ulimit -a 8K 默认用户进程的栈大小 创建进程会多压4k的栈????
39.brk malloc realloc mmap
40.读取一个文件的全过程(了解文件系统核心概念和数据结构组织关系)
41.du -h
42.如何以最快速度生成一个2GB文件,有哪些实现方式
43.如何实现多用户视频快进/快退?
44.线程栈
45.ipcs 管道相关 消息队列 redis
46.阿里实现了自己的文件系统TFS 核心技术是Fuse
47.事务一致性 一个原子操作 例如修改用户名和密码 保证用户名密码要么写入数据库 要么不写入
48.stat 文件 :可以查看文件所有重要属性
49.任务分发算法:负载均衡里面
50.百万服务器如何创建一个全局变量
51.服务器架构 如何维持一个有状态的任务
52.在同一IP Port 发起不同的TCP连接上限是多少个?65536个端口到底怎么理解?为何需要这么多端口?同一个port能绑定到不能ip吗
53.内核accept消息交付
54.destory_lock在内核中的工作原理
55.同一互斥锁能否多次destory
56.跳跃表 数据查找 压缩链表
57.#ifdef #endif 跨平台
58.tcmalloc ptmalloc jmalloc
59.绿色线程
60.pthread_cancel作用
61.CAS(compare and swap)
62.读写锁
63.进程间通信的三种方式:管道,消息队列,共享内存
64.用户态向内核态切换 发生了哪些事情
65.为什么有血缘关系的进程之间可以传递文件描述符
66.gdb如何修改栈里面的数据?内核握为什么不报段错误
67.内存泄漏 内存溢出
68.malloc实现过程,发生oom错误时系统做了什么(推荐oom kill、oom_badness、oom_score)
69.io高级函数之零拷贝:tee,splice,sendfile
70.copy_from_user/copy_to_user的实现,从而深刻了解进程上下文切换带来的开销
71.脏页
72.MongoDB 存储引擎 mmapv
73.malloc 和 free 的具体实现
74.slab、buddy算法
75.dd;free;sync;free;od 命令
76.守护进程 等特殊进程的作用
77.python全局锁
78.黑洞文件(/etc/null /etc/zero)
79.swap命令
80.umask
81.预加载
82.状态机
83.伙伴系统
84.软连接 和 硬连接
85.strace 可执行文件 查看Linux命令执行路径
86.printf 的内部实现
87.继承、虚继承
88.虚指针、虚表,动态多态和编译多态
89.重载 重写 显示调用
90.自旋锁
91.struct结构体占据内存的大小的各种计算(结合不同类型的变量和关键字去总结)
92.truncate命令
93.RCU锁,读写锁,文件锁,排他锁,意向锁,CES无锁,乐观锁,悲观锁
94.File_struct fs_struct namespace(资源隔离)
95.预读原理
96.close(fd)只是relase(fd) 导致fd延迟释放 shutdown
97百万文件系统 缓存是受限的 如何保证文件的快速访问
98.DMA设备工作原理
99.同名函数在c语言中是如何处理的,C语言函数编译的方式有哪些,又是如何运行的?
100.内核进程是如何启动的?
101.dd;free;sync;free;
102.网络核心API理解
103.DNS:虚拟IP DNS查询算法
104.openssh openssl
105.HTTP1.1协议的重大改变有哪些
106.C语言中,在main函数运行之前能否运行函数,main函数之后呢?
107.so_reuseport、so_reuseaddr
持续更新中......