• 博客(7897)
  • 资源 (9)
  • 收藏
  • 关注

原创 -B+ Tree:PostgreSQL 的索引是如何建立的?

今天我们一起学习了非常经典的索引实现方式,利用空间换时间的思路,通过为数据表建立额外的有序索引结构,做到大大加速查询的效果。由于数据库需要经常对数据进行增删改,我们的索引数据结构要能高效地变动,而且数据库本身海量的数据也意味着,索引结构不会只存在内存中,需要在二级存储中存储。相比于传统的二叉搜索树,通过B+树,我们可以让整个树状结构变得更加矮胖,而磁盘的预读特性每次都可以加载一整个节点中全部的键,到内存进行二分查找,这样我们只需要通过3~5次的磁盘IO就可以查询加了索引的字段,非常高效。

2025-11-24 16:31:10 580

原创 一致性哈希:如何在集群上合理分配流量?

你好,我是程序员贵哥。上一讲我们学习了在分布式系统中,生成全局唯一ID的两种方式,既可以通过引入独立组件远程调用申请ID,也可以通过约定的方式让各个节点独立生成唯一ID。那对于有多个节点的服务,其他服务或者客户端在访问这个服务的时候,具体应该访问哪一个节点呢?

2025-11-24 16:26:47 313

原创 PageRank:谷歌是如何计算网页排名的

你好,我是程序员贵哥。上一讲我们学习了谷歌三架马车之一 MapReduce。建立在Google File System的基础上,MapReduce很好地解决了谷歌当时的大规模分布式计算问题,让业务工程师不再需要处理和分布式计算相关的容错、数据分发、计算调度等复杂的技术细节,而把精力放在业务问题本身。不过谷歌作为一家搜索引擎公司,搜索自然是谷歌重中之重的核心业务。今天我们就来学习谷歌三架马车之二——PageRank算法。

2025-11-24 16:02:54 507

原创 选路算法:距离矢量算法为什么会产生无穷计算问题?

你好,我是程序员贵哥。今天,我们一起来学习一种新的解决最短路问题的思路——Bellman-Ford算法,以及基于它发展出来的距离矢量算法。动态路由问题相信你已经理解了,上两讲我们也一起学习了解决这个问题的一种经典选路算法——基于Dijkstra算法思想的链路状态算法,核心就是每个节点,通过通信收集全部的网络路由信息,再各自计算。如果说链路状态算法的思想是全局的、中心化的,。

2025-11-24 15:22:30 660

原创 选路算法:Dijkstra是如何解决最短路问题的?

网络路由算法,核心就是在动态变化的网络中,基于探测和寻找最快传输路径的想法,帮助路由器建立路由表,让每个数据包都可以快速且正确地传播到正确目的地。首先我们需要想办法解决最短路的问题,Dijkstra就是这样一种在没有负边的图中求解单源最短路的算法,基于贪心的思想,我们构造一颗最短路径树就可以求出从源点到网络中所有节点的最短路径了。核心的就是松弛操作,每次加入一个最短节点之后,我们还需要基于它去探索一遍和它相临的节点是否距离更短,比如从不可达变成可达,或者从一条更长的路变成一条更短的路。

2025-11-21 14:59:44 574

原创 日志型文件系统:写入文件的时候断电了会发生什么?

我们就通过引入预写日志的手段,完美解决了操作系统文件状态在崩溃后可能不一致的问题,相比于从头到尾扫描检查的FSCK机制。预写日志,在每次写操作的时候引入一些额外的写成本,让文件系统始终得以始终处于一种可以恢复到一致的状态,如果崩溃,只需要按照日志重放即可。当然我们其实还有很多优化可以做。比如,可以进行批量日志的更新,把多个独立的文件写操作放到一个事务里提交,提高吞吐量;或者记录日志的时候只记录元数据,而不记录文件写操作的大头数据块等等。

2025-11-21 14:38:27 758

原创 LRU:在虚拟内存中页面是如何置换的?

通过分页和虚拟内存的抽象,操作系统解放了用户对内存管理和容量的心智负担。当缓存的数据越来越多,如何选择一个合适的页面或缓存内容来替换,就是缓存置换算法的用武之地。页面置换策略有多种,包括随机置换、FIFO、LRU等,非常重要且常见的LRU通过利用引用列表的局部相关性,提高了页面的命中率。LRU的实现也并不是非常复杂,但需要对链表和哈希表有很好的理解才行,所以我们一定要认真打好数据结构和算法的基础。LRU不但是面试的常见考点,实际开发也相当常用。

2025-11-21 14:25:43 796

原创 拓扑排序:Webpack是如何确定构建顺序的?

相信通过今天的学习,你已经了解了Webpack在打包HTML的时候是如何对chunk排序了吧,本质上就是一个对有向无环图输出节点“拓扑序”排列的问题。在计算机的世界里,这样输出拓扑序的需求其实随处可见,不信你仔细想一想平时用brew或者apt-get装包的时候计算机都会做哪些事情呢?一个包可能依赖了许许多多不同的包,计算机是从哪个包开始装起的呢?相信你学了今天拓扑排序的两个算法,应该就知道怎么做了吧。利用拓扑排序的算法,我们也可以来确定整个图中是否有环。

2025-11-21 14:03:21 687

原创 搜索算法: 一起来写一个简单的爬虫?

作为两个相当常用的暴力搜索算法,BFS和DFS比较适合用来解决图规模不大,或者本身就需要无差别遍历搜索空间的每一种情况的问题;这两者的时间空间复杂度是相当的。而至于DFS和BFS具体选择哪一种,我也总结出一些自己的经验,供你参考。BFS因为是由内向外地毯式地搜索,所以首次搜索到目标位置的时候一定是源点到目标位置的最短路径,所以求最短路径类的问题往往可以用BFS解决。当然,这里的“最短路径”是有条件的,只有在图中所有边权重相等时首次搜索到的才是最短路径;

2025-11-21 13:49:29 1007

原创 二分:如何高效查询Kafka中的消息?

你好,我是程序员贵哥。今天我们来学习另一个常用的算法思想,二分法。这个算法思想相信即使你没有什么开发经验也不会感到陌生,而且之前讲红黑树的时候我们也简单聊过。不知道你有没有玩过“猜数字”的游戏。大家规定一个范围,一个人在心里想一个这个范围内的具体数字,比如一个1-100的自然数,然后另几个人来猜数字;每次猜错,这个人都会提示他们的猜测是大了还是小了,看谁最快猜到数字。如果你做这个游戏会怎么猜呢?从1开始顺次猜吗?

2025-11-21 13:29:28 985

原创 外部排序:如何为TB级数据排序?

随着互联网的发展,数据量一直在稳步的提升,许多算法问题都不能只简单地考虑内存中可以存储,甚至单机磁盘可以存储的情况了。相信我们今天学习的外排算法思想,一定会给你一些解决此类问题的启发,希望你可以举一反三在实际生产中也能将算法更好地运用在有各种限制的真实环境中。借鉴内排中归并排序的想法,我们可以实现一个多路归并的外排算法,解决内存空间不足的问题。但也因为涉及外部存储,需要重点考虑IO的成本。通过尽可能多地利用内存中的排序,得到尽量少的初始顺段,以及选择合适的多路归并参数,我们就可以做到外存访问次数尽量少了。

2025-11-21 12:46:00 928

原创 栈:函数调用的秘密究竟是什么?

public:protected:// stack 底层容器;默认为 dequepublic:referencetop()...这里有一行,这实际上是一个宏而不是函数,你不用太过关心,主要是用于帮助你debug的,对代码的运行没有任何影响。

2025-11-21 10:30:54 353

原创 双向链表:list如何实现高效地插入与删除?

你好,我是程序员贵哥。在上一讲实现的一个简易银行账户管理系统中,每个账号都对应了一个余额,系统支持用户的开通、存/取款和查询余额。我们使用动态数组容器满足了频繁随机访问查询的需求。但是如果要在系统里支持删除的功能,就会有一个问题:我们为了不进行整体的数组移动操作,通常就只能保留这个用户在数组里占用的内存,用将元素标记为特殊值的方式来模拟“删除”;而因为数组是连续存储的,不能单独释放掉数组中间某些区域的内存,所以这段内存空间我们实际上就是浪费的。

2025-11-20 10:43:21 844

原创 动态数组:按需分配的vector为什么要二倍扩容?

你好,我是程序员贵哥。今天我们进入第一章基础数据结构的学习。计算机程序一直以来最根本的作用就是处理数据。即使在早期的计算机中,计算就已经不仅仅是几个数字之间的加减乘除那么简单了,经常需要处理大量线性存储的数据,一个很好的例子就是向量乘法。显然,我们需要找到一种合适的方式在计算机中存储这些信息,并能让我们可以快速地进行向量运算。再举一个更工程化的例子。假设有个需求,我们希望只借助内存实现一个简易的银行账户管理系统,每个账号里包括两个基本信息:账户ID及余额。用户首次开户的时候,会被分配一个账户ID;

2025-11-20 10:16:27 636

原创 如何进行Docker实验环境搭建?

你好,我是Chrono。这一年的时间下来,我发现专栏“实验环境的搭建”确实是一个比较严重的问题:虽然我已经尽量把Windows、macOS、Linux里的搭建步骤写清楚了,但因为具体的系统环境千差万别,总会有各式各样奇怪的问题出现,比如端口冲突、目录权限等等。所以,为了彻底解决这个麻烦,我特意制作了一个Docker镜像,里面是完整可用的HTTP实验环境,下面我就来详细说一下该怎么用。

2025-11-19 12:58:51 632

原创 DHE-ECDHE算法的原理

你好,我是Chrono。在里,我介绍了TLS 1.2的握手过程,在Client Hello和Server Hello里用到了ECDHE算法做密钥交换,参数完全公开,但却能够防止黑客攻击,算出只有通信双方才能知道的秘密Pre-Master。这是TLS握手的关键步骤,也让很多同学不太理解,“为什么数据都是不保密的,但中间人却无法破解呢?解答这个问题必须要涉及密码学,我原本觉得有点太深了,不想展开细讲,但后来发现大家都对这个很关心,有点“打破砂锅问到底”的精神。所以,这次我就试着从底层来解释一下。

2025-11-19 12:55:51 894

原创 HTTP性能优化面面观(下)

今天我们继续上次的话题,看看HTTP性能优化有哪些行之有效的手段。上一讲里我说到了,在整个HTTP系统里有三个可优化的环节,分别是和(“第一公里”和“中间一公里”)。但因为我们是无法完全控制客户端的,所以实际上的优化工作通常是在服务器端。这里又可以细分为后端和前端,后端是指网站的后台服务,而前端就是HTML、CSS、图片等展现在客户端的代码和数据。知道了大致的方向,HTTP性能优化具体应该怎么做呢?总的来说,任何计算机系统的优化都可以分成这么几类:硬件软件、内部外部、花钱不花钱。

2025-11-19 12:49:26 837

原创 HTTP性能优化面面观(上)

(在英语原文中是mile,英里)。“第一公里”是指网站的出口,也就是服务器接入互联网的传输线路,它的带宽直接决定了网站对外的服务能力,也就是吞吐量等指标。显然,优化性能应该在这“第一公里”加大投入,尽量购买大带宽,接入更多的运营商网络。“中间一公里”就是由许多小网络组成的实际的互联网,其实它远不止“一公里”,而是非常非常庞大和复杂的网络,地理距离、网络互通都严重影响了传输速度。好在这里面有一个HTTP的“好帮手”——CDN,它可以帮助网站跨越“千山万水”,让这段距离看起来真的就好像只有“一公里”。

2025-11-19 11:38:07 684

原创 CDN:加速我们的网络服务

这个时候CDN就出现了,它就是专门为解决“长距离”上网络访问速度慢而诞生的一种网络应用服务。从名字上看,CDN有三个关键词:“内容”“分发”和“网络先看一下“网络”的含义。CDN的最核心原则是“就近访问”,如果用户能够在本地几十公里的距离之内获取到数据,那么时延就基本上变成0了。所以CDN投入了大笔资金,在全国、乃至全球的各个大枢纽城市都建立了机房,部署了大量拥有高存储高带宽的节点,构建了一个专用网络。

2025-11-19 11:10:24 960

原创 WAF:保护我们的网络服务

在前些天的“安全篇”里,我谈到了HTTPS,它使用了SSL/TLS协议,加密整个通信过程,能够防止恶意窃听和窜改,保护我们的数据安全。但HTTPS只是网络安全中很小的一部分,仅仅保证了“通信链路安全”,让第三方无法得知传输的内容。在通信链路的两端,也就是客户端和服务器,它是无法提供保护的。因为HTTP是一个开放的协议,Web服务都运行在公网上,任何人都可以访问,所以天然就会成为黑客的攻击目标。而且黑客的本领比我们想象的还要大得多。

2025-11-19 10:50:16 785

原创 OpenResty:更灵活的Web服务器

在上一讲里,我们看到了高性能的Web服务器Nginx,它资源占用少,处理能力高,是搭建网站的首选。虽然Nginx成为了Web服务器领域无可争议的“王者”,但它也并不是没有缺点的,毕竟它已经15岁了。“一个人很难超越时代,而时代却可以轻易超越所有人”,Nginx当初设计时针对的应用场景已经发生了变化,它的一些缺点也就暴露出来了。Nginx的服务管理思路延续了当时的流行做法,使用磁盘上的静态配置文件,所以每次修改后必须重启才能生效。

2025-11-18 14:08:36 270

原创 Nginx:高性能的Web服务器

经过前面几大模块的学习,你已经完全掌握了HTTP的所有知识,那么接下来请收拾一下行囊,整理一下装备,跟我一起去探索HTTP之外的广阔天地。现在的互联网非常发达,用户越来越多,网速越来越快,HTTPS的安全加密、HTTP/2的多路复用等特性都对Web服务器提出了非常高的要求。一个好的Web服务器必须要具备稳定、快速、易扩展、易维护等特性,才能够让网站“立于不败之地”。那么,在搭建网站的时候,应该选择什么样的服务器软件呢?

2025-11-18 14:05:14 265

原创 我应该迁移到HTTP-2吗?

这一讲是“飞翔篇”的最后一讲,而HTTP的所有知识也差不多快学完了。前面你已经看到了新的HTTP/2和HTTP/3协议,了解了它们的特点和工作原理,如果再联系上前几天“安全篇”的HTTPS,你可能又会发出疑问:“刚费了好大的力气升级到HTTPS,这又出了一个HTTP/2,还有再次升级的必要吗?与各大浏览器“强推”HTTPS的待遇不一样,HTTP/2的公布可谓是“波澜不惊”。虽然它是HTTP协议的一个重大升级,但Apple、Google等科技巨头并没有像HTTPS那样给予大量资源的支持。

2025-11-18 14:00:33 256

原创 未来之路:HTTP-3展望

在前面的两讲里,我们一起学习了HTTP/2,你也应该看到了HTTP/2做出的许多努力,比如头部压缩、二进制分帧、虚拟的“流”与多路复用,性能方面比HTTP/1有了很大的提升,“基本上”解决了“队头阻塞”这个“老大难”问题。

2025-11-18 13:55:37 290

原创 时代之风(下):HTTP-2内核剖析

由于HTTP/2“事实上”是基于TLS,所以在正式收发数据之前,会有TCP握手和TLS握手,这两个步骤相信你一定已经很熟悉了,所以这里就略过去不再细说。TLS握手成功之后,客户端必须要发送一个“连接前言”(connection preface),用来确认建立HTTP/2连接。在Wireshark里,HTTP/2的“连接前言”被称为“Magic”,意思就是“不可知的魔法”。

2025-11-18 13:36:36 436

原创 时代之风(上):HTTP-2特性概览

在里,我们看到HTTP有两个主要的缺点:安全不足和性能不高。刚结束的“安全篇”里的HTTPS,通过引入SSL/TLS在安全上达到了“极致”,但在性能提升方面却是乏善可陈,只优化了握手加密的环节,对于整体的数据传输没有提出更好的改进方案,还只能依赖于“长连接”这种“落后”的技术(参见所以,在HTTPS逐渐成熟之后,HTTP就向着性能方面开始“发力”,走出了另一条进化的道路。在。

2025-11-17 11:19:46 657

原创 我应该迁移到HTTPS吗?

今天是“安全篇”的最后一讲,我们已经学完了HTTPS、TLS相关的大部分知识。不过,或许你心里还会有一些困惑:“HTTPS这么复杂,我是否应该迁移到HTTPS呢?它能带来哪些好处呢?具体又应该怎么实施迁移呢?这些问题不单是你,也是其他很多人,还有当初的我的真实想法,所以今天我就来跟你聊聊这方面的事情。

2025-11-17 11:12:42 270

原创 连接太慢该怎么办:HTTPS的优化

你可能或多或少听别人说过,“HTTPS的连接很慢”。那么“慢”的原因是什么呢?通过前两讲的学习,你可以看到,HTTPS连接大致上可以划分为两个部分,第一个是建立连接时的,第二个是握手后的。由于目前流行的AES、ChaCha20性能都很好,还有硬件优化,报文传输的性能损耗可以说是非常地小,小到几乎可以忽略不计了。所以,通常所说的“HTTPS连接慢”指的就是刚开始建立连接的那段时间。

2025-11-17 10:56:40 984

原创 更好更快的握手:TLS1.3特性解析

上一讲中我讲了TLS1.2的握手过程,你是不是已经完全掌握了呢?不过TLS1.2已经是10年前(2008年)的“老”协议了,虽然历经考验,但毕竟“岁月不饶人”,在安全、性能等方面已经跟不上如今的互联网了。于是经过四年、近30个草案的反复打磨,TLS1.3终于在去年(2018年)“粉墨登场”,再次确立了信息安全领域的新标准。。

2025-11-17 10:48:10 939

原创 信任始于握手:TLS1.2连接过程解析

经过前几讲的介绍,你应该已经熟悉了对称加密与非对称加密、数字签名与证书等密码学知识。有了这些知识“打底”,现在我们就可以正式开始研究HTTPS和TLS协议了。

2025-11-17 10:45:01 281

原创 固若金汤的根本(下):数字签名与证书

实现完整性的手段主要是摘要算法(Digest Algorithm),也就是常说的散列函数、哈希函数(Hash Function)。你可以把摘要算法近似地理解成一种特殊的压缩算法,它能够把任意长度的数据“压缩”成固定长度、而且独一无二的“摘要”字符串,就好像是给这段数据生成了一个数字“指纹”。换一个角度,也可以把摘要算法理解成特殊的“单向”加密算法,它只有算法,没有密钥,加密后的数据无法解密,不能从摘要逆推出原文。

2025-11-17 10:39:12 986

原创 固若金汤的根本(上):对称加密与非对称加密

在上一讲中,我们初步学习了HTTPS,知道HTTPS的安全性是由TLS来保证的。你一定很好奇,它是怎么为HTTP增加了机密性、完整性,身份认证和不可否认等特性的呢?先说说机密性。它是信息安全的基础,缺乏机密性TLS就会成为“无水之源”“无根之木”。实现机密性最常用的手段是“”(encrypt),就是把消息用某种方式转换成谁也看不懂的乱码,只有掌握特殊“钥匙”的人才能再转换出原始文本。这里的“钥匙”就叫做“”(key),加密前的消息叫“

2025-11-17 10:22:56 870

原创 HTTPS是什么?SSL-TLS又是什么?

既然HTTP“不安全”,那什么样的通信过程才是安全的呢?通常认为,如果通信过程具备了四个特性,就可以认为是“安全”的,这四个特性是:机密性、完整性,身份认证和不可否认。机密性(Secrecy/Confidentiality)是指对数据的“保密”,只能由可信的人访问,对其他人是不可见的“秘密”,简单来说就是不能让不相关的人看到不该看的东西。比如小明和小红私下聊天,但“隔墙有耳”,被小强在旁边的房间里全偷听到了,这就是没有机密性。

2025-11-14 16:54:19 990

原创 良心中间商:HTTP的代理服务

在前面讲HTTP协议的时候,我们严格遵循了HTTP的“请求-应答”模型,协议中只有两个互相通信的角色,分别是“请求方”浏览器(客户端)和“应答方”服务器。今天,我们要在这个模型里引入一个新的角色,那就是HTTP代理。引入HTTP代理后,原来简单的双方通信就变复杂了一些,加入了一个或者多个中间人,但整体上来看,还是一个有顺序关系的链条,而且链条里相邻的两个角色仍然是简单的一对一通信,不会出现越级的情况。

2025-11-14 13:45:34 788

原创 生鲜速递:HTTP的缓存控制

缓存(Cache)是计算机领域里的一个重要概念,是优化系统性能的利器。由于链路漫长,网络时延不可控,浏览器使用HTTP获取资源的成本较高。所以,非常有必要把“来之不易”的数据缓存起来,下次再请求的时候尽可能地复用。这样,就可以避免多次请求-应答的通信成本,节约网络带宽,也可以加快响应速度。试想一下,如果有几十K甚至几十M的数据,不是从网络而是从本地磁盘获取,那将是多么大的一笔节省,免去多少等待的时间。实际上,HTTP传输的每一个环节基本上都会有缓存,非常复杂。

2025-11-14 13:33:55 968

原创 让我知道你是谁:HTTP的Cookie机制

不知道你有没有看过克里斯托弗·诺兰导演的一部经典电影《记忆碎片》(Memento),里面的主角患有短期失忆症,记不住最近发生的事情。比如,电影里有个场景,某人刚跟主角说完话,大闹了一通,过了几分钟再回来,主角却是一脸茫然,完全不记得这个人是谁,刚才又做了什么,只能任人摆布。这种情况就很像HTTP里“无状态”的Web服务器,只不过服务器的“失忆症”比他还要严重,连一分钟的记忆也保存不了,请求处理完立刻就忘得一干二净。即使这个请求会让服务器发生500的严重错误,下次来也会依旧“热情招待”。

2025-11-14 13:29:42 1066

原创 四通八达:HTTP的重定向和跳转

在专栏时我曾经说过,为了实现在互联网上构建超链接文档系统的设想,蒂姆·伯纳斯-李发明了万维网,使用HTTP协议传输“超文本”,让全世界的人都能够自由地共享信息。“超文本”里含有“超链接”,可以从一个“超文本”跳跃到另一个“超文本”,对线性结构的传统文档是一个根本性的变革。能够使用“超链接”在网络上任意地跳转也是万维网的一个关键特性。它把分散在世界各地的文档连接在一起,形成了复杂的网状结构,用户可以在查看时随意点击链接、转换页面。

2025-11-14 13:15:39 1274

原创 - 排队也要讲效率:HTTP的连接管理

在里,我曾经提到过HTTP的性能问题,用了六个字来概括:“同时,我也谈到了“队头阻塞”,但由于时间的限制没有展开来细讲,这次就来好好地看看HTTP在连接这方面的表现。HTTP的连接管理也算得上是个“老生常谈”的话题了,你一定曾经听说过“短连接”“长连接”之类的名词,今天让我们一起来把它们弄清楚。

2025-11-14 10:28:12 645

原创 把大象装进冰箱:HTTP传输大文件的方法

上次我们谈到了HTTP报文里的body,知道了HTTP可以传输很多种类的数据,不仅是文本,也能传输图片、音频和视频。早期互联网上传输的基本上都是只有几K大小的文本和小图片,现在的情况则大有不同。网页里包含的信息实在是太多了,随随便便一个主页HTML就有可能上百K,高质量的图片都以M论,更不要说那些电影、电视剧了,几G、几十G都有可能。相比之下,100M的光纤固网或者4G移动网络在这些大文件的压力下都变成了“小水管”,无论是上传还是下载,都会把网络传输链路挤的“满满当当”。

2025-11-13 17:45:47 609

原创 海纳百川:HTTP的实体数据

你好,我是程序员贵哥。今天我要与你分享的话题是“海纳百川:HTTP的实体数据”。这一讲是“进阶篇”的第一讲,从今天开始,我会用连续的8讲的篇幅来详细解析HTTP协议里的各种头字段,包括定义、功能、使用方式、注意事项等等。学完了这些课程,你就可以完全掌握HTTP协议。在前面的“基础篇”里我们了解了HTTP报文的结构,知道一个HTTP报文是由“header+body”组成的。但那时我们主要研究的是header,没有涉及到body。所以,“进阶篇”的第一讲就从HTTP的body谈起。

2025-11-13 17:42:13 392

Linux系统技术可以学习一下

在安装双系统之前,需要将下载好的Windows和Linux操作系统镜像文件制作成启动U盘或光盘。可以使用Rufus等制作工具来完成。 第七步:安装Windows系统 在制作好启动U盘或光盘后,先安装Windows操作系统。将启动U盘或光盘插入电脑中,重启电脑并按照提示进入BIOS设置界面,选择U盘或光盘为启动项,然后按照提示进行安装即可。 第八步:安装Linux系统 在安装完Windows操作系统后,再安装Linux操作系统。同样是将启动U盘或光盘插入电脑中,重启电脑并按照提示进入BIOS设置界面,选择U盘或光盘为启动项,然后按照提示进行安装即可。在安装Linux系统时,需要注意分区和挂载点的设置。 第九步:修复GRUB引导器 在安装完Linux系统后,可能会出现GRUB引导器无法启动的情况。可以通过使用LiveCD或LiveUSB来修复GRUB引导器。具体方法可以参考相关教程。 第十步:进入双系统 在完成上述步骤后如何安装windows和linux双系统,就可以进入双系统了。每次开机时,会自动弹出GRUB引导器,选择需要启动的操作系统即可。

2024-01-26

java最新面试宝典1111

java最新面试宝典1111

2023-12-04

播为主播提供一站式直播必备工具 包含弹幕助手、屏幕美化、语音播报、弹幕点歌等主播必备核心功能,目前已支持虎牙、斗鱼,抖音等、平台

播为主播提供一站式直播必备工具 包含弹幕助手、屏幕美化、语音播报、弹幕点歌等主播必备核心功能,目前已支持虎牙、斗鱼,抖音等、平台

2023-10-13

抖音最近很火的游戏直播:挤地铁教程+源码+软件下载

抖音最近很火的游戏直播:挤地铁教程+源码+软件下载

2023-10-13

谷歌安装包有需要的可以安装

谷歌安装包有需要的可以安装

2023-10-10

chrome驱动-chromedriver -116.0.5845.96

chrome驱动-chromedriver -116.0.5845.96

2023-10-10

navicat.rar

navicat15 特别好用

2021-07-05

Spring Boot系列四 Spring @Value 属性注入使用总结一

Spring Boot系列四 Spring @Value 属性注入使用总结一

2018-11-29

TestSyncMethods.java

我们写同步的时候,优先考虑synchronized,如果有特殊需要,再进一步优化。ReentrantLock和Atomic如果用的不好,不仅不能提高性能,测试代码

2021-07-25

apache-artemis.rar 最新jar 好用不得了

apache-artemis.rar 最新jar 好用不得了

2021-07-13

很的全多线程介绍知识,值得下载

多线程

2021-07-02

apache-artemis-2.10.0.rar

activemq.apache.org/artemis 可以直接用

2021-06-29

redmine 比较难用的一点就是在开始时需要做各种配置

redmine 比较难用的一点就是在开始时需要做各种配置

2021-06-19

js检验身份证格式.html

js检验身份证格式

2021-06-04

hotCity.js

国际城市

2019-05-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除