《Linux编程基础》课程 教学大纲

 

  • 课程的性质与目标

《Linux编程基础》是计算机科学与技术、软件工程等本科专业的必修基础课程,本课程主要介绍了Linux操作系统中的常用命令,与Linux系统下的编程方法,目的在于帮助读者掌握Linux操作系统的使用方法与Linux编程初期所需的基础知识,为后期在Linux环境中搭建服务器做铺垫。

二、课程的主要内容及基本要求

第一章   初识Linux2学时)

[知 识 点]

  • Linux的发展、特点和应用领域
  • GUN项目计划
  • POSIX标准
  • Linux开发环境搭建
  • Linux网络配置
  • 远程终端访问
  • 远程文件管理

[重    点]

  • Linux网络配置

[难    点]

  • Linux网络配置
  • 远程终端访问

[基本要求]

  • 了解Linux的发展历史,熟悉其特点与应用领域
  • 成功搭建Linux开发环境
  • 掌握Linux网络配置
  • 掌握通过远程终端访问Linux系统的方法
  • 熟练使用SFTP远程文件管理工具

[实践与练习]

建议跟随教材中展示的方法搭建Linux开发环境,配置网络;使用教材中展示的(或可自行网上下载其他工具)远程终端访问工具和远程文件管理工具访问Linux系统,实现线程文件管理。

第二章   命令与开发工具(5学时)

[知 识 点]

  • 文件处理命令
  • 权限管理命令
  • 网络管理与通信命令
  • 压缩解压命令
  • 帮助命令
  • Vi编辑器的工作模式
  • GCC编译流程
  • GDB调试工具的使用方法

[重    点]

  • 文件处理命令
  • 权限管理命令
  • 网络管理与通信命令
  • Vi编辑器的工作模式
  • GDB调试工具的使用方法

[难    点]

  • GCC编译流程
  • GDB调试工具的使用方法

[基本要求]

  • 掌握常用的文件处理命令
  • 掌握常用的权限管理命令
  • 熟悉网络管理与通信命令
  • 熟练使用压缩解压命令
  • 熟练使用Vi编辑器
  • 了解GCC编译流程,熟练使用GCC编译工具编译程序
  • 掌握GDB调试工具的使用方法

[实践与练习]

建议亲手完成所有案例,掌握Linux常用的命令及开发工具。

第三章   用户与用户组管理(2学时)

[知 识 点]

  • 用户与用户组相关概念
  • 用户管理命令
  • 用户组管理命令
  • 用户切换

[重    点]

  • 用户切换

[难    点]

  • 用户切换

[基本要求]

  • 了解Linux中用户与用户组的相关概念
  • 掌握用户与用户组管理命令
  • 掌握Linux系统中用户切换的方法

[实践与练习]

建议亲手完成所有案例,掌握用户与用户组管理命令,及Linux系统中切换用户的方式。

第四章   Shell编程(5学时)

[知 识 点]

  • Shell概述
  • 重定向、管道、命令连接符
  • Shell变量的分类和定义
  • Shell变量的引用
  • Shell变量的运算
  • Shell条件判断
  • if条件语句
  • select语句
  • case语句
  • for循环
  • while循环
  • until循环
  • Shell脚本调试
  • Shell函数

[重    点]

  • Shell变量的引用
  • Shell变量的运算
  • Shell条件判断

[难    点]

  • Shell变量的引用
  • Shell变量的运算

[基本要求]

  • 熟练运用重定向、管道与命令连接符
  • 掌握Shell变量的定义和引用方法
  • 掌握Shell变量的运算方法
  • 熟练运用Shell中的条件判断语句
  • 掌握Shell中的语句与循环
  • 掌握Shell函数的构造与使用方法
  • 了解Shell脚本的调试方法

[实践与练习]

建议亲手完成所有案例,掌握Shell脚本的编写方法与调试方式。

 

第五章   Linux文件系统与操作(6学时)

[知 识 点]

  • 磁盘结构与磁盘的逻辑分区
  • 目录结构
  • inode与dentry
  • 磁盘分区命令fdisk
  • 文件系统创建命令mkfs
  • ext2文件系统布局
  • 数据块寻址方式
  • 虚拟文件系统
  • 分区挂载
  • Linux文件类型
  • 文件描述符
  • 文件I/O
  • 文件操作函数

[重    点]

  • 文件I/O

[难    点]

  • 磁盘分区命令fdisk
  • 文件系统创建命令mkfs
  • ext2文件系统布局
  • 数据块寻址方式

[基本要求]

  • 了解磁盘的结构与逻辑分区
  • 熟悉Linux系统中的目录结构
  • 熟悉Linux文件的inode与dentry属性
  • 熟悉fdisk命令与mkfs命令
  • 掌握ext2文件系统布局
  • 掌握文件系统中数据块寻址的方式
  • 了解将分区挂载到文件系统的方法
  • 熟悉Linux系统中的文件类型
  • 掌握Linux系统中实现I/O操作的方法

[实践与练习]

建议亲手完成所有案例,掌握Linux文件系统的布局结构与相关的I/O操作。

第六章   Linux进程管理(10学时)

[知 识 点]

  • 进程处理机制
  • 进程属性
  • 进程创建方法
  • 父子进程执行流程
  • exec函数族
  • 进程退出
  • 进程同步
  • 进程管理命令

[重    点]

  • 进程创建方法
  • exec函数族
  • 进程同步

[难    点]

  • 父子进程执行流程
  • 进程同步

[基本要求]

  • 掌握进程属性与进程处理机制
  • 熟练使用fork()、exec等系统调用创建进程,处理系统请求
  • 掌握实现进程同步的方法
  • 熟悉终端常用的进程管理命令

[实践与练习]

建议亲手完成所有案例,掌握Linux进程处理机制,以及在Linux系统中创建进程、管理进程的方法。

第七章   信号(8学时)

[知 识 点]

  • 信号的分类与产生方式
  • 系统调用产生信号
  • 软件条件产生信号
  • kill命令产生信号
  • 信号屏蔽机制
  • 信号捕获
  • 进程同步
  • 时序竞态
  • SIGCHLD信号

[重    点]

  • 信号捕获
  • 进程同步

[难    点]

  • 信号捕获
  • 进程同步
  • 时序竞态

 [基本要求]

  • 了解信号的分类与产生方式
  • 掌握不同情况下信号的产生方法
  • 掌握屏蔽、捕捉信号的方法
  • 熟练处理程序中产生的信号
  • 熟练掌握利用信号机制实现进程同步的方法

[实践与练习]

建议亲手完成所有案例,掌握Linux系统中处理信号的方法,并能熟练运用信号实现进程同步,解决时序竞态问题。

第八章   进程间通信(8学时)

[知 识 点]

  • 匿名管道
  • popen()/pclose()
  • 命名管道
  • 消息队列模型
  • 消息队列函数接口
  • 信号量模型
  • 信号量函数接口
  • 共享内存模型
  • 共享内存函数接口

[重    点]

  • 命名管道
  • 消息队列函数接口
  • 信号量函数接口
  • 共享内存函数接口

[难    点]

  • 信号量模型

[基本要求]

  • 了解进程间通信的常用方式
  • 掌握使用管道、消息队列、信号量以及共享内存实现进程间通信的方法

[实践与练习]

建议亲手完成所有案例,掌握使用管道、消息队列、信号量以及共享内存实现进程间通信的方法。

第九章  线程(6学时)

[知 识 点]

  • 线程的定义
  • 创建线程
  • 线程退出方式
  • 线程终止
  • 线程挂起
  • 线程分离
  • 线程属性
  • 互斥锁
  • 条件变量
  • 信号量

[重    点]

  • 创建线程
  • 互斥锁
  • 条件变量
  • 信号量

[难    点]

  • 互斥锁
  • 条件变量
  • 信号量

[基本要求]

  • 了解线程的定义
  • 掌握创建线程、退出线程、终止线程、挂起线程的方法
  • 熟悉线程的属性,掌握通过线程属性设置线程状态的方法
  • 掌握使用互斥锁、条件变量与信号量实现线程同步的方法

[实践与练习]

建议亲手完成所有案例,熟悉线程的定义、属性,掌握创建线程、退出线程、终止线程、挂起线程的方法,以及使用互斥锁、条件变量与信号量实现线程同步的方法。

第十章   socket编程(4学时)

[知 识 点]

  • 计算机网络体系结构
  • 软件系统体系结构
  • socket编程接口
  • socket通信流程
  • IP地址转换
  • sockaddr数据结构
  • 基于C/S结构的TCP通信
  • 基于C/S结构的UDP通信
  • socket本地通信

[重    点]

  • socket通信流程
  • 基于C/S结构的TCP通信
  • 基于C/S结构的UDP通信

[难    点]

  • socket通信流程

[基本要求]

  • 熟悉计算机网络体系结构
  • 掌握socket编程接口与基于不同软件系统体系结构的socket通信流程
  • 了解网络字节序、IP地址转换、sockaddr数据结构等知识
  • 熟练使用socket编程接口实现基于C/S结构的TCP、UDP通信
  • 熟悉socket本地通信

[实践与练习]

建议亲手完成所有案例,熟悉计算机网络体系结构,掌握socket编程接口与基于不同软件体系结构的socket通信流程,了解网络字节序、IP地址转换、sockaddr数据结构等知识,并能熟练使用socket编程接口实现基于C/S结构的TCP、UDP通信以及基于socket的本地通信。

第十一章   高并发服务器(2学时)

[知 识 点]

  • 多进程并发服务器
  • 多线程并发服务器
  • select模型
  • poll模型
  • epoll模型
  • epoll的工作模式
  • 线程池

[重    点]

  • select模型
  • epoll模型

[难    点]

  • select模型

[基本要求]

  • 了解多种服务器的工作机制
  • 掌握使用select、epoll模型搭建并发服务器的方法

[实践与练习]

建议亲手完成所有案例,了解多种服务器的工作机制与特点,熟悉多进程、多线程、poll服务器的搭建方法,掌握使用select、epoll搭建高并发服务器的方法。

四、考核模式与成绩评定办法

本课程为考试课程,期末考试采用百分制的闭卷考试模式。学生的考试成绩由平时成绩(30%)和期末考试(70%)组成,其中,平时成绩包括出勤(5%)、作业(5%)、实验和上机成绩(20%)。

五、选用教材和主要参考书

本大纲专为教材《Linux编程基础》设计。

六、大纲说明

本大纲根据教材《Linux编程基础》进行设计,将教学环节分为42个授课学时和18个上机学时,目的在于使学生在学习理论知识的过程中能及时进行实践,保证学生切实牢固地掌握所学知识。

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向蜗牛一样的笑开研

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值