1、为什么要学习Linux下的高级编程
应用课程的学习,不知道Linux内核的强大功能
Linux下的高级编程课程学习:感知到内核的存在,内核的强大功能
文件管理
进程管理
设备管理
内存管理
网络管理
2、怎么样学习Linux下的高级编程
Linux下高级编程的特点:涉及到内核向用户空间提供的接口(函数)
3、为什么内核要提供这些接口呢
主要原因:
A:内核要为应用程序服务,应用程序如果没有内核服务,则功能非常单一
B:内核是一个稳定的代码,同时也要为多个用户空间的程序服务,为了防止用户空间的某些用户程序使内核代码崩溃或产生其他问题
所以:
内核向用户空间提供的接口(函数),在这些接口函数中加上一些保护,这样会使符合接口函数的应用提供服务,同时也保护内核
4、重点学习这些接口,怎么样学习呢
之前学习的是程序的实现,即算法思路
在系统编程阶段主要任务就是系统调用接口(函数),接口的功能,参数,返回
5这一阶段主要涉及的课程
IO
文件io
标准io
目录io
进程
进程控制
线程(线程的控制,线程的同步和互斥)
进程通信(无名管道,有名管道,信号,IPC(共享内存,消息队列,信号灯))
网络
任然属于进程通信,他是一个网络中二台机器之间的两个进程之间的通信
TCP
UDP
服务器代码的完善(循环服务器,并发服务器(多进程,多线程,多路复用))
io模型:信号驱动io,阻塞io,多路复用io