文章目录
1系统编程概念操作系统的主要任务是哪些?
计算机用户与计算机操作系统的交互类似于农行顾客与建行的交互。对应关系如下:计算机硬件—金库,操作系统—银行,系统插口—办事窗口,计算机程序—银行顾客。类比建行通过办事窗口向顾客提供服务,操作系统通过系统插口向用户提供服务。
为何要有操作系统呢?假如你们都能直接操作硬件linux应用编程,将会造成数据混乱不安全,同时也会提升使用计算机的难度。操作系统本质上也是一个软件(系统软件)linux公社,它还能充分组织借助计算机的各类硬件资源(CPU、内存、硬盘、网络等),使资源借助效率最大化。操作系统的设计者为普通用户提供了一些便捷使用的插口(系统调用),用户可以通过这种插口编撰计算机程序高效借助计算机硬件,以实现特定的功能;类似于农行办事窗口的存取款业务,只要用户提供特定的信息,如身分证信息、存提款信息,农行便会利用金库为顾客实现存取款功能。
其实,操作系统的主要任务就是为用户提供便捷使用、功能强悍的服务。
哪些是系统编程?
系统编程就是借助操作系统提供的系统调用(systemcall,即所谓的插口、函数)进行编程,以达到操作各类计算机硬件资源(如c盘、终端、网络等)的目的。
计算机开机时,首先运行一段名为bootloader的小程序linux 电子书,其主要功能是检测各类硬件,为操作系统内核的运行提供正确的环境。此后,计算机将操作系统内核加载到显存中(内核空间),这也是计算机一开机便会被占用一部份显存的缘由。显存中除内核空间之外的空间称作用户空间linux应用编程,主要运行用户程序等。系统编程主要研究操作系统提供的系统调用,包括系统调用的分类、功能、调用方式等,同时还要把握系统调用的原理。
2系统编程特性
#include
FILE *fopen(const char *path, const char *mode);
进行系统调用时,库文件和函数原型为:
#include
#include
#include
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
3Linux系统编程内容多进程编程(进程:正在运行的程序)中级进程管理进程间通讯IPC多线程编程并发、并行与竞争同步:互斥与死锁线程池的实现讯号时间终端IO编程4网路编程内容TCP网路通讯分析socket网路编程插口UDP编程实现基于CS模型的TCP顾客端与服务端设计与实现P2P模型网路服务的实现HTTP与BS模型简单的网路并发模型基于多进程与多线程