【课程简介】
《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高级系统管理》
实验大纲 | |||||||||
项 目 序号 | 实验项目名称 | 内容提要 | 实验 学时 | 仪器 套数 | 实验 属性 | 开设 要求 | |||
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% |