先说结论,Linux后台开发了解Linux内核原理对于工作是有帮助的,比如了解文件系统的以及硬盘存储机制,那就更容易理解为什硬盘的写入速度相对内存慢,明白为什么会出现明明已经调用API写入数据还是出现了宕机数据丢失的问题。
结论说完了,我们在讨论下怎么去学习Linux后台开发技术。
1. 基础知识(1)Linux系统命令:Linux系统的命令非常多,是不是所有都要学呢?大家可以先掌握常用的命令,比如ls、pwd、cd、grep、find等常用的命令是必须掌握的;
(2)Linux系统编程:多线程、多进程、锁、消息队列、管道等等知识;
(3)Linux网络编程:udp编程、tcp编程,select、poll、epoll等的使用;
2. 进阶知识(1)Linux后台开发必备命令:比如怎么用lsof查看端口号,top怎么分析进程和内存、tail怎么读取日志,mpstat怎么分析CPU占有率等等;
(2)Linux系统编程:多线程和多进程的区别在哪里,他们有什么适用场景;redis为什么用单线程模式,为什么又从redis 6.0开始支持多线程;nginx为什么又选用了多进程模式等等;
(3)Linux网络编程:udp和tcp的适用场景是怎么样的;select、poll、epoll三者有什么区别,阻塞和非阻塞IO哪种更适合高并发场景;
3. 后台开发必备技能(1)客户端和服务器端协议定制、服务器与服务器端的协议定制;
(2)json、xml、protobuf适用场景、如何在工程上使用;
(3)mysq数据库,如何优化索引,如何分库分表、如何搭建mysql集群;
(4)redis,如何在实际项目中使用redis;
(5)消息队列zeromq;
(6)nginx:负载均衡配置、双虚拟主机等等;
(7)resetful api设计;
(8)等等等等等等的知识。
学习路线适合 大三、大四、研一、研二、研三以及工作1~5年的朋友学习。
更详细的学习路线可以关注我后私信我获取。