
计算机
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
传说中的CAFEBABE到底在哪儿?
大概在06年,我看到了一本书,叫做<<深入Java虚拟机>>。在周志明那本神书《深入理解Java虚拟机》出来之前,这本书应该是唯一一本讲JVM的书, 对Java class文件格式,执行引擎讲得特别详细。我看了一遍看完了以后就“热血沸腾”:原来Java 的class 文件格式是这样的啊!也许我也可以写一个JVM了!于是我就开始琢磨, 先写程序去解析.class文件, 然后写一个小的执行引擎,去执行那些字节码。作为第一步,我要写个小程序去读取硬盘上的.class文.转载 2020-08-21 09:09:02 · 568 阅读 · 0 评论 -
病毒与故障:漫谈计算机软件的故障应对
作者 | 梁桂钊出品 | 服务端思维近期肆虐的新型冠状病毒,已然成为大众视野的焦点。笔者,最近趁过年之际也看了一些相关新闻和书籍,其中,有一本名为卡尔·齐默《病毒星球》让我印象深刻。当然,本文并不是谈及新型冠状病毒和《病毒星球》,而是将故障和病毒进行类比,聊一聊计算机软件的故障应对机制,而其中关于病毒相关科普性的资料和数据来自于《病毒星球》一书。一、故障:潜伏于计算机软件的病毒...转载 2020-05-06 08:52:58 · 453 阅读 · 0 评论 -
文件句柄?文件描述符?傻傻分不清楚
概述在实际工作中会经常遇到一些bug,有些就需要用到文件句柄,文件描述符等概念,比如报错: too many open files, 如果你对相关知识一无所知,那么debug起来将会异常痛苦。在linux操作系统中,文件句柄(包括Socket句柄)、打开文件、文件指针、文件描述符的概念比较绕,而且windows的文件句柄又与此有何关联和区别?这一系列的问题是我们不得不面对的。笔者通过翻阅相...转载 2020-04-22 21:48:46 · 1505 阅读 · 0 评论 -
记住这两幅重要的图
今天给大家分享两幅图,它们是如此的重要,以至于你看到的很多软件的设计都和他们相关, 可以说图中展示的问题都是计算机的本质问题。图1 计算机各个部件的速度可以看到,CPU最快,一个时钟周期是0.3纳秒,内存访问需要120纳秒,固态硬盘访问需要50-150微秒,传统硬盘访问需要1-10毫秒, 网络访问最慢,都是几十毫秒。这幅图最有趣的地方在于它把计算机世界的时间和人类世界的时间做...转载 2019-12-16 09:27:29 · 389 阅读 · 0 评论 -
CPU 到底是怎么认识代码的?涨姿势了!
最近读到这样一篇好文章,从底层硬件角度出发剖析了一下CPU对代码的识别和读取,内容非常精彩,读完感觉大学里学到的很多东西瞬间联系起来了,这里分享给大家,希望能认真读完并有所收获。首先要开始这个话题要先说一下半导体。啥叫半导体?半导体其实就是介于导体和绝缘体中间的一种东西,比如二极管。电流可以从A端流向C端,但反过来则不行。你可以把它理解成一种防止电流逆流的东西。当C...转载 2019-12-03 14:37:58 · 698 阅读 · 0 评论 -
原子变量、锁、内存屏障,写得非常好!
突然想聊聊这个话题,是因为知乎上的一个问题多次出现在了我的Timeline里:请问,多个线程可以读一个变量,只有一个线程可以对这个变量进行写,到底要不要加锁?可惜的是很多高票答案语焉不详,甚至有所错漏。所以我想在这篇文章里斗胆聊聊这个水挺深的问题。受限于个人水平,文章若有错漏,还望读者不吝赐教。首先约定,由于CPU的架构和设计浩如烟海,本文站在工程师的角度,只谈IA32/AMD64(x86-6...转载 2019-10-25 14:14:27 · 1901 阅读 · 2 评论 -
一段程序的奇妙旅行
神经质硬盘我这个程序一直在硬盘上睡大觉,这个传统的机械硬盘容量超大,但是却非常脆弱。每当他移动磁头,读取数据的时候,他就在那里不断祈祷:千万别有什么大的震动啊。时间久了,他就变得神神叨叨的,这也不能怪他,因为他那铝合金制成的盘片在高速旋转,每分钟要转几千甚至上万圈,磁头悬浮在盘片上方滑来滑去,经常需要在毫秒级的时间内滑到指定位置,磁头和盘片之间的距离是以纳米来计算的,实在是太近了,一不...转载 2018-11-28 09:38:07 · 323 阅读 · 0 评论 -
让 CPU 告诉你硬盘和网络到底有多慢
简介经常听到有人说磁盘很慢、网络很卡,这都是站在人类的感知维度去表述的,比如拷贝一个文件到硬盘需要几分钟到几十分钟,够我去吃个饭啦;而从网络下载一部电影,有时候需要几个小时,我都可以睡一觉了。最为我们熟知的关于计算机不同组件速度差异的图表,是下面这种金字塔形式:越往上速度越快,容量越小,而价格越高。这张图只是给了我们一个直观地感觉,并没有对各个速度和性能做出量化的说明和解释。而实际上,不同...转载 2019-02-16 14:09:32 · 716 阅读 · 1 评论 -
只有程序员才能读懂的西游记
这是一个有关计算机网络协议的故事。原文来自公号刘超的通俗云计算。 一、我佛造经传极乐 话说我佛如来为度化天下苍生,有三藏真经,可劝人为善。就如图中所示,真经所藏之处,在于云端。佛祖所管辖之下,有四个区域Region,称为四大部洲, 一是东胜神洲,二是南赡部洲,三是西牛贺洲,四是北俱卢洲。我佛所在西牛贺洲,是主站点。 在每个区域Region...转载 2019-02-20 10:41:23 · 896 阅读 · 0 评论 -
计算机基础知识的最小集合
码农翻身的老读者们估计要烦了:老刘真是老了,怎么老是在这里啰嗦计算机基础?没办法,问的人特别多,我还是要再啰嗦一次,希望这是最后一次。很多人工作后痛感计算机基础知识的缺乏,那计算机基础知识都有哪些呢?我觉得首先计算机专业的那六大件:组成原理,操作系统,数据库,编译原理,计算机网络,数据结构(这个说太多遍了,这次不再讲了),其次还得加上分布式的基础知识,因为现在的系统都变成分布...转载 2019-04-12 14:29:30 · 305 阅读 · 0 评论 -
一篇文章帮你彻底搞清楚“I/O多路复用”和“异步I/O”的前世今生
来源:微信公众号【编程新说】曾经的VIP服务在网络的初期,网民很少,服务器完全无压力,那时的技术也没有现在先进,通常用一个线程来全程跟踪处理一个请求。因为这样最简单。其实代码实现大家都知道,就是服务器上有个ServerSocket在某个端口监听,接收到客户端的连接后,会创建一个Socket,并把它交给一个线程进行后续处理。线程主要从Socket读取客户端传过来的数据,然后进...转载 2019-05-24 10:29:01 · 498 阅读 · 0 评论 -
千万别学计算机
周末和朋友小聚,聊起了高考报志愿的问题,我和另外一个朋友都脱口而出:“千万别学计算机!”说完我们都一阵大笑,自己在这个行业呆了这么久,现在居然要劝阻大家别学了,岂不是莫大的讽刺 !平心而论,计算机是少数的不用拼爹的行业, 凭借自己的努力就能获得回报, 从这近二十年看,回报还相当不错。首先是平均工资相对别的行业比较高,尤其是那几大著名的互联网企业, 现在很多面试的文章都在讲如何进入B...转载 2019-06-26 11:29:41 · 5091 阅读 · 0 评论 -
那些让你起飞的计算机基础知识
有网友问道:“欣哥,你的知识框架中最基础的点是哪些?或者哪方面是比较重要的?” 我看到这个问题一下子愣了,是啊,很多人都深有体会,都觉得基础知识重要,但是具体来说,哪些点重要呢? 今天我就试图总结一下,也欢迎大家补充。信息的表示和处理计算机如何表示整数:有符号数和无符号数,尤其是如何用补码表示负数,数字的取值范围。 计算机如何表示浮点数,为什么小数的二进制表示法只能近似表...转载 2018-12-02 14:10:18 · 728 阅读 · 0 评论 -
极客时间专栏
专栏 介绍页 作者 技术与商业案例解读 https://time.geekbang.org/column/intro/42 徐飞,计算机博士,资深架构师,深度思考者 AI技术内参 https://time.geekbang.org/column/intro/43 洪亮劼,Etsy数据科学主管,前雅虎研究院资深科学家 左耳听风 https://t...原创 2018-10-26 15:01:13 · 11496 阅读 · 4 评论 -
IT职业图谱
程序开发语言综述.jpg 前端工程师必备技能.jpg大数据工程师必备技能.jpg 安全工程师必备技能.jpg嵌入式开发必备技能.jpgiOS开发工程师必备技能.jpg 移动无线测试工程师必备技能.jpg云计算工程师必备技能.jpg微服务架构技能图谱.jpg Hadoop家族技能图谱.jpg O...转载 2016-07-24 22:46:23 · 1094 阅读 · 0 评论 -
PL/SQL Developer 和 instantclient客户端快速安装配置(图文)
适用场景:本地没有安装oracle服务器软件,只是想通过客户端软件连接到oracle服务器。一: PL/SQL Developer 安装 下载安装文件安装,我这里的版本号是PLSQL9.0.6.1665,安装目录是:D:\soft\PLSQLDeveloper 二:instantclient_10_2客户端配置 instantclient_...原创 2016-11-30 15:47:05 · 5518 阅读 · 0 评论 -
关于2的补码
问一个基本的问题。负数在计算机中如何表示?举例来说,+8在计算机中表示为二进制的1000,那么-8怎么表示呢?很容易想到,可以将一个二进制位(bit)专门规定为符号位,它等于0时就表示正数,等于1时就表示负数。比如,在8位机中,规定每个字节的最高位为符号位。那么,+8就是00001000,而-8则是10001000。但是,随便找一本《计算机原理》,都会告诉你,实际上,计算机内部采用...转载 2016-12-02 16:39:14 · 463 阅读 · 0 评论 -
深入探索并发编程之内存屏障:资源控制操作
当你使用资源控制时, 那么你肯定在试图理解内存执行顺序。不管你是用C,C++还是其它语言,这都是在编写无锁(lock-free)代码时需要重点考虑的。在上一篇文章中,我们介绍了编译期间的内存乱序,这一部分内容构成内存执行顺序问题的一部分。这篇文章讲述另一部分:处理器本身在运行期间的内存执行顺序。与编译器乱序一样,处理器乱序对于单线程来说也是不可见的。只有在使用无锁(lock-free)技术时-...转载 2016-12-16 15:19:09 · 2126 阅读 · 0 评论 -
telnet WIN7 不回显的解决办法
windows 2000及XP默认是关闭telnet回显的,这样在操作上很不方便,要让Telnet程序实现本地回显可以按如下步骤操作:1.在命令窗口中运行不带任何参数的telnet命令,执行 /help查看telnet的子命令telnet下有如下指令:close 关闭当前连接display 显示操作参数open 连接到一个站点q...转载 2016-12-23 22:04:55 · 596 阅读 · 0 评论 -
linux的top命令参数详解
简介top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以...转载 2017-01-04 14:02:30 · 512 阅读 · 0 评论 -
给老婆普及计算机知识
我们知道计算机的计算数据需要从磁盘调度到内存,然后再调度到L2 Cache,再到L1 Cache,最后进CPU寄存器进行计算。给老婆在电脑城买本本的时候向电脑推销人员问到这些参数,老婆听不懂,让我给她解释,解释完后,老婆说,“原来电脑内部这么麻烦,怪不得电脑总是那么慢,直接操作内存不就快啦”。我是那个汗啊。我只得向她解释,这样做是为了更快速的处理,她不解,于是我打了下面这个比喻——这就像我...转载 2017-01-16 11:01:45 · 371 阅读 · 0 评论 -
完整的一次 HTTP 请求响应过程(一)
因特网无疑是人类有史以来最伟大的设计,它互联了全球数亿台计算机、通讯设备,即便位于地球两端的用户也可在顷刻间完成通讯。可以说『协议』是支撑这么一个庞大而复杂的系统有条不紊运作的核心,而所谓『协议』就是通讯双方所必须遵守的规则,在这种规则下,不同的数据报可能被解析为不同的响应动作。简而言之,『协议』就是指如果发送和接收方按照这个规则进行数据报文的发送,即可在基本的数据传输之上得到某些特殊的功...转载 2018-08-20 15:44:26 · 961 阅读 · 0 评论 -
《深入理解 Java 内存模型》读书笔记(上)(干货,万字长文)
目录 0. 前提 1. 基础 1.1 并发编程的模型分类 1.1.1 通信 1.1.2 同步 1.2 JAVA 内存模型的抽象 2. 重排序 2.1 处理器重排序 2.2 内存屏障指令 2.3 HAPPENS-BEFORE 2.4 数据依赖性 2.5 AS-IF-SERIAL 语义 2.6 重排序对多线程的影响 3. 顺序一致性 3....转载 2018-10-16 10:37:44 · 859 阅读 · 0 评论 -
《深入理解 Java 内存模型》读书笔记(下)(干货,万字长文)
0. 前提 1. 基础 2. 重排序 3. 顺序一致性 4. Volatile 5. 锁 6. final 7. 总结 4. Volatile4.1 VOLATILE 特性举个例子:public class VolatileTest { volatile long a = 1L; /...转载 2018-10-16 10:54:59 · 309 阅读 · 0 评论 -
每个程序员都应该了解的内存知识
原文地址:http://www.oschina.net/translate/what-every-programmer-should-know-about-memory-part1?from=20130303转载 2014-05-17 11:21:52 · 691 阅读 · 0 评论 -
svn: Checksum mismatch while updating 'D:\workspace\demo\test\.svn\text-base\test.php.svn-base'
svn: Checksum mismatch while updating 'D:\workspace\demo\test\.svn\text-base\test.php.svn-base'; expected: 'e46703b45e810605fd7513943533b00f', actual: '5480a41836d19692a1a85e667d222e82'文件标识码本地与远程不一...转载 2015-07-17 16:13:46 · 940 阅读 · 0 评论 -
Unix目录结构的来历
Unix(包含Linux)的初学者,常常会很困惑,不明白目录结构的含义何在。举例来说,根目录下面有一个子目录/bin,用于存放二进制程序。但是,/usr子目录下面还有/usr/bin,以及/usr/local/bin,也用于存放二进制程序;某些系统甚至还有/opt/bin。它们有何区别?长久以来,我也感到很费解,不明白为什么这样设计。像大多数人一样,我只是根据《Unix文件系统结构标准...转载 2016-07-01 16:17:09 · 481 阅读 · 0 评论