2019年4月

Big News

Linux 游戏如何走向主流。在 G 胖的加持下,Linux 下的可玩的游戏在过去的几年间有较大的增长,但依然不多。福布斯杂志作者 Jason Evangelho 在测试了多个发行版后给出了如下建议:

  1. 保持一致性:Linux 发行版众多,配置需要统一。
  2. Easy Anti-Cheat 应用会将 Linux 用户识别为黑客
  3. Linux 发行版需要统一:对于 Adobe 这样的公司更倾向于为一个发行版提供服务。而不是多个。

Linux 下的碎片化即是 Linux 本身的特色(开源),但也是掣肘 Linux 发展的因素。一套统一跨系统的 UI Framwrok 可能会是一个方案。

信息来源:【福布斯】

Quick News

Google 推出其云存档服务

Google 在旧金山举行的 Cloud Next 大会上推出了其云存档服务。价格为 $0.0012/GB/月 (约合 $1.23/TB/月)。【Venturebeat】

比你好还比你便宜
迪士尼使用 AI 来为其动画板生成动效

根据 Arxiv.org 上的一篇论文显示,迪士尼的研究人员开发 AI 工具,将文本转化为需要的动画。【venturebeat】

动画师痛苦流涕
微软发布了 SECCON 框架来加固 Windows10

微软发布了名为 SECCON 的 安全配置框架 security configuration framework ,这个框架可以给用户一些安全层面的建议。【ZDNet】

两位安全研究人员近日披露了一组漏洞,这些漏洞统称为 Dragonblood,影响了 WiFi 联盟最近发布的 WPA3 Wi-Fi 安全和认证标准。如果被利用,漏洞将允许在受害者网络范围内的攻击者获得 Wi-Fi 密码并渗透目标网络。

Dragonblood 漏洞组总共有五个漏洞,包括一个拒绝服务攻击漏洞、两个降级攻击漏洞和两个侧通道信息泄漏漏洞。尽管拒绝服务攻击漏洞并不重要,因为它只会导致与 WPA3 兼容的访问点崩溃,但其他四个攻击可以用于获得用户密码。

两个降级攻击和两个侧通道泄漏漏洞都利用了 WPA3 标准 Dragonfly 密钥交换中的设计缺陷,即客户端在 WPA3 路由器或接入点上进行身份验证的机制。

在降级攻击中,支持 WiFi WPA3 的网络可以诱导设备使用更旧、更不安全的密码交换系统,从而允许攻击者使用旧的漏洞检索网络密码。

在侧通道信息泄漏攻击中,支持WiFi WPA3的网络可以欺骗设备使用较弱的算法,这些算法会泄漏少量有关网络密码的信息。通过反复的攻击,最终可以恢复完整的密码。

来源:cnBeta.COM

更多资讯

中国蚁剑被曝 XSS 漏洞,可导致远程命令执行

4 月 12 日凌晨,有用户在中国蚁剑 GitHub 上提交了 issue,称发现中国蚁剑存在 XSS 漏洞,借此可引起 RCE。据悉,该漏洞是因为在 webshell 远程连接失败时,中国蚁剑会返回错误信息,但因为使用的是 html 解析,导致 xss 漏洞。

来源: FreeBuf.COM

详情: http://t.cn/E6su7SJ

欧盟向 Archive.org 发出数百份错误的“恐怖主义内容删除通知”

在近日的一篇博客文章中,该组织解释说,在过去的一周里,它收到了来自欧盟的 550 多封删除通知,这些通知错误地将 archive.org 上的数百个网址识别为“恐怖宣传”。

来源: cnBeta.COM

详情: http://t.cn/E6suUwE

美国司法部指控阿桑奇入侵机密电脑 最多入狱五年

美国司法部刚刚宣布,对维基解密联合创始人朱利安·阿桑奇提起刑事诉讼,指控他密谋入侵美国政府的一台机密电脑。美国司法部在一份声明中称:“这项起诉与阿桑奇被指控在美国历史上最大规模的机密信息泄露事件(之一)中扮演的角色有关。”

来源: 新浪网

详情: http://t.cn/E6suMTQ

PostgreSQL 辟谣存在任意代码执行漏洞:消息不实

近期在互联网媒体上流传 PostgreSQL 存在任意代码执行的漏洞:拥有 ‘pg\_read\_server\_files’ 权限的攻击者可利用此漏洞具备超级用户权限,执行任意系统命令。

来源:开源中国

详情:http://t.cn/E6suSIB

(信息来源于网络,安华金和搜集整理)

 title=

这篇文章将要介绍方括号及其在命令行中的不同用法。

看完花括号在命令行中的用法之后,现在我们继续来看方括号([])在上下文中是如何发挥作用的。

通配

方括号最简单的用法就是通配。你可能在知道“ Globbing ”这个概念之前就已经通过通配来匹配内容了,列出具有相同特征的多个文件就是一个很常见的场景,例如列出所有 JPEG 文件:

ls *.jpg

使用 通配符 wildcard 来得到符合某个模式的所有内容,这个过程就叫通配。

在上面的例子当中,星号(*)就代表“0 个或多个字符”。除此以外,还有代表“有且仅有一个字符”的问号(?)。因此

ls d*k*

可以列出 darklyducky,而且 darkduck 也是可以被列出的,因为 * 可以匹配 0 个字符。而

ls d*k?

则只能列出 ducky,不会列出 darklydarkduck

方括号也可以用于通配。为了便于演示,可以创建一个用于测试的目录,并在这个目录下创建文件:

touch file0{0..9}{0..9}

(如果你还不清楚上面这个命令的原理,可以看一下另一篇介绍花括号的文章

执行上面这个命令之后,就会创建 file000file001、……、file099 这 100 个文件。

如果要列出这些文件当中第二位数字是 7 或 8 的文件,可以执行:

ls file0[78]?

如果要列出 file022file027file028file052file057file058file092file097file098,可以执行:

ls file0[259][278]

当然,不仅仅是 ls,很多其它的命令行工具都可以使用方括号来进行通配操作。但在删除文件、移动文件、复制文件的过程中使用通配,你需要有一点横向思维。

例如将 file010file029 这 30 个文件复制成 archive010archive029 这 30 个副本,不可以这样执行:

cp file0[12]? archive0[12]?

因为通配只能针对已有的文件,而 archive 开头的文件并不存在,不能进行通配。

而这条命令

cp file0[12]? archive0[1..2][0..9]

也同样不行,因为 cp 并不允许将多个文件复制到多个文件。在复制多个文件的情况下,只能将多个文件复制到一个指定的目录下:

mkdir archive
cp file0[12]? archive

这条命令是可以正常运行的,但它只会把这 30 个文件以同样的名称复制到 archive/ 目录下,而这并不是我们想要的效果。

如果你阅读过我关于花括号的文章,你大概会记得可以使用 % 来截掉字符串的末尾部分,而使用 # 则可以截掉字符串的开头部分。

例如:

myvar="Hello World"
echo Goodbye Cruel ${myvar#Hello}

就会输出 Goodbye Cruel World,因为 #Hellomyvar 变量中开头的 Hello 去掉了。

在通配的过程中,也可以使用这一个技巧。

for i in file0[12]?;\
do\
cp $i archive${i#file};\
done

上面的第一行命令告诉 Bash 需要对所有 file01 开头或者 file02 开头,且后面只跟一个任意字符的文件进行操作,第二行的 do 和第四行的 done 代表需要对这些文件都执行这一块中的命令。

第三行就是实际的复制操作了,这里使用了两次 $i 变量:第一次在 cp 命令中直接作为源文件的文件名使用,第二次则是截掉文件名开头的 file 部分,然后在开头补上一个 archive,也就是这样:

"archive" + "file019" - "file" = "archive019"

最终整个 cp 命令展开为:

cp file019 archive019

最后,顺带说明一下反斜杠 \ 的作用是将一条长命令拆分成多行,这样可以方便阅读。

在下一节,我们会了解方括号的更多用法,敬请关注。


via: https://www.linux.com/blog/2019/3/using-square-brackets-bash-part-1

作者:Paul Brown 选题:lujun9972 译者:HankChow 校对:wxy

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

众所周知,在 Linux 中一切皆为文件,包括硬盘和显卡等。在 Linux 中导航时,大部分的文件都是普通文件和目录文件。但是也有其他的类型,对应于 5 类不同的作用。因此,理解 Linux 中的文件类型在许多方面都是非常重要的。

如果你不相信,那只需要浏览全文,就会发现它有多重要。如果你不能理解文件类型,就不能够毫无畏惧的做任意的修改。

如果你做了一些错误的修改,会毁坏你的文件系统,那么当你操作的时候请小心一点。在 Linux 系统中文件是非常重要的,因为所有的设备和守护进程都被存储为文件。

在 Linux 中有多少种可用类型?

据我所知,在 Linux 中总共有 7 种类型的文件,分为 3 大类。具体如下。

  • 普通文件
  • 目录文件
  • 特殊文件(该类有 5 个文件类型)

    • 链接文件
    • 字符设备文件
    • Socket 文件
    • 命名管道文件
    • 块文件

参考下面的表可以更好地理解 Linux 中的文件类型。

 符号   意义                  
 普通文件。长列表中以中划线 - 开头。       
d 目录文件。长列表中以英文字母 d 开头。     
l 链接文件。长列表中以英文字母 l 开头。      
c 字符设备文件。长列表中以英文字母 c 开头。    
s Socket 文件。长列表中以英文字母 s 开头。     
p 命名管道文件。长列表中以英文字母 p 开头。    
b 块文件。长列表中以英文字母 b 开头。       

方法1:手动识别 Linux 中的文件类型

如果你很了解 Linux,那么你可以借助上表很容易地识别文件类型。

在 Linux 中如何查看普通文件?

在 Linux 中使用下面的命令去查看普通文件。在 Linux 文件系统中普通文件可以出现在任何地方。 普通文件的颜色是“白色”。

# ls -la | grep ^-
-rw-------.  1 mageshm mageshm      1394 Jan 18 15:59 .bash_history
-rw-r--r--.  1 mageshm mageshm        18 May 11  2012 .bash_logout
-rw-r--r--.  1 mageshm mageshm       176 May 11  2012 .bash_profile
-rw-r--r--.  1 mageshm mageshm       124 May 11  2012 .bashrc
-rw-r--r--.  1 root    root           26 Dec 27 17:55 liks
-rw-r--r--.  1 root    root    104857600 Jan 31  2006 test100.dat
-rw-r--r--.  1 root    root    104874307 Dec 30  2012 test100.zip
-rw-r--r--.  1 root    root     11536384 Dec 30  2012 test10.zip
-rw-r--r--.  1 root    root           61 Dec 27 19:05 test2-bzip2.txt
-rw-r--r--.  1 root    root           61 Dec 31 14:24 test3-bzip2.txt
-rw-r--r--.  1 root    root           60 Dec 27 19:01 test-bzip2.txt

在 Linux 中如何查看目录文件?

在 Linux 中使用下面的命令去查看目录文件。在 Linux 文件系统中目录文件可以出现在任何地方。目录文件的颜色是“蓝色”。

# ls -la | grep ^d
drwxr-xr-x.  3 mageshm mageshm      4096 Dec 31 14:24 links/
drwxrwxr-x.  2 mageshm mageshm      4096 Nov 16 15:44 perl5/
drwxr-xr-x.  2 mageshm mageshm      4096 Nov 16 15:37 public_ftp/
drwxr-xr-x.  3 mageshm mageshm      4096 Nov 16 15:37 public_html/

在 Linux 中如何查看链接文件?

在 Linux 中使用下面的命令去查看链接文件。在 Linux 文件系统中链接文件可以出现在任何地方。 链接文件有两种可用类型,软连接和硬链接。链接文件的颜色是“浅绿宝石色”。

# ls -la | grep ^l
lrwxrwxrwx.  1 root    root           31 Dec  7 15:11 s-link-file -> /links/soft-link/test-soft-link
lrwxrwxrwx.  1 root    root           38 Dec  7 15:12 s-link-folder -> /links/soft-link/test-soft-link-folder

在 Linux 中如何查看字符设备文件?

在 Linux 中使用下面的命令查看字符设备文件。字符设备文件仅出现在特定位置。它出现在目录 /dev 下。字符设备文件的颜色是“黄色”。

# ls -la | grep ^c
# ls -la | grep ^c
crw-------.  1 root root      5,   1 Jan 28 14:05 console
crw-rw----.  1 root root     10,  61 Jan 28 14:05 cpu_dma_latency
crw-rw----.  1 root root     10,  62 Jan 28 14:05 crash
crw-rw----.  1 root root     29,   0 Jan 28 14:05 fb0
crw-rw-rw-.  1 root root      1,   7 Jan 28 14:05 full
crw-rw-rw-.  1 root root     10, 229 Jan 28 14:05 fuse

在 Linux 中如何查看块文件?

在 Linux 中使用下面的命令查看块文件。块文件仅出现在特定位置。它出现在目录 /dev 下。块文件的颜色是“黄色”。

# ls -la | grep ^b
brw-rw----.  1 root disk      7,   0 Jan 28 14:05 loop0
brw-rw----.  1 root disk      7,   1 Jan 28 14:05 loop1
brw-rw----.  1 root disk      7,   2 Jan 28 14:05 loop2
brw-rw----.  1 root disk      7,   3 Jan 28 14:05 loop3
brw-rw----.  1 root disk      7,   4 Jan 28 14:05 loop4

在 Linux 中如何查看 Socket 文件?

在 Linux 中使用下面的命令查看 Socket 文件。Socket 文件可以出现在任何地方。Scoket 文件的颜色是“粉色”。(LCTT 译注:此处及下面关于 Socket 文件、命名管道文件可出现的位置原文描述有误,已修改。)

# ls -la | grep ^s
srw-rw-rw- 1 root root 0 Jan  5 16:36 system_bus_socket

在 Linux 中如何查看命名管道文件?

在 Linux 中使用下面的命令查看命名管道文件。命名管道文件可以出现在任何地方。命名管道文件的颜色是“黄色”。

# ls -la | grep ^p
prw-------.  1 root    root        0 Jan 28 14:06 replication-notify-fifo|
prw-------.  1 root    root        0 Jan 28 14:06 stats-mail|

方法2:在 Linux 中如何使用 file 命令识别文件类型

在 Linux 中 file 命令允许我们去确定不同的文件类型。这里有三个测试集,按此顺序进行三组测试:文件系统测试、魔术字节测试和用于识别文件类型的语言测试。

在 Linux 中如何使用 file 命令查看普通文件

在你的终端简单地输入 file 命令跟着普通文件。file 命令将会读取提供的文件内容并且准确地显示文件的类型。

这就是我们看到对于每个普通文件有不同结果的原因。参考下面普通文件的不同结果。

# file 2daygeek_access.log 
2daygeek_access.log: ASCII text, with very long lines

# file powertop.html 
powertop.html: HTML document, ASCII text, with very long lines

# file 2g-test
2g-test: JSON data

# file powertop.txt
powertop.txt: HTML document, UTF-8 Unicode text, with very long lines

# file 2g-test-05-01-2019.tar.gz
2g-test-05-01-2019.tar.gz: gzip compressed data, last modified: Sat Jan  5 18:22:20 2019, from Unix, original size 450560

在 Linux 中如何使用 file 命令查看目录文件?

在你的终端简单地输入 file 命令跟着目录。参阅下面的结果。

# file Pictures/
Pictures/: directory

在 Linux 中如何使用 file 命令查看链接文件?

在你的终端简单地输入 file 命令跟着链接文件。参阅下面的结果。

# file log
log: symbolic link to /run/systemd/journal/dev-log

在 Linux 中如何使用 file 命令查看字符设备文件?

在你的终端简单地输入 file 命令跟着字符设备文件。参阅下面的结果。

# file vcsu
vcsu: character special (7/64)

在 Linux 中如何使用 file 命令查看块文件?

在你的终端简单地输入 file 命令跟着块文件。参阅下面的结果。

# file sda1
sda1: block special (8/1)

在 Linux 中如何使用 file 命令查看 Socket 文件?

在你的终端简单地输入 file 命令跟着 Socket 文件。参阅下面的结果。

# file system_bus_socket
system_bus_socket: socket

在 Linux 中如何使用 file 命令查看命名管道文件?

在你的终端简单地输入 file 命令跟着命名管道文件。参阅下面的结果。

# file pipe-test
pipe-test: fifo (named pipe)

方法 3:在 Linux 中如何使用 stat 命令识别文件类型?

stat 命令允许我们去查看文件类型或文件系统状态。该实用程序比 file 命令提供更多的信息。它显示文件的大量信息,例如大小、块大小、IO 块大小、Inode 值、链接、文件权限、UID、GID、文件的访问/更新和修改的时间等详细信息。

在 Linux 中如何使用 stat 命令查看普通文件?

在你的终端简单地输入 stat 命令跟着普通文件。参阅下面的结果。

# stat 2daygeek_access.log
  File: 2daygeek_access.log
  Size: 14406929    Blocks: 28144      IO Block: 4096   regular file
Device: 10301h/66305d   Inode: 1727555     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/ daygeek)   Gid: ( 1000/ daygeek)
Access: 2019-01-03 14:05:26.430328867 +0530
Modify: 2019-01-03 14:05:26.460328868 +0530
Change: 2019-01-03 14:05:26.460328868 +0530
 Birth: -

在 Linux 中如何使用 stat 命令查看目录文件?

在你的终端简单地输入 stat 命令跟着目录文件。参阅下面的结果。

# stat Pictures/
  File: Pictures/
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 10301h/66305d   Inode: 1703982     Links: 3
Access: (0755/drwxr-xr-x)  Uid: ( 1000/ daygeek)   Gid: ( 1000/ daygeek)
Access: 2018-11-24 03:22:11.090000828 +0530
Modify: 2019-01-05 18:27:01.546958817 +0530
Change: 2019-01-05 18:27:01.546958817 +0530
 Birth: -

在 Linux 中如何使用 stat 命令查看链接文件?

在你的终端简单地输入 stat 命令跟着链接文件。参阅下面的结果。

# stat /dev/log
  File: /dev/log -> /run/systemd/journal/dev-log
  Size: 28          Blocks: 0          IO Block: 4096   symbolic link
Device: 6h/6d   Inode: 278         Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-01-05 16:36:31.033333447 +0530
Modify: 2019-01-05 16:36:30.766666768 +0530
Change: 2019-01-05 16:36:30.766666768 +0530
 Birth: -

在 Linux 中如何使用 stat 命令查看字符设备文件?

在你的终端简单地输入 stat 命令跟着字符设备文件。参阅下面的结果。

# stat /dev/vcsu
  File: /dev/vcsu
  Size: 0           Blocks: 0          IO Block: 4096   character special file
Device: 6h/6d   Inode: 16          Links: 1     Device type: 7,40
Access: (0660/crw-rw----)  Uid: (    0/    root)   Gid: (    5/     tty)
Access: 2019-01-05 16:36:31.056666781 +0530
Modify: 2019-01-05 16:36:31.056666781 +0530
Change: 2019-01-05 16:36:31.056666781 +0530
 Birth: -

在 Linux 中如何使用 stat 命令查看块文件?

在你的终端简单地输入 stat 命令跟着块文件。参阅下面的结果。

# stat /dev/sda1
  File: /dev/sda1
  Size: 0           Blocks: 0          IO Block: 4096   block special file
Device: 6h/6d   Inode: 250         Links: 1     Device type: 8,1
Access: (0660/brw-rw----)  Uid: (    0/    root)   Gid: (  994/    disk)
Access: 2019-01-05 16:36:31.596666806 +0530
Modify: 2019-01-05 16:36:31.596666806 +0530
Change: 2019-01-05 16:36:31.596666806 +0530
 Birth: -

在 Linux 中如何使用 stat 命令查看 Socket 文件?

在你的终端简单地输入 stat 命令跟着 Socket 文件。参阅下面的结果。

# stat /var/run/dbus/system_bus_socket 
  File: /var/run/dbus/system_bus_socket
  Size: 0           Blocks: 0          IO Block: 4096   socket
Device: 15h/21d Inode: 576         Links: 1
Access: (0666/srw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-01-05 16:36:31.823333482 +0530
Modify: 2019-01-05 16:36:31.810000149 +0530
Change: 2019-01-05 16:36:31.810000149 +0530
 Birth: -

在 Linux 中如何使用 stat 命令查看命名管道文件?

在你的终端简单地输入 stat 命令跟着命名管道文件。参阅下面的结果。

# stat pipe-test 
  File: pipe-test
  Size: 0           Blocks: 0          IO Block: 4096   fifo
Device: 10301h/66305d   Inode: 1705583     Links: 1
Access: (0644/prw-r--r--)  Uid: ( 1000/ daygeek)   Gid: ( 1000/ daygeek)
Access: 2019-01-06 02:00:03.040394731 +0530
Modify: 2019-01-06 02:00:03.040394731 +0530
Change: 2019-01-06 02:00:03.040394731 +0530
 Birth: -

via: https://www.2daygeek.com/how-to-understand-and-identify-file-types-in-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:liujing97 校对:wxy

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

在调试或试验内核时,向内核命令行添加选项是一项常见任务。即将发布的 Fedora 30 版本改为使用 Bootloader 规范(BLS)。根据你修改内核命令行选项的方式,你的工作流可能会更改。继续阅读获取更多信息。

要确定你的系统是使用 BLS 还是旧的规范,请查看文件:

/etc/default/grub

如果你看到:

GRUB_ENABLE_BLSCFG=true

看到这个,你运行的是 BLS,你可能需要更改设置内核命令行参数的方式。

如果你只想修改单个内核条目(例如,暂时解决显示问题),可以使用 grubby 命令:

$ grubby --update-kernel /boot/vmlinuz-5.0.1-300.fc30.x86_64 --args="amdgpu.dc=0"

要删除内核参数,可以传递 --remove-args 参数给 grubby

$ grubby --update-kernel /boot/vmlinuz-5.0.1-300.fc30.x86_64 --remove-args="amdgpu.dc=0"

如果有应该添加到每个内核命令行的选项(例如,你希望禁用 rdrand 指令生成随机数),则可以运行 grubby 命令:

$ grubby --update-kernel=ALL --args="nordrand"

这将更新所有内核条目的命令行,并保存作为将来条目的命令行选项。

如果你想要从所有内核中删除该选项,则可以再次使用 --remove-args--update-kernel=ALL

$ grubby --update-kernel=ALL --remove-args="nordrand"

via: https://fedoramagazine.org/setting-kernel-command-line-arguments-with-fedora-30/

作者:Laura Abbott 选题:lujun9972 译者:geekpi 校对:wxy

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

从很久之前开始,火狐浏览器就一直是开源社区的一根顶梁柱。这些年来它几乎是所有 Linux 发行版的默认浏览器,并且曾是阻挡微软彻底争霸浏览器界的最后一块磐石。这款浏览器的起源可以一直回溯到互联网创生的时代。本周(LCTT 译注:此文发布于 2019.3.14)是互联网成立 30 周年的纪念日,趁这个机会回顾一下我们熟悉并爱戴的火狐浏览器实在是再好不过了。

发源

在上世纪 90 年代早期,一个叫 Marc Andreessen 的年轻人正在伊利诺伊大学攻读计算机科学学士学位。在那里,他开始为国家超算应用中心(NCSA)工作。就在这段时间内, 蒂姆·伯纳斯·李 Tim Berners-Lee 爵士发布了今天已经为我们所熟知的 Web 的早期标准。Marc 在那时候了解到了一款叫 ViolaWWW 的化石级浏览器。Marc 和 Eric Bina 看到了这种技术的潜力,他们开发了一个易于安装的基于 Unix 平台的浏览器,并取名 NCSA Mosaic)。第一个 alpha 版本发布于 1993 年 6 月。到 9 月的时候,浏览器已经有 Windows 和 Macintosh 移植版本了。因为比当时其他任何浏览器软件都易于使用,Mosaic 很快变得相当流行。

1994 年,Marc 毕业并移居到加州。一个叫 Jim Clark 的人结识了他,Clark 那时候通过卖电脑软硬件赚了点钱。Clark 也用过 Mosaic 浏览器并且看到了互联网的经济前景。Clark 创立了一家公司并且雇了 Marc 和 Eric 专做互联网软件。公司一开始叫 “Mosaic 通讯”,但是伊利诺伊大学并不喜欢他们用 Mosaic 这个名字。所以公司转而改名为 “ 网景 Netscape 通讯”。

该公司的第一个项目是给任天堂 64 开发在线对战网络,然而不怎么成功。他们第一个以公司名义发布的产品是一款叫做 Mosaic Netscape 0.9 的浏览器,很快这款浏览器被改名叫 Netscape Navigator。在内部,浏览器的开发代号就是 mozilla,意即 “Mosaic 杀手”。一位员工还创作了一幅哥斯拉风格的卡通画。他们当时想在竞争中彻底胜出。

Early Firefox Mascot

早期 Mozilla 在 Netscape 的吉祥物

他们取得了辉煌的胜利。那时,Netscape 最大的优势是他们的浏览器在各种操作系统上体验极为一致。Netscape 将其宣传为给所有人平等的互联网体验。

随着越来越多的人使用 Netscape Navigator,NCSA Mosaic 的市场份额逐步下降。到了 1995 年,Netscape 公开上市了。上市首日,股价从开盘的 $28,直窜到 $78,收盘于 $58。Netscape 那时所向披靡。

但好景不长。在 1994 年的夏天,微软发布了 Internet Explorer 1.0,这款浏览器基于 Spyglass Mosaic,而后者又直接基于 NCSA Mosaic。浏览器战争 就此展开。

在接下来的几年里,Netscape 和微软就浏览器霸主地位展开斗争。他们各自加入了很多新特性以取得优势。不幸的是,IE 有和 Windows 操作系统捆绑的巨大优势。更甚于此,微软也有更多的程序员和资本可以调动。在 1997 年年底,Netscape 公司开始遇到财务问题。

迈向开源

Mozilla Firefox

1998 年 1 月,Netscape 开源了 Netscape Communicator 4.0 软件套装的代码。旨在 “集合互联网成千上万的程序员的才智,把最好的功能加入 Netscape 的软件。这一策略旨在加速开发,并且让 Netscape 在未来能向个人和商业用户免费提供高质量的 Netscape Communicator 版本”。

这个项目由新创立的 Mozilla 机构管理。然而,Netscape Communicator 4.0 的代码由于大小和复杂程度而很难开发。雪上加霜的是,浏览器的一些组件由于第三方的许可证问题而不能被开源。到头来,他们决定用新兴的 Gecko) 渲染引擎重新开发浏览器。

到了 1998 年的 11 月,Netscape 被美国在线(AOL)以价值 42 亿美元的股权收购。

从头来过是一项艰巨的任务。Mozilla Firefox(最初名为 Phoenix)直到 2002 年 6 月才面世,它同样可以运行在多种操作系统上:Linux、Mac OS、Windows 和 Solaris。

1999 年,AOL 宣布他们将停止浏览器开发。随后创建了 Mozilla 基金会,用于管理 Mozilla 的商标和项目相关的融资事宜。最早 Mozilla 基金会从 AOL、IBM、Sun Microsystems 和红帽(Red Hat)收到了总计 200 万美金的捐赠。

到了 2003 年 3 月,因为套件越来越臃肿,Mozilla 宣布 计划把该套件分割成单独的应用。这个单独的浏览器一开始起名 Phoenix。但是由于和 BIOS 制造企业凤凰科技的商标官司,浏览器改名 Firebird(火鸟) —— 结果和火鸟数据库的开发者又起了冲突。浏览器只能再次被重命名,才有了现在家喻户晓的 Firefox(火狐)。

那时,Mozilla 说,”我们在过去一年里学到了很多关于起名的技巧(不是因为我们愿意才学的)。我们现在很小心地研究了名字,确保不会再有什么夭蛾子了。我们已经开始向美国专利商标局注册我们新商标”。

Mozilla Firefox 1.0

Firefox 1.0 : 图片致谢

第一个正式的 Firefox 版本是 0.8,发布于 2004 年 2 月 8 日。紧接着 11 月 9 日他们发布了 1.0 版本。2.0 和 3.0 版本分别在 06 年 10 月 和 08 年 6 月问世。每个大版本更新都带来了很多新的特性和提升。从很多角度上讲,Firefox 都领先 IE 不少,无论是功能还是技术先进性,即便如此 IE 还是有更多用户。

一切都在 Google 发布 Chrome 浏览器的时候改变了。在 Chrome 发布(2008 年 9 月)的前几个月,Firefox 占有 30% 的浏览器份额 而 IE 有超过 60%。而在 StatCounter 的 2019 年 1 月报告里,Firefox 有不到 10% 的份额,而 Chrome 有超过 70%。

趣味知识点

和大家以为的不一样,火狐的 logo 其实没有狐狸。那其实是个 小熊猫 Red Panda 。在中文里,“火狐狸”是小熊猫的另一个名字。

展望未来

如上文所说的一样,Firefox 正在经历很长一段以来的份额低谷。曾经有那么一段时间,有很多浏览器都基于 Firefox 开发,比如早期的 Flock 浏览器)。而现在大多数浏览器都基于谷歌的技术了,比如 Opera 和 Vivaldi。甚至连微软都放弃开发自己的浏览器而转而加入 Chromium 帮派

这也许看起来和 Netscape 当年的辉煌形成鲜明的对比。但让我们不要忘记 Firefox 已经有的许多成就。一群来自世界各地的程序员,就这么开发出了这个星球上第二大份额的浏览器。他们在微软垄断如日中天的时候还占据这 30% 的份额,他们可以再次做到这一点。无论如何,他们都有我们。开源社区坚定地站在他们身后。

抗争垄断是我使用 Firefox 的众多原因之一。随着 Mozilla 在改头换面的 Firefox Quantum 上赢回了一些份额,我相信它将一路向上攀爬。

你还想了解 Linux 和开源历史上的什么其他事件?欢迎在评论区告诉我们。

如果你觉得这篇文章不错,请在社交媒体上分享!比如 Hacker News 或者 Reddit


via: https://itsfoss.com/history-of-firefox

作者:John Paul 选题:lujun9972 译者:Moelf 校对:acyanbird, wxy

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