2018年9月

本简要指南介绍了在类 Unix 操作系统中如何在不使用功能键的情况下切换 TTY。在进一步讨论之前,我们将了解 TTY 是什么。正如在 AskUbuntu 论坛的一个答案中所提到的,TTY这个词来自 TeleTYpewriter(电传打字机)。在 Unix 的早期,连接到计算机的用户终端就是机电的电传机或电传打字机(简称 tty)。从那时起,TTY 这个名称继续用于纯文本控制台。如今,所有文本控制台都代表虚拟控制台,而不是物理控制台。TTY 命令打印连接到标准输入的终端的文件名。

在 Linux 中切换 TTY

默认情况下,Linux 中有 7 个 tty。它们被称为 tty1、tty2……tty7。1 到 6 的 tty 只是命令行。第 7 个 tty 是 GUI(你的 X 桌面会话)。你可以使用 CTRL+ALT+Fn 键在不同的 TTY 之间切换。例如,要切换到 tty1,我们按下 CTRL+ALT+F1。这就是 tty1 在 Ubuntu 18.04 LTS 服务器中的样子。

如果你的系统没有 X 会话, 只需要按下 Alt+Fn 键,不需要按下 CTRL

在某些 Linux 版本中(例如,从 Ubuntu 17.10 开始),登录屏开始使用 1 号虚拟控制台。因此,你需要按 CTRL+ALT+F3CTRL+ALT+F6 来访问虚拟控制台。要返回桌面环境,请在 Ubuntu 17.10 及更高版本上按下 CTRL+ALT+F2CTRL+ALT+F7

目前为止我们看到我们可以使用 CTRL+ALT+FnF1 - F7)在 TTY 之间轻松切换。但是,如果出于任何原因你不想使用功能键,那么在 Linux 中有一个名为 chvt 的简单命令。

chvt N 命令让你切换到前台终端 N,这与按 CTRL+ALT+Fn 相同。如果它不存在,则创建相应的屏幕。

让我们试试显示当前的 tty:

$ tty

我的 Ubuntu 18.04 LTS 服务器的示例输出。

现在让我们切换到 tty2。为此,请输入:

$ sudo chvt 2

记住你需要在 chvt 命令一同使用 sudo

现在,使用命令检查当前的 tty:

$ tty

你会看到 tty 现在已经改变了。

同样,你可以使用 sudo chvt 3 切换到 tty3,使用 sudo chvt 4 切换到 tty4 等等。

当任何一个功能键不起作用时,chvt 命令会很有用。

要查看活动虚拟控制台的总数,请运行:

$ fgconsole
2

如你所见,我的系统中有两个活动的虚拟终端。

你可以使用以下命令查看下一个未分配的虚拟终端:

$ fgconsole --next-available
3

如果虚拟控制台不是前台控制台,并且它没有打开任何进程来读取或写入,并且未在其屏幕上选择任何文本,则它是未使用的。

要移除未使用的虚拟终端,只需键入:

$ deallocvt

上面的命令为所有未使用的虚拟控制台释放内核内存和数据结构。简单地说,此命令将释放连接到未使用的虚拟控制台的所有资源。

有关更多详细信息,请参阅相应命令的手册页。

$ man tty
$ man chvt
$ man fgconsole
$ man deallocvt

就是这些了。希望这很有用。还有更多的好东西。敬请关注!

干杯!


via: https://www.ostechnix.com/how-to-switch-between-ttys-without-using-function-keys-in-linux/

作者:SK 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Linux 虚拟机与 Linux Live 镜像各有优势,也有不足。

首先我得承认,我非常喜欢频繁尝试新的 Linux 发行版本。然而,我用来测试它们的方法根据每次目标而有所不同。在这篇文章中,我们来看看两种运行 Linux 的模式:虚拟机或 Live 镜像。每一种方式都存在优势,但是也有一些不足。

首次测试一个全新的 Linux 发行版

当我首次测试一个全新 Linux 发行版时,我使用的方法很大程度上依赖于我当前所拥有的 PC 资源。如果我使用台式机,我会在一台虚拟机中运行该发行版来测试。使用这种方法的原因是,我可以下载并测试该发行版,不只是在一个 Live 环境中,而且也可以作为一个带有持久存储的安装的系统。

另一方面,如果我的 PC 不具备强劲的硬件,那么通过 Linux 的虚拟机安装来测试发行版是适得其反的。我会将那台 PC 压榨到它的极限,诚然,更好的是使用 Linux Live 镜像,而不是从闪存盘中运行。

体验新的 Linux 发行版本的软件

如果你有兴趣查看发行版本的桌面环境或可用的软件,那使用它的 Live 镜像就没错了。一个 Live 环境可以提供给你所预期的全局视角、其所提供的软件和用户体验的整体感受。

公平的说,你也可以在虚拟机上达到同样的效果,但是它有一点不好,如果这么做会让更多数据填满你的磁盘空间。毕竟这只是对发行版的一个简单体验。记得我在第一节说过:我喜欢在虚拟机上运行 Linux 来做测试。用这个方式我就能看到如何去安装它、分区是怎么样的等等,而使用 Live 镜像时你就看不到这些。

这种体验方式通常表明你只想对该发行版本有个大致了解,所以在这种情况下,这种只需要付出最小的精力和时间的方式是一种不错的办法。

随身携带一个发行版

这种方式虽然不像几年前那样普遍,这种随身携带一个 Linux 发行版的能力也许是出于对某些用户的考虑。显然,虚拟机安装对于便携性并无太多帮助。不过, Live 镜像实际上是十分便携的。 Live 镜像可以写入到 DVD 当中或复制到一个闪存盘中而便于携带。

从 Linux 的便携性这个概念上展开来说,当要在一个朋友的电脑上展示 Linux 如何工作,使用一个闪存盘上的 Live 镜像也是很方便的。这可以使你能演示 Linux 如何丰富他们的生活,而不用必须在他们的 PC 上运行一个虚拟机。使用 Live 镜像这就有点双赢的感觉了。

选择做双引导 Linux

这接下来的方式是个大工程。考虑一下,也许你是一个 Windows 用户。你喜欢玩 Linux,但又不愿意冒险。除了在某些情况下会出些状况或者识别个别分区时遇到问题,双引导方式就没啥挑剔的。无论如何,使用 Linux 虚拟机或 Live 镜像都对于你来说是一个很好的选择。

现在,我在某些事情上采取了不同的立场。我认为长期在闪存盘上运行 Live 镜像要比虚拟机更有价值。这有两个原因。首先,您将会习惯于真正运行 Linux,而不是在 Windows 之上的虚拟机中运行它。其次,您可以设置闪存盘以包含持久存储的用户数据。

我知道你会说用一个虚拟机运行 Linux 也是如此,然而,使用 Live 镜像的方式,你绝不会因为更新而被破坏任何东西。为什么?因为你不会更新你的宿主系统或者客户系统。请记住,有整个 Linux 发行版本被设计为持久存储的 Linux 发行版。Puppy Linux 就是一个非常好的例子。它不仅能运行在要被回收或丢弃的个人 PC 上,它也可以让你永远不被频繁的系统升级所困扰,这要感谢该发行版处理安全更新的方式。这不是一个常规的 Linux 发行版,而是以这样的一种方式封闭了安全问题——即持久存储的 Live 镜像中没有什么令人担心的坏东西。

Linux 虚拟机绝对是一个最好的选择

在我结束这篇文章时,让我告诉你。有一种场景下,使用 Virtual Box 等虚拟机绝对比 Live 镜像更好:记录 Linux 发行版的桌面环境。

例如,我制作了一个视频,里面介绍和点评了许多 Linux 发行版。使用 Live 镜像进行此操作需要我用硬件设备捕获屏幕,或者从 Live 镜像的软件仓库中安装捕获软件。显然,虚拟机比 Linux 发行版的 Live 镜像更适合这项工作。

一旦你需要采集音频进行混音,毫无疑问,如果您要使用软件来捕获您的点评语音,那么您肯定希望拥有一个宿主操作系统,里面包含了一个起码的捕获环境的所有基本需求。同样,您可以使用硬件设备来完成所有这一切,但如果您只是做兼职的视频/音频捕获, 那么这可能要付出成本高昂的代价。

Linux 虚拟机 VS. Linux Live 镜像

你最喜欢尝试新发行版的方式是哪些?也许,你是那种可以很好地格式化磁盘、将风险置之脑后的人,所以这里说的这些都是没用的?

我在网上互动的大多数人都倾向于遵循我上面提及的方法,但是我很想知道哪种方式更加适合你。点击评论框,让我知道在体验 Linux 发行版世界最伟大和最新的版本时,您更喜欢哪种方法。


via: https://www.datamation.com/open-source/linux-virtual-machines-vs-linux-live-images.html

作者:Matt Hartley 译者:sober-wang 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

学习如何穿行于 C:\ 提示符下,就像上世纪 90 年代的 DOS 高手一样。

FreeDOS 是一个古老的操作系统,但是对于多数人而言它又是陌生的。在 1994 年,我和几个开发者一起 开发了 FreeDOS —— 这是一个完整、自由、兼容 DOS 的操作系统,你可以用它来玩经典的 DOS 游戏、运行过时的商业软件或者开发嵌入式系统。任何在 MS-DOS 下工作的程序在 FreeDOS 下也可以运行。

在 1994 年,任何一个曾经使用过微软的商业版 MS-DOS 的人都会迅速地熟悉 FreeDOS。这是设计而为之的;FreeDOS 尽可能地去模仿 MS-DOS。结果,1990 年代的 DOS 用户能够直接转换到 FreeDOS。但是,时代变了。今天,开源的开发者们对于 Linux 命令行更熟悉,或者他们可能倾向于像 GNOME 一样的图形桌面环境,这导致 FreeDOS 命令行界面最初看起来像个异类。

新的用户通常会问,“我已经安装了 FreeDOS,但是如何使用呢?”。如果你之前并没有使用过 DOS,那么闪烁的 C:\> DOS 提示符看起来会有点不太友好,而且可能有点吓人。这份 FreeDOS 的简单介绍将带你起步。它只提供了基础:如何浏览以及如何查看文件。如果你想了解比这里提及的更多的知识,访问 FreeDOS 维基

DOS 提示符

首先,让我们看一下空的提示符以及它的含义。

DOS 是在个人电脑从软盘运行时期创建的一个“ 磁盘操作系统 disk operating system ”。甚至当电脑支持硬盘了,在 1980 年代和 1990 年代,频繁地在不同的驱动器之间切换也是很普遍的。举例来说,你可能想将最重要的文件都备份一份拷贝到软盘中。

DOS 使用一个字母来指代每个驱动器。早期的电脑仅拥有两个软盘驱动器,他们被分配了 A:B: 盘符。硬盘上的第一个分区盘符是 C: ,然后其它的盘符依次这样分配下去。提示符中的 C: 表示你正在使用第一个硬盘的第一个分区。

从 1983 年的 PC-DOS 2.0 开始,DOS 也支持目录和子目录,非常类似 Linux 文件系统中的目录和子目录。但是跟 Linux 不一样的是,DOS 目录名由 \ 分隔而不是 /。将这个与驱动器字母合起来看,提示符中的 C:\ 表示你正在 C: 盘的顶端或者“根”目录。

> 符号是提示你输入 DOS 命令的地方,就像众多 Linux shell 的 $> 前面的部分告诉你当前的工作目录,然后你在 > 提示符这输入命令。

在 DOS 中找到你的使用方式

在 DOS 中浏览目录的基本方式和你在 Linux 命令行下的步骤非常相似。你仅需要记住少数的命令。

显示一个目录

当你想要查看当前目录的内容时,使用 DIR 命令。因为 DOS 命令是大小写不敏感的,你也可以输入 dir。默认地,DOS 会显示每个文件和子目录的细节,包括了名字、扩展类型、大小以及最后一次更改的日期和时间。

如果你不想显示单个文件大小的额外细节,你可以在 DIR 命令中使用 /w 选项来显示一个“宽”的目录列表。注意,Linux 用户使用连字号(-)或者双连字号(--)来开始命令行选项,而 DOS 使用斜线字符(/)。

你可以将特定子目录的路径名作为参数传递给 DIR 命令来查看它。此外,另一个与 Linux 系统的区别是 Linux 文件和目录是大小写敏感的,而 DOS 下的名称是大小写不敏感的。DOS 通常将文件和目录使用全部大写的方式显示,不过你可以等同地用小写格式来使用它们。

切换当前工作目录

一旦你能够查看一个目录的内容,你就能够“移动到”任何其它的目录。在 DOS 上,使用 CHDIR 命令来切换工作目录,也可以简写为 CD。你可以使用类似 CD CHOICE 的命令进入到一个子目录或者使用 CD \FDOS\DOC\CHOICE 进入到一个新的路径。

就像在 Linux 命令行,DOS 使用 . 来表示当前目录,而 .. 表示父目录(当前目录的上一级)。你可以将这些组合起来使用。比如,CD .. 进入到父目录,然后 CD ..\.. 由当前目录做两个“向上”目录级别的操作。

FreeDOS 也从 Linux 那借鉴了一些特性:你可以使用 CD - 跳转回之前的工作目录。在你进入一个新的路径做完一件事之后,想要回退到之前工作状态的情况下,这会很方便。

切换当前工作盘符

在 Linux 下,“磁盘”的概念是隐藏的。在 Linux 和其它 Unix 系统中,你“挂载”磁盘到一个目录,例如 /backup,或者系统自动帮你完成,比如 /var/run/media/user/flashdrive。但是 DOS 是一个相对简单的系统。使用 DOS,你必须自行更改工作磁盘。

记住 DOS 分配第一块硬盘的第一个分区为 C: 盘,然后这样依次分配其它盘符。在现代系统中,人们很少将硬盘分割成多个 DOS 分区;他们简单地使用整个磁盘或者尽可能多地分配给 DOS。如今 C: 通常是第一块硬盘,而 D: 通常是另一块硬盘或者 CD-ROM 驱动器。其它的网络磁盘驱动器也可以被映射到别的盘符,比如 E: 或者 Z: 或者任何你想要的组织方式。

在 DOS 下切换磁盘很容易。只要在命令行输入盘符后附加一个冒号(:),然后 DOS 就会切换到该工作磁盘。举例来说,在我的 QEMU 系统上,我将 D: 设置到我的 Linux 主目录下的一个共享目录,那里存放了各种我想测试的 DOS 应用程序和游戏的安装文件。

小心不要尝试切换到一个不存在的磁盘。DOS 可能会将它设置为工作磁盘,但是如果你尝试在那做任何事,你将会遇到略微臭名昭著的“ 退出、重试、失败 Abort, Retry, Fail ” DOS 错误信息。

其它可以尝试的事情

使用 CDDIR 命令,你就拥有了基础的浏览 DOS 能力。这些命令允许你查找 DOS 目录并查看其他子目录和文件的存在。一旦你熟悉基础浏览操作,你还可以尝试其它的这些基础 DOS 命令:

  • MKDIRMD 创建新的目录
  • RMDIRRD 删除目录
  • TREE 以树状格式显示目录和子目录列表
  • TYPEMORE 显示文件内容
  • RENAMEREN 重命名文件
  • DELERASE 删除文件
  • EDIT 编辑文件
  • CLS 清除屏幕

如果这些还不够,你可以在 FreeDOS 维基上面找到所有 DOS 命令的清单。

在 FreeDOS 下,针对每个命令你都能够使用 /? 参数来获取简要的说明。举例来说,EDIT /? 会告诉你编辑器的用法和选项。或者你可以输入 HELP 来使用交互式帮助系统。

像任何一个 DOS 一样,FreeDOS 被认为是一个简单的操作系统。仅使用一些基本命令就可以轻松浏览 DOS 文件系统。那么,启动一个 QEMU 会话,安装 FreeDOS,然后尝试一下 DOS 命令行界面吧。也许它现在看起来就没那么吓人了。


via: https://opensource.com/article/18/4/gentle-introduction-freedos

作者:Jim Hall 选题:lujun9972 译者:icecoobe 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在本教程中,我们将学习如何在类 Unix 系统中查看一个归档或者压缩文件的内容而无需实际解压它。在深入之前,让我们先厘清归档和压缩文件的概念,它们之间有显著不同。归档是将多个文件或者目录归并到一个文件的过程,因此这个生成的文件是没有被压缩过的。而压缩则是结合多个文件或者目录到一个文件并最终压缩这个文件的方法。归档文件不是一个压缩文件,但压缩文件可以是一个归档文件,清楚了吗?好,那就让我们进入今天的主题。

查看一个归档或者压缩文件的内容而无需解压它

得益于 Linux 社区,有很多命令行工具可以来达成上面的目标。下面就让我们来看看使用它们的一些示例。

1、使用 vim 编辑器

vim 不只是一个编辑器,使用它我们可以干很多事情。下面的命令展示的是在没有解压的情况下使用 vim 查看一个压缩的归档文件的内容:

$ vim ostechnix.tar.gz

你甚至还可以浏览归档文件的内容,打开其中的文本文件(假如有的话)。要打开一个文本文件,只需要用方向键将鼠标的游标放置到文件的前面,然后敲 ENTER 键来打开它。

2、使用 tar 命令

为了列出一个 tar 归档文件的内容,可以运行:

$ tar -tf ostechnix.tar
ostechnix/
ostechnix/image.jpg
ostechnix/file.pdf
ostechnix/song.mp3

或者使用 -v 选项来查看归档文件的具体属性,例如它的文件所有者、属组、创建日期等等。

$ tar -tvf ostechnix.tar
drwxr-xr-x sk/users 0 2018-07-02 19:30 ostechnix/
-rw-r--r-- sk/users 53632 2018-06-29 15:57 ostechnix/image.jpg
-rw-r--r-- sk/users 156831 2018-06-04 12:37 ostechnix/file.pdf
-rw-r--r-- sk/users 9702219 2018-04-25 20:35 ostechnix/song.mp3

3、使用 rar 命令

要查看一个 rar 文件的内容,只需要执行:

$ rar v ostechnix.rar

RAR 5.60 Copyright (c) 1993-2018 Alexander Roshal 24 Jun 2018
Trial version Type 'rar -?' for help

Archive: ostechnix.rar
Details: RAR 5

Attributes Size Packed Ratio Date Time Checksum Name
----------- --------- -------- ----- ---------- ----- -------- ----
-rw-r--r-- 53632 52166 97% 2018-06-29 15:57 70260AC4 ostechnix/image.jpg
-rw-r--r-- 156831 139094 88% 2018-06-04 12:37 C66C545E ostechnix/file.pdf
-rw-r--r-- 9702219 9658527 99% 2018-04-25 20:35 DD875AC4 ostechnix/song.mp3
----------- --------- -------- ----- ---------- ----- -------- ----
9912682 9849787 99% 3

4、使用 unrar 命令

你也可以使用带有 l 选项的 unrar 来做到与上面相同的事情,展示如下:

$ unrar l ostechnix.rar

UNRAR 5.60 freeware Copyright (c) 1993-2018 Alexander Roshal

Archive: ostechnix.rar
Details: RAR 5

Attributes Size Date Time Name
----------- --------- ---------- ----- ----
-rw-r--r-- 53632 2018-06-29 15:57 ostechnix/image.jpg
-rw-r--r-- 156831 2018-06-04 12:37 ostechnix/file.pdf
-rw-r--r-- 9702219 2018-04-25 20:35 ostechnix/song.mp3
----------- --------- ---------- ----- ----
9912682 3

5、使用 zip 命令

为了查看一个 zip 文件的内容而无需解压它,可以使用下面的 zip 命令:

$ zip -sf ostechnix.zip
Archive contains:
Life advices.jpg
Total 1 entries (597219 bytes)

6、使用 unzip 命令

你也可以像下面这样使用 -l 选项的 unzip 命令来呈现一个 zip 文件的内容:

$ unzip -l ostechnix.zip
Archive: ostechnix.zip
Length Date Time Name
--------- ---------- ----- ----
597219 2018-04-09 12:48 Life advices.jpg
--------- -------
597219 1 file

7、使用 zipinfo 命令

$ zipinfo ostechnix.zip 
Archive: ostechnix.zip
Zip file size: 584859 bytes, number of entries: 1
-rw-r--r-- 6.3 unx 597219 bx defN 18-Apr-09 12:48 Life advices.jpg
1 file, 597219 bytes uncompressed, 584693 bytes compressed: 2.1%

如你所见,上面的命令展示了一个 zip 文件的内容、它的权限、创建日期和压缩百分比等等信息。

8、使用 zcat 命令

要一个压缩的归档文件的内容而不解压它,使用 zcat 命令,我们可以得到:

$ zcat ostechnix.tar.gz

zcatgunzip -c 命令相同。所以你可以使用下面的命令来查看归档或者压缩文件的内容:

$ gunzip -c ostechnix.tar.gz

9、使用 zless 命令

要使用 zless 命令来查看一个归档或者压缩文件的内容,只需:

$ zless ostechnix.tar.gz

这个命令类似于 less 命令,它将一页一页地展示其输出。

10、使用 less 命令

可能你已经知道 less 命令可以打开文件来交互式地阅读它,并且它支持滚动和搜索。

运行下面的命令来使用 less 命令查看一个归档或者压缩文件的内容:

$ less ostechnix.tar.gz

上面便是全部的内容了。现在你知道了如何在 Linux 中使用各种命令查看一个归档或者压缩文件的内容了。希望本文对你有用。更多好的内容将呈现给大家,希望继续关注我们!

干杯!


via: https://www.ostechnix.com/how-to-view-the-contents-of-an-archive-or-compressed-file-without-extracting-it/

作者:SK 选题:lujun9972 译者:FSSlc 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

AMD-Polaris

自从 3dfx 推出最初的 Voodoo 加速器以来,不起眼的显卡对你的 PC 是否可以玩游戏起到决定性作用,PC 上任何其它设备都无法与其相比。其它组件当然也很重要,但对于一个拥有 32GB 内存、价值 500 美金的 CPU 和 基于 PCIe 的存储设备的高端 PC,如果使用 10 年前的显卡,都无法以最高分辨率和细节质量运行当前 最高品质的游戏 AAA titles ,会发生卡顿甚至无响应。显卡(也常被称为 GPU,即 图形处理单元 Graphic Processing Unit ),对游戏性能影响极大,我们反复强调这一点;但我们通常并不会深入了解显卡的工作原理。

出于实际考虑,本文将概述 GPU 的上层功能特性,内容包括 AMD 显卡、Nvidia 显卡、Intel 集成显卡以及 Intel 后续可能发布的独立显卡之间共同的部分。也应该适用于 Apple、Imagination Technologies、Qualcomm、ARM 和其它显卡生产商发布的移动平台 GPU。

我们为何不使用 CPU 进行渲染?

我要说明的第一点是我们为何不直接使用 CPU 完成游戏中的渲染工作。坦率的说,在理论上你确实可以直接使用 CPU 完成 渲染 rendering 工作。在显卡没有广泛普及之前,早期的 3D 游戏就是完全基于 CPU 运行的,例如 《 地下创世纪 Ultima Underworld (下文中简称 UU)。UU 是一个很特别的例子,原因如下:与《 毁灭战士 Doom 相比,UU 具有一个更高级的渲染引擎,全面支持“向上或向下看”以及一些在当时比较高级的特性,例如 纹理映射 texture mapping 。但为支持这些高级特性,需要付出高昂的代价,很少有人可以拥有真正能运行起 UU 的 PC。

地下创世纪,图片来自 GOG

对于早期的 3D 游戏,包括《 半条命 Half Life 》和《 雷神之锤 2 Quake II 》在内的很多游戏,内部包含一个软件渲染器,让没有 3D 加速器的玩家也可以玩游戏。但现代游戏都弃用了这种方式,原因很简单:CPU 是设计用于通用任务的微处理器,意味着缺少 GPU 提供的 专用硬件 specialized hardware 功能 capabilities 。对于 18 年前使用软件渲染的那些游戏,当代 CPU 可以轻松胜任;但对于当代最高品质的游戏,除非明显降低 景象质量 scene 、分辨率和各种虚拟特效,否则现有的 CPU 都无法胜任。

什么是 GPU ?

GPU 是一种包含一系列专用硬件特性的设备,其中这些特性可以让各种 3D 引擎更好地执行代码,包括 形状构建 geometry setup ,纹理映射, 访存 memory access 着色器 shaders 等。3D 引擎的功能特性影响着设计者如何设计 GPU。可能有人还记得,AMD HD5000 系列使用 VLIW5 架构 archtecture ;但在更高端的 HD 6000 系列中使用了 VLIW4 架构。通过 GCN (LCTT 译注:GCN 是 Graphics Core Next 的缩写,字面意思是“下一代图形核心”,既是若干代微体系结构的代号,也是指令集的名称),AMD 改变了并行化的实现方法,提高了每个时钟周期的有效性能。

“GPU 革命”的前两块奠基石属于 AMD 和 NV;而“第三个时代”则独属于 AMD。

Nvidia 在发布首款 GeForce 256 时(大致对应 Microsoft 推出 DirectX7 的时间点)提出了 GPU 这个术语,这款 GPU 支持在硬件上执行转换和 光照计算 lighting calculation 。将专用功能直接集成到硬件中是早期 GPU 的显著技术特点。很多专用功能还在(以一种极为不同的方式)使用,毕竟对于特定类型的工作任务,使用 片上 on-chip 专用计算资源明显比使用一组 可编程单元 programmable cores 要更加高效和快速。

GPU 和 CPU 的核心有很多差异,但我们可以按如下方式比较其上层特性。CPU 一般被设计成尽可能快速和高效的执行单线程代码。虽然 同时多线程 Simultaneous multithreading (SMT)或 超线程 Hyper-Threading (HT)在这方面有所改进,但我们实际上通过堆叠众多高效率的单线程核心来扩展多线程性能。AMD 的 32 核心/64 线程 Epyc CPU 已经是我们能买到的核心数最多的 CPU;相比而言,Nvidia 最低端的 Pascal GPU 都拥有 384 个核心。但相比 CPU 的核心,GPU 所谓的核心是处理能力低得多的的处理单元。

注意: 简单比较 GPU 核心数,无法比较或评估 AMD 与 Nvidia 的相对游戏性能。在同样 GPU 系列(例如 Nvidia 的 GeForce GTX 10 系列,或 AMD 的 RX 4xx 或 5xx 系列)的情况下,更高的 GPU 核心数往往意味着更高的性能。

你无法只根据核心数比较不同供应商或核心系列的 GPU 之间的性能,这是因为不同的架构对应的效率各不相同。与 CPU 不同,GPU 被设计用于并行计算。AMD 和 Nvidia 在结构上都划分为计算资源 block 。Nvidia 将这些块称之为 流处理器 Streaming Multiprocessor (SM),而 AMD 则称之为 计算单元 Compute Unit (CU)。

一个 Pascal 流处理器(SM)。

每个块都包含如下组件:一组核心、一个 调度器 scheduler 、一个 寄存器文件 register file 、指令缓存、纹理和 L1 缓存以及纹理 映射单元 mapping unit 。SM/CU 可以被认为是 GPU 中最小的可工作块。SM/CU 没有涵盖全部的功能单元,例如视频解码引擎,实际在屏幕绘图所需的渲染输出,以及与 板载 onboard 显存 Video Memory (VRAM)通信相关的 内存接口 memory interfaces 都不在 SM/CU 的范围内;但当 AMD 提到一个 APU 拥有 8 或 11 个 Vega 计算单元时,所指的是(等价的) 硅晶块 block of silicon 数目。如果你查看任意一款 GPU 的模块设计图,你会发现图中 SM/CU 是反复出现很多次的部分。

这是 Pascal 的全平面图

GPU 中的 SM/CU 数目越多,每个时钟周期内可以并行完成的工作也越多。渲染是一种通常被认为是“高度并行”的计算问题,意味着随着核心数增加带来的可扩展性很高。

当我们讨论 GPU 设计时,我们通常会使用一种形如 4096:160:64 的格式,其中第一个数字代表核心数。在核心系列(如 GTX970/GTX 980/GTX 980 Ti,如 RX 560/RX 580 等等)一致的情况下,核心数越高,GPU 也就相对更快。

纹理映射和渲染输出

GPU 的另外两个主要组件是纹理映射单元和渲染输出。设计中的纹理映射单元数目决定了最大的 纹素 texel 输出以及可以多快的处理并将纹理映射到对象上。早期的 3D 游戏很少用到纹理,这是因为绘制 3D 多边形形状的工作有较大的难度。纹理其实并不是 3D 游戏必须的,但不使用纹理的现代游戏屈指可数。

GPU 中的纹理映射单元数目用 4096:160:64 指标中的第二个数字表示。AMD、Nvidia 和 Intel 一般都等比例变更指标中的数字。换句话说,如果你找到一个指标为 4096:160:64 的 GPU,同系列中不会出现指标为 4096:320:64 的 GPU。纹理映射绝对有可能成为游戏的瓶颈,但产品系列中次高级别的 GPU 往往提供更多的核心和纹理映射单元(是否拥有更高的渲染输出单元取决于 GPU 系列和显卡的指标)。

渲染输出单元 Render outputs (ROP),有时也叫做 光栅操作管道 raster operations pipelines 是 GPU 输出汇集成图像的场所,图像最终会在显示器或电视上呈现。渲染输出单元的数目乘以 GPU 的时钟频率决定了 像素填充速率 pixel fill rate 。渲染输出单元数目越多意味着可以同时输出的像素越多。渲染输出单元还处理 抗锯齿 antialiasing ,启用抗锯齿(尤其是 超级采样 supersampled 抗锯齿)会导致游戏填充速率受限。

显存带宽与显存容量

我们最后要讨论的是 显存带宽 memory bandwidth 显存容量 memory capacity 。显存带宽是指一秒时间内可以从 GPU 专用的显存缓冲区内拷贝进或拷贝出多少数据。很多高级视觉特效(以及更常见的高分辨率)需要更高的显存带宽,以便保证足够的 帧率 frame rates ,因为需要拷贝进和拷贝出 GPU 核心的数据总量增大了。

在某些情况下,显存带宽不足会成为 GPU 的显著瓶颈。以 Ryzen 5 2400G 为例的 AMD APU 就是严重带宽受限的,以至于提高 DDR4 的时钟频率可以显著提高整体性能。导致瓶颈的显存带宽阈值,也与游戏引擎和游戏使用的分辨率相关。

板载内存大小也是 GPU 的重要指标。如果按指定细节级别或分辨率运行所需的显存量超过了可用的资源量,游戏通常仍可以运行,但会使用 CPU 的主存来存储额外的纹理数据;而从 DRAM 中提取数据比从板载显存中提取数据要慢得多。这会导致游戏在板载的快速访问内存池和系统内存中共同提取数据时出现明显的卡顿。

有一点我们需要留意,GPU 生产厂家通常为一款低端或中端 GPU 配置比通常更大的显存,这是他们为产品提价的一种常用手段。很难说大显存是否更具有吸引力,毕竟需要具体问题具体分析。大多数情况下,用更高的价格购买一款仅是显存更高的显卡是不划算的。经验规律告诉我们,低端显卡遇到显存瓶颈之前就会碰到其它瓶颈。如果存在疑问,可以查看相关评论,例如 4G 版本或其它数目的版本是否性能超过 2G 版本。更多情况下,如果其它指标都相同,购买大显存版本并不值得。

查看我们的极致技术探索系列,深入了解更多当前最热的技术话题。


via: https://www.extremetech.com/gaming/269335-how-graphics-cards-work

作者:Joel Hruska 选题:lujun9972 译者:pinewall 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

MPV 是一个开源的,跨平台视频播放器,带有极简的 GUI 界面以及丰富的命令行控制。

VLC 可能是 Linux 或者其他平台下最好的视频播放器。我已经使用 VLC 很多年了,它现在仍是我最喜欢的播放器。

不过最近,我倾向于使用简洁界面的极简应用。这也是我偶然发现 MPV 的原因。我太喜欢这个软件,并把它加入了 Ubuntu 最佳应用列表里。

MPV 是一个开源的视频播放器,有 Linux、Windows、MacOS、BSD 以及 Android 等平台下的版本。它实际上是从 MPlayer 分支出来的。

它的图形界面只有必须的元素而且非常整洁。

MPV 播放器在 Linux 下的界面

MPV 的功能

MPV 有标准播放器该有的所有功能。你可以播放各种视频,以及通过常用快捷键来控制播放。

  • 极简图形界面以及必须的控件。
  • 自带视频解码器。
  • 高质量视频输出以及支持 GPU 硬件视频解码。
  • 支持字幕。
  • 可以通过命令行播放 YouTube 等流媒体视频。
  • 命令行模式的 MPV 可以嵌入到网页或其他应用中。

尽管 MPV 播放器只有极简的界面以及有限的选项,但请不要怀疑它的功能。它主要的能力都来自命令行版本。

只需要输入命令 mpv --list-options,然后你会看到它所提供的 447 个不同的选项。但是本文不会介绍 MPV 的高级应用。让我们看看作为一个普通的桌面视频播放器,它能有多么优秀。

在 Linux 上安装 MPV

MPV 是一个常用应用,加入了大多数 Linux 发行版默认仓库里。在软件中心里搜索一下就可以了。

我可以确认在 Ubuntu 的软件中心里能找到。你可以在里面选择安装,或者通过下面的命令安装:

sudo apt install mpv

你可以在 MPV 网站上查看其他平台的安装指引。

使用 MPV 视频播放器

在安装完成以后,你可以通过鼠标右键点击视频文件,然后在列表里选择 MPV 来播放。

MPV 播放器界面

MPV 播放器界面

整个界面只有一个控制面板,只有在鼠标移动到播放窗口上才会显示出来。控制面板上有播放/暂停,选择视频轨道,切换音轨,字幕以及全屏等选项。

MPV 的默认大小取决于你所播放视频的画质。比如一个 240p 的视频,播放窗口会比较小,而在全高清显示器上播放 1080p 视频时,会几乎占满整个屏幕。不管视频大小,你总是可以在播放窗口上双击鼠标切换成全屏。

字幕

如果你的视频带有字幕,MPV 会自动加载字幕,你也可以选择关闭。不过,如果你想使用其他外挂字幕文件,不能直接在播放器界面上操作。

你可以将额外的字幕文件名改成和视频文件一样,并且将它们放在同一个目录下。MPV 会加载你的字幕文件。

更简单的播放外挂字幕的方式是,用鼠标选中文件拖到播放窗口里放开。

播放 YouTube 或其他在线视频

要播放在线视频,你只能使用命令行模式的 MPV。

打开终端窗口,然后用类似下面的方式来播放:

mpv <URL_of_Video>

在 Linux 桌面上使用 MPV 播放 YouTube 视频

在 Linux 桌面上使用 MPV 播放 YouTube 视频

用 MPV 播放 YouTube 视频的体验不怎么好。它总是在缓冲缓冲,有点烦。

是否安装 MPV 播放器?

这个看你自己。如果你想体验各种应用,大可以试试 MPV。否则,默认的视频播放器或者 VLC 就足够了。

我在早些时候写关于 Sayonara 的文章时,并不确定大家会不会喜欢一个相对不常用的音乐播放器,但是 FOSS 的读者觉得很好。

试一下 MPV,然后看看你会不会将它作为你的默认视频播放器。

如果你喜欢 MPV,但又觉得它的图形界面需要更多功能,我推荐你使用 GNOME MPV 播放器

你用过 MPV 视频播放器吗?体验怎么样?喜欢还是不喜欢?欢迎在下面的评论区留言。


via: https://itsfoss.com/mpv-video-player/

作者:Abhishek Prakash 选题:lujun9972 译者:zpl1025 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出