Linux系统最小化安装默认是()桌面的

Linux系统最小化安装默认是()桌面的,第1张

减少Linux的系统占用,为应用程序保留更多的资源,减少设备的硬件成本。“你能做到多小?”这个问题通常在嵌入式工程师开始他们的项目时问到。大多数时候,问这个问题的人是想减少RAM和Flash资源,减少设备的单位成本或能源需求。

因为Linux最初是为桌面或服务器系统设计的,默认情况下,它没有为尺寸大小进行过优化,无论如何,Linux正被越来越多地用在嵌入式设备中,要让Linux变小不是一件容易的事情,这里有几个减少系统占用内存的方法。

许多工程师是从减少内核大小开始的,这里有个容易着手的方法,本文将详细介绍如何减少内核的大小,主要通过移除那些在一个典型的嵌入式系统中用不到的代码。

在一个系统中根文件系统(RFS)可能是内存资源最大的消耗者。根文件系统包括了应用程序和c库使用到的基础结构代码。

为RFS选择文件系统对最后的大小有非常大的影响,标准是ext3,从一个嵌入式工程师的眼光来看它的效率是非常低的,但那是另一篇文章的主题了。

实际中,如何减小?

即使最小的Linux发行版至少也有两部分:内核和根文件系统。有时,这些部件驻扎在同一个文件中,但是它们仍然分成不同的部件。

从内核中移除特征几乎差不多的所有代码,这样一个系统很容易就减少到不到1MB大小。但是,许多用户选择Linux支持网络和不同设备,因此这不是一个现实的做法。

内核

Linux内核非常有趣,尽管在编译时它依赖GCC,但运行时它却不依赖。那些工程师将目光转向Linux初始化RAM磁盘(所谓的initrd),它是内核运行时的附属物。

Initrd首先是由内核加载的,程序运行时询问系统需要载入什么模块以便支持设备,这样真实的根文件系统才能被加载。实际上,有两步加载过程,加载initrd后再加载真实的根文件系统,很少发现嵌入式系统中有根文件系统,因为这样在一个系统中会增加灵活性,对这个系统做改动要花费额外的空间或时间,嵌入式系统一般不需要灵活性。

但本文稍后将讨论根文件系统。

可载入模块支持

内核载入模块是重新定位运行时内核连接到它自身的代码,典型的可载入模块的例子是允许从用户空间载入驱动到内核中(某些探测进程执行后),以及不关闭系统升级设备驱动。对于大多数嵌入式系统而言,一旦它们处于该范围之外,修改根文件系统要么不现实要么不可能。

因此系统设计者直接将模块连接到内核中,移除那些可载入的模块,节约出来的空间对于内核来说是很多的,无论如何,程序管理可载入的模块(如insmodrmmodlsmod)和shell脚本载入它们不是必需的。

Linux-tiny补丁

Linux-tiny补丁集已经变得时有时无的项目了,最初是由Matt Mackall在主持。

消费电子Linux论坛(CLEF)正在努力恢复这个项目,CLEF开发者WiKi已经给2。6。22。5内核(写本文时的最新版本)发布了补丁,同时,Linux-tiny项目的许多改变已经包括在主线内核中,尽管许多原始的Linux-tiny补丁已经集成到内核中,但实质上节约空间的补丁还没有集成进去。

如:

1、 Fine-grain printk support【细粒度printk支持】:用户可以控制什么文件可以使用printk。工程师将从不使用printk的文件大小中受益。

2、 Change CRC from calculation to use table lookup【改变CRC算法从计算到使用表查询】:以太网数据包需要一个CRC来校验数据包的准确性。

这个CRC算法实现使用表查询替换了计算,节约了大约2K。

3、 Network tweaking【网络调整】:几个补丁包减少支持的网络协议,缓存大小和打开的套接字。许多嵌入式设备仅支持少量的协议,不需要有成百上千连接的服务。

4、 No panic reporting【无应急报告】:如果设备有三个状态灯,一系列的连接,用户不能看到,更少的影响,应急信息显示在一个不存在的终端上。

如果设备发生内核应急失效,用户只需要重新启动设备即可。

5、 Reduction of inlining【减少直接插入】:直接插入是编译器将代码作为宏拷贝到它调用的每个位置,而不是产生一个函数调用。GCC默认将直接插入任何函数。通过抑制直接插入函数,代码运行稍微慢一点,因为编译器需要为调用和返回产生代码,得到的报酬是对象文件更小了。

推荐5款Linux桌面环境,个个都值得拥有:

第一个:KDE

提到Linux桌面环境不得不提到KDE,有人说他是传统桌面之王这一点都不为过而相比之下,KDE在Linux桌面环境选择上十分占优势。在近几年的Linux

Journal评比中,KDE一直蝉联Linux最佳桌面。KDE的开发始于1996年,第一版发布于1998年。应该说KDE的可定制十分高,你几乎可以定制任何东西。

相比于其他桌面环境需要使用额外的工具才能进行自定义,KDE显得十分灵活,因为它已经将这一切都集成进了系统设置中,所以用户无需其他辅助工具就可以对桌面进行个性化设置。可以说KDE将你所需要的基本应用、工具全都打包了,所以十分方便。

很多流行的Linux发行版都提供KDE,目前采用KDE作为默认桌面环境的Linux发行版主要有openSUSE和Kubuntu。

第二个:GNOME

GNOME第一版发布于1999年,是目前十分流行的一种桌面环境,其分支比较多,如:Cinnamon、Unity等。其定制化没有KDE那么灵活、完善,但是可以通过第三方应用,如gnome-tweak-tool等来实现定制化。

GNOME是Fedora的默认桌面环境,目前使用GNOME作为默认桌面环境的Linux发行版主要有Debian、Fedora、openSUSE和Ubuntu GNOME。

第三个:MATE

MATE的出现是基于GNOME2已不再维护的代码创建的一个分支,最初也是为那些对GNOME3失望的用户而开发。如今也赢得很多开发者的喜爱。

MATE的优势在于其本身对资源的消耗非常小,所以如果你有一台配置不是那么高端,运行有较慢的电脑,相信选择MATE是不会错的。

在个性化定制方面,MATE自带的基本应用都从GNOME2复制过来进行集成,支持面板系统、菜单、小程序、指示器等可按用户需求配置。

第四个:Cinnamon

Cinnamon作为Linux Mint的默认桌面环境,虽然长的很像Windows用户界面,但是它拥有高度可定制化,且不需要任何额外的插件、小工具和配置工具来定制桌面。

Cinnamon的开发源自GNOME 3,但是比MATE花哨一些。与Windows相似的用户界面让Cinnamon成为部分初学者的选择。

Cinnamon作为Linux Mint的默认桌面环境,但是,很多其他Linux发行版也提供自己的Cinnamon风格。

第五个:Unity

Unity是Ubuntu的缺省桌面,也是很多初学者最开始接触Linux作用的桌面,是一个对触控优化的桌面,其最初的开发目的也是为了充分使用上网本的小屏幕。但众所周知,上网本最终并没有得到大多数用户的认可。

Unity也基于GNOME桌面环境,第一次发行是在2010年,而它作为Canonical公司开发的图形用户界面,在经历了几次重大改进之后,终于可以像其他桌面一样安装在发行版上了。


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

原文地址: http://outofmemory.cn/yw/7168495.html

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

发表评论

登录后才能评论

评论列表(0条)

保存