linux系统实验,linux课程主要学啥了

操作系统有哪些

常见的微机操作系统:

1. Windows系统:由Microsoft公司于1985年11月发布的第一代窗口式多任务系统,标志着PC机进入了图形用户界面时代。目前常用的版本有Windows XP、Windows 7,以及新推出的Windows 8。

2. DOS操作系统:自1981年问世以来,DOS经历了多次版本升级。Microsoft公司的MS-DOS、IBM公司的PC-DOS以及Novell公司的DR DOS是三种主要的DOS品牌,它们相互兼容,但各有特点。其中,MS-DOS使用最为广泛。

3. Mac OS操作系统:美国苹果计算机公司为Macintosh计算机设计的一代操作系统,于1984年推出。Mac OS在出版、印刷、影视制作和教育等领域有着广泛的应用。苹果公司后来推出了先进的个人电脑操作系统Mac OS X。

4. Unix系统:于1969年在贝尔实验室诞生,最初适用于中小型计算机。Unix为用户提供了一个分时的系统,以控制计算机的活动和资源,并提供了交互式的操作界面。Unix支持模块化结构,用户可以根据需要安装相应的模块。目前,许多公司都有自己的Unix版本,如AT&T、Sun、HP等。

5. Linux系统:全球最大的自由免费软件,功能可与Unix和Windows相媲美。Linux最初由芬兰人Linus Torvalds开发,其源程序在Internet上公开发布,引发了全球电脑爱好者的开发热情。Linux因此成为全球最稳定、最有发展前景的操作系统之一。

6. OS/2系统:IBM公司在1987年推出的PS/2个人电脑系列采用的操作系统。由于OS/2仅限于PS/2机型,兼容性较差,限制了其推广和应用。

现代的主流操作系统包括:

1. Windows系列操作系统:由微软公司生产,如Windows XP、Windows 7、Windows 8。

2. Unix类操作系统:如SOLARIS、BSD系列(FREEBSD、openbsd、netbsd、pcbsd)。

3. Linux类操作系统:如UBUNTU、suse linux、fedora等。

4. Mac操作系统:由苹果公司生产(Darwin),一般安装于MAC电脑。

大型主机操作系统包括:

1. Burroughs MCP--B5000,1961年至Unisys Clearpath/MCP,现在。

2. IBM OS/360,1964年至IBM zSeries,现在。

3. UNIVAC EXEC 8,1964年,至Unisys Clearpath IX,现在。

现代的大型主机也可运行Linux或Unix变种。

嵌入式系统常用的操作系统(如VxWorks、eCos、Symbian OS及Palm OS)以及某些功能缩减版本的Linux或其他操作系统。

类Unix系统:一个在Linux底下执行的客制化KDE桌面系统。所谓的类Unix家族指的是一族种类繁多的操作系统,此族包含了System V、BSD与Linux。由于Unix是The Open Group的注册商标,特指遵守此公司定义的行为的操作系统。而类Unix通常指的是比原先的Unix包含更多特征的操作系统。Unix系统可在非常多的处理器架构下执行,在服务器系统上有很高的使用率,例如大专院校或工程应用的工作站。自由软件Unix变种,例如Linux与BSD近来越来越受欢迎,它们也在个人桌面电脑市场上大有斩获,例如Ubuntu系统,但大部分都是电脑高手在使用。某些Unix变种,例如HP的HP-UX以及IBM的AIX仅设计用于自家的硬件产品上,而SUN的Solaris可安装于自家的硬件或x86电脑上。苹果电脑的Mac OS X是一个从NeXTSTEP、Mach以及FreeBSD共同派生出来的微内核BSD系统,此操作系统取代了苹果电脑早期非Unix家族的Mac OS。经历数年的披荆斩棘,自由开源的Unix系统逐渐侵蚀鲸吞以往专利软件的专业领域,例如以往电脑动画运算巨擘——SGI的IRIX系统已被Linux家族及Plan 9[3]丛集所取代。

Linux系统:Linux的是一套免费的32位多人多工的操作系统,运行方式同UNIX系统很像,但Linux系统的稳定性、多工能力与网络功能已是许多商业操作系统无法比拟的,Linux还有一项最大的特色在于源代码完全公开,在符合GNU GPL(General Public License)的原则下,任何人皆可自由取得、散布、甚至修改源代码。就Linux的本质来说,它只是操作系统的核心,负责控制硬件、管理文件系统、程序进程等。Linux Kernel(内核)并不负责提供用户强大的应用程序,没有编译器、系统管理工具、网络工具、Office套件、多媒体、绘图软件等,这样的系统也就无法发挥其强大功能,用户也无法利用这个系统工作,因此有人便提出以Linux Kernel为核心再集成搭配各式各样的系统程序或应用工具程序组成一套完整的操作系统,经过如此组合的Linux套件即称为Linux发行版。国内Linux发行版做的相对比较成功是红旗和中软两个版本,界面做得都非常的美观,安装也比较容易,新版本逐渐屏蔽了一些底层的操作,适合于新手使用。两个版本都是源于中国科学院软件研究所承担的国家863计划的Linux项目,但无论稳定性与兼容性与国外的版本相比都有一定的差距,操作界面与习惯与 Windows越来越像,提供一定技术支持和售后服务,适宜于国内做低价的操作系统解决方案。

微软Windows:Microsoft Windows系列操作系统是在微软给IBM机器设计的MS-DOS的基础上设计的图形操作系统。现在的Windows系统,如Windows 2000、Windows XP皆是建立于现代的Windows NT内核。NT内核是由OS/2和OpenVMS等系统上借用来的。Windows可以在32位和64位的Intel和AMD的处理器上运行,但是早期的版本也可以在DEC Alpha、MIPS与PowerPC架构上运行。虽然由于人们对于开放源代码作业系统的兴趣的提升,Windows的市场占有率有所下降,但是到2004年为止,Windows操作系统在世界范围内占据了桌面操作系统90%的市场。[4]Windows系统也被用在低阶和中阶服务器上,并且支持网页服务的数据库服务等一些功能。最近微软花费了很大研究与开发的经费用于使Windows拥有能运行企业的大型程序的能力。WindowsXP在2001年10月25日发布,2004年8月24日发布最新的升级包WindowsXP Service Pack 2。微软最新的操作系统 Windows Vista(开发代码为Longhorn)于2007年1月30日发售[5]。Windows Vista增加了许多功能,尤其是系统的安全性和网络管理功能。Windows Vista拥有界面华丽的Aero Glass。 window xp win 7win 8苹果Mac OS:苹果Mac OS系列操作系统是苹果公司(原称苹果电脑)给苹果个人电脑系列设计的OS。其他大型主机以及嵌入式操作系统均与Unix或Windows家族关系不大,除了Windows CE、Windows NT Embedded 4.0及Windows XP Embedded是Windows的血亲产品,以及数种*BSD和嵌入式Linux包为例外。少数较旧的OS今日依然在一些需要稳定性的市场中活跃,例如IBM的OS/2[6]BeOS以及XTS-400。在达康时代狂潮过后,如AmigaOS与RISC OS等少数人使用的OS依然持续建立,以满足狂热的爱好者社群与特殊专业使用者。未来研究与建立未来的操作系统依旧进行著。操作系统朝提供更省电、网络化、华丽的使用者界面的方向来改进。Linux及一些类UNIX OS正努力让自己成为个人用户舒适的环境。GNU Hurd是一个企图完全兼容Unix并加强许多功能的微内核架构。微软Singularity是一个奠基于.Net并以建立较佳内存保护机制为目目标研究计划。Windows 7/ Server 2008、Linux操作系统

嵌入式Linux程序设计案例与实验教程的目录

前言

教学建议

第1章LiFlUX开发基础

1.1Linux系统概述

1.1.1Linux简介

1.1.2Linux系统的特点

1.1.3Linux系统的组成

1.2Linux系统的使用

实验1.1熟悉Linux基本命令与文件目录系统

1.3全屏幕编辑器与vi

1.3.1vi简介

1.3.2基本命令

1.3.3常用操作

实验1.2全屏幕编辑器vi的使用

1.4LinuxS11ell编程

1.4.1Shell程序的编写和执行

1.4.2Shell的变量

1.4.3Shell的测试命令

1.4.4条件语句

1.4.5循环语句

1.4.6函数

实验1.3Shell脚本编程实验

第2章嵌入式Linux系统基础

2.1构建嵌入式Linux系统环境

2.1.1交叉编译

2.1.2交叉编译器

2.1.3NFS

实验2.1嵌入式Linux开发环境的建立

2.2Linuxc程序设计

2.2.1C程序设计概述

2.2.2Makefile介绍

2.2.3Makefile中的变量

2.2.4Makefile隐含规则

实验2.2Makefite与helloworld

2.3Linux多线程库编程

2.3.1多线程

2.3.2Linux下的多线程

2.3.3生产者-消费者模型简述

2.3.4缓冲区操作概述

2.3.5几个线程API

实验2.3Linux多线程使用实例生产者-消费者协议

2.4进程创建以及进程间通信

2.4.1进程概述

2.4.2进程的相关函数

2.4.3信号概述

2.4.4信号的相关函数

2.4.5管道概述

2.4.6管道的相关函数

实验2.4进程相关的应用程序设计

综合实验一嵌入式平台的进程管理模拟实验

第3章嵌入式Linux内核、引导系统和文件系统

3.1Linux内核定制、裁剪和添加

3.1.1概述

3.1.2内核目录简介

3.1.3配置文件和配置工具

3.1.4内核的编译命令

实验3.1Linux内核裁剪与编译

3.2嵌入式引导系统技术

3.2.1概述

3.2.2Linux的引导系统vivi与ubOOt

3.3文件系统的构建

3.3.1概述

3.3.2BusyBox

综合实验二软盘Linux操作系统的实现

第4章嵌入式Liflux接口设计与驱动程序

4.1驱动程序设计基础

4.1.1Linux驱动程序简介

4.1.2开发驱动程序的方法

4.1.3设备驱动程序的分类

4.1.4主设备号和次设备号

4.1.5设备文件系统(devfs)与Udevfs

实验4.1虚拟驱动模块实验

4.2AD接口驱动程序

4.2.1AD转换器

4.2.2AD转换有关参数

4.2.3ARM自带的AD转换装置

实验4.2AD接口驱动程序

4.3直流电机驱动

4.3.1直流电机介绍

4.3.2直流电机的PWM原理

4.3.3PWMTIMER结构

4.3.4基于ARM的PWM相关寄存器

4.3.5关于程序实现

实验4.3直流电机PWM驱动实验

4.4触摸屏接口设计与驱动

4.4.1触摸屏的工作原理

4.4.2触摸屏驱动芯片ADS7843

4.4.3S3C2410芯片的触摸屏相关配置寄存器

实验4.4tslib移植和使用

4.5显示接口与LinuxFrameBuffer

4.5.1FrameBuffer机制介绍

4.5.2LCD简介

实验4.5FrameBuffer实验

4.6V4L程序设计

4.6.1V4L概述

4.6.2V4L设备的体系结构

实验4.6Linux视频V4L驱动实验

4.7OSS程序设计

4.7.1oSS概述

4.7.2OSS设备的体系结构

4.7.30SS驱动分析

4.7.4OSS用户空间编程

实验4.7Linux音频OSS驱动实验

综合实验三五子棋游戏的实现

第5章嵌入式Linux开源软件移植与应用

5.1嵌入式WebServerGoAhead的移植与应用

5.1.1嵌入式web服务器

5.1.2GoAhead介绍

5.1.3GoAhead在ARM平台上的移植

5.1.4页面操作

实验5.1嵌入式WebServerGoAhead实验

5.2嵌入式WebServicegSOAP的移植与应用

5.2.1gSOAP介绍

5.2.2gSOAP裁剪

5.2.3gSOAP应用

实验5.2WebServicegSOAP实验

5.3嵌入式数据库SQLite的移植与使用

5.3.1嵌入式数据库

5.3.2SQLite介绍

5.3.3SQLite在ARM平台上的移植

5.3.4SQLite的使用

实验5.3SQLite移植实验

5.4播放器Mplayer的移植

5.4.1Mplayer介绍

5.4.2Mplayer在ARM平台上的移植

实验5.4Mplayer到ARM平台上的移植

5.5ffmpeg应用:

5.5.1ffmpeg简介

5.5.2ffmpeg在ARM上的移植

5.5.3ffmpeg命令应用实例

5.5.4ffmpeg中几个重要的数据结构

5.5.5ffmpeg应用开发

实验5.5ffmpeg移植与应用

5.6开源软件移植的一般过程

5.6.1软件移植的概念

5.6.2软件移植过程

5.7JIME—phoneME移植

5.7.1phoneME简介

5.7.2软件移植过程与效果

5.8嵌入式浏览器konqueror移植

5.8.1konqueror简介

5.8.2软件移植过程与效果

综合实验四基于WebServiee的嵌入式计算器

第6章嵌入式Linux图形用户界面

6.1嵌入式GUI简介

6.1.1嵌入式GUI的特点

6.1.2嵌入式GUI的种类

6.2嵌入式GUI—Qt

6.2.1Qt与Qt/Embedded简介

6.2.2Qt的特点

6.2.3Qt的执行过程

6.2.4Qt的插槽机制

6.2.5一个完整的Qt程序

6.2.6QtDesigner介绍

实验6.1Qt图形界面相关实验

6.3基于Qt技术的Qtopia

6.3.1Qtopia简介

6.3.2Qtopia的功能

6.3.3Qtopia编程

实验6.2Qtopia的移植以及编程

综合实验五电子点菜系统

第7章嵌入式Unux下的通信应用

7.1嵌入式Linux下的串口通信

7.1.1串口简介

7.1.2串口编程

7.1.3串口编程应用实例

实验7.1串口通信实验

7.2嵌入式Linux网络编程

7.2.1网络通信

7.2.2Socket简介

7.2.3网络编程

实验7.2Socket相关程序设计

7.3嵌入式蓝牙技术

7.3.1蓝牙技术

7.3.2蓝牙体系结构

7.3.3蓝牙通信网络

7.3.4LinuxBluetooth软件层

7.3.5USB适配器

实验7.3蓝牙相关实验

7.4CAN总线

7.4.1CAN总线简介

7.4.2CAN总线硬件特征

7.4.3CAN控制器驱动

实验7.4CAN总线实验

第8章嵌入式系统硬件设计基础与标准

8.1嵌入式系统的硬件组成

8.1.1嵌入式微处理器

8.1.2存储器

8.1.3输入/输出设备

8.1.4通信与扩展接口

8.2硬件设计基础知识

8.2.1计算机体系结构

8.2.2电子技术

8.2.3抗干扰技术

8.2.4印制电路板

8.3硬件设计中应注意的一些问题

8.3.1IC元件的选择

8.3.2元件封装设计

8.3.3PCB设计精度

8.3.4分离元件的正确使用

8.3.5高速PCB设计方法

8.3.6PCB设计的一般原则

实验8.1常用模拟电路和数字电路原理

实验8.22410—S电路原理图阅读

实验8.32410—S所用芯片数据手册阅读

实验8.4OMAP5910核心板电路原理

综合实验六基于OMAP的加密终端硬件设计

第9章OMAP5910与LinuxGateway

9.1OMAP5910体系结构

9.1.1MPU子系统

9.1.2DSP子系统

9.2LinuxDSPGateway

9.2.1DSPGateway的由来

9.2.2DSPGateway的Mailbox机制

9.2.3通信缓冲

9.2.4Mailbox命令协议

9.2.5DSPGateway的设备接口

实验9.1OMAP910双核间基本通信

9.3OMAP5910图像处理

9.3.1图片格式

9.3.2数字图像算法

实验9.2OMAP图像处理实验

综合实验七基于OMAP的加密终端的实现(软件部分)

第10章嵌入式Linux综合项目实例

10.1基于嵌入式平台的电梯监控系统

10.1.1系统概述

10.1.2系统设计

10.1.3系统实现

10.1.4项目小结

10.2基于蓝牙技术的嵌入式点菜系统

10.2.1系统概述

10.2.2系统设计

10.2.3系统实现

10.2.4项目小结

10.3基于WebSenrice的数字油田监控系统

10.3.1系统概述

10.3.2系统设计

10.3.3系统实现

10.3.4项目小结

10.4基于嵌入式与WebService的智能家居系统

10.4.1系统概述

10.4.2系统设计

10.4.3系统实现

10.4.4项目小结

10.5基于OMAP的音频与视频处理

10.5.1概述

10.5.2MPEG压缩

10.5.3音视频数据在双处理器间的传输模块设计

10.5.4音频处理方案设计

10.5.5视频处理方案设计

10.5.6项目小结

参考文献

……

操作系统管理Linux 系统进程实验报告

什么是进程

比如:windows上安装的QQ,我们会将其称为QQ程序,那么当QQ运行之后,在任务管理器中,我们可以看到QQ程序在运行着,此时,我们称其为:QQ进程。

言简意赅总结:当我们运行一个程序,那么我们将该程序叫进程

注意:

1.当程序运行为进程后,系统会为该进程分配内存,以及运行的身份和权限。

2.在进程运行的过程中,服务器上回有各种状态来表示当前进程的指标信息。

进程是已启动的可执行程序的运行实例,进程有以下组成部分:

分配内存,已分配内存的地址空间

安全属性,进程的运行身份和权限

进程代码,运行一个或多个的线程

进程状态,进程运行后的多种状态

静态程序,二进制文件,静态/bin/ls,/usr/sbin/sshd

动态进程,程序运行的过程,有生命周期及运行状态

进程的运行环境,包括以下几个部分:

局部和全局变量

当前的调度上下文

分配给进程使用的系统资源,例如文件描述符、网络端口等

给进程分配对应的pid,ppid

程序和进程的区别

1.程序是数据和指令的集合,是一个静态的概念,比如/bin/ls、/bin/cp等二进制文件,同事程序可以长期存在系统中。

2.进程是一个程序的运行过程,是一个动态概念,进程是存在生命周期概念的,也就是说进程会随着程序的终止而销毁,不会永远在系统中存在。

进程的生命周期

程序运行时进程的状态关系:

1.当父进程接收到任务调度时,会通过fork派生子进程来处理,那么子进程会集成父进程的衣钵。

2.子进程在处理任务代码时,父进程会进入等待的状态...

3.如果子进程在处理任务过程中,父进程退出了,子进程没有退出,那么这些子进程就没有父进程来管理了,就变成了僵尸进程。

4.每个进程都会有自己的PID号,(process id)子进程则PPID

阅读剩余
THE END