1、为什么要学习Linux下的高级编程

应用课程的学习,不知道Linux内核的强大功能
Linux下的高级编程课程学习:感知到内核的存在,内核的强大功能
        文件管理
        进程管理
        设备管理
        内存管理
        网络管理

2、怎么样学习Linux下的高级编程

Linux下高级编程的特点:涉及到内核向用户空间提供的接口(函数)

3、为什么内核要提供这些接口呢

主要原因:
A:内核要为应用程序服务,应用程序如果没有内核服务,则功能非常单一
B:内核是一个稳定的代码,同时也要为多个用户空间的程序服务,为了防止用户空间的某些用户程序使内核代码崩溃或产生其他问题

所以:
内核向用户空间提供的接口(函数),在这些接口函数中加上一些保护,这样会使符合接口函数的应用提供服务,同时也保护内核

4、重点学习这些接口,怎么样学习呢

之前学习的是程序的实现,即算法思路
在系统编程阶段主要任务就是系统调用接口(函数),接口的功能,参数,返回

5这一阶段主要涉及的课程

IO

文件io
 标准io
 目录io

进程

进程控制
线程(线程的控制,线程的同步和互斥)
进程通信(无名管道,有名管道,信号,IPC(共享内存,消息队列,信号灯))

网络

任然属于进程通信,他是一个网络中二台机器之间的两个进程之间的通信
TCP
UDP
服务器代码的完善(循环服务器,并发服务器(多进程,多线程,多路复用))
io模型:信号驱动io,阻塞io,多路复用io