计算机基础
计算机基础
操作系统
用户空间和内核空间
操作系统为了保护系统安全,将内核划分为两个部分,一个是用户空间,一个是内核空间。用户空间不能直接访问底层的硬件设备,必须通过内核空间。
文件描述符
文件描述符(File Descriptor,简称 FD)是操作系统中用于标识打开的文件的一个整数。在 Linux 系统中,一切皆文件,包括普通文件、目录、链接以及设备。文件描述符为操作系统提供了一个高效管理已打开文件的方式。每个进程都有一个文件描述符表,用于跟踪该进程打开的所有文件。
IO 多路复用
IO 多路复用就是通过一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作的一种机制。
select、poll 和 epoll 有什么区别
这里暂时不展开了,NIO 小节里面详细介绍,参考文章理解 深入了解 select、poll、epoll之间的区别。
面试一句话:select 和 poll 是轮询模式,适合低并发;epoll 是事件驱动,适合高并发,是 Linux 下最优的 I/O 多路复用方案。
零拷贝
零拷贝不是不会拷贝,可以通过 Kafka 零拷贝样例加深理解。
进程间通信的方式有哪些
加密
什么是对称加密和非对称加密?
对称密钥加密是指加密和解密使用同一个密钥的方式,这种方式存在的最大问题就是密钥发送问题,即如何安全地将密钥发给对方。
非对称加密指使用一对非对称密钥,即:公钥和私钥,公钥可以随意发布,但私钥只有自己知道。发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密。
由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性。但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。
MD5
全称 Message Digest Algorithm 5,即信息摘要算法第5版,广泛应用于数据完整性验证和密码存储。它通过哈希函数将任意长度的数据转化为固定长度的输出,即 MD5 值。MD5 值的目的是确保信息传输的完整性,防止数据在传输过程中被篡改。
TIP
MD5 是散列算法、不可逆。
DES
DES,全称 Data Encryption Standard,即数据加密标准,是一种对称加密算法。它使用相同的秘钥进行加密和解密,广泛应用于金融和银行业。然而,DES 的安全性已逐渐受到挑战,现在更倾向于使用更安全的算法如 AES。
SHA
全称 Secure Hash Algorithm,即安全散列算法,主要包括 SHA-1、SHA-256 等。它是一种单向加密算法,主要用于验证数据的完整性和真实性。SHA 算法将输入数据(通常称为“消息”)转化为一个固定长度的哈希值,这个哈希值很难逆向还原出原始数据。因此,它常用于数字签名和验证数据的完整性。
RSA
全称 Rivest-Shamir-Adleman,是一种非对称加密算法。它的特点是使用两个密钥:公钥和私钥。公钥用于加密数据,私钥用于解密数据,保障了数据传输的安全性。RSA 广泛应用于数字签名、身份验证和安全通信等领域。
AES
全高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法。
详细见 AES 加密算法原理的详细介绍与实现。