期权知识 第596页

  • Systemd 入门教程:实战篇

    Systemd 入门教程:实战篇

    上一篇文章,我介绍了 Systemd 的主要命令,今天介绍如何使用它完成一些基本的任务。 一、开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件。 如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例)。 $ sudo systemctl enable httpd 上面的命令相当于在/etc/systemd/system目录添加一个符号链接,指向/usr/lib/systemd/syst...

    期权知识 2020-08-18 576 0
  • 计算机是如何启动的?

    计算机是如何启动的?

    从打开电源到开始操作,计算机的启动是一个非常复杂的过程。 我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示...... 这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。 零、boot的含义 先问一个问题,"启动"用英语怎么说? 回答是boot。可是,boot原来的意思是靴子,"启动"与靴子有什么关系呢? 原来,这里的boot是bootstrap(鞋带)的缩写,它来自一句谚语:   "pull oneself up by one's bootstraps" 字面意思是"拽...

    期权知识 2020-08-18 470 0
  • CSS Modules 用法教程

    CSS Modules 用法教程

    学过网页开发就会知道,CSS 不能算编程语言,只是网页样式的一种描述方法。 为了让 CSS 也能适用软件工程方法,程序员想了各种办法,让它变得像一门编程语言。从最早的Less、SASS,到后来的 PostCSS,再到最近的 CSS in JS,都是为了解决这个问题。 本文介绍的 CSS Modules 有所不同。它不是将 CSS 改造成编程语言,而是功能很单纯,只加入了局部作用域和模块依赖,这恰恰是网页组件最急需的功能。 因此,CSS Modules 很容易学,因为它的规则少,同时又非常有用,可以保证某...

    期权知识 2020-08-18 466 0
  • 进程与线程的一个简单解释

    进程与线程的一个简单解释

    进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。 2. 假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个任务。 3. 进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个...

    期权知识 2020-08-18 498 0
  • 谷歌的代码管理

    谷歌的代码管理

    谷歌和 Facebook 都只有一个代码仓库,全公司的代码都放在这个库里。 我一直很困惑,为什么要这样做,不同语言的项目放在一个库有什么好处? 最新一期的《ACM通信》(59卷第7期)有一篇论文《为什么 Google 要把几十亿行代码放在一个库?》,作者是谷歌基础设施小组的工程师,可以看作官方对这个问题的详细解答。我读后感到收获很大,下面就是摘录。 一、概况 谷歌最早使用 CVS 进行代码管理,1999年改为 Perforce。那时是一台 Perforce 主机,加上各种缓存机。 当时,全公司的代...

    期权知识 2020-08-18 484 0
  • 字符串匹配的KMP算法

    字符串匹配的KMP算法

    字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。 这种算法不太容易理解,网上有很多解释,但读起来都很费劲。直到读到Jake Boxer的文章,我才真正理解这种算法。下面,我用自己的语言,试图写一篇比较好懂的KMP算法解...

    期权知识 2020-08-18 492 0
  • YAML 语言教程

    YAML 语言教程

    编程免不了要写配置文件,怎么写配置也是一门学问。 YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。 本文介绍 YAML 的语法,以 JS-YAML 的实现为例。你可以去在线 Demo 验证下面的例子。 一、简介 YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。 它的基本语法规则如下。 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格。 缩进的空格数目不重要,只要...

    期权知识 2020-08-18 493 0
  • 字符串匹配的Boyer-Moore算法

    字符串匹配的Boyer-Moore算法

    上一篇文章,我介绍了KMP算法。 但是,它并不是效率最高的算法,实际采用并不多。各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法。 Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了这种算法。 下面,我根据Moore教授自己的例子来解释这种算法。 1. 假定字符串为"HERE IS A SIMPLE EXAMPLE",搜索词为"EXAMPLE"。...

    期权知识 2020-08-18 548 0
  • RSA算法原理(一)

    RSA算法原理(一)

    如果你问我,哪一种算法最重要? 我可能会回答"公钥加密算法"。 因为它是计算机通信安全的基石,保证了加密数据不会被破解。你可以想象一下,信用卡交易被破解的后果。 进入正题之前,我先简单介绍一下,什么是"公钥加密算法"。 一、一点历史 1976年以前,所有的加密方法都是同一种模式:   (1)甲方选择某一种加密规则,对信息进行加密;   (2)乙方使用同一种规则,对信息进行解密。 由于加密和解密使用同样规则(简称"密钥"),这被称为"对称加密算法"(Symmetric-key algorithm...

    期权知识 2020-08-18 466 0
  • HTTPS 升级指南

    HTTPS 升级指南

    上一篇文章我介绍了 HTTP/2 协议 ,它只有在 HTTPS 环境才会生效。 为了升级到 HTTP/2 协议,必须先启用 HTTPS。如果你不了解 HTTPS 协议(学名 TLS 协议),可以参考我以前的文章。 《HTTPS 协议概述》 《图解 HTTPS 协议》 《HTTPS 协议的七个误解》 《HTTPS 协议的延迟有多大?》 本文介绍如何将一个 HTTP 网站升级到 HTTPS 。 一、获取证书 升级到 HTTPS 协议的第一步,就是要获得一张证书。 证书是一个二进...

    期权知识 2020-08-18 564 0