图解原理
骑在木马上的黑客
纵有疾风起,人生不言弃!
展开
-
User space 与 Kernel space
学习 Linux 时,经常可以看到两个词:User space(用户空间)和 Kernel space(内核空间)。简单说,Kernel space 是 Linux 内核的运行空间,User space 是用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响。Kernel space 可以执行任意命令,调用系统的一切资源;User space 只能执行简单的运算,不能直...转载 2018-04-15 09:38:29 · 1439 阅读 · 0 评论 -
字符编码笔记:ASCII,Unicode 和 UTF-8
一、ASCII 码我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一...转载 2018-04-14 08:23:01 · 190 阅读 · 0 评论 -
云主机是什么
一、共享主机和云主机从互联网诞生至今,大部分站长都是从"共享主机"(shared hosting)开始学习建站的。所谓"共享主机",就是一台服务器上有许多网站,大家共享这台服务器的硬件和带宽。如果它发生故障,那么上面的所有网站都无法访问。"云主机"(Cloud hosting)可以看成是新一代的共享主机。首先,主机公司将它的硬件和网络线路,做成一朵"云",然后提供一些通向这朵"云"的网络接口API...原创 2018-04-14 08:55:41 · 1389 阅读 · 0 评论 -
进程与线程的一个简单解释
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个任务。3.进程...转载 2018-04-14 08:58:59 · 125 阅读 · 0 评论 -
字符串匹配的KMP算法
字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上有很多解释,但读起来都很费劲。直到读到Jak...转载 2018-04-14 09:00:20 · 137 阅读 · 0 评论 -
字符串匹配的Boyer-Moore算法
上一篇文章,我介绍了KMP算法。但是,它并不是效率最高的算法,实际采用并不多。各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法。Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了这种算法。下面,我根据Moore教授自己的例子来解释这种算法。1.假定字符...转载 2018-04-14 09:03:30 · 214 阅读 · 0 评论 -
数据库的最简单实现
所有应用软件之中,数据库可能是最复杂的。MySQL的手册有3000多页,PostgreSQL的手册有2000多页,Oracle的手册更是比它们相加还要厚。但是,自己写一个最简单的数据库,做起来并不难。Reddit上面有一个帖子,只用了几百个字,就把原理讲清楚了。下面是我根据这个帖子整理的内容。一、数据以文本形式保存第一步,就是将所要保存的数据,写入文本文件。这个文本文件就是你的数据库。为了方便读取...转载 2018-04-14 09:06:50 · 3437 阅读 · 1 评论 -
编译器的工作过程
源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。#include <stdio.h>int main(void){ fputs("Hello, world!\n", stdout); return 0;}要先用编译器处理一下,才能运行。$ gcc test.c$ ./a.outHello, world!...转载 2018-04-14 09:08:33 · 323 阅读 · 0 评论 -
DNS 原理入门
DNS 是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作。我的目标是,读完此文后,你就能完全理解DNS。一、DNS 是什么?DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本。举例来说,如果你要访问域名math.stackexchan...转载 2018-04-14 09:11:42 · 162 阅读 · 0 评论 -
图像与滤波
一、为什么图像是波?我们知道,图像由像素组成。下图是一张 400 x 400 的图片,一共包含了 16 万个像素点。每个像素的颜色,可以用红、绿、蓝、透明度四个值描述,大小范围都是0 ~ 255,比如黑色是[0, 0, 0, 255],白色是[255, 255, 255, 255]。通过 Canvas API 就可以拿到这些值。如果把每一行所有像素(上例是400个)的红、绿、蓝的值,依次画成三条曲...原创 2018-04-14 08:19:21 · 660 阅读 · 0 评论 -
为什么寄存器比内存快?
计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。 同样都是晶体管存储设备,为什么寄存器比内存快呢?Mike As...转载 2018-04-23 12:21:35 · 356 阅读 · 1 评论 -
IaaS,PaaS,SaaS 的区别
越来越多的软件,开始采用云服务。云服务只是一个统称,可以分成三大类。IaaS:基础设施服务,Infrastructure-as-a-servicePaaS:平台服务,Platform-as-a-serviceSaaS:软件服务,Software-as-a-service它们有什么区别呢?IBM 的软件架构师 Albert Barron 曾经使用披萨作为比喻,解释这个问题。David Ng 进一步引...转载 2018-04-15 09:39:55 · 279 阅读 · 0 评论 -
TCP 协议简介
TCP 是互联网核心协议之一,本文介绍它的基础知识。一、TCP 协议的作用互联网由一整套协议构成。TCP 只是其中的一层,有着自己的分工。(图片说明:TCP 是以太网协议和 IP 协议的上层协议,也是应用层协议的下层协议。)最底层的以太网协议(Ethernet)规定了电子信号如何组成数据包(packet),解决了子网内部的点对点通信。(图片说明:以太网协议解决了局域网的点对点通信。)但是,以太网协...转载 2018-04-15 09:46:49 · 315 阅读 · 0 评论 -
虚数的意义
有人在Stack Exchange问了一个问题: "我一直觉得虚数(imaginary number)很难懂。 中学老师说,虚数就是-1的平方根。 可是,什么数的平方等于-1呢?计算器直接显示出错! 直到今天,我也没有搞懂。谁能解释,虚数到底是什么? 它有什么用?"帖子的下面,很多人给出了自己的解释,还推荐了一篇非常棒的文章《虚数的图解》。我读后恍然大悟,醍醐灌顶,原来虚数这么简单,...转载 2018-04-15 09:48:40 · 4732 阅读 · 0 评论 -
熵:宇宙的终极规则
1、有人曾经问我:"成年后,有没有书籍改变过你的世界观?"我想了想,还真有这样的书。那时,我已经工作好几年了,偶然在图书馆翻到一本旧书《熵:一种新的世界观》(上海译文出版社,1987)。那本书是科普著作,介绍物理学概念"熵"。中学毕业后,我再没有碰过物理学,但是没想到读完以后,我看待世界的眼光都变了。"熵"这个概念非常简单,很容易理解,但又异常强大,可以解释很多事情。这篇文章,我就来谈谈,为什么你...转载 2018-04-15 09:52:45 · 1496 阅读 · 0 评论 -
彩票的数学知识
彩票怎样才能中奖? 理论上,只能靠运气。但是,如果规则设计得不好,就可以钻漏洞。2005年2月,美国的一个彩票品种,就出现了漏洞,被麻省理工学院的学生发现了。随后的七年,这个学生...转载 2018-04-23 12:19:55 · 1132 阅读 · 0 评论 -
理解字节序
1.计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。举例来说,数值0x2211使用两个字节储存:高位字节是0x22,低位字节是0x11。大端字节序:高位字节在前,低位字节在后,这是人类读写数值的方法。小端字节序:低位字节在前,高位字节在后,即以0x1122形式储存。同理,0x1234567的大端字节序和小端字节序的写法如下图。2.我一直...转载 2018-04-14 09:14:08 · 679 阅读 · 0 评论