2020年9月

UNIX 时间突破 16 亿秒

UNIX 时间(Epoch time)是 UNIX 系统使用的时间表示方式,从协调世界时 1970 年 1 月 1 日 0 时 0 分 0 秒起开始计算,它不考虑闰秒,因此并不是协调世界时的真实表达。UNIX 时间每天固定为 86400 秒,每年 31556926 秒,到 2020 年 9 月 13 日晚上 8 点 26 分(GMT+8),它的总秒数突破了 16 亿。

来源:solidot

拍一拍:时间不停流逝,下次千年虫也在慢慢接近。

卡巴斯基警告说,入侵者越来越针对 Linux

虽然在大规模恶意软件攻击中,Windows 往往更经常成为攻击目标,但当涉及到高级持续性威胁(APT)时,情况并非总是如此。许多组织都会选择 Linux 作为战略上重要的服务器和系统,而随着大企业以及政府机构使用 Linux 作为桌面环境,攻击者又在为该平台开发更多的恶意软件。根据卡巴斯基的数据,已经观察到有十多个 APT 行为者使用 Linux 恶意软件或一些基于 Linux 的模块。

来源:slashdot

拍一拍:所以,一个操作系统安全不安全,全看是不是主流了。

Manjaro 20.1 Mikah 提供了 Xfce/GNOME/KDE 三种风味

继 4 月推出的 Manjaro 20 “Lysia”之后,Linux 社区又迎来了该系列的首个更新 —— Manjaro 20.1 “Mikah”。还提供了三种风味,感兴趣的朋友可选下载 Xfce(4.14)、GNOME(3.36)和 KDE Plasma(5.19)三种桌面环境。

来源:cnbeta

拍一拍:Manjaro 赢得了一致好评。

这是一个包含了所有已知 USB 设备 ID 的开源项目。

市场上有成千上万的 USB 设备:键盘、扫描仪、打印机、鼠标和其他无数的设备,都能在 Linux 上工作。它们的供应商详情都存储在 USB ID 仓库中。

lsusb

Linux lsusb 命令列出了连接到系统的 USB 设备的信息,但有时信息不完整。例如,我最近注意到我的一个 USB 设备的品牌没有被识别。设备是可以使用的,但是在列出我所连接的 USB 设备的详情中没有提供任何识别信息。以下是我的 lsusb 命令的输出:

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 046d:082c Logitech, Inc.
Bus 001 Device 003: ID 0951:16d2 Kingston Technology
Bus 001 Device 002: ID 18f8:1486  
Bus 001 Device 005: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

正如你在最后一栏中看到的,有一个设备没有制造商描述。要确定这个设备是什么,我必须对我的 USB 设备树进行更深入的检查。幸运的是,lsusb 命令有更多的选项。其中一个选项是 -D device,来获取每个设备的详细信息,正如手册页面所解释的那样:

“不会扫描 /dev/bus/usb 目录,而只显示给定设备文件所属设备的信息。设备文件应该是类似 /dev/bus/usb/001/001 这样的文件。这个选项会像 v 选项一样显示详细信息,但你必须是 root 用户才行。"

我认为如何将设备路径传递给 lsusb 命令并不容易,但在仔细阅读手册页和初始输出后,我能够确定如何构造它。USB 设备驻留在 UDEV 文件系统中。它们的设备路径始于 USB 设备目录 /dev/bus/usb/。路径的其余部分由设备的总线 ID 和设备 ID 组成。我的无描述设备是 Bus 001 Device 002,被翻译成了 001/002,完成的路径为 /dev/bus/usb/001/002。现在我可以把这个路径传给 lsusb。我还会用管道传给 more,因为这里往往有很多信息:

$ lsusb -D /dev/bus/usb/001/002 |more
Device: ID 18f8:1486  
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x18f8
  idProduct          0x1486
  bcdDevice            1.00
  iManufacturer           0
  iProduct                1
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           59
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0
        HID Device Descriptor:

不幸的是,这里并没有提供我希望找到的细节。初始输出中出现的两个字段 idVendoridProduct 都是空的。这有些帮助,因为往下看一下,就会发现 Mouse 这个词。所以,这个设备就是我的鼠标。

USB ID 仓库

这让我不禁想知道如何才能填充这些字段,不仅是为了自己,也是为了其他 Linux 用户。原来已经有了一个开源项目:USB ID 仓库。它是一个公共仓库,它包含了 USB 设备中使用的所有已知 ID。它也被用于各种程序中,包括 USB Utilities,用于显示人类可读的设备名称。

 title=

你可以从网站上或通过下载数据库来浏览特定设备的仓库。也欢迎用户提交新的数据。我要为我的鼠标提交数据,因为它没有在里面。

更新你的 USB ID

USB ID 数据库存储在一个名为 usb.ids 的文件中。这个文件的位置可能会因 Linux 发行版的不同而不同。

在 Ubuntu 18.04 中,这个文件位于 /var/lib/usbutils。要更新数据库,使用命令 update-usbids,你需要用 root 权限或 sudo 来运行。

$ sudo update-usbids

如果有新文件,它就会被下载。当前的文件将被备份,并被替换为新文件:

$ ls -la
total 1148
drwxr-xr-x  2 root root   4096 Jan 15 00:34 .
drwxr-xr-x 85 root root   4096 Nov  7 08:05 ..
-rw-r--r--  1 root root 614379 Jan  9 15:34 usb.ids
-rw-r--r--  1 root root 551472 Jan 15 00:34 usb.ids.old

最新版本的 Fedora Linux 将数据库文件保存在 /usr/share/hwdata 中。而且,没有更新脚本。而是,数据库由一个名为 hwdata 的软件包维护。

# dnf info hwdata

Installed Packages
Name         : hwdata
Version      : 0.332
Release      : 1.fc31
Architecture : noarch
Size         : 7.5 M
Source       : hwdata-0.332-1.fc31.src.rpm
Repository   : @System
From repo    : updates
Summary      : Hardware identification and configuration data
URL          : https://github.com/vcrhonek/hwdata
License      : GPLv2+
Description  : hwdata contains various hardware identification and configuration data,
             : such as the pci.ids and usb.ids databases.

现在我的 USB 设备列表在这个之前未命名的设备旁边显示了一个名字。比较一下上面的输出:

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 046d:082c Logitech, Inc. HD Webcam C615
Bus 001 Device 003: ID 0951:16d2 Kingston Technology
Bus 001 Device 014: ID 18f8:1486 [Maxxter]
Bus 001 Device 005: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

你可能会注意到,随着仓库定期更新新设备和现有设备的详细信息,其他设备的描述也会发生变化。

提交新数据

提交新数据有两种方式:使用网站或通过电子邮件发送特殊格式的补丁文件。在开始之前,我阅读了提交指南。首先,我必须注册一个账户,然后我需要使用项目的提交系统提供我鼠标的 ID 和名称。添加任何 USB 设备的过程都是一样的。

你使用过 USB ID 仓库么?如果有,请在评论中分享你的反馈。


via: https://opensource.com/article/20/8/usb-id-repository

作者:Alan Formy-Duval 选题:lujun9972 译者:geekpi 校对:wxy

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

美国军方想以开放空间传输的紫外线为载体,为士兵开发新的更安全的通讯网络。

美国军方研究者之所以探索战场环境下的紫外光通信的应用,是因为这种技术可能实现敌对方无法侦测的通信。

研究者关注的一个方面是衰减效应,即信号强度随传播距离的增加而减弱的自然现象。他们想知道是否存在一个合适的距离范围,在该范围内,信号强度足够弱,以至于敌对方几乎无法侦测,但又足够强,使得友方可以侦测并建立通信。他们说他们观察到了这种情况,但关于他们相关工作的 研究论文 并没有讲这个距离范围究竟是多少。

一份军方出版物提到,“紫外通信具有独特的传输特性,不但可以实现非视距连接,而且让敌对方难以侦测。”

这个研究由美军作战能力发展司令部 军队研究实验室 主导,其重点是开发一个基础架构,为未来研究提供可量化环境,在该环境下,己方既可以使用紫外通信,也能够避免敌对方的侦测。研究过程中他们还有另外两个发现:

  • 最差情况,即敌对方探测器与己方发射器在视线范围内,但友方接收器不在视线范围内,问题不像想象中严重。
  • 转换紫外线发射器的发射方向不是降低敌对方探测到通信信号可能性的有效方式。

研究者计划分析下面四种场景,场景中涵盖了己方紫外发射器、友方接收器、敌对方探测器相对位置关系:

  • 友方接收器、敌对方探测器都在发射器的视线范围内。
  • 友方接收器在发射器视线范围内,但敌对方探测器不在视线范围内(最佳条件)。
  • 敌对方探测器在发射器的视线范围内,但友方接收器不在视线范围内(最差条件)。
  • 友方接收器、敌对方探测器均不在视线范围内。

假定敌对方试图通过时域上的光子计数来发现相干通信信号,进而判定正在进行通信。

科学家们承认这么一个事实,即越靠近发射器,信号越容易被侦测。所以紫外通信中发射器的有效使用依赖于对敌对方探测器位置的准确感知。

“我们提供了一个基础框架,使得对紫外通信系统实际可探测性与期望性能间差距的根本限制因素的研究得以进行。” 研究者之一,Robert Drost 博士如是说。

“我们的研究确保了团队对紫外波段用于通信的潜力及有限性有了根本上的理解。我坚信这种理解将影响到未来军队网络通信能力的发展。”


via: https://www.networkworld.com/article/3572372/military-looks-to-ultraviolet-networks-for-secure-battlefield-communication.html

作者:Patrick Nelson 选题:lujun9972 译者:silentdawn-zz 校对:wxy

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

据称软银将把 Arm 卖给 Nvidia,价格超过 400 亿美元

据《华尔街日报》报道,Nvidia 将用现金和股票购买 Arm,Nvidia 和 Arm 一直在进行独家谈判,预计下周初完成交易。

来源:zdnet

拍一拍:不知道各国会不会审查通过。

研究人员为防止攻击,将一个重大比特币漏洞保密两年之久

2018 年,一名安全研究人员在比特币区块链的软件 Bitcoin Core 中发现了一个重大漏洞,但在报告了这个问题并进行了修补后,研究人员选择对细节保密,以避免黑客利用这个问题。而在本周,在另一种基于未打补丁的旧版比特币代码的加密货币 Decred 中独立发现了同样的漏洞,并公布了其中技术细节。该漏洞被称为 INVDoS,是一种典型的拒绝服务(DoS)攻击。INVDoS 漏洞还影响 Litecoin 和 Namecoin。

来源:zdnet

拍一拍:为研究人员点赞,发现漏洞而不是公开它搞个大新闻。

在这一章的 Linux 黑话解释中,我们来讨论一些基本的东西。

让我们来讨论一下什么是 Linux 发行版,为什么它被称为 发行版 distribution (或简称 distro),以及,它与 Linux 内核有什么不同。你还会了解到为什么有些人坚称 Linux 为 GNU/Linux。

什么是 Linux 发行版?

Linux 发行版是一个由 Linux 内核、GNU 工具、附加软件和软件包管理器组成的操作系统,它也可能包括显示服务器桌面环境,以用作常规的桌面操作系统。

这个术语之所以是 “Linux 发行版”,是因为像 Debian、Ubuntu 这样的机构“发行”了 Linux 内核以及所有必要的软件及实用程序(如网络管理器、软件包管理器、桌面环境等),使其可以作为一个操作系统使用。

你的发行版还负责提供更新来维护其内核和其他实用程序。

所以,“Linux” 是内核,而 “Linux 发行版”是操作系统。这就是为什么它们有时也被称为基于 Linux 的操作系统的原因。

如果不是很理解以上所有的内容,不要担心。下面我将详细解释一下。

“Linux 只是一个内核,不是一个操作系统。”这是什么意思?

你可能看到到过这句话,这说的没错。内核是一个操作系统的核心,它接近于具体硬件。你使用应用程序和 shell 与它交互。

为了理解这一点,我就用我在《什么是 Linux 的详细指南》中曾用过的那个比喻。把操作系统看成车辆,把内核看成引擎。你不能直接驱动引擎。同样,你也不能直接使用内核。

一个 Linux 发行版可以看作是一个汽车制造商(比如丰田或福特)为你提供的现成的汽车,就像 Ubuntu 或 Fedora 发行版的发行商为你提供的一个基于 Linux 的现成操作系统一样。

什么是 GNU/Linux?

让我们再来看看这张图片。1991 年的时候,Linus Torvalds 创造的只是其中的最内圈,即 Linux 内核。

要使用 Linux,即使是以最原始的形式,甚至没有 GUI,你也需要一个 shell。最常见的是 Bash shell。

然后,你需要在 shell 中运行一些命令来完成一些工作。你能记起一些基本的 Linux 命令吗?比如 catcpmvgrepfinddiffgzip 等等。

严格来说,这些所谓的“Linux 命令”并不是只属于 Linux。它们中的很多都来源于 UNIX 操作系统。

在 Linux 诞生之前,Richard Stallman 就已经在 1983 年创建了 自由软件项目 free software project 中的第一个项目:GNU(GNU 是“GNU is Not Unix” 的递归缩写)。GNU 项目实现了许多流行的 Unix 实用程序,如 catgrepawk、shell(bash),同时还开发了自己的编译器(GCC)和编辑器(Emacs)。

在 80 年代,UNIX 是专有软件,而且超级昂贵。这就是为什么 Linus Torvalds 开发了一个类似 UNIX 的新内核的原因。为了与 Linux 内核进行交互,Linus Torvalds 使用了 GNU 工具,这些工具在其 GPL 开源许可证下是免费的。

有了这些 GNU 工具,它的行为也像 UNIX 一样。这就是为什么 Linux 也被称为类 UNIX 操作系统的原因。

你无法想象没有 shell 和所有这些命令的 Linux。由于 Linux 与 GNU 工具集成得很深,几乎是完全依赖于 GNU 工具,所以纯粹主义者要求 GNU 应该得到应有的认可,这就是为什么他们坚称它为 GNU Linux(写成 GNU/Linux)。

总结

那么,该用哪个术语?Linux、GNU/Linux、Linux 发行版,基于 Linux 的操作系统还是类 UNIX 操作系统?这取决于你的上下文。我已经为你提供了足够的细节,让你对这些相关的术语有更好的理解。

我希望你喜欢这个 Linux 黑话解释系列,并能学习到新的东西。欢迎你的反馈和建议。


via: https://itsfoss.com/what-is-linux-distribution/

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

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

Windows Insiders 预览版 20211 开始,WSL 2 将提供一个新功能:wsl --mount。这个新的参数允许在 WSL 2 中连接和挂载一个物理磁盘,这样你就可以访问 Windows 不支持的文件系统(比如 ext4)。

因此,如果你使用不同的磁盘对 Windows 和 Linux 进行双启动,你现在可以从 Windows 访问你的 Linux 文件了。

开始使用

要挂载磁盘,请打开具有管理员权限的 PowerShell 窗口并运行。

wsl --mount <DiskPath>

要在 Windows 中列出可用的磁盘,请运行。

wmic diskdrive list brief

要从 WSL 2 上卸载和分离磁盘,请运行以下命令

wsl --unmount <Diskpath>

磁盘路径可在 DeviceID 栏中找到。通常是以 \\.\\.\PHYSICALDRIVE* 的格式。下面是一个将指定硬盘的特定分区挂载到 WSL 中并浏览其文件的例子:

使用文件资源管理器访问这些文件

一旦挂载,也可以通过 Windows 资源管理器访问这些磁盘,通过导航到 \wsl$,然后到挂载文件夹。

局限性

默认情况下,wsl --mount 会尝试将磁盘挂载为 ext4。要指定一个文件系统,或者更高级的方案,请查看在 WSL 2 中挂载磁盘

另外请注意,这个功能有一个限制,那就是只有物理磁盘可以连接到 WSL 2。目前,还不能附加单个分区。更多关于限制的细节请看这里

反馈

如果你遇到任何问题或反馈,请在 GitHub 上提交议题。