mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-31 23:30:11 +08:00
Merge remote-tracking branch 'LCTT/master'
This commit is contained in:
commit
e683083c97
@ -1,28 +1,28 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-11149-1.html)
|
||||
[#]: subject: (Bond WiFi and Ethernet for easier networking mobility)
|
||||
[#]: via: (https://fedoramagazine.org/bond-wifi-and-ethernet-for-easier-networking-mobility/)
|
||||
[#]: author: (Ben Cotton https://fedoramagazine.org/author/bcotton/)
|
||||
|
||||
绑定 WiFi 和以太网,以便于更轻松的网络移动
|
||||
绑定 WiFi 和以太网,以使网络间移动更轻松
|
||||
======
|
||||
|
||||
![][1]
|
||||
|
||||
有时一个网络接口是不够的。网络绑定允许将多条网络连接与单个逻辑接口一起工作。你可能因为需要单条连接更多的带宽而需要这么做。或者你可能希望在有线和无线网络之间来回切换而不会丢失网络连接。
|
||||
有时一个网络接口是不够的。网络绑定允许将多条网络连接与单个逻辑接口一起工作。你可能因为需要给单条连接更多的带宽而这么做,或者你可能希望在有线和无线网络之间来回切换而不会丢失网络连接。
|
||||
|
||||
我是后面一种情况。在家工作的好处之一是,当天气晴朗时,在阳光明媚的阳台而不是在室内工作是很愉快的。但每当我这样做时,我都会失去网络连接。 IRC、SSH、VPN,一切都断开了,客户端重连至少需要一会。本文介绍了如何在 Fedora 30 笔记本上设置网络绑定,以便从笔记本扩展坞的有线连接无缝切换到 WiFi。
|
||||
我是后面一种情况。在家工作的好处之一是,当天气晴朗时,在阳光明媚的阳台而不是在室内工作是很愉快的。但每当我这样做时,我都会失去网络连接。IRC、SSH、VPN,一切都断开了,客户端重连至少需要一会。本文介绍了如何在 Fedora 30 笔记本上设置网络绑定,以便从笔记本扩展坞的有线连接无缝切换到 WiFi。
|
||||
|
||||
在 Linux 中,接口绑定由绑定内核模块处理。默认情况下,Fedora 没有启用此功能,但它包含在 kernel-core 软件包中。这意味着启用接口绑定只需一个命令:
|
||||
在 Linux 中,接口绑定由内核模块 `bonding` 处理。默认情况下,Fedora 没有启用此功能,但它包含在 `kernel-core` 软件包中。这意味着启用接口绑定只需一个命令:
|
||||
|
||||
```
|
||||
sudo modprobe bonding
|
||||
```
|
||||
|
||||
请注意,这只会在你重启之前生效。要永久启用接口绑定,请在 _/etc/modules-load.d_ 目录中创建一个名为 _bonding.conf_ 的文件,该文件仅包含单词 “bonding”。
|
||||
请注意,这只会在你重启之前生效。要永久启用接口绑定,请在 `/etc/modules-load.d` 目录中创建一个名为 `bonding.conf` 的文件,该文件仅包含单词 `bonding`。
|
||||
|
||||
现在你已启用绑定,现在可以创建绑定接口了。首先,你必须获取要绑定的接口的名称。要列出可用的接口,请运行:
|
||||
|
||||
@ -44,7 +44,7 @@ lo loopback unmanaged --
|
||||
virbr0-nic tun unmanaged --
|
||||
```
|
||||
|
||||
在本例中,有两个(有线)以太网接口可用。 _enp12s0u1_ 在笔记本电脑扩展坞上,你可以通过 _STATE_ 列知道它已连接。另一个是 _enp0s31f6_,是笔记本电脑中的内置端口。还有一个名为 _wlp2s0_ 的 WiFi 连接。 _enp12s0u1_ 和 _wlp2s0_ 是我们在这里感兴趣的两个接口。(请注意,本文无需了解网络设备的命名方式,但如果你感兴趣,可以查看 [systemd.net-naming-scheme 手册页][2]。)
|
||||
在本例中,有两个(有线)以太网接口可用。 `enp12s0u1` 在笔记本电脑扩展坞上,你可以通过 `STATE` 列知道它已连接。另一个是 `enp0s31f6`,是笔记本电脑中的内置端口。还有一个名为 `wlp2s0` 的 WiFi 连接。 `enp12s0u1` 和 `wlp2s0` 是我们在这里感兴趣的两个接口。(请注意,阅读本文无需了解网络设备的命名方式,但如果你感兴趣,可以查看 [systemd.net-naming-scheme 手册页][2]。)
|
||||
|
||||
第一步是创建绑定接口:
|
||||
|
||||
@ -52,7 +52,7 @@ virbr0-nic tun unmanaged --
|
||||
sudo nmcli connection add type bond ifname bond0 con-name bond0
|
||||
```
|
||||
|
||||
在此示例中,绑定接口名为 _bond0_。 “_con-name bond0_” 将连接名称设置为 _bond0_。直接这样会有一个名为 _bond-bond0_ 的连接。你还可以将连接名设置得更加人性化,例如 “Docking station bond” 或 “Ben”
|
||||
在此示例中,绑定接口名为 `bond0`。`con-name bond0` 将连接名称设置为 `bond0`。直接这样做会有一个名为 `bond-bond0` 的连接。你还可以将连接名设置得更加人性化,例如 “Docking station bond” 或 “Ben”。
|
||||
|
||||
下一步是将接口添加到绑定接口:
|
||||
|
||||
@ -61,14 +61,14 @@ sudo nmcli connection add type ethernet ifname enp12s0u1 master bond0 con-name b
|
||||
sudo nmcli connection add type wifi ifname wlp2s0 master bond0 ssid Cotton con-name bond-wifi
|
||||
```
|
||||
|
||||
如上所示,连接名称被设置为[更具描述性][3]。请务必使用系统上相应的接口名称替换 _enp12s0u1_ 和 _wlp2s0_。对于 WiFi 接口,请使用你自己的网络名称 (SSID)替换我的 “Cotton”。如果你的 WiFi 连接有密码(这当然会有!),你也需要将其添加到配置中。以下假设你使用 [WPA2-PSK][4] 身份验证
|
||||
如上所示,连接名称被设置为[更具描述性][3]。请务必使用系统上相应的接口名称替换 `enp12s0u1` 和 `wlp2s0`。对于 WiFi 接口,请使用你自己的网络名称 (SSID)替换我的 “Cotton”。如果你的 WiFi 连接有密码(这当然会有!),你也需要将其添加到配置中。以下假设你使用 [WPA2-PSK][4] 身份验证
|
||||
|
||||
```
|
||||
sudo nmcli connection modify bond-wifi wifi-sec.key-mgmt wpa-psk
|
||||
sudo nmcli connection edit bond-wif
|
||||
```
|
||||
|
||||
第二条命令将进入交互式编辑器,你可以在其中输入密码,而无需将其记录在 shell 历史记录中。输入以下内容,将 _password_ 替换为你的实际密码
|
||||
第二条命令将进入交互式编辑器,你可以在其中输入密码,而无需将其记录在 shell 历史记录中。输入以下内容,将 `password` 替换为你的实际密码。
|
||||
|
||||
```
|
||||
set wifi-sec.psk password
|
||||
@ -76,7 +76,7 @@ save
|
||||
quit
|
||||
```
|
||||
|
||||
现在,你可以启动你的绑定接口以及你创建的辅助接口
|
||||
现在,你可以启动你的绑定接口以及你创建的辅助接口。
|
||||
|
||||
```
|
||||
sudo nmcli connection up bond0
|
||||
@ -98,13 +98,13 @@ sudo nmcli connection down bond0
|
||||
|
||||
### 微调你的绑定
|
||||
|
||||
默认情况下,绑定接口使用“负载平衡(round-robin)”模式。 这会在接口上平均分配负载。 但是,如果你有有线和无线连接,你可能希望更喜欢有线连接。 “active-backup” 模式能实现此功能。 你可以在创建接口时指定模式和主接口,或者之后使用此命令(绑定接口应该关闭):
|
||||
默认情况下,绑定接口使用“<ruby>轮询<rt>round-robin</rt></ruby>”模式。这会在接口上平均分配负载。但是,如果你有有线和无线连接,你可能希望更喜欢有线连接。 `active-backup` 模式能实现此功能。你可以在创建接口时指定模式和主接口,或者之后使用此命令(绑定接口应该关闭):
|
||||
|
||||
```
|
||||
sudo nmcli connection modify bond0 +bond.options "mode=active-backup,primary=enp12s0u1"
|
||||
```
|
||||
|
||||
[kernel 文档][5]提供了有关绑定选项的更多信息。
|
||||
[内核文档][5]提供了有关绑定选项的更多信息。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -113,7 +113,7 @@ via: https://fedoramagazine.org/bond-wifi-and-ethernet-for-easier-networking-mob
|
||||
作者:[Ben Cotton][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -1,26 +1,26 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (0x996)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-11148-1.html)
|
||||
[#]: subject: (Mastering user groups on Linux)
|
||||
[#]: via: (https://www.networkworld.com/article/3409781/mastering-user-groups-on-linux.html)
|
||||
[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/)
|
||||
|
||||
掌握 Linux 用户组
|
||||
======
|
||||
在 Linux 系统中管理用户组并不费力,但相关命令可能比你所知的更为灵活。
|
||||
|
||||
> 在 Linux 系统中管理用户组并不费力,但相关命令可能比你所知的更为灵活。
|
||||
|
||||
![Scott 97006 \(CC BY 2.0\)][1]
|
||||
|
||||
在 Linux 系统中用户组起着重要作用。用户组提供了一种简单方法供一组用户互相共享文件。用户组也允许系统管理员更加有效地管理用户权限,因为管理员可以将权限分配给用户组而不是逐一分配给单个用户。
|
||||
|
||||
尽管通常只要在系统中添加用户账户就会创建用户组,关于用户组如何工作以及如何运用用户组还有很多需要了解的。
|
||||
|
||||
**[ 两分钟 Linux 技巧:[ 观看这些 2 分钟视频学习如何精通一大批 Linux 命令 ][2] ]**
|
||||
### 一个用户一个用户组?
|
||||
|
||||
### 一个用户,一个用户组?
|
||||
|
||||
Linux 系统中多数用户账户被设为用户名与用户组名相同。用户 "jdoe" 会被赋予一个名为 "jdoe" 的用户组,且成为该新建用户组的唯一成员。如本例所示,该用户的登录名,用户 id 和用户组 id 在新建账户时会被添加到 **/etc/passwd** 和 **/etc/group** 文件中:
|
||||
Linux 系统中多数用户账户被设为用户名与用户组名相同。用户 `jdoe` 会被赋予一个名为 `jdoe` 的用户组,且成为该新建用户组的唯一成员。如本例所示,该用户的登录名,用户 id 和用户组 id 在新建账户时会被添加到 `/etc/passwd` 和 `/etc/group` 文件中:
|
||||
|
||||
```
|
||||
$ sudo useradd jdoe
|
||||
@ -30,15 +30,15 @@ $ grep jdoe /etc/group
|
||||
jdoe:x:1066:
|
||||
```
|
||||
|
||||
这些文件中的配置使系统得以在文本(jdoe)和数字(1066)这两种用户 id 形式之间互相转换—— jdoe 就是 1006,且 1006 就是 jdoe。
|
||||
这些文件中的配置使系统得以在文本(`jdoe`)和数字(`1066`)这两种用户 id 形式之间互相转换—— `jdoe` 就是 `1006`,且 `1006` 就是 `jdoe`。
|
||||
|
||||
分配给每个用户的 UID(用户 id)和 GID(用户组 id)通常是一样的并且顺序递增。若上例中 Jane Doe 是最近添加的用户,分配给下一个新用户的用户 id 和用户组 id 很可能都是 1067。
|
||||
分配给每个用户的 UID(用户 id)和 GID(用户组 id)通常是一样的,并且顺序递增。若上例中 Jane Doe 是最近添加的用户,分配给下一个新用户的用户 id 和用户组 id 很可能都是 1067。
|
||||
|
||||
### GID = UID?
|
||||
|
||||
UID 和 GID 可能不一致。例如,如果你用 **groupadd** 命令添加一个用户组而不指定用户组 id,系统会分配下一个可用的用户组 id(在本例中为 1067)。下一个添加到系统中的用户其 UID 会是 1067 而 GID 则为 1068。
|
||||
UID 和 GID 可能不一致。例如,如果你用 `groupadd` 命令添加一个用户组而不指定用户组 id,系统会分配下一个可用的用户组 id(在本例中为 1067)。下一个添加到系统中的用户其 UID 会是 1067 而 GID 则为 1068。
|
||||
|
||||
你可以避免这个问题,方法是添加用户组的时候指定一个较小的用户组 id 而不是接受默认值。在下面的命令中我们添加一个用户组并提供一个 GID,这个 GID 小于应用于用户账户的 GID 取值范围。
|
||||
你可以避免这个问题,方法是添加用户组的时候指定一个较小的用户组 id 而不是接受默认值。在下面的命令中我们添加一个用户组并提供一个 GID,这个 GID 小于用于用户账户的 GID 取值范围。
|
||||
|
||||
```
|
||||
$ sudo groupadd -g 500 devops
|
||||
@ -52,11 +52,11 @@ $ grep bennyg /etc/passwd
|
||||
bennyg:x:1064:50::/home/bennyg:/bin/sh
|
||||
```
|
||||
|
||||
### <ruby>主要用户组<rt>primary group</rt></ruby>和<ruby>次要用户组<rt>secondary group</rt></ruby>
|
||||
### 主要用户组和次要用户组
|
||||
|
||||
用户组实际上有两种——主要用户组和次要用户组
|
||||
用户组实际上有两种:<ruby>主要用户组<rt>primary group</rt></ruby>和<ruby>次要用户组<rt>secondary group</rt></ruby>。
|
||||
|
||||
**主要用户组**是保存在 /etc/passwd 文件中的用户组,该用户组在账户创建时配置。当用户创建一个文件,用户的主要用户组与此文件关联。
|
||||
主要用户组是保存在 `/etc/passwd` 文件中的用户组,该用户组在账户创建时配置。当用户创建一个文件时,用户的主要用户组与此文件关联。
|
||||
|
||||
```
|
||||
$ whoami
|
||||
@ -74,7 +74,7 @@ $ ls -l newfile
|
||||
+-------- 主要用户组
|
||||
```
|
||||
|
||||
用户一旦拥有账户之后被加入的那些用户组是**次要用户组**。次要用户组成员关系在 /etc/group 文件中显示。
|
||||
用户一旦拥有账户之后被加入的那些用户组是次要用户组。次要用户组成员关系在 `/etc/group` 文件中显示。
|
||||
|
||||
```
|
||||
$ grep devops /etc/group
|
||||
@ -84,15 +84,15 @@ devops:x:500:shs,jadep
|
||||
+-------- shs 和 jadep 的次要用户组
|
||||
```
|
||||
|
||||
**/etc/group** 文件给用户组分配组名称(例如 500 = devops)并记录次要用户组成员。
|
||||
`/etc/group` 文件给用户组分配组名称(例如 `500` = `devops`)并记录次要用户组成员。
|
||||
|
||||
### 首选的准则
|
||||
|
||||
每个用户是他自己的主要用户组成员并可以成为任意多个次要用户组成员这样一种准则允许用户更加容易地将个人文件和需要与同事分享的文件分开。当用户创建一个文件时,用户所属的不同用户组的成员不一定有访问权限。用户必须用 **chgrp** 命令将文件和次要用户组关联起来。
|
||||
每个用户是他自己的主要用户组成员,并可以成为任意多个次要用户组成员,这样的一种准则允许用户更加容易地将个人文件和需要与同事分享的文件分开。当用户创建一个文件时,用户所属的不同用户组的成员不一定有访问权限。用户必须用 `chgrp` 命令将文件和次要用户组关联起来。
|
||||
|
||||
### 哪里也不如自己的<ruby>家目录<rt>/home</rt></ruby>
|
||||
### 哪里也不如自己的家目录
|
||||
|
||||
添加新账户时一个重要的细节是 **useradd** 命令并不一定为新用户添加一个家目录。若你只有某些时候想为用户添加家目录,你可以在 useradd 命令中加入 **-m**选项(可以把它想象成“安家”选项)
|
||||
添加新账户时一个重要的细节是 `useradd` 命令并不一定为新用户添加一个<ruby>家目录<rt>/home</rt></ruby>家目录。若你只有某些时候想为用户添加家目录,你可以在 `useradd` 命令中加入 `-m` 选项(可以把它想象成“安家”选项)。
|
||||
|
||||
```
|
||||
$ sudo useradd -m -g devops -c "John Doe" jdoe2
|
||||
@ -100,30 +100,28 @@ $ sudo useradd -m -g devops -c "John Doe" jdoe2
|
||||
|
||||
此命令中的选项如下:
|
||||
|
||||
* **-m** 创建家目录并在其中生成初始文件
|
||||
* **-g** 指定用户归属的用户组
|
||||
* **-c** 添加账户描述信息(通常是用户的姓名)
|
||||
* `-m` 创建家目录并在其中生成初始文件
|
||||
* `-g` 指定用户归属的用户组
|
||||
* `-c` 添加账户描述信息(通常是用户的姓名)
|
||||
|
||||
|
||||
|
||||
若你希望总是创建家目录,你可以编辑 **/etc/login.defs** 文件来更改默认工作方式。更改或添加 CREATE_HOME 变量并将其设置为 "yes":
|
||||
若你希望总是创建家目录,你可以编辑 `/etc/login.defs` 文件来更改默认工作方式。更改或添加 `CREATE_HOME` 变量并将其设置为 `yes`:
|
||||
|
||||
```
|
||||
$ grep CREATE_HOME /etc/login.defs
|
||||
CREATE_HOME yes
|
||||
```
|
||||
|
||||
另一种方法是用自己的账户设置别名从而让 **useradd** 一直带有 -m 选项。
|
||||
另一种方法是用自己的账户设置别名从而让 `useradd` 一直带有 `-m` 选项。
|
||||
|
||||
```
|
||||
$ alias useradd=’useradd -m’
|
||||
```
|
||||
|
||||
确保将该别名添加到你的 ~/.bashrc 文件或类似的启动文件中以使其永久生效。
|
||||
确保将该别名添加到你的 `~/.bashrc` 文件或类似的启动文件中以使其永久生效。
|
||||
|
||||
### 深入了解 /etc/login.defs
|
||||
|
||||
下面这个命令可列出 /etc/login.defs 文件中的全部设置。**grep**命令会隐藏所有注释和空行。
|
||||
下面这个命令可列出 `/etc/login.defs` 文件中的全部设置。下面的 `grep` 命令会隐藏所有注释和空行。
|
||||
|
||||
```
|
||||
$ cat /etc/login.defs | grep -v "^#" | grep -v "^$"
|
||||
@ -163,14 +161,14 @@ ENCRYPT_METHOD SHA512
|
||||
|
||||
### 如何显示用户所属的用户组
|
||||
|
||||
出于各种原因用户可能是多个用户组的成员。用户组成员身份给与用户对用户组拥有的文件和目录的访问权限,有时候这种工作方式是至关重要的。要生成某个用户所属用户组的清单,用 **groups** 命令即可。
|
||||
出于各种原因用户可能是多个用户组的成员。用户组成员身份给与用户对用户组拥有的文件和目录的访问权限,有时候这种工作方式是至关重要的。要生成某个用户所属用户组的清单,用 `groups` 命令即可。
|
||||
|
||||
```
|
||||
$ groups jdoe
|
||||
jdoe : jdoe adm admin cdrom sudo dip plugdev lpadmin staff sambashare
|
||||
```
|
||||
|
||||
你可以键入不带任何参数的“groups”来列出你自己的用户组。
|
||||
你可以键入不带任何参数的 `groups` 命令来列出你自己的用户组。
|
||||
|
||||
### 如何添加用户至用户组
|
||||
|
||||
@ -186,9 +184,9 @@ $ sudo usermod -a -G devops jdoe
|
||||
$ sudo usermod -a -G devops,mgrs jdoe
|
||||
```
|
||||
|
||||
参数 **-a** 意思是“添加”,**-G** 指定用户组列表
|
||||
参数 `-a` 意思是“添加”,`-G` 指定用户组列表。
|
||||
|
||||
你可以编辑 **/etc/group** 文件将用户名从用户组成员名单中删除,从而将用户从用户组中移除。usermod 命令或许也有个选项用于从用户组中删除某个成员。
|
||||
你可以编辑 `/etc/group` 文件将用户名从用户组成员名单中删除,从而将用户从用户组中移除。`usermod` 命令或许也有个选项用于从用户组中删除某个成员。
|
||||
|
||||
```
|
||||
fish:x:16:nemo,dory,shark
|
||||
@ -201,18 +199,14 @@ fish:x:16:nemo,dory
|
||||
|
||||
添加和管理用户组并非特别困难,但长远来看配置账户时的一致性可使这项工作更容易些。
|
||||
|
||||
**[ 延伸阅读:[必会的 Linux 命令][3] ]**
|
||||
|
||||
加入 Network World 的 [Facebook][4] 和 [LinkedIn][5] 社区,对最重要的话题发表你的评论。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3409781/mastering-user-groups-on-linux.html
|
||||
|
||||
作者:[Sandra Henry-Stocker][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/0x996)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
译者:[0x996](https://github.com/0x996)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -0,0 +1,73 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (How BMW’s new annual fee for Apple CarPlay could define the IoT)
|
||||
[#]: via: (https://www.networkworld.com/article/3411478/how-bmws-new-annual-fee-for-apple-carplay-could-define-the-iot.html)
|
||||
[#]: author: (Fredric Paul https://www.networkworld.com/author/Fredric-Paul/)
|
||||
|
||||
How BMW’s new annual fee for Apple CarPlay could define the IoT
|
||||
======
|
||||
BMW's plans to charge for Apple CarPlay access illustrates the promise—and the pitfalls—of the internet of things (IoT).
|
||||
![Apple][1]
|
||||
|
||||
Apple calls CarPlay “[the ultimate co-pilot][2].” BMW calls it the “smart and fast way to conveniently use your iPhone features while in your car. ... You can control your iPhone and use apps with the touchscreen display, the iDrive Controller or voice commands.”
|
||||
|
||||
However you describe it, though, Apple’s CarPlay system suddenly finds itself in the center of what could be a defining conversation about the future of the internet of things (IoT).
|
||||
|
||||
You see, the German luxury carmaker’s plans to charge $80 a year to access CarPlay have suddenly become the talk of the internet, from [tech blogs][3] to [car sites][4]. The hue and cry makes CarPlay the perfect illustration of the promise—and the pitfalls—of the IoT.
|
||||
|
||||
**[ [Learn more:][5] Download a PDF bundle of five essential articles about IoT in the enterprise ]**
|
||||
|
||||
First, the facts: BMW’s website now reveals that beginning with the 2019 model year, it’s turning the CarPlay interface between iPhones and the vehicle’s infotainment system into a subscription service. While most car manufacturers that offer CarPlay make it available free of charge, owners of the “ultimate driving machine,” will get free access for only the first year. After that, [BMW drivers will need to pony up $80 a year—or $300 for 20 years][6]—to keep using it.
|
||||
|
||||
### An “outrageous” fee?
|
||||
|
||||
Some observers are labeling the new fee “[outrageous][7],” and it’s not yet clear what Apple thinks about BMW’s pricing policy. For me, though, it’s both a shining example of the amazing new revenue opportunities generated by the IoT, and a terrifying warning of how the IoT could add new cost and complexity to everyday activities.
|
||||
|
||||
Look at this as a glass half full, and BMW is cleverly finding a new revenue stream by offering valuable functionality to a target market that has already demonstrated a willingness to pay for high-end functionality. The IoT and connected cars offer a new and better experience, and BMW is leveraging that to boost its business. It’s the power of capitalism at work, and if BMW drivers don’t value the CarPlay functionality, no one is forcing them to buy it.
|
||||
|
||||
In some ways, the subscription business model is similar to that of [satellite radio][8] or GM’s [OnStar][9] system. The automaker builds in the equipment needed to offer the service, and car owners can choose to avail themselves of it if they feel it’s worthwhile. Or not.
|
||||
|
||||
### A particular bit of usury
|
||||
|
||||
But that’s only one perspective on what’s happening here. Look at it another way, and you could paint a very different picture. For one thing, as noted above, other car makers that offer CarPlay do not charge anything extra for it. BMWs are relatively expensive vehicles, and nickel-and-diming affluent consumers does not seem like a path to great customer loyalty. Think of the annoyance surrounding the fact that budget motels typically make Wi-Fi available for free, while luxury properties charge guests through the nose. (With the [rise of 5G networks][10], though, that particular bit of usury may not last much longer.)
|
||||
|
||||
Making matters worse, CarPlay is really just internal connectivity between your iPhone and your car’s infotainment system. There’s no actual _service_ involved, and no real justification for a separate fee, other than the fact that BMW _can_ charge for it. It seems more like getting charged a monthly fee to connect your own phone to your own big-screen TV (like Apple’s AirPlay) or hooking up your smart light fixture to your home assistant or—I don’t know—putting your lamp on your coffee table! It just doesn’t feel right.
|
||||
|
||||
### Dangerous long-term implications?
|
||||
|
||||
Sure, if this kind of thing takes off in the larger world of the IoT, it could lead to a significant amount of new revenue—at least in the short run. But over time, it could easily backfire, encouraging consumers to view IoT vendors as greedy and to question the costs and benefits of everything from smart houses to connected enterprises. That could turn out to be a drag on the overall IoT market.
|
||||
|
||||
That would be a shame, and it doesn’t have to be that way. If BMW had merely buried the CarPlay costs in the price of the equipment or options, or in the sticker cost of the car itself, nobody would be worrying about it. But just like breaking out the costs of checked baggage on airplane flights, charging a subscription for CarPlay makes it seem like a combination of bait-and-switch and price gouging. And that’s exactly what the IoT industry _doesn’t_ need. If the goal is to maximize the growth and acceptance of the IoT, vendors should strive to make IoT users feel like they’re getting great functionality at a fair price.
|
||||
|
||||
That’s often exactly what many IoT devices and IoT-based services do, so it shouldn’t be too hard to avoid screwing it up.
|
||||
|
||||
Join the Network World communities on [Facebook][11] and [LinkedIn][12] to comment on topics that are top of mind.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3411478/how-bmws-new-annual-fee-for-apple-carplay-could-define-the-iot.html
|
||||
|
||||
作者:[Fredric Paul][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Fredric-Paul/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://images.idgesg.net/images/article/2019/06/ios13-carplay-waze-100799546-large.jpg
|
||||
[2]: https://www.apple.com/ios/carplay/
|
||||
[3]: https://www.engadget.com/2019/07/24/bmw-adds-a-80-yearly-subscription-for-apples-carplay/
|
||||
[4]: https://www.caranddriver.com/news/a15530125/bmw-to-treat-apple-carplay-as-a-subscription-service-and-charge-customers-an-annual-fee/
|
||||
[5]: https://www.networkworld.com/article/3269736/internet-of-things/getting-grounded-in-iot-networking-and-security.html
|
||||
[6]: https://connecteddrive.bmwusa.com/app/index.html#/portal/store/Base_CarPlay
|
||||
[7]: https://www.cultofmac.com/640578/bmw-carplay-annual-fee/
|
||||
[8]: https://www.siriusxm.com/
|
||||
[9]: https://www.onstar.com/us/en/home/?ppc=GOOGLE_700000001302986_71700000048879287_58700004855294718_p41772767724&gclid=EAIaIQobChMIi7qn4IDO4wIVJRh9Ch1mlw6tEAAYASAAEgKQf_D_BwE&gclsrc=aw.ds
|
||||
[10]: http://www.networkworld.com/cms/article/17%20predictions%20about%205G%20networks%20and%20devices
|
||||
[11]: https://www.facebook.com/NetworkWorld/
|
||||
[12]: https://www.linkedin.com/company/network-world
|
@ -0,0 +1,78 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (Reports: As the IoT grows, so do its threats to DNS)
|
||||
[#]: via: (https://www.networkworld.com/article/3411437/reports-as-the-iot-grows-so-do-its-threats-to-dns.html)
|
||||
[#]: author: (Michael Cooney https://www.networkworld.com/author/Michael-Cooney/)
|
||||
|
||||
Reports: As the IoT grows, so do its threats to DNS
|
||||
======
|
||||
ICANN and IBM's security researchers separately spell out how the growth of the internet of things will increase opportunities for malicious actors to attack the Domain Name System with hyperscale botnets and worm their malware into the cloud.
|
||||
The internet of things is shaping up to be a more significant threat to the Domain Name System through larger IoT botnets, unintentional adverse effects of IoT-software updates and the continuing development of bot-herding software.
|
||||
|
||||
The Internet Corporation for Assigned Names and Numbers (ICANN) and IBM’s X-Force security researchers have recently issued reports outlining the interplay between DNS and IoT that includes warnings about the pressure IoT botnets will put on the availability of DNS systems.
|
||||
|
||||
**More about DNS:**
|
||||
|
||||
* [DNS in the cloud: Why and why not][1]
|
||||
* [DNS over HTTPS seeks to make internet use more private][2]
|
||||
* [How to protect your infrastructure from DNS cache poisoning][3]
|
||||
* [ICANN housecleaning revokes old DNS security key][4]
|
||||
|
||||
|
||||
|
||||
ICANN’s Security and Stability Advisory Committee (SSAC) wrote in a [report][5] that “a significant number of IoT devices will likely be IP enabled and will use the DNS to locate the remote services they require to perform their functions. As a result, the DNS will continue to play the same crucial role for the IoT that it has for traditional applications that enable human users to interact with services and content,” ICANN stated. “The role of the DNS might become even more crucial from a security and stability perspective with IoT devices interacting with people’s physical environment.”
|
||||
|
||||
IoT represents both an opportunity and a risk to the DNS, ICANN stated. “It is an opportunity because the DNS provides functions and data that can help make the IoT more secure, stable, and transparent, which is critical given the IoT's interaction with the physical world. It is a risk because various measurement studies suggest that IoT devices may stress the DNS, for instance, because of complex DDoS attacks carried out by botnets that grow to hundreds of thousands or in the future millions of infected IoT devices within hours,” ICANN stated.
|
||||
|
||||
Unintentional DDoS attacks
|
||||
|
||||
One risk is that the IoT could place new burdens on the DNS. “For example, a software update for a popular IP-enabled IoT device that causes the device to use the DNS more frequently (e.g., regularly lookup random domain names to check for network availability) could stress the DNS in individual networks when millions of devices automatically install the update at the same time,” ICANN stated.
|
||||
|
||||
While this is a programming error from the perspective of individual devices, it could result in a significant attack vector from the perspective of DNS infrastructure operators. Incidents like this have already occurred on a small scale, but they may occur more frequently in the future due to the growth of heterogeneous IoT devices from manufacturers that equip their IoT devices with controllers that use the DNS, ICANN stated.
|
||||
|
||||
Massively larger botnets, threat to clouds
|
||||
|
||||
The report also suggested that the scale of IoT botnets could grow from hundreds of thousands of devices to millions. The best known IoT botnet is Mirai, responsible for DDoS attacks involving 400,000 to 600,000 devices. The Hajime botnet hovers around 400K infected IoT devices but has not launched any DDoS attacks yet. But as the IoT grows, so will the botnets and as a result larger DDoS attacks.
|
||||
|
||||
Cloud-connected IoT devices could endanger cloud resources. “IoT devices connected to cloud architecture could allow Mirai adversaries to gain access to cloud servers. They could infect a server with additional malware dropped by Mirai or expose all IoT devices connected to the server to further compromise,” wrote Charles DeBeck, a senior cyber threat intelligence strategic analyst with [IBM X-Force Incident Response][6] in a recent report.
|
||||
|
||||
“As organizations increasingly adopt cloud architecture to scale efficiency and productivity, disruption to a cloud environment could be catastrophic.”
|
||||
|
||||
For enterprises that are rapidly adopting both IoT technology and cloud architecture, insufficient security controls could expose the organization to elevated risk, calling for the security committee to conduct an up-to-date risk assessment, DeBeck stated.
|
||||
|
||||
Attackers continue malware development
|
||||
|
||||
“Since this activity is highly automated, there remains a strong possibility of large-scale infection of IoT devices in the future,” DeBeck stated. “Additionally, threat actors are continuing to expand their targets to include new types of IoT devices and may start looking at industrial IoT devices or connected wearables to increase their footprint and profits.”
|
||||
|
||||
Botnet bad guys are also developing new Mirai variants and IoT botnet malware outside of the Mirai family to target IoT devices, DeBeck stated.
|
||||
|
||||
To continue reading this article register now
|
||||
|
||||
[Get Free Access][7]
|
||||
|
||||
[Learn More][8] Existing Users [Sign In][7]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3411437/reports-as-the-iot-grows-so-do-its-threats-to-dns.html
|
||||
|
||||
作者:[Michael Cooney][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Michael-Cooney/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.networkworld.com/article/3273891/hybrid-cloud/dns-in-the-cloud-why-and-why-not.html
|
||||
[2]: https://www.networkworld.com/article/3322023/internet/dns-over-https-seeks-to-make-internet-use-more-private.html
|
||||
[3]: https://www.networkworld.com/article/3298160/internet/how-to-protect-your-infrastructure-from-dns-cache-poisoning.html
|
||||
[4]: https://www.networkworld.com/article/3331606/security/icann-housecleaning-revokes-old-dns-security-key.html
|
||||
[5]: https://www.icann.org/en/system/files/files/sac-105-en.pdf
|
||||
[6]: https://securityintelligence.com/posts/i-cant-believe-mirais-tracking-the-infamous-iot-malware-2/?cm_mmc=OSocial_Twitter-_-Security_Security+Brand+and+Outcomes-_-WW_WW-_-SI+TW+blog&cm_mmca1=000034XK&cm_mmca2=10009814&linkId=70790642
|
||||
[7]: javascript://
|
||||
[8]: https://www.networkworld.com/learn-about-insider/
|
@ -0,0 +1,102 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (How to transition into a career as a DevOps engineer)
|
||||
[#]: via: (https://opensource.com/article/19/7/how-transition-career-devops-engineer)
|
||||
[#]: author: (Conor Delanbanque https://opensource.com/users/cdelanbanquehttps://opensource.com/users/daniel-ohhttps://opensource.com/users/herontheclihttps://opensource.com/users/marcobravohttps://opensource.com/users/cdelanbanque)
|
||||
|
||||
How to transition into a career as a DevOps engineer
|
||||
======
|
||||
Whether you're a recent college graduate or a seasoned IT pro looking to
|
||||
advance your career, these tips can help you get hired as a DevOps
|
||||
engineer.
|
||||
![technical resume for hiring new talent][1]
|
||||
|
||||
DevOps engineering is a hot career with many rewards. Whether you're looking for your first job after graduating or seeking an opportunity to reskill while leveraging your prior industry experience, this guide should help you take the right steps to become a [DevOps engineer][2].
|
||||
|
||||
### Immerse yourself
|
||||
|
||||
Begin by learning the fundamentals, practices, and methodologies of [DevOps][3]. Understand the "why" behind DevOps before jumping into the tools. A DevOps engineer's main goal is to increase speed and maintain or improve quality across the entire software development lifecycle (SDLC) to provide maximum business value. Read articles, watch YouTube videos, and go to local Meetup groups or conferences—become part of the welcoming DevOps community, where you'll learn from the mistakes and successes of those who came before you.
|
||||
|
||||
### Consider your background
|
||||
|
||||
If you have prior experience working in technology, such as a software developer, systems engineer, systems administrator, network operations engineer, or database administrator, you already have broad insights and useful experience for your future role as a DevOps engineer. If you're just starting your career after finishing your degree in computer science or any other STEM field, you have some of the basic stepping-stones you'll need in this transition.
|
||||
|
||||
The DevOps engineer role covers a broad spectrum of responsibilities. Following are the three ways enterprises are most likely to use them:
|
||||
|
||||
* **DevOps engineers with a dev bias** work in a software development role building applications. They leverage continuous integration/continuous delivery (CI/CD), shared repositories, cloud, and containers as part of their everyday work, but they are not necessarily responsible for building or implementing tooling. They understand infrastructure and, in a mature environment, will be able to push their own code into production.
|
||||
* **DevOps engineers with an ops bias** could be compared to systems engineers or systems administrators. They understand software development but do not spend the core of their day building applications. Instead, they are more likely to be supporting software development teams to automate manual processes and increase efficiencies across human and technology systems. This could mean breaking down legacy code and using less cumbersome automation scripts to run the same commands, or it could mean installing, configuring, or maintaining infrastructure and tooling. They ensure the right tools are installed and available for any teams that need them. They also help to enable teams by teaching them how to leverage CI/CD and other DevOps practices.
|
||||
* **Site reliability engineers (SRE)** are like software engineers that solve operations and infrastructure problems. SREs focus on creating scalable, highly available, and reliable software systems.
|
||||
|
||||
|
||||
|
||||
In the ideal world, DevOps engineers will understand all of these areas; this is typical at mature technology companies. However, DevOps roles at top-tier banks and many Fortune 500 companies usually have biases towards dev or ops.
|
||||
|
||||
### Technologies to learn
|
||||
|
||||
DevOps engineers need to know a wide spectrum of technologies to do their jobs effectively. Whatever your background, start with the fundamental technologies you'll need to use and understand as a DevOps engineer.
|
||||
|
||||
#### Operating systems
|
||||
|
||||
The operating system is where everything runs, and having fundamental knowledge is important. [Linux is the operating system][4] you'll most likely use daily, although some organizations use Windows. To get started, you can install Linux at home, where you'll be able to break as much as you want and learn along the way.
|
||||
|
||||
#### Scripting
|
||||
|
||||
Next, pick a language to learn for scripting purposes. There are many to choose from ranging from Python, Go, Java, Bash, PowerShell, Ruby, and C/C++. I suggest [starting with Python][5]; it's one of the most popular for a reason, as it's relatively easy to learn and interpret. Python is often written to follow the fundamentals of object-oriented programming (OOP) and can be used for web development, software development, and creating desktop GUI and business applications.
|
||||
|
||||
#### Cloud
|
||||
|
||||
After [Linux][4] and [Python][5], I think the next thing to study is cloud computing. Infrastructure is no longer left to the "operations guys," so you'll need some exposure to a cloud platform such as Amazon Web Services, Azure, or Google Cloud Platform. I'd start with AWS, as it has an extensive collection of free learning tools that can take you down any track from using AWS as a developer, to operations, and even business-facing components. In fact, you might become overwhelmed by how much is on offer. Consider starting with EC2, S3, and VPC, and see where you want to go from there.
|
||||
|
||||
#### Programming languages
|
||||
|
||||
If you come to DevOps with a passion for software development, keep on improving your programming skills. Some good and commonly used languages in DevOps are the same as you would for scripting: Python, Go, Java, Bash, PowerShell, Ruby, and C/C++. You should also become familiar with Jenkins and Git/GitHub, which you'll use frequently within the CI/CD process.
|
||||
|
||||
#### Containers
|
||||
|
||||
Finally, start learning about [containerizing cod][6]e using tools such as Docker and orchestration platforms such as Kubernetes. There are extensive learning resources available for free online, and most cities will have local Meetup groups where you can learn from experienced people in a friendly environment (with pizza and beer!).
|
||||
|
||||
#### What else?
|
||||
|
||||
If you have less experience in development, you can still [get involved in DevOps][3] by applying your passion for automation, increasing efficiency, collaborating with others, and improving your work. I would still suggest learning the tooling described above, but with less emphasis on the coding/scripting languages. It will be useful to learn about Infrastructure-as-a-Service, Platform-as-a-Service, cloud platforms, and Linux. You'll likely be setting up the tools and learning how to build systems that are resilient and fault-tolerant, leveraging them while writing code.
|
||||
|
||||
### Finding a DevOps job
|
||||
|
||||
The job search process will differ depending on whether you've been working in tech and are moving into DevOps or you're a recent graduate beginning your career.
|
||||
|
||||
#### If you're already working in technology
|
||||
|
||||
If you're transitioning from one tech field into a DevOps role, start by exploring opportunities within your current company. Can you reskill by working with another team? Try to shadow other team members, ask for advice, and acquire new skills without leaving your current job. If this isn't possible, you may need to move to another company. If you can learn some of the practices, tools, and technologies listed above, you'll be in a good position to demonstrate relevant knowledge during interviews. The key is to be honest and not set yourself up for failure. Most hiring managers understand that you don't know all the answers; if you can show what you've been learning and explain that you're open to learning more, you should have a good chance to land a DevOps job.
|
||||
|
||||
#### If you're starting your career
|
||||
|
||||
Apply to open opportunities at companies hiring junior DevOps engineers. Unfortunately, many companies say they're looking for more experience and recommend you re-apply when you've gained some. It's the typical, frustrating scenario of "we want more experience," but nobody seems willing to give you the first chance.
|
||||
|
||||
It's not all gloomy though; some companies focus on training and upskilling graduates directly out of the university. For example, [MThree][7], where I work, hires fresh graduates and trains them for eight weeks. When they complete training, participants have solid exposure to the entire SDLC and a good understanding of how it applies in a Fortune 500 environment. Graduates are hired as junior DevOps engineers with MThree's client companies—MThree pays their full-time salary and benefits for the first 18 to 24 months, after which they join the client as direct employees. This is a great way to bridge the gap from the university into a technology career.
|
||||
|
||||
### Summary
|
||||
|
||||
There are many ways to transition to become a DevOps engineer. It is a very rewarding career route that will likely keep you engaged and challenged—and increase your earning potential.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/19/7/how-transition-career-devops-engineer
|
||||
|
||||
作者:[Conor Delanbanque][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/cdelanbanquehttps://opensource.com/users/daniel-ohhttps://opensource.com/users/herontheclihttps://opensource.com/users/marcobravohttps://opensource.com/users/cdelanbanque
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/hiring_talent_resume_job_career.png?itok=Ci_ulYAH (technical resume for hiring new talent)
|
||||
[2]: https://opensource.com/article/19/7/devops-vs-sysadmin
|
||||
[3]: https://opensource.com/resources/devops
|
||||
[4]: https://opensource.com/resources/linux
|
||||
[5]: https://opensource.com/resources/python
|
||||
[6]: https://opensource.com/article/18/8/sysadmins-guide-containers
|
||||
[7]: https://www.mthreealumni.com/
|
61
sources/talk/20190725 IoT-s role in expanding drone use.md
Normal file
61
sources/talk/20190725 IoT-s role in expanding drone use.md
Normal file
@ -0,0 +1,61 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (IoT’s role in expanding drone use)
|
||||
[#]: via: (https://www.networkworld.com/article/3410564/iots-role-in-expanding-drone-use.html)
|
||||
[#]: author: (Fredric Paul https://www.networkworld.com/author/Fredric-Paul/)
|
||||
|
||||
IoT’s role in expanding drone use
|
||||
======
|
||||
Collision avoidance technology that uses internet of things (IoT) connectivity, AI, machine learning, and computer vision could be the key to expanding drone applications.
|
||||
![Thinkstock][1]
|
||||
|
||||
As faithful readers of [TechWatch][2] (love you, Mom) may know, the rollout of many companies’ ambitious drone delivery services has not gone as quickly as promised. Despite recent signs of progress in Australia and the United States—not to mention [clever ideas for burger deliveries to cars stuck in traffic][3]—drone delivery remains a long way from becoming a viable option in the vast majority of use cases. And the problem affects many areas of drone usage, not just the heavily hyped drone delivery applications.
|
||||
|
||||
According to [Grace McKenzie][4], director of operations and controller at [Iris Automation][5], one key restriction to economically viable drone deliveries is that the “skies are not safe enough for many drone use cases.”
|
||||
|
||||
Speaking at a recent [SF New Tech “Internet of Everything” event in San Francisco][6], McKenzie said fear of collisions with manned aircraft is the big reason why the Federal Aviation Association (FAA) and international regulators typically prohibit drones from flying beyond the line of the sight of the remote pilot. Obviously, she added, that restriction greatly constrains where and how drones can make deliveries and is working to keep the market from growing test and pilot programs into full-scale commercial adoption.
|
||||
|
||||
**[ Read also: [No, drone delivery still isn’t ready for prime time][7] | Get regularly scheduled insights: [Sign up for Network World newsletters][8] ]**
|
||||
|
||||
### Detect and avoid technology is critical
|
||||
|
||||
Iris Automation, not surprisingly, is in the business of creating workable collision avoidance systems for drones in an attempt to solve this issue. Variously called “detect and avoid” or “sense and avoid” technologies, these automated solutions are required for “beyond visual line of sight” (BVLOS) drone operations. There are multiple issues in play.
|
||||
|
||||
As explained on Iris’ website, “Drone pilots are skilled aviators, but even they struggle to see and avoid obstacles and aircraft when operating drones at extended range [and] no pilot on board means low situational awareness. This risk is huge, and the potential conflicts can be extremely dangerous.”
|
||||
|
||||
As “a software company with a hardware problem,” McKenzie said, Iris’ systems use artificial intelligence (AI), machine learning, computer vision, and IoT connectivity to identify and focus on the “small group of pixels that could be a risk.” Working together, those technologies are creating an “exponential curve” in detect-and-avoid technology improvements, she added. The result? Drones that “see better than a human pilot,” she claimed.
|
||||
|
||||
### Bigger market and new use cases for drones
|
||||
|
||||
It’s hardly an academic issue. “Not being able to show adequate mitigation of operational risk means regulators are forced to limit drone uses and applications to closed environments,” the company says.
|
||||
|
||||
Solving this problem would open up a wide range of industrial and commercial applications for drones. Far beyond delivering burritos, McKenzie said that with confidence in drone “sense and avoid” capabilities, drones could be used for all kinds of aerial data gathering, from inspecting hydro-electric dams, power lines, and railways to surveying crops to fighting forest fires and conducting search-and-rescue operations.
|
||||
|
||||
Join the Network World communities on [Facebook][9] and [LinkedIn][10] to comment on topics that are top of mind.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3410564/iots-role-in-expanding-drone-use.html
|
||||
|
||||
作者:[Fredric Paul][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Fredric-Paul/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://images.idgesg.net/images/article/2018/01/drone_delivery_package_future-100745961-large.jpg
|
||||
[2]: https://www.networkworld.com/blog/techwatch/
|
||||
[3]: https://www.networkworld.com/article/3396188/the-traffic-jam-whopper-project-may-be-the-coolestdumbest-iot-idea-ever.html
|
||||
[4]: https://www.linkedin.com/in/withgracetoo/
|
||||
[5]: https://www.irisonboard.com/
|
||||
[6]: https://sfnewtech.com/event/iot/
|
||||
[7]: https://www.networkworld.com/article/3390677/drone-delivery-not-ready-for-prime-time.html
|
||||
[8]: https://www.networkworld.com/newsletters/signup.html
|
||||
[9]: https://www.facebook.com/NetworkWorld/
|
||||
[10]: https://www.linkedin.com/company/network-world
|
@ -0,0 +1,82 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (Storage management a weak area for most enterprises)
|
||||
[#]: via: (https://www.networkworld.com/article/3411400/storage-management-a-weak-area-for-most-enterprises.html)
|
||||
[#]: author: (Andy Patrizio https://www.networkworld.com/author/Andy-Patrizio/)
|
||||
|
||||
Storage management a weak area for most enterprises
|
||||
======
|
||||
Survey finds companies are adopting technology for such things as AI, machine learning, edge computing and IoT, but still use legacy storage that can't handle those workloads.
|
||||
![Miakievy / Getty Images][1]
|
||||
|
||||
Stop me if you’ve heard this before: Companies are racing to a new technological paradigm but are using yesterday’s tech to do it.
|
||||
|
||||
I know. Shocking.
|
||||
|
||||
A survey of more than 300 storage professionals by storage vendor NGD Systems found only 11% of the companies they talked to would give themselves an “A” grade for their compute and storage capabilities.
|
||||
|
||||
Why? The chief reason given is that while enterprises are rapidly deploying technologies for edge networks, real-time analytics, machine learning, and internet of things (IoT) projects, they are still using legacy storage solutions that are not designed for such data-intensive workloads. More than half — 54% — said their processing of edge applications is a bottleneck, and they want faster and more intelligent storage solutions.
|
||||
|
||||
**[ Read also: [What is NVMe, and how is it changing enterprise storage][2] ]**
|
||||
|
||||
### NVMe SSD use increases, but doesn't solve all needs
|
||||
|
||||
It’s not all bad news. The study, entitled ["The State of Storage and Edge Computing"][3] and conducted by Dimensional Research, found 60% of storage professionals are using NVMe SSDs to speed up the processing of large data sets being generated at the edge.
|
||||
|
||||
However, this has not solved their needs. As artificial intelligence (AI) and other data-intensive deployments increase, data needs to be moved over increasingly longer distances, which causes network bottlenecks and delays analytic results. And edge computing systems tend to have a smaller footprint than a traditional data center, so they are performance constrained.
|
||||
|
||||
The solution is to process the data where it is ingested, in this case, the edge device. Separate the wheat from the chafe and only send relevant data upstream to a data center to be processed. This is called computational storage, processing data where it is stored rather than moving it around.
|
||||
|
||||
According to the survey, 89% of respondents said they expect real value from computational storage. Conveniently, NGD is a vendor of computational storage systems. So, yes, this is a self-serving finding. This happens a lot. That doesn’t mean they don’t have a valid point, though. Processing the data where it lies is the point of edge computing.
|
||||
|
||||
Among the survey’s findings:
|
||||
|
||||
* 55% use edge computing
|
||||
* 71% use edge computing for real-time analytics
|
||||
* 61% said the cost of traditional storage solutions continues to plague their applications
|
||||
* 57% said faster access to storage would improve their compute abilities
|
||||
|
||||
|
||||
|
||||
The study also found that [NVMe][2] is being adopted very quickly but is being hampered by price.
|
||||
|
||||
* 86% expect storage’s future to rely on NVMe SSDs
|
||||
* 60% use NVMe SSDs in their work environments
|
||||
* 63% said NVMe SSDs helped with superior storage speed
|
||||
* 67% reported budget and cost as issues preventing the use of NVMe SSDs
|
||||
|
||||
|
||||
|
||||
That last finding is why so many enterprises are hampered in their work. For whatever reason they are using old storage systems rather than new NVMe systems, and it hurts them.
|
||||
|
||||
### GPUs won't improve workload performance
|
||||
|
||||
One interesting finding: 70% of respondents said they are using GPUs to help improve workload performance, but NGD said those are no good.
|
||||
|
||||
“We were not surprised to find that while more than half of respondents are actively using edge computing, more than 70% are using legacy GPUs, which will not reduce the network bandwidth, power and footprint necessary to analyze mass data-sets in real time,” said Nader Salessi, CEO and founder of NGD Systems, in a statement.
|
||||
|
||||
That’s because GPUs lend themselves well to repetitive tasks and parallel processing jobs, while computational storage is very much a serial processing job, with the task constantly changing. So while some processing jobs will benefit from a GPU, a good number will not and the GPU is essentially wasted.
|
||||
|
||||
Join the Network World communities on [Facebook][4] and [LinkedIn][5] to comment on topics that are top of mind.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3411400/storage-management-a-weak-area-for-most-enterprises.html
|
||||
|
||||
作者:[Andy Patrizio][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Andy-Patrizio/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://images.idgesg.net/images/article/2019/02/edge_computing_by_miakievy_gettyimages-957694592_2400x1600-100788315-large.jpg
|
||||
[2]: https://www.networkworld.com/article/3280991/what-is-nvme-and-how-is-it-changing-enterprise-storage.html
|
||||
[3]: https://ngd.dnastaging.net/brief/NGD_Systems_Storage_Edge_Computing_Survey_Report
|
||||
[4]: https://www.facebook.com/NetworkWorld/
|
||||
[5]: https://www.linkedin.com/company/network-world
|
@ -0,0 +1,82 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (3 types of metric dashboards for DevOps teams)
|
||||
[#]: via: (https://opensource.com/article/19/7/dashboards-devops-teams)
|
||||
[#]: author: (Daniel Oh https://opensource.com/users/daniel-ohhttps://opensource.com/users/daniel-ohhttps://opensource.com/users/heronthecli)
|
||||
|
||||
3 types of metric dashboards for DevOps teams
|
||||
======
|
||||
Dashboards help DevOps teams observe and monitor systems to improve
|
||||
performance.
|
||||
![metrics and data shown on a computer screen][1]
|
||||
|
||||
Metrics dashboards enable [DevOps][2] teams to monitor the entire DevOps platform so they can respond to issues in real-time, which is critical in the event of downtime or disruption in the production environment or application services.
|
||||
|
||||
DevOps dashboards aggregate metrics from multiple observation tools to create monitoring reports for dev and ops teams. They also allow teams to track multiple metrics, such as service deployment times, bugs, errors, work items, backlogs, and more.
|
||||
|
||||
The three categories of metrics dashboards described below help DevOps teams observe and monitor systems and thereby improve performance.
|
||||
|
||||
### Agile project management dashboards
|
||||
|
||||
This type of dashboard visualizes work items for DevOps teams to optimize workflows in agile projects. The dashboard should be designed for maximizing team collaboration efficiency, visualizing work, and providing flexible views—just like we used to use sticky notes on a whiteboard to share project progress, issues, and backlogs.
|
||||
|
||||
* [Kanban boards][3] enable DevOps teams to create cards, labels, assignments, and columns for continuous delivery of agile projects.
|
||||
* [Burndown charts][4] visualize uncompleted work or backlogs in a specified time period and provide the team's current velocity and trajectory, metrics that are typically used in agile and DevOps project management.
|
||||
* [Jira boards][5] enable DevOps teams to create issues, plan sprints, and generate team stories. These flexible dashboards also allow the team to prioritize individual and team tasks in full context; provide visibility to view, report, and track work in progress; and help improve team performance.
|
||||
* [GitHub project boards][6] help prioritize the team's tasks. They also support pull requests so team members can add information related to DevOps projects.
|
||||
|
||||
|
||||
|
||||
### Application monitoring dashboards
|
||||
|
||||
Developers are responsible for improving application and services performance and developing new functions. An app monitoring dashboard enables developers to produce bugfixes, enhance features, and release security patches as soon as possible within a continuous integration/continuous development (CI/CD) pipeline. These dashboards should also visualize request patterns, elapsed time, errors, and network topology.
|
||||
|
||||
* [Jaeger][7] enables developers to trace the number of requests, response time for each request, and more. It also improves monitoring and tracing of cloud-native apps on a distributed networking system with the [Istio service mesh][8].
|
||||
* [OpenCensus][9] allows the team to view data on the host where an application is running, but it also has a pluggable export system for exporting data to central aggregators.
|
||||
|
||||
|
||||
|
||||
### DevOps platform observation dashboard
|
||||
|
||||
You might have combined technologies and tools to build a DevOps platform in the cloud or on-premises, but Linux container management tools, such as Kubernetes and OpenShift, are the foundation of a successful DevOps platform. This is because a Linux container's immutability and portability make it faster and easier to move from app development to building, testing, and deployment in production.
|
||||
|
||||
DevOps platform observation dashboards enable the ops teams to orchestrate application containers and software-defined infrastructure, like networking ([SDN][10]) and storage ([SDS][11]), by collecting numeric time-series data from machine or node failures and services errors. These dashboards also visualize multi-dimensional data formats and query data patterns.
|
||||
|
||||
* [Prometheus dashboards][12] scrape metrics from nodes in the platform or directly in running containerized applications. They allow DevOps teams to build a metric-based monitoring system and dashboard to observe microservices' client/server workloads to identify abnormal node failures.
|
||||
* [Grafana boards][13] allow DevOps organizations to utilize event-driven metrics and visualize multiple panels, including service response duration, request volume, client/server workloads, network traffic flow, and more. DevOps teams can share metrics panels easily in a variety of ways as well as take the snapshot that encodes current monitoring data and share it with other teams.
|
||||
|
||||
|
||||
|
||||
### Summary
|
||||
|
||||
These dashboards visualize metrics on how your DevOps team works and can help identify current or potential issues in team collaboration, application delivery, and platform health status. They also enable DevOps teams to enhance their capabilities in areas such as fast app delivery, secured runtimes, and automated CI/CD.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/19/7/dashboards-devops-teams
|
||||
|
||||
作者:[Daniel Oh][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/daniel-ohhttps://opensource.com/users/daniel-ohhttps://opensource.com/users/heronthecli
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/metrics_data_dashboard_system_computer_analytics.png?itok=oxAeIEI- (metrics and data shown on a computer screen)
|
||||
[2]: https://opensource.com/resources/devops
|
||||
[3]: https://opensource.com/article/19/1/productivity-tool-taskboard
|
||||
[4]: https://openpracticelibrary.com/practice/burndown/
|
||||
[5]: https://www.atlassian.com/software/jira
|
||||
[6]: https://opensource.com/life/15/11/short-introduction-github
|
||||
[7]: https://www.jaegertracing.io/
|
||||
[8]: https://opensource.com/article/19/3/getting-started-jaeger
|
||||
[9]: https://opencensus.io/
|
||||
[10]: https://opensource.com/article/18/11/intro-software-defined-networking
|
||||
[11]: https://opensource.com/business/14/10/sage-weil-interview-openstack-ceph
|
||||
[12]: https://opensource.com/article/18/12/introduction-prometheus
|
||||
[13]: https://opensource.com/article/17/8/linux-grafana
|
@ -0,0 +1,192 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (How to make an old computer useful again)
|
||||
[#]: via: (https://opensource.com/article/19/7/how-make-old-computer-useful-again)
|
||||
[#]: author: (Howard Fosdick https://opensource.com/users/howtechhttps://opensource.com/users/don-watkinshttps://opensource.com/users/suehlehttps://opensource.com/users/aseem-sharmahttps://opensource.com/users/sethhttps://opensource.com/users/marcobravohttps://opensource.com/users/dragonbitehttps://opensource.com/users/don-watkinshttps://opensource.com/users/jamesfhttps://opensource.com/users/seth)
|
||||
|
||||
How to make an old computer useful again
|
||||
======
|
||||
Refurbish an old machine with these step-by-step instructions.
|
||||
![Person typing on a 1980's computer][1]
|
||||
|
||||
Have an old computer gathering dust in your basement? Why not put it to use? A backup machine could come in handy if your primary computer fails and you want to be online with a larger screen than your smartphone. Or it could act as a cheap secondary computer shared by the family. You could even make it into a retro gaming box.
|
||||
|
||||
You can take any computer up to a dozen years old and—with the right software—perform many of the same tasks you can with new machines. Open source software is the key.
|
||||
|
||||
I've refurbished computers for two decades, and in this article, I'll share how I do it. We're talking about dual-core laptops and desktops between five and 12 years old.
|
||||
|
||||
### Verify the hardware
|
||||
|
||||
Step one is to verify that your hardware all works. Overlooking a problem here could cause you big headaches later.
|
||||
|
||||
Dust kills electronics, so open up the box and clean out the dirt. [Compressed air][2] comes in handy. Be careful that you're [grounded][3] whenever you touch the machine. And _don't_ rub anything with a cleaning cloth. Even a static shock so small you won't feel it can destroy circuitry.
|
||||
|
||||
Then close the clean computer and verify that all the hardware works. Test:
|
||||
|
||||
* Memory
|
||||
* Disk
|
||||
* Motherboard
|
||||
* Peripherals (DVD drive, USB ports, sound, etc.)
|
||||
|
||||
|
||||
|
||||
Run any diagnostic tests in the computer's boot panels (the [UEFI][4] or [BIOS][5] panels). [This list][6] tells you which program function (PF) key to press to access those panels for your computer.
|
||||
|
||||
Free resource kits like [Hirens BootCD][7] or [Ultimate Boot CD][8] enable you to test what your boot panels don't. They contain hundreds of testing programs; all are free, but not all are open source. You don't have to install anything to run these kits because they'll boot from a USB thumb drive or DVD drive.
|
||||
|
||||
Be thorough! Run the extended tests for memory and disk—not just the short tests. Let them run overnight. That's the only way to catch transient (sporadic) errors.
|
||||
|
||||
If you find problems, my [Quick guide to fixing hardware][9] will help you solve the most common hardware issues.
|
||||
|
||||
### Select the software
|
||||
|
||||
The key to refurbishing is to install software appropriate for the hardware resources you have. The three essential hardware resources are:
|
||||
|
||||
1. Processor (number of cores and speed)
|
||||
2. Memory
|
||||
3. Video memory
|
||||
|
||||
|
||||
|
||||
You can identify your computer's resources in its boot-time UEFI/BIOS panels. Write down your findings so that you don't forget them. Then, look up your processor at [CPU Benchmark][10]. That website gives you background on your CPU plus a CPU Mark that indicates its performance.
|
||||
|
||||
Now that you know your hardware's power, you're ready to select software that it can efficiently run. Your software choices are divided into four critical areas:
|
||||
|
||||
1. Operating system (OS)
|
||||
2. Desktop environment (DE)
|
||||
3. Browser
|
||||
4. Applications
|
||||
|
||||
|
||||
|
||||
A good Linux distribution covers all four. Don't be tempted to run an unsupported version of Windows like 8, Vista, or XP just because it's already on the computer! The [risk][11] of malware is too great. You're much better off with a more virus-resistant, up-to-date operating system.
|
||||
|
||||
How about Windows 7? [Extended support][12] ends January 14, 2020, meaning you get security fixes only until that date. After that, zilch. Now is the perfect time to migrate off Windows 7.
|
||||
|
||||
Linux's big benefit is that it offers [many distros][13] specifically designed for older hardware. Plus, its design decouples [DEs][14] from the OS, so you can mix and match the two. This is important because DEs heavily impact low-end system performance. (With Windows and MacOS, the OS version you run dictates the DE.)
|
||||
|
||||
Other Linux advantages: Its thousands of apps are free and open source, so you don't have to worry about activation and licensing. And Linux is portable. You can copy, move, or clone the OS and applications across partitions, disks, devices, or computers. (Windows binds itself to the computer it's installed on via its Registry.)
|
||||
|
||||
### What can your refurbished computer do?
|
||||
|
||||
We're talking dual-core machines dating from about 2006 to 2013, especially [Intel Core 2][15] CPUs and [AMD Athlon 64 X2][16] family processors. Most have a [CPU Mark][10] of between 1,000 and 4,000. You can often pick up these machines for a song, yet they're still powerful enough to run lightweight Linux software.
|
||||
|
||||
One caution: be sure your computer has at least 2GB of memory. Upgrade the RAM if you have to. End users on my refurbished machines typically use between 0.5 and 2GB of RAM (exclusive of data buffering); rarely do they go over 2 gig. So if you can bump memory to 2GB, your system won't be forced to _swap_, or substitute disk for memory. That's critical for good performance.
|
||||
|
||||
For example, I removed 1GB RAM from the decade-old rebuild I'm writing this article on, which dropped memory down to 1GB. The machine slowed to a crawl. Web surfing and other tasks became frustrating, even painful. I popped the memory stick back in and, with 2GB RAM, the desktop instantly reverted to its usable self.
|
||||
|
||||
With a 2 gig dual-core computer, most people can do whatever they want, so long as they run a lightweight distro and browser. You can web surf, email, edit documents, do spreadsheets, watch YouTube videos, bid on eBay auctions, post on social media, listen to podcasts, view photo collections, manage home finance and personal scheduling, play games, and more.
|
||||
|
||||
### Limitations
|
||||
|
||||
What can't these older computers do? Their concurrency is less than state-of-the-art machines. So run a fast browser and block ads, because that's what slows down web surfing. If your virtual private network (VPN) can block ads for you and offload that work from your processor, that's ideal. Disable autoplay of videos, Flash, and animation. Surf with a couple of tabs open rather than 20. Install a browser extension so you can toggle JavaScript.
|
||||
|
||||
Direct the processors to what you're working on; don't keep a ton of apps open or run lots of stuff in the background. High-end graphics and video editing may be slow. Virtual machine hosting is out.
|
||||
|
||||
How about games? The open source software repositories offer literally thousands of games. That's why I listed video memory as one of the three essential hardware resources. If your box doesn't have a video card, it likely has only 32 or 64MB of VRAM. Bump that to 256 or 512MB by adding a video card, and you'll find that processor-intensive games run much better. [Here's how][17] to see how much VRAM your computer has. Be sure to get a card that fits your computer's [video slot][18] (AGP, PCI-Express, or PCI) and has the right [cable connector][19] (VGA, DVI, or HDMI).
|
||||
|
||||
#### What about Windows compatibility?
|
||||
|
||||
People often ask about Windows compatibility. First, there's a [Linux equivalent][20] for every Windows program.
|
||||
|
||||
Second, if you really must run a specific Windows program, you can usually do that on Linux using [Wine][21]. Look up your application in the [Wine database][22] to verify it runs under Wine and learn any special install tricks. Then the auxiliary tools [Winetricks][23] or [PlayOnLinux][24] will help you with installation and setup.
|
||||
|
||||
Wine's other benefit is that it runs programs from old Windows versions like Vista, XP, ME/98/95, and 3.1. I know a guy who set up a fantastic game box running his old XP games. You can even run thousands of [free DOS programs][25] using [DOSBox.][26] One caution: if Windows programs can run, so can Windows [viruses][27]. You must protect your Wine environment inside Linux just as you would any other Windows environment.
|
||||
|
||||
How about compatibility with Microsoft Office? I use LibreOffice and routinely edit and exchange Word and Excel files without problems. You must, however, avoid using obscure or specialized features.
|
||||
|
||||
### Which distro?
|
||||
|
||||
Assuming Linux is the OS, you need to select a DE, browser, and applications. The easy way to do this is to install a distribution that bundles everything you need.
|
||||
|
||||
Remember that you can try out different distros without installing anything by booting from a [live USB][28] thumb drive or DVD. [Here's how to create a bootable Linux][29] from within Linux or Windows.
|
||||
|
||||
I rebuild computers for charity, so I can't assume any knowledge on the part of my users. I need a distro with these traits:
|
||||
|
||||
* User-friendly
|
||||
* Lightweight interface
|
||||
* Bundles lightweight apps
|
||||
* Big repository
|
||||
* Solid track record
|
||||
* Large user community with an active forum
|
||||
* Stability through long-term support releases (not rolling releases)
|
||||
* Prioritizes reliability over cutting-edge features
|
||||
* Configurable by a GUI rather than by text files
|
||||
|
||||
|
||||
|
||||
Many distros fulfill these criteria. The three I've successfully deployed are [Mint/Xfce][30], [Xubuntu,][31] and [Lubuntu][32]. The first two use the Xfce desktop environment, while the latter runs LXQt. These DEs [use less][33] processor and memory resources than alternatives like GNOME, Unity, KDE, MATE, and Cinnamon.
|
||||
|
||||
Xfce and LXQt are very easy to use. My clients have never seen Linux before, yet they have no trouble using these simple, menu-driven interfaces.
|
||||
|
||||
It's vital to run the fastest, most efficient browser on older equipment. [Many feel][34] Chromium wins the browser race. I also install Firefox Quantum because people are familiar with it and [its performance][35] rivals [that of Chromium][36]. I toss in Opera because it's speedy and has some unique features, like integrated ad-blocking and a free [virtual private network][37]. Opera is free but not open source.
|
||||
|
||||
Whatever browser you use, block ads and trackers! Minimize browser overhead. And don't allow videos or Flash to run without your explicit say-so.
|
||||
|
||||
For applications, I rely on the lightweight apps bundled with Mint/Xfce, Xubuntu, and Lubuntu. They address every possible need.
|
||||
|
||||
### Go for it
|
||||
|
||||
Will you be happy with your rebuild? The computers I've been using lately are both over a decade old. One has an Intel dual-core processor ([eMachines T5274a][38]) while the other features an AMD Athlon 64 x2 processor ([HP dc5750][39]). Both have 2 gig memory. They're as effective for my office workload as my quad-core i5 with 16GB RAM. The only function I miss when using them is the ability to host virtual machines.
|
||||
|
||||
We live in an amazing era. You can take a five- to 12-year-old computer and, with a little effort, restore it to practical use. What could be more fun?
|
||||
|
||||
Having recently co-authored a book about building things with the Raspberry Pi ( Raspberry Pi Hacks...
|
||||
|
||||
I can see the brightness of curiosity in my six year old niece Shuchi's eyes when she explores a...
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/19/7/how-make-old-computer-useful-again
|
||||
|
||||
作者:[Howard Fosdick][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/howtechhttps://opensource.com/users/don-watkinshttps://opensource.com/users/suehlehttps://opensource.com/users/aseem-sharmahttps://opensource.com/users/sethhttps://opensource.com/users/marcobravohttps://opensource.com/users/dragonbitehttps://opensource.com/users/don-watkinshttps://opensource.com/users/jamesfhttps://opensource.com/users/seth
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/1980s-computer-yearbook.png?itok=eGOYEKK- (Person typing on a 1980's computer)
|
||||
[2]: https://www.amazon.com/s/ref=nb_sb_noss_1?url=search-alias%3Daps&field-keywords=compressed+air+for+computers&rh=i%3Aaps%2Ck%3Acompressed+air+for+computers
|
||||
[3]: https://www.wikihow.com/Ground-Yourself-to-Avoid-Destroying-a-Computer-with-Electrostatic-Discharge
|
||||
[4]: https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface
|
||||
[5]: http://en.wikipedia.org/wiki/BIOS
|
||||
[6]: http://www.disk-image.com/faq-bootmenu.htm
|
||||
[7]: http://www.hirensbootcd.org/download/
|
||||
[8]: http://www.ultimatebootcd.com/
|
||||
[9]: http://www.rexxinfo.org/Quick_Guide/Quick_Guide_To_Fixing_Computer_Hardware
|
||||
[10]: http://www.cpubenchmark.net/
|
||||
[11]: https://askleo.com/unsupported-software-really-mean/
|
||||
[12]: http://home.bt.com/tech-gadgets/computing/windows-7/windows-7-support-end-11364081315419
|
||||
[13]: https://fossbytes.com/best-lightweight-linux-distros/
|
||||
[14]: http://en.wikipedia.org/wiki/Desktop_environment
|
||||
[15]: https://en.wikipedia.org/wiki/Intel_Core_2
|
||||
[16]: https://en.wikipedia.org/wiki/Athlon_64_X2
|
||||
[17]: http://www.cyberciti.biz/faq/howto-find-linux-vga-video-card-ram/
|
||||
[18]: https://www.onlinecomputertips.com/support-categories/hardware/493-pci-vs-agp-vs-pci-express-video-cards/
|
||||
[19]: https://silentpc.com/articles/video-connectors
|
||||
[20]: http://wiki.linuxquestions.org/wiki/Linux_software_equivalent_to_Windows_software
|
||||
[21]: https://en.wikipedia.org/wiki/Wine_%28software%29
|
||||
[22]: https://appdb.winehq.org/
|
||||
[23]: https://en.wikipedia.org/wiki/Winetricks
|
||||
[24]: https://en.wikipedia.org/wiki/PlayOnLinux
|
||||
[25]: https://archive.org/details/softwarelibrary_msdos
|
||||
[26]: https://en.wikipedia.org/wiki/DOSBox
|
||||
[27]: https://wiki.winehq.org/FAQ#Is_Wine_malware-compatible.3F
|
||||
[28]: https://www.howtogeek.com/howto/linux/create-a-bootable-ubuntu-usb-flash-drive-the-easy-way/
|
||||
[29]: https://unetbootin.github.io/
|
||||
[30]: https://linuxmint.com/
|
||||
[31]: https://xubuntu.org/
|
||||
[32]: https://lubuntu.me/
|
||||
[33]: https://www.makeuseof.com/tag/best-lean-linux-desktop-environment-lxde-vs-xfce-vs-mate/
|
||||
[34]: https://www.zdnet.com/article/chrome-is-the-most-popular-web-browser-of-all/
|
||||
[35]: https://www.laptopmag.com/articles/firefox-quantum-vs-chrome
|
||||
[36]: https://www.zdnet.com/article/just-how-fast-is-firefox-quantum/
|
||||
[37]: http://en.wikipedia.org/wiki/Virtual_private_network
|
||||
[38]: https://www.cnet.com/products/emachines-t5274/specs/
|
||||
[39]: https://community.spiceworks.com/products/7727-hewlett-packard-dc5750-microtower
|
352
sources/tech/20190724 Master the Linux -ls- command.md
Normal file
352
sources/tech/20190724 Master the Linux -ls- command.md
Normal file
@ -0,0 +1,352 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (Master the Linux 'ls' command)
|
||||
[#]: via: (https://opensource.com/article/19/7/master-ls-command)
|
||||
[#]: author: (Seth Kenlon https://opensource.com/users/sethhttps://opensource.com/users/sambocettahttps://opensource.com/users/scottnesbitthttps://opensource.com/users/sethhttps://opensource.com/users/marcobravohttps://opensource.com/users/sethhttps://opensource.com/users/don-watkinshttps://opensource.com/users/sethhttps://opensource.com/users/jamesfhttps://opensource.com/users/seth)
|
||||
|
||||
Master the Linux 'ls' command
|
||||
======
|
||||
Linux's 'ls' command has a staggering number of options that can provide
|
||||
important information about your files.
|
||||
![Hand putting a Linux file folder into a drawer][1]
|
||||
|
||||
The **ls** command lists files on a [POSIX][2] system. It's a simple command, often underestimated, not in what it can do (because it really does only one thing), but in how you can optimize your use of it.
|
||||
|
||||
Of the 10 most essential terminal commands to know, the humble **ls** command is in the top three, because **ls** doesn't _just_ list files, it tells you important information about them. It tells you things like who owns a file or directory, when each file was lost or modified, and even what kind of file it is. And then there's its incidental function of giving you a sense of where you are, what nearby objects are lying around, and what you can do with them.
|
||||
|
||||
If your experience with **ls** is limited to whatever your distribution aliases it to in **.bashrc**, then you're probably missing out.
|
||||
|
||||
### GNU or BSD?
|
||||
|
||||
Before looking at the hidden powers of **ls**, you must determine which **ls** command you're running. The two most popular versions are the GNU version, included in the GNU **coreutils** package, and the BSD version. If you're running Linux, then you probably have **ls** installed. If you're running BSD or MacOS, then you have the BSD version. There are differences, for which this article accounts.
|
||||
|
||||
You can find out which version is on your computer with the **\--version** option:
|
||||
|
||||
|
||||
```
|
||||
`$ ls --version`
|
||||
```
|
||||
|
||||
If this returns information about GNU coreutils, then you have the GNU version. If it returns an error, you're probably running the BSD version (run **man ls | head** to be sure).
|
||||
|
||||
You should also investigate what presets your distribution may have in place. Customizations to terminal commands are frequently placed in **$HOME/.bashrc** or **$HOME/.bash_aliases** or **$HOME/.profile**, and they're accomplished by aliasing **ls** to a more complex **ls** command. For example:
|
||||
|
||||
|
||||
```
|
||||
`alias ls='ls --color'`
|
||||
```
|
||||
|
||||
The presets provided by distributions are very helpful, but they do make it difficult to discern what **ls** does on its own and what its additional options provide. Should you ever want to run **ls** and not the alias, you can "escape" the command with a backslash:
|
||||
|
||||
|
||||
```
|
||||
`$ \ls`
|
||||
```
|
||||
|
||||
### Classify
|
||||
|
||||
Run on its own, **ls** simply lists files in as many columns as can fit into your terminal:
|
||||
|
||||
|
||||
```
|
||||
$ ls ~/example
|
||||
bunko jdk-10.0.2
|
||||
chapterize otf2ttf.ff
|
||||
despacer overtar.sh
|
||||
estimate.sh pandoc-2.7.1
|
||||
fop-2.3 safe_yaml
|
||||
games tt
|
||||
```
|
||||
|
||||
It's useful information, but all of those files look basically the same without the convenience of icons to quickly convey which is a directory, or a text file, or an image, and so on.
|
||||
|
||||
Use the **-F** (or **\--classify** on GNU) to show indicators after each entry that identify the kind of file it is:
|
||||
|
||||
|
||||
```
|
||||
$ ls ~/example
|
||||
bunko jdk-10.0.2/
|
||||
chapterize* otf2ttf.ff*
|
||||
despacer* overtar.sh*
|
||||
estimate.sh pandoc@
|
||||
fop-2.3/ pandoc-2.7.1/
|
||||
games/ tt*
|
||||
```
|
||||
|
||||
With this option, items listed in your terminal are classified by file type using this shorthand:
|
||||
|
||||
* A slash (**/**) denotes a directory (or "folder").
|
||||
* An asterisk (*****) denotes an executable file. This includes a binary file (compiled code) as well as scripts (text files that have [executable permission][3]).
|
||||
* An at sign (**@**) denotes a symbolic link (or "alias").
|
||||
* An equals sign (**=**) denotes a socket.
|
||||
* On BSD, a percent sign (**%**) denotes a whiteout (a method of file removal on certain file systems).
|
||||
* On GNU, an angle bracket (**>**) denotes a door (inter-process communication on [Illumos][4] and Solaris).
|
||||
* A vertical bar (**|**) denotes a [FIFO][5].
|
||||
|
||||
|
||||
|
||||
A simpler version of this option is **-p**, which only differentiates a file from a directory.
|
||||
|
||||
### Long list
|
||||
|
||||
Getting a "long list" from **ls** is so common that many distributions alias **ll** to **ls -l**. The long list form provides many important file attributes, such as permissions, the user who owns each file, the group to which the file belongs, the file size in bytes, and the date the file was last changed:
|
||||
|
||||
|
||||
```
|
||||
$ ls -l
|
||||
-rwxrwx---. 1 seth users 455 Mar 2 2017 estimate.sh
|
||||
-rwxrwxr-x. 1 seth users 662 Apr 29 22:27 factorial
|
||||
-rwxrwx---. 1 seth users 20697793 Jun 29 2018 fop-2.3-bin.tar.gz
|
||||
-rwxrwxr-x. 1 seth users 6210 May 22 10:22 geteltorito
|
||||
-rwxrwx---. 1 seth users 177 Nov 12 2018 html4mutt.sh
|
||||
[...]
|
||||
```
|
||||
|
||||
If you don't think in bytes, add the **-h** flag (or **\--human** in GNU) to translate file sizes to more human-friendly notation:
|
||||
|
||||
|
||||
```
|
||||
$ ls --human
|
||||
-rwxrwx---. 1 seth users 455 Mar 2 2017 estimate.sh
|
||||
-rwxrwxr-x. 1 seth seth 662 Apr 29 22:27 factorial
|
||||
-rwxrwx---. 1 seth users 20M Jun 29 2018 fop-2.3-bin.tar.gz
|
||||
-rwxrwxr-x. 1 seth seth 6.1K May 22 10:22 geteltorito
|
||||
-rwxrwx---. 1 seth users 177 Nov 12 2018 html4mutt.sh
|
||||
```
|
||||
|
||||
You can see just a little less information by showing only the owner column with **-o** or only the group column with **-g**:
|
||||
|
||||
|
||||
```
|
||||
$ ls -o
|
||||
-rwxrwx---. 1 seth 455 Mar 2 2017 estimate.sh
|
||||
-rwxrwxr-x. 1 seth 662 Apr 29 22:27 factorial
|
||||
-rwxrwx---. 1 seth 20M Jun 29 2018 fop-2.3-bin.tar.gz
|
||||
-rwxrwxr-x. 1 seth 6.1K May 22 10:22 geteltorito
|
||||
-rwxrwx---. 1 seth 177 Nov 12 2018 html4mutt.sh
|
||||
```
|
||||
|
||||
Combine both options to show neither.
|
||||
|
||||
### Time and date format
|
||||
|
||||
The long list format of **ls** usually looks like this:
|
||||
|
||||
|
||||
```
|
||||
-rwxrwx---. 1 seth users 455 Mar 2 2017 estimate.sh
|
||||
-rwxrwxr-x. 1 seth users 662 Apr 29 22:27 factorial
|
||||
-rwxrwx---. 1 seth users 20697793 Jun 29 2018 fop-2.3-bin.tar.gz
|
||||
-rwxrwxr-x. 1 seth users 6210 May 22 10:22 geteltorito
|
||||
-rwxrwx---. 1 seth users 177 Nov 12 2018 html4mutt.sh
|
||||
```
|
||||
|
||||
The names of months aren't easy to sort, both computationally or (depending on whether your brain tends to prefer strings or integers) by recognition. You can change the format of the time stamp with the **\--time-style** option plus the name of a format. Available formats are:
|
||||
|
||||
* full-iso (1970-01-01 21:12:00)
|
||||
* long-iso (1970-01-01 21:12)
|
||||
* iso (01-01 21:12)
|
||||
* locale (uses your locale settings)
|
||||
* posix-STYLE (replace STYLE with a locale definition)
|
||||
|
||||
|
||||
|
||||
You can also create a custom style using the formal notation of the **date** command.
|
||||
|
||||
### Sort by time
|
||||
|
||||
Usually, the **ls** command sorts alphabetically. You can make it sort according to which file was most recently changed (the newest is listed first) with the **-t** option.
|
||||
|
||||
For example:
|
||||
|
||||
|
||||
```
|
||||
$ touch foo bar baz
|
||||
$ ls
|
||||
bar baz foo
|
||||
$ touch foo
|
||||
$ ls -t
|
||||
foo bar baz
|
||||
```
|
||||
|
||||
### List type
|
||||
|
||||
The standard output of **ls** balances readability with space efficiency, but sometimes you want your file list in a specific arrangement.
|
||||
|
||||
For a comma-separated list of files, use **-m**:
|
||||
|
||||
|
||||
```
|
||||
ls -m ~/example
|
||||
bar, baz, foo
|
||||
```
|
||||
|
||||
To force one file per line, use the **-1** option (that's the number one, not a lowercase L):
|
||||
|
||||
|
||||
```
|
||||
$ ls -1 ~/bin/
|
||||
bar
|
||||
baz
|
||||
foo
|
||||
```
|
||||
|
||||
To sort entries by file extension rather than the filename, use **-X** (that's a capital X):
|
||||
|
||||
|
||||
```
|
||||
$ ls
|
||||
bar.xfc baz.txt foo.asc
|
||||
$ ls -X
|
||||
foo.asc baz.txt bar.xfc
|
||||
```
|
||||
|
||||
### Hide the clutter
|
||||
|
||||
There are a few entries in some **ls** listings that you may not care about. For instance, the metacharacters **.** and **..** represent "here" and "back one level," respectively. If you're familiar with navigating in a terminal, you probably already know that each directory refers to itself as **.** and to its parent as **..**, so you don't need to be constantly reminded of it when you use the **-a** option to show hidden files.
|
||||
|
||||
To show almost all hidden files (the **.** and **..** excluded), use the **-A** option:
|
||||
|
||||
|
||||
```
|
||||
$ ls -a
|
||||
.
|
||||
..
|
||||
.android
|
||||
.atom
|
||||
.bash_aliases
|
||||
[...]
|
||||
$ ls -A
|
||||
.android
|
||||
.atom
|
||||
.bash_aliases
|
||||
[...]
|
||||
```
|
||||
|
||||
With many good Unix tools, there's a tradition of saving backup files by appending some special character to the name of the file being saved. For instance, in Vim, backups get saved with the **~** character appended to the name.
|
||||
|
||||
These kinds of backup files have saved me from stupid mistakes on several occasions, but after years of enjoying the sense of security they provide, I don't feel the need to have visual evidence that they exist. I trust Linux applications to generate backup files (if they claim to do so), and I'm happy to take it on faith that they exist.
|
||||
|
||||
To hide backup files from view, use **-B** or **\--ignore-backups** to conceal common backup formats (this option is not available in BSD **ls**):
|
||||
|
||||
|
||||
```
|
||||
$ ls
|
||||
bar.xfc baz.txt foo.asc~ foo.asc
|
||||
$ ls -B
|
||||
bar.xfc baz.txt foo.asc
|
||||
```
|
||||
|
||||
Of course, the backup file still exists; it's just filtered out so that you don't have to look at it.
|
||||
|
||||
GNU Emacs saves backup files (unless otherwise configured) with a hash character (**#**) at the start and end of the file name (**#file#**). Other applications may use a different style. It doesn't matter what pattern is used, because you can create your own exclusions with the **\--hide** option:
|
||||
|
||||
|
||||
```
|
||||
$ ls
|
||||
bar.xfc baz.txt #foo.asc# foo.asc
|
||||
$ ls --hide="#*#"
|
||||
bar.xfc baz.txt foo.asc
|
||||
```
|
||||
|
||||
### List directories with recursion
|
||||
|
||||
The contents of directories are not listed with the **ls** command unless you run **ls** on that directory specifically:
|
||||
|
||||
|
||||
```
|
||||
$ ls -F
|
||||
example/ quux* xyz.txt
|
||||
$ ls -R
|
||||
quux xyz.txt
|
||||
|
||||
./example:
|
||||
bar.xfc baz.txt #foo.asc# foo.asc
|
||||
```
|
||||
|
||||
### Make it permanent with an alias
|
||||
|
||||
The **ls** command is probably the command used most often during any given shell session. It's your eyes and ears, providing you with context and confirming the results of commands. While it's useful to have lots of options, part of the beauty of **ls** is its brevity: two characters and the Return key, and you know exactly where you are and what's nearby. If you have to stop to think about (much less type) several different options, it becomes less convenient, so typically even the most useful options are left off.
|
||||
|
||||
The solution is to alias your **ls** command so that when you use it, you get the information you care about the most.
|
||||
|
||||
To create an alias for a command in the Bash shell, create a file in your home directory called **.bash_aliases** (you must include the dot at the beginning). In this file, list the command you want to create an alias for and then the alias you want to create. For example:
|
||||
|
||||
|
||||
```
|
||||
`alias ls='ls -A -F -B --human --color'`
|
||||
```
|
||||
|
||||
This line causes your Bash shell to interpret the **ls** command as **ls -A -F -B --human --color**.
|
||||
|
||||
You aren't limited to redefining existing commands. You can create your own aliases:
|
||||
|
||||
|
||||
```
|
||||
alias ll='ls -l'
|
||||
alias la='ls -A'
|
||||
alias lh='ls -h'
|
||||
```
|
||||
|
||||
For aliases to work, your shell must know that the **.bash_aliases** configuration file exists. Open the **.bashrc** file in an editor (or create it, if it doesn't exist), and include this block of code:
|
||||
|
||||
|
||||
```
|
||||
if [ -e $HOME/.bash_aliases ]; then
|
||||
source $HOME/.bash_aliases
|
||||
fi
|
||||
```
|
||||
|
||||
Each time **.bashrc** is loaded (which is any time a new Bash shell is launched), Bash will load **.bash_aliases** into your environment. You can close and relaunch your Bash session or just force it to do that now:
|
||||
|
||||
|
||||
```
|
||||
`$ source ~/.bashrc`
|
||||
```
|
||||
|
||||
If you forget whether you have aliased a command, the **which** command tells you:
|
||||
|
||||
|
||||
```
|
||||
$ which ls
|
||||
alias ls='ls -A -F -B --human --color'
|
||||
/usr/bin/ls
|
||||
```
|
||||
|
||||
If you've aliased the **ls** command to itself with options, you can override your own alias at any time by prefacing **ls** with a backslash. For instance, in the example alias, backup files are hidden using the **-B** option, which means there's no way to back up files with the **ls** command. Override the alias to see the backup files:
|
||||
|
||||
|
||||
```
|
||||
$ ls
|
||||
bar baz foo
|
||||
$ \ls
|
||||
bar baz baz~ foo
|
||||
```
|
||||
|
||||
### Do one thing and do it well
|
||||
|
||||
The **ls** command has a staggering number of options, many of which are niche or highly dependent upon the terminal you use. Take a look at **info ls** on GNU systems or **man ls** on GNU or BSD systems for more options.
|
||||
|
||||
You might find it strange that a system famous for the premise that each tool "does one thing and does it well" would weigh down its most common command with 50 options. But **ls** does only one thing: it lists files. And with 50 options to allow you to control how you receive that list, **ls** does its one job very, _very_ well.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/19/7/master-ls-command
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/sethhttps://opensource.com/users/sambocettahttps://opensource.com/users/scottnesbitthttps://opensource.com/users/sethhttps://opensource.com/users/marcobravohttps://opensource.com/users/sethhttps://opensource.com/users/don-watkinshttps://opensource.com/users/sethhttps://opensource.com/users/jamesfhttps://opensource.com/users/seth
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer)
|
||||
[2]: https://opensource.com/article/19/7/what-posix-richard-stallman-explains
|
||||
[3]: https://opensource.com/article/19/6/understanding-linux-permissions
|
||||
[4]: https://www.illumos.org/
|
||||
[5]: https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)
|
Loading…
Reference in New Issue
Block a user