作者:雷志刚

转自:http://lzg-ad.blog.sohu.com/117222726.html

嵌入式操作系统的目标是构建定制的,最小尺寸的,最快运行速度的基于设备的操作系统。XPE\WES也同样具有这样的构建目标。操作系统尺寸和运行效率是成正比的,更小尺寸的操作系统镜像就会获得更快的运行和启动速度。

那么如何构建一个最小尺寸的XPE\WES操作系统呢?这是很多朋友一直问我的问题,现在我将常用的精简操作系统的方法整理如下,以供大家参考:

1.使用最新版本的WES开发工具

微软于2008年10月发布了最新版本的嵌入式XP操作系统开发工具-Windows Embedded Standard 2009。在最新版本的开发工具中,微软除了对配置界面,安装过程,嵌入式功能做了很多优化以外,最主要的改进是对组件和组件间的依赖关系进行了细化和分类。组件的改进表现在使用了很多最新版本的组件,例如:

  • Internet Explorer 7
  • Windows Media Player 11
  • Remote Desktop Protocol(RDP)6.1
  • .Net framework 3.5

最新版本的组件能够支持更高的安全性,稳定性,兼容性。同时也能够与Windows server 2008和Windows Vista具有很好的交互性。

组件和组件间的依赖关系更加细化,很多组件之间的依赖关系是可以动态设置的。例如,在WES2009以前版本的XPE操作系统中,只要添加了Core Networking组件,就会关联Windows Firewall/Internet Connection Sharing (ICS)组件。这就意味着只要在XPE操作系统中添加网络功能,就必须添加防火墙组件,而防火墙组件又会关联进来更多的组件,从而导致操作系统尺寸变大。而在WES2009中,通过组件间依赖关系细化,在Core Networking组件的Settings中,我们可以自定义设置是否需要添加Windows Firewall/Internet Connection Sharing (ICS)组件。从而增加了定制的灵活性,减小了操作系统尺寸。

使用最新版本的开发工具,也可以很大限度的提高系统安全性,因为在新版本中加入了很多的安全补丁。所以,减小嵌入式XP系统尺寸的第一步就是尽可能的使用最新版本的开发工具。

2.保证使用完整的设备文件构建操作系统,合理的裁剪设备文件(.PMQ)

一个经过优化的设备文件是构建一个稳定,小巧,快速的XPE操作系统的基础。什么是经过优化的设备文件呢?我们知道,设备文件(device.pmq)是通过tap.exe或者ta.exe生成出来的目标机的硬件配置信息。我们建议在目标机上安装XP Professional或者Windows 2000 sp2以上版本,然后通过tap.exe来获取设备文件。而不建议在DOS下通过ta.exe来获取设备文件。这是因为,通过tap.exe生成出来的目标机设备文件是具有完整硬件配置信息的列表,而ta.exe则做不到,他需要我们手动的添加很多的设备信息。

当然,通过tap.exe生成设备文件也要讲究技巧。首先,我们来认识一下tap.exe是如何获取目标机的设备列表的。当我们在目标机上运行tap.exe的时候,它会扫描注册表中的硬件列表信息,同时把这些信息以xml文件格式整理出来。为了更准确的获取硬件设备信息,就需要目标机上具有一个干净的操作系统。什么是干净的操作系统?就是在安装完XPP后,完整的安装了所有的硬件驱动,保证设备管理器中没有问号或者叹号设备。同时没有再介入过其他设备,例如U盘,移动硬盘,USB光驱,打印机等。因为如果连接了这些设备,那么这些设备的信息都将残留在注册表中而被tap.exe收集到设备文件中。多增加一个外设,在多次关联检查后,可能就会多出来几十个甚至上百个组件。所以我们必须保证tap.exe是在干净的平台上生成设备文件的。

其次,在生成好的设备文件中,我们也可以手动的删除很多设备驱动,例如,如果我们不需要音频设备,我们可以去掉音频编码解码驱动,声卡驱动,对于USB存储设备,我们可以直接从设备文件中删除,还有一些不常用的打印机及软盘驱动。具体的调整过程需要我们根据实际应用来灵活判断。

  • 音频组件和编码解码器
  • 视频捕获和显示组件
  • USB存储设备
  • 打印机
  • 软盘

3. 合理使用组件关联检查

合理的组件关联检查可以使我们去掉很多体积庞大,但是不需要的组件。例如:Index Service, System Restore Core等组件。我们可以在我们添加的宏组件中通过去掉复选框的方式去掉我们不需要的组件,例如Media Player。对于实在无法去掉的,必须关联进来的组件,我们可以在配置文件的这个组件上点击鼠标右键,把它禁用掉。

4. 尽可能的使用NTFS Compress Format

使用NTFS文件压缩格式可以有效地节省磁盘空间,但这并不意味着我们的XPE启动速度就会变慢,相反,使用NTFS文件压缩格式甚至还可以提高系统的启动速度。可能有些人会很奇怪的问,使用了NTFS文件压缩格式,在启动的时候,CPU需要处理解压缩的过程,不使用压缩格式肯定是没有这一步的。所以,NTFS文件压缩格式肯定会导致系统启动速度变慢。其实这是一种错误的认识,对于压缩格式来说,是需要多进行解压缩的过程,但是NTFS文件压缩格式在存储格式上进行了很大的优化,所以使操作系统的尺寸会变得很小。试想一下,假如我们要启动一个压缩前400M,压缩后200M的操作系统,当启动的时候,目标机要从一个硬盘或者CF卡上读取一个400M的操作系统并加载到内存中,和读取一个仅有200M的操作系统并加载到内存中,哪一个速度更快一些呢?显然是读取更小的数据会更快。当操作系统必要的引导文件读取到内存中后,在内存中解压缩的过程就是很快的了,至少比从CF卡上再读200M要快的多。所以,使用NTFS文件压缩格式甚至可以有效地提高启动速度。

5. 适当的优化操作系统语言组件支持

  • 如果我们构建的操作系统要支持中文显示,但操作系统界面可以用英文,那么我们可以去掉Chinese - Simplified Language Support中的 Include multilanguage user interface resources,这样可以剩下好几十M的空间。
  • 反过来说,如果希望操作系统使用中文语言,而其他应用支持不需要中文语言界面,则可以在第二次关联检查完成后(就是添加Explorer Shell的时候),去掉Chinese - Simplified Language Support中的Include multilanguage user interface resources,这样,在后续添加的应用中(例如IE,设备管理器,显示属性,添加删除程序等)就不会使用中文界面,也可以有效地节省磁盘空间。

6. 使用Standard PC组件

HAL(硬件抽象层)具有以下组件:

  • ACPI Multiprocessor PC
  • ACPI Uniprocessor PC
  • Advanced Configuration and Power Interface (ACPI) PC
  • Compaq SystemPro Multiprocessor or 100% Compatible
  • MPS Multiprocessor PC
  • MPS Uniprocessor PC
  • Standard PC

不同的平台具有不同的HAL组件,但是任何平台都可以使用Standard PC,使用这个组件可以具有很好的兼容性,较小的尺寸和较小的组件依赖性。所以我们可以使用Standard PC来缩减我们的系统尺寸。

7. 禁用屏保、桌面图片及主题组件

禁用屏保、桌面图片及主题组件可以使我们节省几十兆的系统空间。如果我们的设备必须使用这些组件,例如我们的设备可能会长期开机,所以我们需要屏保程序,那么我们也可以采取一些变通的方法。例如我们添加Screen Savers(屏保组件)的同时,打开Screen Savers的Files节点,然后把其中大多数的.scr禁用,只留下一个或者两个屏保就可以了。桌面图片和主题也是一样,这样可以最大限度的节省系统空间。

8. 在满足功能的前提下进行组件优化

  • 使用MinLogon 而不使用Windows Logon
  • 使用较小尺寸的输入法 Microsoft Simplified Chinese Legacy IMEs 替换标准输入法 Microsoft Simplified Chinese IME Core
  • 使用自定义Shell替换标准的Shell
  • 去掉不需要的大尺寸组件:Indexing Service, System Restore Core
  • 去掉系统所有的帮助文件,在工程的Settings中勾选Do not copy help files for this configuration。

9. 调整你的配置文件,尽可能的消除大尺寸组件或者大的依赖性检查

  • Explorer 外壳程序
  • Internet Explorer
  • .NET框架
  • Media Player

我们可以根据自己的操作系统定制需求,有选择性的通过以上九种方法对我们的系统尺寸进行优化,相信能够使我们的XPE操作系统更加小巧和快速。

lzg_ad: XPE操作系统镜像尺寸优化相关推荐

  1. lzg_ad:XPE操作系统镜像尺寸优化

    嵌入式操作系统的目标是构建定制的,最小尺寸的,最快运行速度的基于设备的操作系统.XPE\WES也同样具有这样的构建目标.操作系统尺寸和运行效率是成正比的,更小尺寸的操作系统镜像就会获得更快的运行和启动 ...

  2. lzg_ad:如何构建最小尺寸的XPE镜像文件

    如何创建最小尺寸的XPE镜像文件,这可能是很多人都关心的问题,在XPE开发过程中,要想创建最小尺寸的运行镜像,需要在开发过程的每一步都进行优化,同时尽可能的减少不需要的组件.创建最小尺寸的XPE操作系 ...

  3. lzg_ad:如何制作U盘引导的XPE操作系统

    如果想做以U盘启动的XPE操作系统,首先需要你的主板支持USB设备启动,其次按照以下步骤进行部署: 1. 在BIOS中把First Boot设置为USB-HDD模式,打开USB Support支持: ...

  4. 操作系统镜像资源下载

    操作系统镜像资源下载 http://mirrors.163.com/ 大家好,以上链接是操作系统的镜像资源,属于一个开源的链接. 之前在学习liunx的时候要用到centos,然后去官方找也只有cen ...

  5. busybox 安装mysql_Docker关于busybox使用详解以及常用操作系统镜像说明

    busybox是一个软件工具箱,里边集成了linux中几百个常用的linux命令以及工具.很多时候我们可能需要安装一些虚拟系统包括里边配置一些环境,那么就需要下载一些操作系统镜像,比如ubuntu . ...

  6. 对Ubuntu操作系统进行彻底优化

    对Ubuntu操作系统进行彻底优化 http://os.51cto.com/art/200708/54715_1.htm 六部分 对于笔记本.台式机等非服务器的系统服务优化 Linux的各大发行版,都 ...

  7. 操作系统镜像下载【windows+linux+mac】

    操作系统镜像下载[windows+linux+mac] 1.windows各版本镜像下载 https://msdn.itellyou.cn/ 2.Windows系统激活工具[破解软件往往报毒,选择使用 ...

  8. Docker镜像的优化

    我们在使用docker镜像的时候会发现一些镜像运行的话会非常的大,占用系统资源,那么我们其实是可以通过优化来解决这样的问题的 镜像的优化准则: 选择最精简的基础镜像 减少镜像的层数 清理镜像构建的中间 ...

  9. 前端 Docker 镜像体积优化

    如果 2019 年技术圈有十大流行词,容器化肯定占有一席之地,随着 Docker 的风靡,前端领域应用到 Docker 的场景也越来越多,本文主要来讲述下开源的分布式图数据库 Nebula Graph ...

  10. 常用的操作系统镜像下载windows、linux 和MacOS

    常用的操作系统镜像下载windows.linux 和MacOS 1.window镜像下载 (1)Win7: Win_7_ultimate_x64 : http://yunpan.cn/cdM2KzZF ...

最新文章

  1. python中导入包中的__init__文件夹的一个重要作用(去年对文件名的导入)
  2. django model filter_django中探索如何提高查询数据效率
  3. java concurrency_GitHub - CL0610/Java-concurrency: Java并发知识点总结
  4. C++ STL : 模拟实现STL中的string类
  5. 斑马无线打印服务器,如何设置斑马打印机无线WiFi
  6. 第一学期计算机网络作业,2010-2011学年第一学期计算机网络(33973)试卷
  7. 编译后错误提示为pls-00103:出现符号在需要下列之一时:begin case declare
  8. rmlv出错处理一例
  9. Unity3D 4.x怎样实现动画的Ping Pong效果
  10. 组合数(nyoj32)
  11. 图形学相关的一些数学知识(链接)
  12. php tcp utp链接,【黑帽seo】php随机调用友情链接技术
  13. python+selenium 自动拖拽滑块
  14. 时间复杂度o(1), o(n), o(logn), o(nlogn)
  15. Mstar的Monitor方案OSD 菜单制作(五)——icon绘制
  16. EDM电商邮件营销模板设计规范流程
  17. 猎聘和BOSS直聘谁会成为在线招聘的最后赢家?
  18. 互联网快讯:国家植物园在北京正式揭牌;极米Z6X Pro、极米H3S获赞赏;人民币兑日元逼近20大关
  19. 卡巴斯基实验室:2019Q1 IT威胁发展趋势统计报告
  20. touchGFX 添加中文字库

热门文章

  1. C++输入大写字母转小写字母
  2. 九宫格拼图 | 8Puzzle | C/C++实现
  3. shared_ptr中的owner_before解析(最易懂,最全面)
  4. 文件包含漏洞+php伪协议
  5. java 画趋势图,java画曲线图
  6. 计算机网络中的广播啥意思,卫星IP数据广播是什么意思?
  7. python中的单引号和双引号有什么区别_python中单引号和双引号有什么区别
  8. 图解精益敏捷的逻辑与实证:设计您自己的工作方式
  9. MagicBook2018 解决指纹失效
  10. Excel计算个人所得税公式