课程简介
 Course Introduction
	
	
 【课程简介】
《Linux系统》是软件工程专业中一门重要的专业课程。它是一门实践性很强的课程,通过让学生实际操作,完成相关的实验,使学生理解和掌握Linux环境下的基本操作,网络配置方法、网络编程、内核优化等的知识和技能。本选修课的开设主要是为本科生掌握Linux环境下编程,特别是网络编程,以及掌握Linux基本操作方面的知识提供帮助。通过本课程的学习,使学生加深对计算机网络、编程语言和操作系统等的认识,为其今后从事的工程技术工作和研究工作打下良好的基础。
先导课程:计算机网络、C语言程序设计、面向对象程序设计(C++语言)等。
【学习资源】
1. 参考书目:
史蒂文斯/芬纳/鲁道夫.UNIX网络编程(第3版),清华大学出版社,2006
Neil Matthew和Richard Stones,Linux程序设计(第4版),人民邮电出版社,2010
Richard Blum,Linux命令行与shell脚本编程大全(第2版),人民邮电出版社,2012
宋敬彬、孙海滨,Linux网络编程,清华大学出版社,2010
李卓桓等著.Linux网络编程,机械工业出版社,2000
华清远见嵌入式培训中心著,《嵌入式Linux系统开发标准教程》,人民邮电出版社,2009
杨水清,《ARM嵌入式Linux系统开发技术详解》,电子工业出版社,2008
张辉翻译,GNU/Linux编程指南(第二版),清华大学出版社,2002
彭松虎,UNIX和Shell程序设计权威教程,清华大学出版社,2003
Daniel P等,深入理解Linux内核(第3版),中国电力出版社,2007
2. MOOC资源:EDX课程《Introduction to Linux》,Linux Fundation。
3. MOOC资源:EDX课程《Linux System Administration Essentials》
4. Linux学习网站:www.chinaunix.net
5.Linux网络课程:网易云课堂,《Linux入门基础》
6. Linux网络课程:网易云课堂,《Linux高级系统管理》
 
 教学大纲
 Teaching Syllabus
	实验大纲  | |||||||||
项 目 序号  | 实验项目名称  | 内容提要  | 实验 学时  | 仪器 套数  | 实验 属性  | 开设 要求  | |||
1  | Linux实验环境的建立  | 掌握Linux的安装方法和步骤,熟悉Linux的启动和关闭。  | 2  | 61  | 1  | 1  | |||
2  | Linux的GUI界面  | 熟悉X Window,掌握GNOME和KDE界面的基本使用方法  | 2  | 61  | 1  | 1  | |||
3  | Linux文件系统操作  | 掌握ext3文件系统的命令操作方法  | 2  | 61  | 1  | 1  | |||
4  | Linux的vim编辑器  | 掌握vim的工作模式,vim的启动与退出,vim的编辑命令等  | 2  | 61  | 1  | 1  | |||
5  | Linux系统管理  | 熟悉Linux的系统管理基本方法,掌握用户管理方法和常用用户管理命令、设备管理方法级常用命令。 掌握Linux进程管理命令和日志管理方法,熟悉常用的日志分析工具。  | 2  | 61  | 1  | 1  | |||
6  | Linux网络管理  | 掌握Linux下基本的网络配置,熟悉Linux常用网络管理命令。 掌握Linux下NFS、Samba、tFTP等服务的配置方法,了解Web、Mail、FTP、DNS、Bootp的服务器配置。  | 2  | 61  | 1  | 1  | |||
7  | Linux下Shell编程  | 熟悉Shell类型、掌握Shell编程的基础,通过Shell脚本实现对Linux系统的管理。  | 2  | 61  | 1  | 1  | |||
8  | Linux C编程环境  | 熟悉Linux编程环境,程序编写和编译方法。掌握gcc,gdb、make的使用。  | 2  | 61  | 1  | 1  | |||
9  | 简单的网络程序编程  | 熟悉Linux网络方法,要求分别完成server(服务器端)和client(客户端) 两个程序,实现其间的通信。熟悉网络程序建立步骤。  | 2  | 61  | 1  | 1  | |||
10  | 并发访问服务器编程  | 熟悉Linux网络服务器编程,要求编写一个并发TCP服务器实例,实现服务器与客户端的通信。  | 2  | 61  | 1  | 1  | |||
11  | GTK+图形界面程序设计基础  | 熟悉GTK+程序设计的基本方法、掌握如何使用GTK+开发图形界面程序  | 2  | 61  | 1  | 1  | |||
12  | GTK+图形界面程序设计案例  | 通过具体实例熟悉GTK+图形界面程序的设计  | 2  | 61  | 1  | 1  | |||
13  | Qt图形界面程序设计  | 熟悉Qt应用程序设计方法、掌握Qt集成开发环境使用方法和步骤,掌握Qt程序编译方法,掌握对话框、记事本等小程序的实现。  | 2  | 61  | 1  | 1  | |||
八、综设、创新性实验项目介绍  | |||||||||
项目编号  | 项目名称  | 实验属性  | 开设目的及要求  | 涉及的内容或知识点  | |||||
14  | Linux下Web服务器配置与管理  | 1  | 综合运用Linux的系统管理和网络管理的知识,搭建一个Linux Web服务器。  | 文件系统、权限管理、命令操作、Tomcat、Apache、网络配置、JSP开发、脚本配置等。  | |||||
15  | Linux云平台环境搭建  | 3  | 掌握Linux平台下云计算平台的搭建。  | Openstack、Hadoop、Ubuntu Linux、虚拟化等  | |||||
16  | 基于GTK+的即时通讯系统设计  | 2  | 掌握Linux下网络通讯程序的设计方法及图形界面的开发。  | 网络通讯、图形界面设计、信息安全、代码优化等。  | |||||
综设、创新性实验采用的教学方法和手段: 通过翻转课堂、MOOC及网上视频的方式首先让学生了解相关教学内容,鼓励学生在课余时间完成综合性、创新性实验项目。 综设、创新性实验评价方式: 实验报告:平时成绩20%+实验报告50%+其它30%  | |||||||||