对于一台裸机首先必须安装的软件应该是什么

对于一台裸机首先必须安装的软件应该是什么,第1张

1、Linux基础

安装Linux *** 作系统Linux文件系统Linux常用命令Linux启动过程详解熟悉Linux服务能够独立安装Linux *** 作系统

能够熟练使用Linux系统的基本命令认识Linux系统的常用服务安装Linux *** 作系统Linux基本命令实践设置Linux环境变量定制Linux的服务

Shell编程基础使用vi编辑文件使用Emacs编辑文件使用其他编辑器

2、Shell编程基础

Shell简介认识后台程序Bash编程熟悉Linux系统下的编辑环境熟悉Linux下的各种Shell熟练进行shell编程熟悉vi基本 *** 作

熟悉Emacs的基本 *** 作比较不同shell的区别编写一个测试服务器是否连通的shell脚本程序编写一个查看进程是否存在的shell脚本程序

编写一个带有循环语句的shell脚本程序

3、Linux下的C编程基础

linuxC语言环境概述G使用方法Gdb调试技术AutoconfAutomakeMakefile代码优化

熟悉Linux系统下的开发环境熟悉G编译器熟悉Makefile规则编写Hello,World程序使用make命令编译程序编写带有一个循环的程序

调试一个有问题的程序

4、嵌入式系统开发基础

嵌入式系统概述交叉编译配置TFTP服务配置NFS服务下载Bootloader和内核

嵌入式Linux应用软件开发流程熟悉嵌入式系统概念以及开发流程建立嵌入式系统开发环境制作cross_g工具链编译并下载U-boot

编译并下载Linux内核编译并下载Linux应用程序

5、嵌入式系统移植

Linux内核代码平台相关代码分析ARM平台介绍平台移植的关键技术移植Linux内核到ARM平台了解移植的概念

能够移植Linux内核移植Linux26内核到ARM9开发板

6、嵌入式Linux下串口通信

串行I/O的基本概念嵌入式Linux应用软件开发流程Linux系统的文件和设备与文件相关的系统调用配置超级终端和MiniCOM

能够熟悉进行串口通信熟悉文件I/O编写串口通信程序编写多串口通信程序

7、嵌入式系统中多进程程序设计

Linux系统进程概述嵌入式系统的进程特点进程 *** 作守护进程相关的系统调用了解Linux系统中进程的概念能够编写多进程程序编写多进程程序

编写一个守护进程程序sleep系统调用任务管理、同步与通信Linux任务概述任务调度管道信号共享内存任务管理API了解Linux系统任务管理机制

熟悉进程间通信的几种方式熟悉嵌入式Linux中的任务间同步与通信编写一个简单的管道程序实现文件传输编写一个使用共享内存的程序

8、嵌入式系统中多线程程序设计

线程的基础知识多线程编程方法线程应用中的同步问题了解线程的概念能够编写简单的多线程程序编写一个多线程程序

9、嵌入式Linux网络编程

网络基础知识嵌入式Linux中TCP/IP网络结构socket编程常用API函数分析Ping命令的实现基本UDP套接口编程许可证管理

PPP协议GPRS了解嵌入式Linux网络体系结构能够进行嵌入式Linux环境下的socket编程熟悉UDP协议、PPP协议熟悉GPRS

使用socket编写代理服务器使用socket编写路由器编写许可证服务器指出TCP和UDP的优缺点编写一个web服务器编写一个运行在

ARM平台的网络播放器

10、GUI程序开发

GUI基础嵌入式系统GUI类型编译QT进行QT开发熟悉嵌入式系统常用的GUI能够进行QT编程使用QT编写“Hello,World”程序

调试一个加入信号/槽的实例通过重载QWidget类方法处理事件

11、Linux字符设备驱动程序

设备驱动程序基础知识Linux系统的模块字符设备驱动分析fs_operation结构加载驱动程序了解设备驱动程序的概念

了解Linux字符设备驱动程序结构能够编写字符设备驱动程序编写Skull驱动编写键盘驱动编写I/O驱动分析一个看门狗驱动程序

对比Linux26内核与24内核中字符设备驱动的不同Linux块设备驱动程序块设备驱动程序工作原理典型的块设备驱动程序分析

块设备的读写请求队列了解Linux块设备驱动程序结构能够编写简单的块设备驱动程序比较字符设备与块设备的异同编写MMC卡驱动程序分析一个文件系统

对比Linux26内核与24内核中块设备驱动的不同

12、文件系统

虚拟文件系统文件系统的建立ramfs内存文件系统proc文件系统devfs文件系统MTD技术简介MTD块设备初始化

MTD块设备的读写 *** 作了解Linux系统的文件系统了解嵌入式Linux的文件系统了解MTD技术能够编写简单的文件系统为ARM9开发板添加MTD支持

移植JFFS2文件系统通过proc文件系统修改 *** 作系统参数分析romfs文件系统源代码创建一个cramfs文件系统

无论选择哪一方向,基本的linux的知识是需要具备的,其他还需要掌握的知识有ARM(最常用的一款嵌入式处理器)和C语言编程,每一方面知识的掌握熟练程度都最终决定了个人进行嵌入式linux开发的综合能力。

*** 作系统是管理计算机硬件资源,控制其他程序运行并为用户提供交互 *** 作界面的系统软件的集合。 *** 作系统是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、 *** 作网络与管理文件系统等基本任务。

按应用领域划分主要有三种:桌面 *** 作系统、服务器 *** 作系统和嵌入式 *** 作系统。

一桌面 *** 作系统

桌面 *** 作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵营,PC机与Mac机,从软件上可主要分为两大类,分别为类Unix *** 作系统和Windows *** 作系统:

1、Unix和类Unix *** 作系统:Mac OS X,Linux发行版(如Debian,Ubuntu,Linux Mint,openSUSE,Fedora等);

2、微软公司Windows *** 作系统:Windows XP,Windows Vista,Windows 7,Windows 8,Windows NT等。

二服务器 *** 作系统 

服务器 *** 作系统一般指的是安装在大型计算机上的 *** 作系统,比如Web服务器、应用服务器和数据库服务器等。服务器 *** 作系统主要集中在三大类:

1、Unix系列:SUN Solaris,IBM-AIX,HP-UX,FreeBSD等;

2、Linux系列:Red Hat Linux,CentOS,Debian,Ubuntu等;

3、Windows系列:Windows Server 2003,Windows Server 2008,Windows Server 2008 R2等。

三嵌入式 *** 作系统

嵌入式 *** 作系统是应用在嵌入式系统的 *** 作系统。嵌入式系统广泛应用在生活的各个方面,涵盖范围从便携设备到大型固定设施,如数码相机、手机、平板电脑、家用电器、医疗设备、交通灯、航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时 *** 作系统。

在嵌入式领域常用的 *** 作系统有嵌入式Linux、Windows Embedded、VxWorks等,以及广泛使用在智能手机或平板电脑等消费电子产品的 *** 作系统,如Android、iOS、Symbian、Windows Phone和BlackBerry OS等。

主要功能:

*** 作系统的主要功能是资源管理,程序控制和人机交互等。计算机系统的资源可分为设备资源和信息资源两大类。设备资源指的是组成计算机的硬件设备,如中央处理器,主存储器,磁盘存储器,打印机,磁带存储器,显示器,键盘输入设备和鼠标等。信息资源指的是存放于计算机内的各种数据,如文件,程序库,知识库,系统软件和应用软件等。

*** 作系统,即计算机管理控制程序,它是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在 *** 作系统的支持下才能运行。

  *** 作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。 *** 作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,提供了各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口。实际上,用户是不用接触 *** 作系统的, *** 作系统管理着计算机硬件资源,同时按着应用程序的资源请求,为其分配资源,如:划分CPU时间,内存空间的开辟,调用打印机等。

    *** 作系统的种类相当多,各种设备安装的 *** 作系统可从简单到复杂,可分为智能卡 *** 作系统、实时 *** 作系统、传感器节点 *** 作系统、嵌入式 *** 作系统、个人计算机 *** 作系统、多处理器 *** 作系统、网络 *** 作系统和大型机 *** 作系统。按应用领域划分主要有三种:桌面 *** 作系统、服务器 *** 作系统和嵌入式 *** 作系统。 *** 作系统用于组织和控制硬件、软件,从而使安装 *** 作系统的设备以一种灵活但可预期的方式运行。在本文中,我们将讲述必须具备什么功能的软件才称为 *** 作系统,并向您介绍台式计算机中 *** 作系统的工作原理,以及举例说明如何控制身边的其他 *** 作系统。

*** 作系统的本质

   并不是所有的计算机都具有 *** 作系统。例如,厨房中控制微波炉的计算机就不需要 *** 作系统。微波炉有一组要执行的任务,用户可直接输入所期望执行的 *** 作(数字按键和一些预设置的按钮),并且它还具有可以控制的简单且无需更改的硬件。对于此类计算机, *** 作系统反而会成为不必要的负担——它将大幅增加产品的开发和生产成本,而且增添不必要的复杂性。因此,微波炉中装入的计算机只需一直运行一个简单的固化程序即可。

对于其他设备, *** 作系统需要具有满足以下条件的功能:

实现多种用途

以更复杂的方式与用户进行交互

满足随时间而改变的需求

所有的台式计算机都具有 *** 作系统。其中最普遍的是微软开发的Windows *** 作系统、苹果公司开发的Macintosh *** 作系统以及UNIX系列 *** 作系统(由若干开发人员、公司及合作者共同开发)。此外,还有针对特殊应用领域的数以百计的其他 *** 作系统,包括专门用于大型机、机器人技术、生产制造和实时控制系统等的 *** 作系统。

*** 作系统的功能

简单来说, *** 作系统的功能有两个:

它管理系统的硬件和软件资源。在台式计算机中,这些资源包括处理器、存储器、磁盘空间等。(在手机中,这些资源则包括键盘、屏幕、通讯簿、电话拔号器、电池和网络连接。)

在无需了解硬件的所有详细信息情况下,为应用程序提供稳定、一致的方式来处理硬件。

   第一个任务(即管理硬件和软件资源)非常重要,因为多个程序和输入方法会出于自己的目的竞相争夺CPU(中央处理单元)的资源,并且使用内存、存储器及输入/输出带宽。在此功能中, *** 作系统扮演着出色的指挥者角色,它既要确保每个应用程序都得到所需的资源,又要保证与所有其他应用程序的兼容,同时还要充分利用有限的系统容量,从而最大程度地满足所有用户和应用程序的需要。

   如果有多个特定类型的计算机使用 *** 作系统,或者要更换计算机硬件时,第二项任务(即提供兼容的应用程序接口)就变得格外重要。一致的应用程序接口(API)使软件开发人员在一台计算机上编写应用程序时,有信心保证此应用程序可以在另一台同一类型的计算机上运行,尽管两台计算机的内存容量或存储器数量各不相同。

即使某种特殊计算机是唯一的, *** 作系统也可以确保在硬件升级和更新时应用程序得以正常运行。这是因为, *** 作系统(而不是应用程序)负责管理硬件和分配其资源。开发人员面临的挑战之一是要保证他们的 *** 作系统具有足够的灵活性,从而可以在成千上万的计算机设备供应商所提供的硬件上运行。因为当今的系统可以配置成千上万种不同种类的打印机、磁盘驱动器以及任何可能组合的特殊外设。

*** 作系统的种类

    *** 作系统拥有广泛的系列,根据它们所控制的计算机类型和所支持应用程序的类型,大致可分为四类。这些广泛的分类包括:

实时 *** 作系统(RTOS)——实时 *** 作系统用于控制机械设备、科学仪器以及工业系统。由于RTOS在交付使用时采用的是“全封闭”形式,因此在通常情况下,该系统几乎没有什么用户界面功能,也没有最终用户实用程序。RTOS的一个重要作用是管理计算机资源,从而在每次执行某种特定的 *** 作时,都严格使用相同的时间。在一台复杂的机器中,由于其具备可用系统资源而使机器的某一部分以更快的速度运行,这将与因系统繁忙而无法运行一样具有相同的灾难性。

单用户,单任务——顾名思义,该 *** 作系统设计用于管理计算机,使单个用户每次只能高效地执行一个 *** 作。用于掌上电脑的Palm OS是现代单用户、单任务 *** 作系统的一个良好示例。

单用户,多任务——这就是目前多数用户在他们的台式计算机或笔记本电脑中使用的 *** 作系统类型。微软公司的Windows *** 作系统和苹果公司的MacOS *** 作系统平台均为一个用户可以同时运行多个程序的 *** 作系统的范例。例如,一个Windows用户一边在文字处理软件上撰写日记,一边从互联网下载文件,同时还在打印一封电子邮件消息的文本,这是完全可能的。

多用户——多用户 *** 作系统允许多个不同用户同时使用计算机的资源。 *** 作系统必须确保均衡地满足各个用户的要求,他们使用的各个程序都具有足够且独立的资源,从而使一个用户的问题不会影响到整个用户群。Unix、VMS和大型机 *** 作系统(如 MVS)是多用户 *** 作系统的范例。

   区分多用户 *** 作系统和支持网络的单用户 *** 作系统很重要。Windows 2000和Novell Netware均可以支持成千上万的网络用户,但 *** 作系统本身并不是真正的多用户 *** 作系统。系统管理员是Windows 2000或Netware的唯一“用户”。从 *** 作系统的整体计划来看,网络支持和所有远程用户均可登录到网络,这些都属于由管理员用户运行的程序。

在了解了各种不同类型的 *** 作系统后,现在我们将进一步介绍 *** 作系统所提供的基本功能。

*** 作系统的任务

   打开计算机的电源时,通常运行的第一个程序是保存在计算机只读存储器(ROM)中的一组指令。此代码检验系统硬件,从而确保一切运行正常。上电自检(POST)将检测CPU、内存和基本输入输出系统(BIOS) 是否存在错误并将结果存储在某个特殊的内存位置。一旦成功完成POST,载入ROM的软件(有时则称为BIOS或固件)将开始激活计算机的磁盘驱动器。在大多数现代计算机中,当计算机激活硬盘驱动器时,该计算机将运行第一个 *** 作系统:引导装入程序。

   这种引导装入程序是具有单一功能的小程序:它将 *** 作系统载入到内存并使之开始运行。引导装入程序通过最基本的形式设置与之交互的小驱动程序,并控制计算机的各个硬件子系统。它设置存放 *** 作系统、用户信息及应用程序的内存分区,也建立装有大量信号、标记和信号量(用于在子系统和计算机应用程序内部及之间通信)的数据结构,然后再将其对计算机的控制转移给 *** 作系统。

在一般情况下, *** 作系统的任务基本分为六种类型:

处理器管理

内存管理

设备管理

存储器管理

应用程序接口

用户界面

尽管有人争论 *** 作系统应执行比这六项任务更多的功能,并且确实也有一些 *** 作系统供应商将更多的实用程序及辅助功能集成到他们的 *** 作系统中,但这六项任务几乎涵盖了所有 *** 作系统的核心内容。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13323296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-14
下一篇 2023-07-14

发表评论

登录后才能评论

评论列表(0条)

保存