嵌入式操作系统的目标是构建定制的,最小尺寸的,最快运行速度的基于设备的操作系统。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操作系统更加小巧和快速。
本文转自雷志刚 51CTO博客,原文链接:http://blog.51cto.com/leizhigang/237791

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. Docker镜像的优化

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

  8. 前端 Docker 镜像体积优化

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

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

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

最新文章

  1. 金蝶K/3 BOS产品培训教案
  2. 干货丨大规模机器学习框架的四重境界(经典长文,值得收藏)
  3. Linux 常用命令操作
  4. IHttpModule.Init方法被执行多次的原因
  5. linux 返回上一个文件夹_常用命令之linux指令
  6. sh脚本学习之: sh脚本 、sed、awk
  7. 在项目中使用fastreport_如何在项目管理中使用里程碑
  8. 巨杉数据库完成C轮数千万美元融资
  9. 打印并输出 log/日志到文件(C++)
  10. 三表联查,这是我目前写过的最长的sql语句,嗯嗯,果然遇到问题才能让我更快成长,更复杂的语句也有了一些心得了...
  11. 作用 和会话期 进程组_进程 进程组 会话的关系及作用
  12. nginx 配置反向代理
  13. python笔试题目及答案_python笔试题(附带答案)
  14. HTML在线电视直播网页模板,苹果cms网站添加TV电视直播教程
  15. 用PS制作电子签名方法总结
  16. 2021-12-01 WPF上位机 103-西门子S7协议之V区,DB区读数据方法流程解析
  17. sklearn常用工具
  18. 【编程笔试】美团2021校招笔试-通用编程题第6场(附思路及C++代码)
  19. 【21天python打卡】第9天 基础技能(2)
  20. 【不定时推荐】这些年读过的书第一本--《一个人的朝圣》

热门文章

  1. Zeppelin-源码编译
  2. 从web移动端布局到react native布局
  3. 【HDOJ】2732 Leapin' Lizards
  4. (实用)Ubuntu 开启NFS服务
  5. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十三║Vue实战:Vuex 其实很简单
  6. 当重复调用addsubview时出现显示重叠问题
  7. HDU 6047 Maximum Sequence
  8. 【练习】翻转句子中单词的顺序
  9. select,poll,epoll用法
  10. 五、Chain链的作用