自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小林coding

公众号:「小林coding」 专注图解计算机基础,期待你的关注!

  • 博客(103)
  • 收藏
  • 关注

原创 国外计算机科学的 lab,真滴牛逼!

大家好,我是小林。相信不少 CS 学生都有关于项目到底要怎么准备的问题,可能大家认为要做个非常强的项目才有机会面试。在前几个星期,有位大三非科班的读者的项目经历写的是国外 CS 课程的 lab,也就是课程的实验,并不是什么高大上的项目,他依然拿到了腾讯的实习。他跟说,对于校招面试,项目其实并不要求做的很牛逼,但是要保证是你自己亲手做的,因为面试时,问项目主要是问你在项目中用什么技术解决了什么问题,然后达到了什么效果,你能回答出这些才是主要的。然后面试过程中,计算机基础和算法才是大头,考的最多的还是

2021-08-03 09:04:25 1683 7

原创 计算机科班生学计算机组成原理的意义何在呢?

大家好,我是小林。很早之前分享过我学计算机网络和操作系统的心得,详见:怎么学操作系统和计算机网络呀?期间一直有不少读者问计算机组成原理怎么学,大部分人觉得这个学科跟硬件有关系就非常怕。计算组成原理确实是分为两个方向,一个是硬件电路的,一个是软件程序的。我自己本身是干开发的,所以我这次分享的机组资料是跟软化程序有关的,也就是不会涉及到硬件电路的东西,即使你不会数字电路、微机原理也是可以直接学习的。好了,不多废话,直接开车了!计组学习心得学计组有什么用?计组怎么学?计组 - 入门学习计算机科学速成课

2021-07-28 09:23:42 10723 36

原创 吴某凢 300 万诈骗案的瓜,程序员应该怎么吃?

大家好,我是小林。上周吴某凢和都某竹的瓜大家都吃了吧,结果前几天北京朝阳警方通报了这是一个金钱诈骗案。我读了那份通报,我直接炸开了,没想到这次的瓜里,还有第三个人,它就是中间人刘某,具体怎么诈骗的呢?整个诈骗过程可以概括成如下图,下图中的 ID_A 表示都某竹的银行卡,ID_E 表示中间人刘某的银行卡。这个诈骗案牛逼在于,中间人刘某有双重身份,不仅冒充都某竹的身份来向吴某凢索取赔偿,而且又冒充吴某凢的身份骗都某竹把退款的钱转到中间人刘某的银行卡,从而获取利益。这波操作说实话比电影还精彩,刘某把中

2021-07-25 14:15:15 7633 23

原创 15w+字的计算机网络知识核心总结!再也不怕面试官问我网络知识了,飘了!

大家好,我是小林。我在 csdn 输出了 15w+ 的图解网络系列文章,每一篇文章都有我高清无ma的手绘图。每一篇都相当干活,很多同学跟我说,我的图解网络打破了他们对计算机网络的恐惧,甚至还助力他们进入大厂,每次面试问到网络相关的问题时,一点都不慌!然后问把我的 15 万字的图解系列文章整理成了 PDF ,主要是为了方便,大家阅读目录如下,是不是感觉非常干货!有什么内容?大家肯定第一个关心的就是,这次的图解网络 PDF 相比以前有什么变化呢?首先,最大的变化就是目录结构。你可以从下面这张图

2021-07-22 22:25:37 730

原创 国内有哪些 955 加班少的公司?

来了,国内 955 加班少的公司名单!国内互联网公司普遍加班比较多,大部分都是 996 的工作,也就是 1 天从早上 9 点,一直工作到晚上 9 点,一周 6 天。工作时长虽然比较长,但是薪资是到位的,所以依然还是很多人把国内大厂作为心目中的目标公司。不过,也有很多人对 996 的制度嗤之以鼻,他们认为这样工作强度,很容易损坏自己的身体,一生病可能就直接进 ICU 了。在 Github 还出现反对 996 工作模式的仓库,名为 996.ICU,至今已有 256k star。996 的工作模式是由国内

2021-07-19 09:35:57 2858 10

原创 被问懵了:一个进程最多可以创建多少个线程?

大家好,我是小林。昨天有位读者问了我这么个问题:大致意思就是,他看了一个面经,说虚拟内存是 2G 大小,然后他看了我的图解系统 PDF 里说虚拟内存是 4G,然后他就懵逼了。其实他看这个面经很有问题,没有说明是什么操作系统,以及是多少位操作系统。因为不同的操作系统和不同位数的操作系统,虚拟内存可能是不一样多。Windows 系统我不了解,我就说说 Linux 系统。在 Linux 操作系统中,虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同位数的系统,地址 空间的范围也不同。比如最常

2021-07-15 09:23:19 5511 17

原创 面试官:TCP Keepalive 和 HTTP Keep-Alive 是一个东西吗?

大家好,我是小林。之前有读者问了我这么个问题:大致问题是,TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一个东西吗?这是个好问题,应该有不少人都会搞混,因为这两个东西看上去太像了,很容易误以为是同一个东西。事实上,这两个完全是两样不同东西,实现的层面也不同:HTTP 的 Keep-Alive,是由应用层(用户态) 实现的,称为 HTTP 长连接;TCP 的 Keepalive,是由 TCP 层(内核态) 实现的,称为 TCP 保活机制;接下来,分别说说它们。

2021-07-15 09:01:23 966 5

原创 学数据结构与算法、操作系统、计算机组成、计算机网络有什么用???不会,也不影响我CRUD

大家好,我是小林。昨天有位关注我一年的读者找我,他去年关注我公众后,开始自学 CS,主要是计算机基础这一块。他从那时起,就日复一日的学习,并在 Github 有做笔记的习惯,你看他的提交记录,每天都有,一天都没拉下,就这样坚持了一年。这个一年没有间断过的坚持,我是真的被震撼到,虽然我也经常肝文章,但是我也做不到每天都是学习的状态,总会想偷懒几天,毕竟学习真的是反人性的哈哈。这里先给大家分享些计算机必读书籍,获取方式:计算机必读书籍(含下载方式),包含数据结构与算法、操作系统、计算机网络、数据库、L

2021-07-12 08:56:40 4870 22

原创 太心酸了!!!转行进腾讯了(自学经验 + 面试心得)

大家好,我是小林哥。之前分享过很多读者校招拿到大厂 offer 的经历,他们都有一个共同的特点。就是在大学期间对于计算机基础准备的很充分,比如数据结构与算法、操作系统、计算机网络、数据库、Linux 这些。然后期间就有很多读者问我,对于社招或者转行又应该怎么准备呢?前段时间,就有位在机械行业工作了 2 年的读者,成功转行了程序员,而且还进了腾讯:我知道大家肯定会很好奇他的经历,所以小林已经邀请这位读者来分享他的转行的经历。当时我看完后挺震撼的。震撼在于他之前的机械工作,竟然晚上 10 点才下班

2021-07-08 09:39:26 4947 42

原创 我坚持在 CSDN 写了一年的博客,起飞了吗!?(复盘拿到的奖品)

大家好,我是小林哥。光阴似箭,不知不觉坚持写技术文章也有一年多了,没想到当初小小的决定,以及每周小小的坚持,给我带来了质的变化。不仅仅对技术有了更深刻的理解,还给扩大了我的人脉,相识了很多优秀的博主,也帮助了很多同学解惑了枯燥乏味的计算机基础(是我的荣幸哈哈~)当我越写越久发现,文章是能带来复利效应的,因为一篇文章是可以多次参与不同博客平台的活动,也就是说文章是可以反复复用的,即使是一个新出来的博客平台,你依然可以拿往期的文章去参与活动。我写作一年多了,期间在很多博客平台拿到不少奖品,这次就来盘一盘

2021-07-04 14:15:01 24076 553

原创 有什么优质的计算机专业书籍?操作系统、计算机网络、计算机组成、数据结构、数据库.....

大家好,我是小林哥。平日里,大家都喊程序员加班多很辛苦,动不动就掉头发,但干的还是很香的,毕竟大多数公司钱还是给的很到位的,今年毕业应届生的我见到好多动不动就月薪 20K~30K 的,真让人两眼泪酸酸,当然这离不开他们大学期间的努力。讲真,没什么家庭背景的人,选择当程序员确实是比较好的选择了,原因有二:首先,当今互联网、AI 人工智能、大数据等都是高速发展的行业,自然人才需求很多,薪资也相对其他传统行业高;第二,纯粹看你技术能力,只要自己愿意付出努力,技术能力肯定会慢慢提高上来,而且现在比起几十年

2021-06-30 08:39:28 24818 721

原创 数据结构,计算机网络,数据库,计算机组成原理,操作系统有哪些好的网课值得推荐?

大家好,我是小林哥。作为自学CS过来的老学长,看过中国mooc、b站、网易云课堂很多视频,期间踩了不少坑,这次掏心掏肺前来跟分享下,网上的资源是免费的,但是找到质量好的是需要时间成本的!数据结构,计算机网络,数据库,计算机组成原理,操作系统这些在大学期间一定要掌握好来,因为现在互联网大厂面试都爱考察这些内容,一句话,计算机基础,yyds!可能大家第一个问题是,这些课需要哪些先学?讲真,这些都是独立的课程,关联性不会大到说学这个课前要先学另外一个课,所以大家不要担心这个问题,它不是问题!可能大家也会

2021-06-26 21:43:26 26683 561

原创 CSAPP,永远滴神!最厚的一本黑皮书之一!!!

大家好,我是小林。今天跟大家聊聊《深入理解计算系统》,这本书的英文全称叫ComputerSystem:A programer perspective英文名翻译过来是「程序员视角下的计算机系统」,也被简称为 CSAPP。贴心的小林,也把这本书找给大家了:计算机电子书下载可能大家以为这本书是讲操作系统的,我最开始也以为是这样。后面当我开始啃这本书的时候,发现我大错特错,它远不止我想的那样。这本书是从程序员的角度学习计算机系统是如何工作的,通过描述程序是如何映射到计算机系统上,程序是如何执行的,以及程

2021-06-25 15:26:42 3794 28

原创 大学计算机系最努力的同学都是如何学习的?

大家好,我是小林哥。经常会有读者跟小林发私信,说我的图解系统和图解网络在面试中帮到他们,而且不少都是拿到了一线的大厂。于是,我就在想,能不能邀请这些优秀的读者来分享他面试心得和学习经验。因为小林读者里肯定还有很多是在校生,我相信这些过来人的经验会帮助到你们,也让大家能提前知道如何准备,少走一些弯路,磨平校招的信息差,不至于到大四才知道校招这些事情。说干就干,然后就有了这个「读者牛逼系列」,真心希望这里的每一位牛逼读者的经历,能够影响到你,给你带来启发和价值。今天来跟大家分享的是一位我影响很深刻的读

2021-06-23 17:49:04 7503 17

原创 被鹅厂面怕了!

上周有位读者找我说,他在面试腾讯的时候,遇到了这么个问题:这个属于 TCP 异常断开连接的场景,这部分内容在我的「图解网络」还没有详细介绍过,这次就乘着这次机会补一补。这个问题有几个关键词:没有开启 keepalive;一直没有数据交互;进程崩溃;主机崩溃;我们先来认识认识什么是 TCP keepalive 呢?这东西其实就是 TCP 的保活机制,它的工作原理我之前的文章写过,这里就直接贴下以前的内容。如果两端的 TCP 连接一直没有数据交互,达到了触发 TCP 保活机制的条件,

2021-06-15 13:41:55 24432 39

原创 图解 Redis | 不就是 AOF 持久化嘛

AOF 日志试想一下,如果 Redis 每执行一条写操作命令,就把该命令以追加的方式写入到一个文件里,然后重启 Redis 的时候,先去读取这个文件里的命令,并且执行它,这不就相当于恢复了缓存数据了吗?这种保存写操作命令到日志的持久化方式,就是 Redis 里的 AOF(Append Only File) 持久化功能,注意只会记录写操作命令,读操作命令是不会被记录的,因为没意义。在 Redis 中 AOF 持久化功能默认是不开启的,需要我们修改 redis.conf 配置文件中的以下参数:AO.

2021-05-27 09:20:43 1244 16

原创 【面经分享】被字节捞了六七次,终于进字节了.....

大家好,我是小林哥。前段时间,有位读者激动地跑来跟我说,进字节了。经过和他一番的交流后,发现他的校招经历也是比较坎坷的,去年秋招不理想,面试屡屡受挫。但是,经历完后秋招后,他就开始立马反思面试的过程,从第三视角去审视当时的自己,从中发现自己的不足,然后制定好计划逐个突破。最终,在今年春招终于拿下字节的 offer。别看我说的简单,其实他中途被字节捞了六七次,非常考验面试者的心态。所以,今天就由这位读者来分享他的校招心得。基本情况先来说一下我的基本情况,我是西安某211高校电子科学与技术专

2021-05-24 11:03:09 2133 8

原创 双非本科,校招从月薪 5k offer 成功换成年包 35W+ 的 offer,我是如何准备的?(建议收藏)

大家好,我是小林哥。经常会有读者跟小林发私信,说我的图解系统和图解网络在面试中帮到他们,而且不少都是拿到了一线的大厂。于是,我就在想,能不能邀请这些优秀的读者来分享他面试心得和学习经验。因为小林读者里肯定还有很多是在校生,我相信这些过来人的经验会帮助到你们,也让大家能提前知道如何准备,少走一些弯路,磨平校招的信息差,不至于到大四才知道校招这些事情。说干就干,然后就有了这个「读者牛逼系列」,真心希望这里的每一位牛逼读者的经历,能够影响到你,给你带来启发和价值。今天来跟大家分享的是一位我影响很深刻的读

2021-05-19 13:38:28 4486 26

原创 学妹问我:当打开 CSDN,到网页显示,其间发生了什么?

前言想必不少小伙伴面试过程中,会遇到「当键入网址后,到网页显示,其间发生了什么」的面试题。还别说,这真是挺常问的这题,前几天坐在我旁边的主管电话面试应聘者的时候,也问了这个问题。这次,小林我带大家一起探究下,一个数据包在网络中的心路历程。每个阶段都有数据包的「心路历程」,我们一起看看它说了什么?正文接下来以下图较简单的网络拓扑模型作为例子,探究探究其间发生了什么?01 孤单小弟 —— HTTP浏览器做的第一步工作是解析 URL首先浏览器做的第一步工作就是要对 URL 进行解析,..

2021-05-14 14:31:28 3621 48

原创 给学弟学妹们写了个 15W 字的图解操作系统!

大家好,我是小林。不知不觉在 CSDN 里写了 23 篇图解操作系统的系列文章,总字数高达 15W 字,而且每篇都配了很多自己手绘的图,也算有个体系了。然后图解操作系统文章也帮助到了很多读者,时不时都会有读者给小林发感谢信,说我的图解文章帮助到他们拿到了心意的 offer,这一点我很庆幸,我的文章也影响了一批人。后来,有些读者跟提了个意见,希望这个图解系统能整理成电子文档,这样方便阅读。既然是读者的请求,作为宠粉的 CSDN 博主,那肯定得整理呀,于是我就连忙搞了几天,最终把图解操作系统整理成了电

2021-05-11 09:18:59 17077 88

原创 小学六年级的读者,自学计算机,会爬虫,搞崩过学校网站,还有 Girlfriend.....

大家好,我是小林。我之前遇到一个很奇怪的读者,他的头像是电影《V字仇杀队》里的面具。感觉上去是一个黑客爱好者,不是一个好惹的家伙,小林看了瑟瑟发抖。结果,他来了这么一句,「哥哥,在吗?」我头顶瞬间冒出一万个问号,怎么跟头像冷酷的感觉完全相反。只听过有的读者叫我小林哥,但是还真没遇到过直接称呼哥哥的,能说出这个称呼的话,感觉对方年纪不大。然后,他请教我关于 kali Linux 安装失败的问题要怎么解决,我没有安装过,所以我也没办法解决他的问题,就让他自己去网上搜搜看看。然后,他还是没解决,

2021-05-07 18:50:33 69850 258

原创 给学妹学弟们的看书小建议!

大家好,我是小林。我在 CSDN 输出了两个图解系列,分别是图解网络和图解系统,每个系列都输出了 15W 字 + 500 张图,收到了很多小伙伴的认可和支持,也经常小伙伴跑来感激小林,说看了我的图解,拿到了大厂的 Offer。这次就跟大家分享下我的看书经验和心得。每隔一段时间,都有些读者跑来请教我学习的心得。他们的困惑可以归类这几点:书看不懂,容易放弃,怎么办?看书的效率很低,怎么办?做了很多笔记,依然过会就忘记,怎么办?这些困惑我曾经也经历过,中途也踩过很多坑,浪费了很多的时间,好

2021-05-06 09:44:00 13186 51

原创 面试官:什么是 Reactor 和 Proactor?

小林,来了。这次就来图解 Reactor 和 Proactor 这两个高性能网络模式。别小看这两个东西,特别是 Reactor 模式,市面上常见的开源软件很多都采用了这个方案,比如 Redis、Nginx、Netty 等等,所以学好这个模式设计的思想,不仅有助于我们理解很多开源软件,而且也能在面试时吹逼。发车!演进如果要让服务器服务多个客户端,那么最直接的方式就是为每一条连接创建线程。其实创建进程也是可以的,原理是一样的,进程和线程的区别在于线程比较轻量级些,线程的创建和线程间切换的成本要小

2021-04-26 22:17:00 1211 12

原创 面试官:为什么 0.1 + 0.2 == 0.300000004 ?

我们在 JavaScript 里执行 0.1 + 0.2,会得到下面这个结果:那今天,我们来思考几个问题:为什么负数要用补码表示?十进制小数怎么转成二进制?计算机是怎么存小数的?0.1 + 0.2 == 0.3 吗?…别看这些问题都看似简单,但是其实还是有点东西的这些问题。为什么负数要用补码表示?十进制转换二进制的方法相信大家都熟能生巧了,如果你说你还不知道,我觉得你还是太谦虚,可能你只是忘记了,即使你真的忘记了,不怕,贴心的小林在和你一起回忆一下。十进制数转二进制采用的是除 2

2021-04-21 09:05:52 20275 108

原创 3 万字 + 100 张图带你彻底搞懂 TCP 面试题(强烈建议收藏)

大家好,我是小林,一个专为大家图解的工具人。不管面试 Java 、C/C++、Python 等开发岗位, TCP 的知识点可以说是必问的了。任 TCP 虐我千百遍,我仍待 TCP 如初恋。过去不会没关系,今天就让我们来消除这份恐惧,微笑着勇敢的面对它吧!所以小林整理了关于 TCP 的面试题型,全文共 3 万字 + 100 张图,跟大家一起探讨探讨。1、 TCP 基本认识2、TCP 连接建立3、 TCP 连接断开4、 Socket 编程5、TCP 重传、滑动窗口、流量控制、拥塞控制

2021-04-19 12:39:59 6336 38

原创 很贴心的一份,适合非科班入门计算机的课程路线

大家好,我是小林。有很多非科班的读者问我,怎么入门计算机呀?不瞒大家说,小林其实也是非科班出身,大学期间的专业是电气自动化,后面由于个人兴趣,从事了开发工作,这期间我也自己补了很多计算机专业的知识。这是最好的时代呀,我们想要学习什么,网上资源都有很多,所以什么非不非科班并不是什么理由,只要真心想学,不愁学不会。大家要充分利用好互联网的资源,有很多可以免费白嫖的基础课程。比如:中国大学 MOOC 网它就是一个很好学习的平台,里面的课程都是国内名校老师录制的精品课程,不管什么专业的都有。小林从中国

2021-04-13 14:59:46 2569 10

原创 答应我,这次搞懂 I/O 多路复用!

这次,我们以最简单 socket 网络模型,一步一步的过度到 I/O 多路复用。但我不会具体细节说到每个系统调用的参数,这方面书上肯定比我说的详细。好了,发车!最基本的 Socket 模型要想客户端和服务器能在网络中通信,那必须得使用 Socket 编程,它是进程间通信里比较特别的方式,特别之处在于它是可以跨主机间通信。Socket 的中文名叫作插口,咋一看还挺迷惑的。事实上,双方要进行网络通信前,各自得创建一个 Socket,这相当于客户端和服务器都开了一个“口子”,双方读取和发送数据的

2021-04-12 13:47:12 5130 12

原创 什么是死锁?怎么排查死锁?怎么避免死锁?

突然发现我的图解系统缺了「死锁」的内容,这就来补下。在面试过程中,死锁也是高频的考点,因为如果线上环境真多发生了死锁,那真的出大事了。这次,我们就来系统地聊聊死锁的问题。死锁的概念;模拟死锁问题的产生;利用工具排查死锁问题;避免死锁问题的发生;死锁的概念在多线程编程中,我们为了防止多线程竞争共享资源而导致数据错乱,都会在操作共享资源之前加上互斥锁,只有成功获得到锁的线程,才能操作共享资源,获取不到锁的线程就只能等待,直到锁被释放。那么,当两个线程为了保护两个不同的共享资源而使用了两个

2021-04-01 08:48:43 1048

原创 HTTP/3 强势来袭?!

HTTP/3 现在还没正式推出,不过自 2017 年起, HTTP/3 已经更新到 34 个草案了,基本的特性已经确定下来了,对于包格式可能后续会有变化。所以,这次 HTTP/3 介绍不会涉及到包格式,只说它的特性。美中不足的 HTTP/2HTTP/2 通过头部压缩、二进制编码、多路复用、服务器推送等新特性大幅度提升了 HTTP/1.1 的性能,而美中不足的是 HTTP/2 协议是基于 TCP 实现的,于是存在的缺陷有三个。队头阻塞;TCP 与 TLS 的握手时延迟;网络迁移需要重新连接;

2021-03-24 21:58:56 760 2

原创 一起看看 HTTP/2 牛逼在哪?

不多 BB 了,直接发车!一起来看看 HTTP/2 牛逼在哪?HTTP/1.1 协议的性能问题我们得先要了解下 HTTP/1.1 协议存在的性能问题,因为 HTTP/2 协议就是把这些性能问题逐个攻破了。现在的站点相比以前变化太多了,比如:消息的大小变大了,从几 KB 大小的消息,到几 MB 大小的消息;页面资源变多了,从每个页面不到 10 个的资源,到每页超 100 多个资源;内容形式变多样了,从单纯到文本内容,到图片、视频、音频等内容;实时性要求变高了,对页面的实时性要求的应用越来

2021-03-24 21:56:19 515 2

原创 再也不怕,缓存雪崩、缓存击穿、缓存穿透

用户的数据一般都是存储于数据库,数据库的数据是落在磁盘上的,磁盘的读写速度可以说是计算机里最慢的硬件了。当用户的请求,都访问数据库的话,请求数量一上来,数据库很容易就奔溃的了,所以为了避免用户直接访问数据库,会用 Redis 作为缓存层,因为 Redis 是内存数据库,我们可以将数据库的数据缓存在 Redis 里,相当于数据缓存在内存,内存的读写速度比硬盘快好几个数量级,这样大大提高了系统性能。引入了缓存层,就会有缓存异常的三个问题,分别是缓存雪崩、缓存击穿、缓存穿透。这三个问题也是面试中很常考察的

2021-03-24 21:36:25 579 1

原创 HTTP/1.1 有点慢,我想优化下!

问你一句:「你知道 HTTP/1.1 该如何优化吗?」我想你第一时间想到的是,使用 KeepAlive 将 HTTP/1.1 从短连接改成长链接。这个确实是一个优化的手段,它是从底层的传输层这一方向入手的,通过减少 TCP 连接建立和断开的次数,来减少了网络传输的延迟,从而提高 HTTP/1.1 协议的传输效率。但其实还可以从其他方向来优化 HTTP/1.1 协议,比如有如下 3 种优化思路:尽量避免发送 HTTP 请求;在需要发送 HTTP 请求时,考虑如何减少请求次数;减少服务器的 HTT

2021-02-24 15:54:45 953

原创 Linux 内核和 Windows 内核有什么区别?

微信搜索「小林coding」,更多图解系、网络文章等你来撩哦!Windows 和 Linux 可以说是我们比较常见的两款操作系统的。Windows 基本占领了电脑时代的市场,商业上取得了很大成就,但是它并不开源,所以要想接触源码得加入 Windows 的开发团队中。对于服务器使用的操作系统基本上都是 Linux,而且内核源码也是开源的,任何人都可以下载,并增加自己的改动或功能,Linux 最大的魅力在于,全世界有非常多的技术大佬为它贡献代码。这两个操作系统各有千秋,不分伯仲。操作系统核心的东西.

2021-02-20 09:47:23 7374 12

原创 给你代码加个“颜值”吧!

每个程序员只要不犯错,都能写出机器能看得懂的代码,程序能正常跑起来,自然就意味着机器正常识别了程序。但是,真正牛逼的程序员是写出能让人看得懂的代码。不要小看这个,虽说我们写的代码确实是跑给机器的,但是代码是人写的,而通常一个项目的开发,需要多个程序员一同协助开发,这时能写出 human readble 的代码就显得至关重要,因为不仅可以减少后期维护的时间成本,而且还能让后面加入的新同事能更快的上手项目。要能写出干净、整洁并让人易懂的代码,必然离不开一些规则,只要自觉遵守、合理运用这些规则,代码通常都.

2021-02-10 13:18:23 943 1

原创 为了搞懂 HTTPS,我把大学的数学书拿了出来。。。

HTTPS 常用的密钥交换算法有两种,分别是 RSA 和 ECDHE 算法。其中,RSA 是比较传统的密钥交换算法,它不具备前向安全的性质,因此现在很少服务器使用的。而 ECDHE 算法具有前向安全,所以被广泛使用。我在上一篇已经介绍了 RSA 握手的过程,今天这一篇就「从理论再到实战抓包」介绍 ECDHE 算法。离散对数ECDHE 密钥协商算法是 DH 算法演进过来的,所以我们先从 DH 算法说起。DH 算法是非对称加密算法, 因此它可以用于密钥交换,该算法的核心数学思想是离散对数。是不是

2021-01-23 17:33:49 1161

原创 几幅图,拿下 HTTPS

我很早之前写过一篇关于 HTTP 和 HTTPS 的文章,但对于 HTTPS 介绍还不够详细,只讲了比较基础的部分,所以这次我们再来深入一下 HTTPS,用实战抓包的方式,带大家再来窥探一次 HTTPS。对于还不知道对称加密和非对称加密的同学,你先复习我以前的这篇文章「硬核!30 张图解 HTTP 常见的面试题」,本篇文章默认大家已经具备了这些知识。TLS 握手过程HTTP 由于是明文传输,所谓的明文,就是说客户端与服务端通信的信息都是肉眼可见的,随意使用一个抓包工具都可以截获通信的内容。所以安

2021-01-13 20:38:34 1146

原创 带宽、延时、吞吐率、PPS 这些都是啥?

Linux 网络协议栈是根据 TCP/IP 模型来实现的,TCP/IP 模型由应用层、传输层、网络层和网络接口层,共四层组成,每一层都有各自的职责。应用程序要发送数据包时,通常是通过 socket 接口,于是就会发生系统调用,把应用层的数据拷贝到内核里的 socket 层,接着由网络协议栈从上到下逐层处理后,最后才会送到网卡发送出去。而对于接收网络包时,同样也要经过网络协议逐层处理,不过处理的方向与发送数据时是相反的,也就是从下到上的逐层处理,最后才送到应用程序。网络的速度往往跟用户体验是挂钩的,那

2020-12-15 15:05:36 2055 5

原创 到现在还搞不懂,索引为什么能提供查询性能?

前言昨天,有个女孩子问我提高数据库查询性能有什么立竿见影的好方法?这简直是一道送分题,我自豪且略带鄙夷的说,当然是加「索引」了。她又不紧不慢的问,索引为什么就能提高查询性能。这还用问,索引就像一本书的目录,用目录查当然很快。她失望地摇了摇头,你说的只是一个类比,可为什么通过目录就能提高查询速度呢。唉,对啊,通过书目可以快速查询,这只是一个现象,真正原因到底是什么呢。那女孩看着诧异且表情僵硬的我,满意而又意味深长的笑笑:原来你这个男程序员也不会,看来我还得靠自己研究了。哎,熬夜又要憔悴了我这该

2020-11-27 15:13:19 836 1

原创 你不好奇 CPU 是如何执行任务的吗?

前言你清楚下面这几个问题吗?有了内存,为什么还需要 CPU Cache?CPU 是怎么读写数据的?如何让 CPU 能读取数据更快一些?CPU 伪共享是如何发生的?又该如何避免?CPU 是如何调度任务的?如果你的任务对响应要求很高,你希望它总是能被先调度,这该怎么办?…这篇,我们就来回答这些问题。正文CPU 如何读写数据的?先来认识 CPU 的架构,只有理解了 CPU 的 架构,才能更好地理解 CPU 是如何读写数据的,对于现代 CPU 的架构图如下:可以看到,一个 CP..

2020-11-06 17:43:44 2578

原创 学完计组后,我马上在「我的世界」造了台显示器,你敢信?

前言今天的主题十分有趣,我们将在我的世界(Minecraft)这个游戏里,靠一个个逻辑门来组合实现一个简单的七段显示器,可以实现将选择的数字输出在显示器上。我会从最基础的与或非实现开始,亲自画出电路原理图,并且用我的世界来带领大家领略数字电子技术的精妙之处。本文所涉及的数电知识包括电路编码、基本逻辑门、组合电路。当然,由于电路的精密性以及游戏里实现的复杂性,实现完整的电路是非常困难的,也会让人难以看懂,一下子就劝退了,这也就违背了我们学习知识的初衷。所以,我会适当的对电路进行化简,让人看起来简单易

2020-10-30 16:34:34 2801 4

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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