2021年5月

过去几天,我在 Ubuntu Linux系统上遇到了一个奇怪的问题。我用的是 Firefox 浏览器和 Brave 浏览器。Brave 浏览器一直报“network change detection”错误,几乎每次刷新都报错,但是在 Firefox 浏览器中一切正常。

这个问题严重到了几乎不能使用浏览器的地步。我不能用 Feedly 来从我最喜欢的网站浏览信息流,每一个搜索结果都要多次刷新,网站也需要多次刷新。

作为替代,我尝试 在 Ubuntu 上安装 Chrome 浏览器。但是问题依然存在。我还 在 Linux 上安装了微软 Edge,但是问题依旧。基本上,任何 Chromium 内核的浏览器都会持续报“ERR\_NETWORK\_CHANGED”错误。

幸运地是,我找到了一个方法来修复这个问题。我将会把解决步骤分享给你,如果你也遇到了同样的问题,这将能够帮到你。

解决基于 Chromium 内核的浏览器频繁报“network change detection”错的问题

对我而言,关闭网络设置中的 IPv6 是一个有效的诀窍。虽然现在我还不确定是什么导致了这个故障,但是 IPv6 会在很多系统中导致错误并不是什么鲜为人知的事。如果你的系统,路由器和其他设备用了 IPv6 而不是古老却好用的 IPv4,那么你就可能遭遇和我相同的网络连接故障。

幸亏,关闭 Ubuntu 的 IPv6 并不算难。有好几种方法都能够达到目的,我将会分享一个大概是最容易的方法。这个方法就是用 GRUB 来关闭 IPv6。

新手注意!

如果你不习惯于用命令行和终端,请额外注意这些步骤。仔细的阅读这些操作说明。

第 1 步:打开 GRUB 配置文件以编辑

打开终端。用下面的命令来在 Nano 编辑器中打开 GRUB 配置文件。这里你需要输入你的账户密码。

sudo nano /etc/default/grub

我希望你懂得一点 使用 Nano 编辑器 的方法。使用方向键移动光标,找到以GRUB_CMDLINE_LINUX 开头的这行。把它的值修改成这样:

GRUB_CMDLINE_LINUX="ipv6.disable=1"

注意引号和空格。不要动其他行。

使用 Ctrl+x 快捷键保存更改。按 Y 或者回车确认。

第 2 步:更新 GRUB

你已经修改了 GRUB 引导器的配置,但是在你更新 GRUB 之前这些更改都不会生效。使用下面的命令来更新:

sudo update-grub

现在当你重启系统之后,IPv6 将会被关闭了。你不应该再遇到网络中断的故障了。

你可能会想为什么我没提从网络设置中关掉 IPv6。这是因为目前 Ubuntu 用了 Netplan 来管理网络配置,似乎在网络设置中做出的更改并没有被完全应用到 Netplan 中。我试过虽然在网络设置中关掉了 IPv6,但是这个问题并没有被解决,直到我用了上述命令行的方法。

即使过了这么多年,IPv6 的支持还是没有成熟,并且持续引发了很多故障。比如关闭 IPv6 有时候能 提高 Linux 下的 Wi-Fi 速度。够扯吧?

不管怎样,我希望上述小方法也能够帮助你解决系统中的“network change detection”故障。


via: https://itsfoss.com/network-change-detected/

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

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

IBM 教会 AI 翻译编程语言

IBM 的 CodeNet 旨在教人工智能如何翻译代码。它是一个庞大的数据集,包含大约 5 亿行代码,分布在 55 种以上的传统和活跃语言中 —— 从 COBOL、FORTRAN 到 Java、C++ 和 Python。这个数据集是由 4000 多个编码问题和 1400 多万个代码样本组成的,这些问题是从全球范围内几十年的编程挑战和竞赛中收集的。该数据集是以一种能够实现双向翻译的方式构建的,也就是说你可以在两种编程语言之间进行转换。除了翻译之外,CodeNet 还可以用于代码搜索、克隆检测等功能。另外,研究人员也可以将其用于运行回归研究,并有可能开发自动代码纠正系统。

看看,以后编程都像工业制品一样都由机器来生产了,程序员们将来就像手工业者一样,只能从事一些体现艺术或小众领域的手工制品了。

所有 Wi-Fi 设备皆存在 FragAttacks 漏洞

网络安全研究人员发表了一系列 Wi-Fi 设备安全漏洞,这些漏洞被统称为 FragAttacks。其中 3 个来自 Wi-Fi 标准中的设计缺陷,从最初的安全协定 WEP 到最新的 WPA3 规范都在影响范围中,也就是说,从 1997 年 Wi-Fi 发布起,这些设计缺陷已经成为 Wi-Fi 的一部分。值得庆幸的是,这些设计缺陷比较难以被利用。不过更严重的是,还有一些漏洞是由 Wi-Fi 产品中普遍存在的程序错误引起,其中几个漏洞可轻易地被恶意攻击者利用。经证实,绝大多数 Wi-Fi 设备都存在多个漏洞。

为了保护广大的用户,安全更新工作已经进行了 9 个月,现在才对外揭露漏洞信息,漏洞修补工作由 Wi-Fi 联盟和 ICASI 进行监督。

无线网络在方便的同时,也给开放攻击提供了更多机会,这让我想起来之前在单位楼下破解 Wi-Fi 的故事。

知名 BIOS 厂商 AMI 正在积极参与开源系统固件项目

尽管 AMI 专有的 BIOS 产品已被许多主板厂商所采用,但该公司也表示有向开源计算项目社区给予回馈的意向。AMI 正致力于 Linux 基金会的 OpenBMC、EDK II 和相关开源组件。开放计算项目正在继续引起主要行业参与者的兴趣,出于安全/审计的原因,开源固件在总体上继续受到越来越多的关注,因此工程师可以按照他们认为合适的方式管理固件。

虽然开源固件项目近些年来发展势头不错,也得到了英特尔的支持,但是看到一家以专有 BIOS 而知名的公司愿意参与到开源项目,可见开源已经是大势所趋。

学习基本的 GNU Screen 终端复用技术,然后下载我们的终端命令备忘录,以便你能够熟悉常用的快捷方式。

 title=

对于一般用户而言,命令行终端窗口可能是令人困惑和神秘的。但随着你对 Linux 终端的进一步了解,你很快就会意识到它的高效和强大。不过,也不需要很长时间,你就会想让终端变得更加高效,除了将更多的终端放到你的终端,还有什么高好的方法能够提升你的终端效率呢?

终端复用

终端的许多优点之一是它是一个集中控制的界面。它是一个能让你访问数百个应用程序的窗口,而你与每一个应用程序进行交互所需要的只是一个键盘。但是,现代计算机几乎总是有多余的处理能力,而且现代计算机专家喜欢多任务处理,导致一个窗口处理数百个应用程序的能力是相当有限的。

解决这一问题的常见答案是终端复用:即将虚拟终端叠放在一起,然后在它们之间移动的能力。通过终端复用器,你保持了集中控制,但是当你进行多任务时,你能够进行终端切换。更好的是,你能够在终端中拆分屏幕,使得在同一时间显示多个屏幕窗口。

选择合适的复用器

一些终端提供类似的功能,有标签式界面和分割式视图,但也有细微的差别。首先,这些终端的功能依赖于图形化的桌面环境。其次,许多图形化的终端功能需要鼠标交互或使用不方便的键盘快捷键。终端复用器的功能在文本控制台上和在图形桌面上一样好用,而且键位绑定是针对常见的终端序列设计的,很方便。

现有两种流行的复用器:tmuxGNU Screen。尽管你与它们互动的方式略有不同,但它们做同样的事情,而且大多具有相同的功能。这篇文章是 GNU Screen 的入门指南。关于 tmux 的相关介绍,请阅读 Kevin Sonney 的 tmux 介绍

使用 GNU Screen

GNU Screen 的基本用法很简单,通过 screen 命令启动,你将进入 Screen 会话的第 0 个窗口。在你决定需要一个新的终端提示符前,你可能很难注意到有什么变化。

当一个终端窗口被某项活动占用(比如,你启动了文本编辑器 VimJove 或者你在处理音视频,或运行批处理任务),你可以新建一个窗口。要打开一个新的窗口,按 Ctrl+A,释放,然后按 c。这将在你现有窗口的基础上创建一个新的窗口。

你会知道当前你是在一个新的窗口中,因为你的终端除了默认的提示符外,似乎没有任何东西。当然,你的另一个终端仍然存在,它只是躲在新窗口的后面。要遍历打开的窗口,按 Ctrl+A,释放,然后按 n(表示下一个)或按 p(表示上一个)。在只打开两个窗口的情况下, np 的功能是一样的,但你可以随时打开更多的窗口(Ctrl+A,然后 c ),并在它们之间切换。

分屏

GNU Screen 的默认行为更像移动设备的屏幕,而不是桌面:你一次只能看到一个窗口。如果你因为喜欢多任务而使用 GNU Screen ,那么只关注一个窗口可能看起来是一种退步。幸运的是,GNU Screen 可以让你把终端分成窗口中的窗口。

要创建一个水平分割窗口,按 Ctrl+A,然后按 s 。这将把一个窗口置于另一个窗口之上,就像窗格一样。然而,在你告诉它要显示什么之前,分割的空间是没有用途的。因此,在创建一个分割窗后,你可以用 Ctrl+A ,然后用 Tab 移动到分割窗中。一旦进入,使用 Ctrl+A 然后 n 浏览所有可用的窗口,直到你想显示的内容出现在分割窗格中。

你也可以按 Ctrl+A 然后按 | (这是一个管道字符,在大多数键盘上通过按下 shift 键加上 \)创建垂直分割窗口。

自定义 GNU Screen

GNU Screen 使用基于 Ctrl+A 的快捷键。根据你的习惯,这可能会让你感觉非常自然,也可能非常不方便,因为你可能会用 Ctrl+A 来移动到一行的开头。无论怎样,GNU Screen 允许通过 .screenrc 配置文件进行各种定制。你可以用这个来改变触发键的绑定(称为 “转义” 键绑定)。

escape ^jJ

你还可以添加一个状态行,以帮助你在 Screen 会话中保持自己不迷失。

# status bar, with current window highlighted
hardstatus alwayslastline
hardstatus string '%{= kG}[%{G}%H%? %1`%?%{g}][%= %{= kw}%-w%{+b yk} %n*%t%?(%u)%? %{-}%+w %=%{g}][%{B}%m/%d %{W}%C%A%{g}]'

# enable 256 colors
attrcolor b ".I"
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
defbce on

在有多个窗口打开的会话中,有一个时刻提醒哪些窗口具有焦点活动,哪些窗口有后台活动的提醒器特别有用。它类似一种终端的任务管理器。

下载备忘单

当你学习 GNU Screen 的使用方法时,需要记住很多新的键盘命令。有些命令你马上就能记住,但那些你不常使用的命令可能就很难记住了。你可以按 Ctrl+A 然后再按 ? 来访问 GNU Screen 的帮助界面,但如果你更喜欢一些可以打印出来并放在键盘边的东西,请 下载我们的 GNU Screen 备忘单

学习 GNU Screen 是提高你使用你最喜欢的 终端模拟器 的效率和敏捷性的一个好方法。请试一试吧!


via: https://opensource.com/article/21/4/gnu-screen-cheat-sheet

作者:Seth Kenlon 选题:lujun9972 译者:ddl-hust 校对:wxy

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

下载 Ubuntu 是非常直接简单的。你可以去它的 官方网站,点击 桌面下载部分,选择合适的 Ubuntu 版本并点击下载按钮。

Ubuntu 是以一个超过 2.5GB 大小的单一镜像形式提供的。直接下载对于拥有高速网络连接的人来说效果很好。

然而,如果你的网络连接很慢或不稳定,你将很难下载这样一个大文件。在这个过程中,下载可能会中断几次,或者可能需要几个小时。

Direct download may take several hours for slow internet connections

通过 Torrent 下载 Ubuntu

如果你也困扰于受限数据或网络连接过慢,使用下载管理器或 torrent 将是一个更好的选择。我不打算在这个快速教程中讨论什么是 torrent。你只需要知道,通过 torrent,你可以在多个会话内下载一个大文件。

好的是,Ubuntu 实际上提供了通过 torrent 的下载。不好的是,它隐藏在网站上,如果你不熟悉它,很难猜到在哪。

如果你想通过 torrent 下载 Ubuntu,请到你所选择的 Ubuntu 版本中寻找其他下载方式

点击这个“alternative downloads and torrents” 链接,它将打开一个新的网页。在这个页面向下滚动,看到 BitTorrent 部分。你会看到下载所有可用版本的 torrent 文件的选项。如果你要在你的个人电脑或笔记本电脑上使用 Ubuntu,你应该选择桌面版本。

阅读 这篇文章以获得一些关于你应该使用哪个 Ubuntu 版本的指导。考虑到你要使用这个发行版,了解 Ubuntu LTS 和非 LTS 版本会有所帮助

你是如何使用下载的 torrent 文件来获取 Ubuntu 的?

我推测你知道如何使用 torrent。如果没有,让我为你快速总结一下。

你已经下载了一个几 KB 大小的 .torrent 文件。你需要下载并安装一个 Torrent 应用,比如 uTorrent 或 Deluge 或 BitTorrent。

我建议在 Windows 上使用 uTorrent。如果你使用的是某个 Linux 发行版,你应该已经有一个 像 Transmission 这样的 torrent 客户端。如果没有,你可以从你的发行版的软件管理器中安装它。

当你安装了 Torrent 应用,运行它。现在拖放你从 Ubuntu 网站下载的 .torrent 文件。你也可以使用菜单中的打开选项。

当 torrent 文件被添加到 Torrent 应用中,它就开始下载该文件。如果你关闭了系统,下载就会暂停。再次启动 Torrent 应用,下载就会从同一个地方恢复。

当下载 100% 完成后,你可以用它来 全新安装 Ubuntu与 Windows 双启动

享受 Ubuntu :)


via: https://itsfoss.com/download-ubuntu-via-torrent/

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

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

走出舒适区,我了解了 Go 的交叉编译功能。

 title=

在 Linux 上测试软件时,我使用各种架构的服务器,例如 Intel、AMD、Arm 等。当我 分配了一台满足我的测试需求的 Linux 机器,我仍然需要执行许多步骤:

  1. 下载并安装必备软件
  2. 验证构建服务器上是否有新的测试软件包
  3. 获取并设置依赖软件包所需的 yum 仓库
  4. 下载并安装新的测试软件包(基于步骤 2)
  5. 获取并设置必需的 SSL 证书
  6. 设置测试环境,获取所需的 Git 仓库,更改配置,重新启动守护进程等
  7. 做其他需要做的事情

用脚本自动化

这些步骤非常常规,以至于有必要对其进行自动化并将脚本保存到中央位置(例如文件服务器),在需要时可以在此处下载脚本。为此,我编写了 100-120 行的 Bash shell 脚本,它为我完成了所有配置(包括错误检查)。这个脚本通过以下方式简化了我的工作流程:

  1. 配置新的 Linux 系统(支持测试的架构)
  2. 登录系统并从中央位置下载自动化 shell 脚本
  3. 运行它来配置系统
  4. 开始测试

学习 Go 语言

我想学习 Go 语言 有一段时间了,将我心爱的 Shell 脚本转换为 Go 程序似乎是一个很好的项目,可以帮助我入门。它的语法看起来很简单,在尝试了一些测试程序后,我开始着手提高自己的知识并熟悉 Go 标准库。

我花了一个星期的时间在笔记本电脑上编写 Go 程序。我经常在我的 x86 服务器上测试程序,清除错误并使程序健壮起来,一切都很顺利。

直到完全转换到 Go 程序前,我继续依赖自己的 shell 脚本。然后,我将二进制文件推送到中央文件服务器上,以便每次配置新服务器时,我要做的就是获取二进制文件,将可执行标志打开,然后运行二进制文件。我对早期的结果很满意:

$ wget http://file.example.com/<myuser>/bins/prepnode
$ chmod  +x ./prepnode
$ ./prepnode

然后,出现了一个问题

第二周,我从资源池中分配了一台新的服务器,像往常一样,我下载了二进制文件,设置了可执行标志,然后运行二进制文件。但这次它出错了,是一个奇怪的错误:

$ ./prepnode
bash: ./prepnode: cannot execute binary file: Exec format error
$

起初,我以为可能没有成功设置可执行标志。但是,它已按预期设置:

$ ls -l prepnode
-rwxr-xr-x. 1 root root 2640529 Dec 16 05:43 prepnode

发生了什么事?我没有对源代码进行任何更改,编译没有引发任何错误或警告,而且上次运行时效果很好,因此我仔细查看了错误消息 format error

我检查了二进制文件的格式,一切看起来都没问题:

$ file prepnode
prepnode: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped

我迅速运行了以下命令,识别所配置的测试服务器的架构以及二进制试图运行的平台。它是 Arm64 架构,但是我编译的二进制文件(在我的 x86 笔记本电脑上)生成的是 x86-64 格式的二进制文件:

$ uname -m
aarch64

脚本编写人员的编译第一课

在那之前,我从未考虑过这种情况(尽管我知道这一点)。我主要研究脚本语言(通常是 Python)以及 Shell 脚本。在任何架构的大多数 Linux 服务器上都可以使用 Bash Shell 和 Python 解释器。总之,之前一切都很顺利。

但是,现在我正在处理 Go 这种编译语言,它生成可执行的二进制文件。编译后的二进制文件由特定架构的 指令码 或汇编指令组成,这就是为什么我收到格式错误的原因。由于 Arm64 CPU(运行二进制文件的地方)无法解释二进制文件的 x86-64 指令,因此它抛出错误。以前,shell 和 Python 解释器为我处理了底层指令码或特定架构的指令。

Go 的交叉编译

我检查了 Golang 的文档,发现要生成 Arm64 二进制文件,我要做的就是在运行 go build 命令编译 Go 程序之前设置两个环境变量。

GOOS 指的是操作系统,例如 Linux、Windows、BSD 等,而 GOARCH 指的是要在哪种架构上构建程序。

$ env GOOS=linux GOARCH=arm64 go build -o prepnode_arm64

构建程序后,我重新运行 file 命令,这一次它显示的是 ARM AArch64,而不是之前显示的 x86。因此,我在我的笔记本上能为不同的架构构建二进制文件。

$ file prepnode_arm64
prepnode_arm64: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, not stripped

我将二进制文件从笔记本电脑复制到 ARM 服务器上。现在运行二进制文件(将可执行标志打开)不会产生任何错误:

$ ./prepnode_arm64  -h
Usage of ./prepnode_arm64:
  -c    Clean existing installation
  -n    Do not start test run (default true)
  -s    Use stage environment, default is qa
  -v    Enable verbose output

其他架构呢?

x86 和 Arm 是我测试软件所支持的 5 种架构中的两种,我担心 Go 可能不会支持其它架构,但事实并非如此。你可以查看 Go 支持的架构:

$ go tool dist list

Go 支持多种平台和操作系统,包括:

  • AIX
  • Android
  • Darwin
  • Dragonfly
  • FreeBSD
  • Illumos
  • JavaScript
  • Linux
  • NetBSD
  • OpenBSD
  • Plan 9
  • Solaris
  • Windows

要查找其支持的特定 Linux 架构,运行:

$ go tool dist list | grep linux

如下面的输出所示,Go 支持我使用的所有体系结构。尽管 x86\_64 不在列表中,但 AMD64 兼容 x86-64,所以你可以生成 AMD64 二进制文件,它可以在 x86 架构上正常运行:

$ go tool dist list | grep linux
linux/386
linux/amd64
linux/arm
linux/arm64
linux/mips
linux/mips64
linux/mips64le
linux/mipsle
linux/ppc64
linux/ppc64le
linux/riscv64
linux/s390x

处理所有架构

为我测试的所有体系结构生成二进制文件,就像从我的 x86 笔记本电脑编写一个微小的 shell 脚本一样简单:

#!/usr/bin/bash
archs=(amd64 arm64 ppc64le ppc64 s390x)

for arch in ${archs[@]}
do
        env GOOS=linux GOARCH=${arch} go build -o prepnode_${arch}
done

$ file prepnode_*
prepnode_amd64:   ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=y03MzCXoZERH-0EwAAYI/p909FDnk7xEUo2LdHIyo/V2ABa7X_rLkPNHaFqUQ6/5p_q8MZiR2WYkA5CzJiF, not stripped
prepnode_arm64:   ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, Go BuildID=q-H-CCtLv__jVOcdcOpA/CywRwDz9LN2Wk_fWeJHt/K4-3P5tU2mzlWJa0noGN/SEev9TJFyvHdKZnPaZgb, not stripped
prepnode_ppc64:   ELF 64-bit MSB executable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), statically linked, Go BuildID=DMWfc1QwOGIq2hxEzL_u/UE-9CIvkIMeNC_ocW4ry/r-7NcMATXatoXJQz3yUO/xzfiDIBuUxbuiyaw5Goq, not stripped
prepnode_ppc64le: ELF 64-bit LSB executable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), statically linked, Go BuildID=C6qCjxwO9s63FJKDrv3f/xCJa4E6LPVpEZqmbF6B4/Mu6T_OR-dx-vLavn1Gyq/AWR1pK1cLz9YzLSFt5eU, not stripped
prepnode_s390x:   ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), statically linked, Go BuildID=faC_HDe1_iVq2XhpPD3d/7TIv0rulE4RZybgJVmPz/o_SZW_0iS0EkJJZHANxx/zuZgo79Je7zAs3v6Lxuz, not stripped

现在,每当配置一台新机器时,我就运行以下 wget 命令下载特定体系结构的二进制文件,将可执行标志打开,然后运行:

$ wget http://file.domain.com/<myuser>/bins/prepnode_<arch>
$ chmod +x ./prepnode_<arch>
$ ./prepnode_<arch>

为什么?

你可能想知道,为什么我没有坚持使用 shell 脚本或将程序移植到 Python 而不是编译语言上来避免这些麻烦。所以有舍有得,那样的话我不会了解 Go 的交叉编译功能,以及程序在 CPU 上执行时的底层工作原理。在计算机中,总要考虑取舍,但绝不要让它们阻碍你的学习。


via: https://opensource.com/article/21/1/go-cross-compiling

作者:Gaurav Kamathe 选题:lujun9972 译者:MjSeven 校对:wxy

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

阿里云正式发布它的首个 CentOS 兼容发行版 Anolis OS 8.2

在红帽宣布“停更” CentOS Linux 后,引来了技术圈的颇多争议,国内外涌现出多款 CentOS 8 的替代发行版,并已在日前陆续发布。

昨日,由阿里云支持的 Anolis OS 宣布发布首个正式发布版本。此次发布的 8.2 支持 x86\_64 和 aarch64 架构,搭载双内核 RHCK(RHEL 兼容内核)和 ANCK(OpenAnolis 云内核),其中 ANCK 是由社区 Cloud Kernel SIG 组基于上游 4.19 LTS 内核研发,增强了稳定、性能、隔离能力;对飞腾、海光、兆芯、鲲鹏芯片提供了完善支持;支持阿里的龙井云原生 Java 运行时;还提供了 CentOS 系统到 Anolis OS 的迁移工具。更多特性可见发行公告

阿里云宣布 Anolis OS 已经有快半年了,从目前披露的正式版本特性来看,还是值得一看的。

微软要将 Linux 工具 eBPF 引入 Windows 10

eBPF 是一项重要的性能观测和调优技术,最初来自于 BSD 的一个防火墙程序 BPF,后在 Linux 系统上衍生为扩展 BPF,即 eBPF。eBPF 对于网络过滤、分析和管理非常有用,但它的工作远不止这些。eBPF 也被用于系统调用过滤和进程上下文跟踪。它已经成为编程跟踪、系统剖析以及收集和汇总低级自定义指标的一把瑞士军刀。在更高层次上,eBPF 已经成为安全程序的基础。

微软启动了一个新的开源项目,试图将 eBPF 引入到 Windows 10 和 Windows Server 2016 及以后的版本中。这个项目将现有 eBPF 工具链和 API 作为子模块,并在其间添加一层,使其可以在 Windows 之上运行。目前该项目处于非常早期的阶段,还没有公布时间表。

好吧,微软又从 Linux 宝库中挖掘到一个好东西。

微软将威胁和漏洞管理能力引入 Linux

微软正在使 IT 专业人员能够使用该公司的端点防御产品对 Linux 设备的安全进行监控。微软的威胁和漏洞管理(TVM)可用于 Windows 和 Windows 服务器,现在也在公开预览中支持 macOS 和 Linux。TVM 允许用户审查应用程序漏洞和整个 Linux 系统的潜在错误配置,并补救任何受影响的管理和非管理设备。目前,用户可以利用这一功能在 macOS 和 Linux 中发现、优先处理和补救 30 多个已知的不安全配置。今年夏天晚些时候,TVM 也将支持 Android 和 iOS。

微软的“野心”越来越大了,不过我觉得未尝不是一件好事。