外贸
Linux「高级编程」的意思是比上面的 Linux 基础操作更深入一个层次
学会了 Linux 的使用还不算是一个真正的开发人员,使用系统是成为开发者最基本要求,会操作Linux 就像使用 Windows 系统一样,只不过是学习成本的问题,如果这个世界没有 Window 系统,你女朋友花点时间也能掌握 Linux 系统基本操作。
要想进阶成为后端开发人员,就要懂得如何使用 Linux 系统提供的各种系统API(系统调用接口)进行编程开发,程序员用你写的代码来控制系统,普通用户只会用鼠标操纵。这个阶段需要学习:
Unix 系统实现 Linux、基本系统数据类型
文件操作函数: open 、read close write dup fcntl ioctl stat chmod access chdir ...
系统编程接口的基本特性和高级特性
Linux进程环境、如何创建进程、线程,程序的存储空间分配、环境变量
进程组、会话以及任务控制、进程优先级和调度
动态库和静态库
进程间通信:管道和FIFO、消息队列、信号量、共享内存、内存映射
套接字和网络编程
总之,这一阶段需要学习的是在 Linux 环境下的高级编程技巧,通过对这些内容的学习也能让你更深入的理解 Linux 系统是如何工作和运行的,并且真正的踏入 Linux 系统编程大门。
网络编程
网络编程是通过网络套接字 socket 方式实现的通信,所以也属于进程间通信 IPC(Inter-Process Communication)。
由于现在的后台服务基于服务端/客户端模型,两者之间基于网络通信,你在家用手机点个外卖的服务请求,也是通过网络通信发给某团的后台服务器,所以后台服务开发,说到底还是网络编程,以及建立在网络编程数据之上的应用层开发。
网络编程学什么:
什么是socket套接字
套接字选项
TCP/UDP 套接字编程
Unix domain 协议和编程
原始套接字编程
IO多路复用:select 、poll、epoll、kqueue
序列化技术
零拷贝技术
开源网络库:muduo、libevent
学完以上内容你大概可以写一个类似QQ一样的网络聊天小工具。
不过在工作中,都有成熟的网络框架或网络通信库,大公司比如鹅厂大部分是自研网络通信框架,小公司用开源项目,这让很多后台开发人员不必关心底层的网络通信细节,除了部分基础架构的开发同学,大部分后台开发同学工作都是在做业务系统的开发。
但了解底层网络编程原理,是后台开发人员的核心能力,这点对于 C/C++ 后台开发程序员尤为重要。它能拔高你看问题的高度,不了解底层原理,就像是在黑盒编程一样,出了问题无从下手排查。
来源:服务器,转载请保留出处和链接!
本文链接:http://www.cau168.com/post/17.html
Copyright 六六互联.Some Rights Reserved.www.ic.vip