热门搜索 :
考研考公
您的当前位置:首页正文

各种操作系统相关

来源:东饰资讯网

常称为X11或X,

一种以位图方式显示的软件窗口系统。最初是1984年麻省理工学院的研究,之后变成UNIX、类UNIX、以及OpenVMS等操作系统所一致适用的标准化软件工具包及显示架构的运作协议。X窗口系统通过软件工具及架构协议来创建操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上。现在几乎所有的操作系统都能支持与使用X。更重要的是,今日知名的桌面环境——GNOME和KDE也都是以X窗口系统为基础建构成的。

由于X只是工具包及架构规范,本身并无实际参与运作的实体,所以必须有人依据此标准进行开发撰写。如此才有真正可用、可运行的实体,始可称为实现体。目前依据X的规范架构所开发撰写成的实现体中,以X.Org最为普遍且最受欢迎。X.Org所用的协议版本,X11,是在1987年9月所发布。而今最新的参考实现(参考性、示范性的实现体)版本则是X11 Release 7.7(简称:X11R7.7),而此项目由X.Org基金会所领导,且是以MIT授权和相似的授权许可的自由软件。


图形用户界面,Graphical User Interface。

采用图形方式显示的计算机操作用户界面。

在图形用户界面中,计算机画面上显示窗口、图标、按钮等图形,表示不同目的之动作,用户通过鼠标等指针设备进行选择。


规范##


Multics

MULTiplexed Information and Computing System,由贝尔实验室、麻省理工学院及美国通用电气公司所共同参与研发的,是一套安装在大型主机上多人多任务的操作系统。


UNIX的商标权由国际开放标准组织所拥有,匹配单一UNIX规范(Single UNIX Specification,SUS)的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX(UNIX-like),Unix的前身为Multics。

UNIX重要的设计原则:
  • 简洁至上(KISS原则)
  • 提供机制而非策略

类 Unix 系统

经常被称为un*x,ux,或nix,指各种 Unix 的派生系统,比如FreeBSD、OpenBSD、SUN公司的Solaris,以及各种与传统Unix类似的系统,例如Minix、Linux、QNX等。它们虽然有的是自由软件,有的是私有软件,但都相当程度地继承了原始 UNIX 的特性,有许多相似处,并且都在一定程度上遵守POSIX。

自由的类Unix系统

  • 1984年,Richard Stallman发起了GNU项目,目标是创建一个完全自由且向下兼容UNIX的操作系统。这个项目不断发展壮大,包含了越来越多的内容。现在,GNU项目的产品,如Emacs、GCC等已经成为各种其它自由发布的类UNIX系统中的核心角色。
  • 1990年,Linus Torvalds决定编写一个自己的Minix内核,初名为Linus' Minix,意为Linus的Minix内核,后来改名为Linux。此内核于1991年正式发布,并逐渐引起人们的注意。当时GNU操作系统仍未完成,GNU系统软件集与Linux内核结合后,GNU软件构成了这个POSIX兼容操作系统GNU/Linux的基础。今天GNU/Linux已经成为发展最为活跃的自由/开放源码的类Unix操作系统。
  • 1994年,受到GNU工程的鼓舞,BSD走上了复兴的道路。BSD的开发也走向了几个不同的方向,并最终导致了FreeBSD、NetBSD、OpenBSD和DragonFlyBSD等基于BSD的操作系统的出现。
BSD

Berkeley Software Distribution,衍生自Unix(类Unix),工作站级别的Unix系统


Linux

一种自由和开放源代码的类UNIX操作系统。

该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。,在加上用户空间的应用程序之后,成为Linux操作系统。

大多数Linux系统还包括像提供GUI的X Window之类的程序。除了一部分专家之外,大多数人都是直接使用Linux发行版,而不是自己选择每一样组件或自行设置。

术语Linux只表示操作系统内核本身,但通常采用Linux内核来表达该意思。Linux则常用来指基于Linux内核的完整操作系统,包括GUI组件和许多其他实用工具。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将该组合系统命名为GNU/Linux,但Linux不属于GNU计划,这个名称并没有得到社区的一致认同。

Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统。目前Linux已经被移植到更多的计算机硬件平台,远远超出其他任何操作系统。Linux可以运行在服务器和其他大型平台之上,如大型主机和超级计算机。世界上500个最快的超级计算机90%以上运行Linux发行版或变种,包括最快的前10名超级电脑运行的都是基于Linux内核的操作系统。Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上。

Linux被打包成供个人计算机和服务器使用的Linux发行版,一些流行的主流Linux发布版,包括Debian(及其派生版本Ubuntu、Linux Mint)、Fedora(及其相关版本Red Hat Enterprise Linux、CentOS)和openSUSE等。Linux发行版包含Linux内核和支撑内核的实用程序和库,通常还带有大量可以满足各类需求的应用程序。个人计算机使用的Linux发行版通常包含X Window和一个相应的桌面环境,如GNOME或KDE。桌面Linux操作系统常用的应用程序,包括Firefox网页浏览器、LibreOffice办公软件、GIMP图像处理工具等。由于Linux是自由软件,任何人都可以创建一个匹配自己需求的Linux发行版。

Linux发行版(Linux distribution,GNU/Linux 发行版)

为一般用户预先集成好的Linux操作系统及各种应用软件。一般用户不需要重新编译,在直接安装之后,只需要小幅度更改设置就可以使用,通常以软件包管理系统来进行应用软件的管理。Linux发行版通常包含了包括桌面环境、办公包、媒体播放器、数据库等应用软件。这些操作系统通常由Linux内核、以及来自GNU计划的大量的函数库,和基于X Window的图形界面。

由于大多数软件包是自由软件和开源软件,所以Linux发行版的形式多种多样——从功能齐全的桌面系统以及服务器系统到小型系统 (通常在嵌入式设备,或者启动软盘)。除了一些定制软件 (如安装和配置工具),发行版通常只是将特定的应用软件安装在一堆函数库和内核上,以满足特定用户的需求。

这些发行版可以分为商业发行版,比如Fedora(Red Hat)、openSUSE(Novell)、Ubuntu(Canonical公司)和Mandriva Linux;和社区发行版,它们由自由软件社区提供支持,如Debian和Gentoo;也有发行版既不是商业发行版也不是社区发行版,其中最有名的是Slackware。

一个典型的Linux桌面发行版包括一个Linux 内核,来自GNU的工具和库,和附加的软件、文档,还有一个窗口系统,窗口管理器,和一个桌面环境。大部分包括的软件是自由软件/开源软件,它们同时以二进制可执行文件和源代码形式发布,只要用户愿意,还允许修改和重新编译源代码。还有一些可能是专有软件而不提供源代码。

  • 按打包方式划分
    • 基于Dpkg (Debian系) : Ubuntu
    • 基于RPM (Red Hat系) : CenOS, Fedore, openSUSE,
    • 不复制了
  • 按发行方式划分
    • Android:来自Google,以apk格式打包,采用Dalvik虚拟机提供类似Java (编程语言)的应用程序接口,目前已成为用户最多的智能手机系统之一。

Linux发行版

Linux发行版的多样性是由于不同用户和厂商的技术、哲学和用途差异。在宽松的自由软件许可证下,任何有足够的知识和兴趣的用户可以自定义现有的发行版,以适应自己的需要。

广义地说, Linux发行版可能是:

  • 商业或非商业的;
  • 给企业或家庭使用的;
  • 服务器,台式机或嵌入式设备专用的;
  • 针对普通用户或高级用户;
  • 为一般用途或特殊功能的机器定制的,例如防火墙,网络路由器和计算机集群;
  • 甚至是为特定的硬件和计算机架构设计的;
  • 针对特定的用户群体,例如国际化和本地化,或加入许多音乐制作或科学计算软件包。
  • 不同配置的安全性,可用性,便携性,或全面性
  • 支持不同类型的硬件

流行的发行版

  • ArchLinux,一个基于KISS(Keep It Simple and Stupid)的滚动更新的操作系统。
  • CentOS,从Red Hat发展而来的发行版,由志愿者维护。它包含一个与Red Hat 100%兼容的系统和一个开发中的但并不总是兼容。
  • Chakra,一个从ArchLinux派生出来,只使用KDE桌面的半滚动更新发行版。
  • Debian,一个强烈信奉自由软件,并由志愿者维护的系统。
  • Elementary OS:基于Ubuntu,接口酷似Mac OS X。
  • Fedora,是Red Hat的社区版
  • Gentoo,一个面向高级用户的发行版,所有软件的源代码需要自行编译。
  • Knoppix,第一个Live CD发行版,可以从可移动介质运行,Debian的派生版。
  • Kubuntu, 使用KDE桌面的Ubuntu。
  • Linux Mint,从Ubuntu派生并与Ubuntu兼容的系统。
  • Mandriva,最初为Red Hat的派生版,现在由法国一个同名的公司维护。
  • OpenGEU,Ubuntu的派生版。
  • openSUSE,最初由Slackware分离出来,现在由Novell维护。
  • PCLinuxOS,Mandriva的派生版本,由社区维护的非常流行的发行版。
  • Red Hat Enterprise Linux,Fedora的商业版,由Red Hat维护和提供技术支持。
  • Slackware,最早的发行版之一,1993年创建,由Patrick J. Volkerding维护。
  • Ubuntu,一个非常流行的桌面发行版,由Canonical维护。
  • gOS和其他上网本用的系统

软件包管理系统

是在电脑中自动安装、配制、卸载和升级软件包的工具组合,在各种系统软件和应用软件的安装管理中均有广泛应用。

在Linux发行版中,几乎每一个发行版都有自己的软件包管理系统。常见有: 管理deb软件包的dpkg以及它的前端apt(使用于Debian、Ubuntu)。
rpm以及它的前端yum(使用于Fedora)、前端ZYpp(使用于openSUSE)、 前端urpmi(使用于Mandriva Linux、Mageia)等。

使用软件包管理系统将大大简化在Linux发行版中安装软件的过程。

软件包

软件包是对于一种软件所进行打包的方式。在不同的操作系统中,软件包的类型有很大的区别。

Linux、BSD系统

软件包主要以两种形式出现:二进制包以及源代码包。

二进制包

  • rpm:传统的red hat linux二进制包。
  • deb:debian系列的二进制包。
  • Autopackage/Listaller : 自由的软件包管理系统,创造在所有的Linux发行版上安装的软件包。

源码包管理

源代码包则主要适用于自由软件的安装,用户需要自己编译它们。

  • portage:gentoo的包管理工具。

对于Windows系统

  • 在Windows中,软件包大多数以安装程序的方式出现,可以将软件安装在制定的目录中,也有直接使用压缩工具打包的,解压缩之后便可运行。

dpkg软件包管理系统

dpkg是Debian Package的简写,由Debian发行版开发,用于安装、卸载和供给和deb软件包相关的信息。

deb

deb是Debian软件包格式,文件扩展名为.deb,跟Debian的命名一样,deb也是因Debra Murdock(Debian创始人Ian Murdock的前妻)而得名。

Debian包是Unixar的标准归档,将包文件信息以及包内容,经过gzip和tar打包而成。

处理这些包的经典程序是dpkg,经常是通过apt来运作。

通过Alien工具,可以将deb包转换成其他形式的软件包。

deb 档是使用 ar 包装,包含了三个文件:

  • debian-binary - deb 格式版本号码
  • control.tar.gz - 包含包的元数据,如包名称、版本、维护者、依赖、冲突等等。 在dpkg 1.17.6 之后添加了对 xz 压缩和不压缩的 control 元数据的支持。
  • data.tar.* - 实际安装的内容
    其中,"*"所指代的内容随压缩算法不同而不同。常见的可能值为xz、gz、或bz2。有时也会使用lzma。

dpkg

dpkg是Debian软件包管理器的基础,dpkg与RPM十分相似,同样被用于安装、卸载和供给和.deb软件包相关的信息。

dpkg本身是一个底层的工具。上层的工具,像是APT,被用于从远程获取软件包以及处理复杂的软件包关系。 “dpkg”是“Debian Package”的简写。

APT

高级包装工具(Advanced Packaging Tools,APT)。

是Debian及其派生发行版的软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。APT最早被设计成dpkg的前端,用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装在支持RPM的系统管理RPM包。
APT由以下的几个主要的命令构成:

  • apt-get
  • apt-cache
  • apt-file

在Debian系统中,APT建构于dpkg之上。

安装源

APT的软件安装来源在Debian安装的时候即可进行初始设置,除了Debian官方的网络安装来源之外,也可以使用Debian的安装光盘,甚至可以从非官方的安装来源中下载非官方的软件。APT同时也可以从一些安装来源中下载源代码软件,并且自行编译、安装。

依赖关系处理

APT会从每一个安装源下载一个软件包的列表。这个列表中有这个安装源所包含的可用软件包的信息。在可能的情况下,APT会安装最新的软件包,被安装的软件包所依赖的其他软件包也会被安装,建议安装的软件包则会在屏幕中显示但是不会被安装。不过在有一些情况下APT由于依赖关系不能安装软件包,例如:这个软件包和系统中的其他软件包冲突,或者这个软件包依赖的软件包在任何安装源中均不存在或没有要求的版本。在这种情况下,APT会返回错误信息并且中止,用户需要自行解决依赖问题。

软件包更新方式

Debian系统的一大特色即为“永不停机”,事实上,APT达到了这一点。在软件被升级的时候,它仍然可以继续服务。APT可以智能地从安装来源下载最新版本的软件并且安装,而无须在安装后重新启动电脑(除了更新Linux内核之外)。所有的配置都可以得到保留,升级软件不再是一个棘手的问题。

发行版升级

APT最使人称道的特点在于可以从一个Debian发行版升级到新的Debian发行版,例如从woody升级到sarge。APT可以升级绝大部分满足依赖关系的软件,但是也可能要删除,或添加新的软件以满足依赖关系。

前端

aptitude 字符终端、Synaptic 图形界面、Gnome-APT 图形界面、wajig 兼容。

示例
  • 搜索 : apt-cache search <package>
  • 安装 : apt-get install <package>
  • 移除 : apt-get remove [--purge] <package>
  • 升级 :
    • apt-get update 这样系统会自动由映射点更新包列表,如果想安装最新包,必须先运行一次。每次修改了 /etc/apt/sources.list后,也必须运行一次。
    • apt-get upgrade [-u] 这样系统会自动将所有已经安装在系统内的包升级为最新版本。如果一个包改变了依存关系,而需要安装一个新的包时,它将不会被升级,而是标识成hold。如果某个包被设置hold标号,就不会被升级。
    • apt-get dist-upgrade [-u] 和apt-get upgrade类似,dist-upgrade会安装和移除包来满足依存关系,因此具有一定的危险性。

RPM软件包管理系统

RPM包管理员(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器。RPM此名词可能是指.rpm的文件格式的软件包,也可能是指其本身的软件包管理器(RPM Package Manager)。最早由Red Hat研制,现在也由开源社区开发。RPM通常随附于Linux发行版,但也有单独将RPM作为应用软件发行的发行版(例如Gentoo)。RPM仅适用于安装用RPM来打包的软件,目前是GNU/Linux下软件包资源最丰富的软件包类型之一。

RPM软件包

RPM软件包分为二进制包(Binary)、源代码包(Source)和Delta包三种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

其他软件包管理系统

有ArchLinux中使用的Pacman,Gentoo使用的基于源代码的Portage和Mac系统下的Homebrew等。


桌面环境(Desktop environment)

在电脑运算中,一个桌面环境(Desktop environment,有时称为桌面管理器)为计算机提供一个图形用户界面(GUI)。这个名称来自桌面比拟,对应于早期的文字命令行界面(CLI)。一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性,赋予了它与众不同的外观和感觉。

一般封闭操作系统(如Microsoft Windows NT)所用的桌面环境是相对不可变的。但是也有主题和第三方软件可以完全更改常见界面元素的外观(比如窗口、按钮和图标)以及界面本身。在Windows中,这一切可以通过替换默认的Explorer shell来实现。

桌面环境实例

GNOME 、KDE 、Xfce 、LXDE 、CDE 、Unity 、Enlightenment 、Ambient 、Étoilé 、IRIX Interactive Desktop 、Project Looking Glass 、AmigaOS4.png 、Workbench 、Openwindows.jpg 、OpenWindows 、Mezzo 、ROX Desktop 、Sugar 、UDE 、EDE

GNOME

是一个完全由自由软件组成的桌面环境。它的目标操作系统是Linux,但是大部分的BSD系统亦支持GNOME。

GNOME是由志愿贡献者和受雇贡献者组成的GNOME计划开发,其最大的公司贡献者为红帽公司。它是一个为开发软件框架、基于这些框架来开发客户端软件及协调软件翻译和开发无障碍软件的项目。

GNOME是GNU计划的一部分。

GNOME Shell是GNOME桌面环境的默认用户界面。

KDE

是一个国际性的自由软件社区,开发运行在Linux、BSD、Solaris、Microsoft Windows与Mac OS X等平台上的一系列跨平台应用程序。它最著名的产品是Plasma桌面,是许多Linux发行版的默认桌面环境,例如openSUSE、Mandriva Linux、Kubuntu、与 Chakra GNU/Linux。

社区的目标是开发基本的桌面功能和日常必需的应用程序,以及提供开发者编写独立的应用程序的工具和文档。许多独立应用程序和规模较小的项目是基于KDE的技术,这些软件包括Calligra Suite、digiKam、Rekonq、K3b和许多其他应用程序。KDE软件是基于Qt框架所开发。

多个国家的政府部门也使用KDE软件,兴建位于瑞士的大型强子对撞机也使用KDE软件。

KDE是由德国人Matthias Ettrich于1996年就读于蒂宾根大学开始的一个计划。当时,他忧心于Unix桌面没有一个应用程序外观、感受或工作方式和其他程序一样。他建议不仅是创建一套应用程序,而是一个桌面环境,用户可以得到相同的外观、感受和工作方式。他还希望这个桌面易于使用及更人性化。他在Usenet发表的文章引发了很大的回响,意味着KDE计划就此诞生了。

KDE软件是基于Qt框架开发的,具备了可于多数的Unix及其他类Unix系统下运行的能力,此外还包括有Mac平台上的OS X系统和微软的Windows系统。目前使用的建构工具是CMake,并可以用在多个平台上。gettext用于作翻译。Doxygen用来产生API文件。


应用程序框架##

是一个跨平台的C++应用程序开发框架。广泛用于开发GUI程序,这种情况下又被称为部件工具箱。也可用于开发非GUI程序,比如控制台工具和服务器。Qt使用于OPIE、Skype、VLC media player、Adobe Photoshop Elements、VirtualBox与Mathematica以及被Autodesk 、欧洲空间局、梦工厂、Google、HP、KDE、卢卡斯影业、西门子公司、富豪集团, 华特迪士尼动画制作公司、三星集团、飞利浦、Panasonic 所使用。

它是Digia公司的产品。Qt使用标准的C++和特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏。通过语言绑定,其他的编程语言也可以使用Qt。

Qt是自由且开放源代码的软件,在GNU宽通用公共许可证(LGPL)条款下发布。所有版本都支持广泛的编译器,包括GCC的C++编译器和Visual Studio。

支持平台

使用Qt开发的软件,相同的代码可以在任何支持的平台上编译与运行,而不需要修改源代码。会自动依平台的不同,表现平台特有的图形界面风格。

  • Linux/X11:用于X Window System(如Solaris、AIX、HP-UX、Linux、BSD)。支持KDevelop和Eclipse IDE集成
  • Mac:用于Apple Mac OS X。基于Cocoa框架。支持Universal Binary。支持以Xcode编辑、编译和测试。
  • Windows:用于Microsoft Windows。支持Visual Studio集成,也可以使用MinGW编译
  • Embedded Linux:用于嵌入式Linux。可以通过编译移除不常使用的组件与功能。通过自己的视窗系统QWS,不需依赖X Window - System,直接写入Linux帧缓冲。可以减少内存消耗。并提供虚拟帧缓冲QVFb,方便在桌面系统上进行嵌入式测试。-
  • Windows CE / Mobile :用于Windows CE
  • Symbian:用于Symbian platform
  • Maemo/MeeGo:用于Maemo
  • Wayland –用于Wayland显示服务器,Qt应用程序可以在运行时切换图形后端,如X与Wayland。

Qt模块

经过多年发展,Qt不但拥有了完善的C++图形库,而且近年来的版本逐渐集成了数据库、OpenGL库、多媒体库、网络、脚本库、XML库、WebKit库等等,其核心库也加入了进程间通信、多线程等模块,极大的丰富了Qt开发大规模复杂跨平台应用程序的能力,真正意义上实现了其研发宗旨“Code Less; Create More; Deploy Anywhere.”。<be />
由于各家编译器良莠不齐。Qt本身为了跨平台兼容性,只能以“最低兼容规格”来设计。因此Qt必须具备RTTI、动态创建、Persistence/Serialization的基础建设,以及建构出自己的容器组件。


部件工具箱##

GTK+最初是GIMP的专用开发库(GIMP Toolkit),后来发展为Unix-like系统下开发图形界面的应用程序的主流开发工具之一。GTK+是自由软件,并且是GNU计划的一部分。GTK+的许可协议是LGPL。

使用GTK的环境

  • GNOME是以GTK+为基础,就是说为GNOME编写的程序使用GTK+做为其工具箱。
  • Xfce也基于GTK+,但是它的应用程序并不对很多其他程序有依赖。(这就是"GNOME程序"和"GTK+程序"的不同。)
  • LXDE也基于GTK+,一个尽可能减少包相依性的桌面环境。
  • GPE Palmtop环境和Nokia的互联网平板电脑的框架Maemo基于GTK+。

Unix & Linux历史源流
UNIX进化史
Top