Linux系统编程

IO 课程属于:Linux 下的高级编程,也称为Linux系统编程,也就是应用层和内核层之间的接口层。

Linux系统编程_第1张图片

1. 为什么要学Linux 下的高级编程?

应用层的学习:不知道Linux内核的强大功能
Linux 下高级编程的学习:能感知到内核的存在和内核的强大功能

linux内核5大功能:
文件管理
进程管理
设备管理
内存管理
网络管理

举例:printf write

Linux系统编程_第2张图片
printf

write函数:

#include 
#include 

int main()
{
    write(1, "hello linux\n", 128);
    return 0;
}

2. 怎样学Linux 下高级编程?

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

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

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

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

4. 这一部分重点是在学习这些接口上面。怎样学习呢?

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

5. 这一部分主要涉及哪些相关课程?

IO:
文件IO
标准IO
目录IO

进程:
进程控制
线程(线程的控制,线程的同步与互斥)
进程通信(无名管道,有名管道,信号,IPC(共享内存,消息队列,信号灯)
====》一台机器上两个进程之间的通信。

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

你可能感兴趣的:(Linux系统编程)