开源
farrellcn
这个作者很懒,什么都没留下…
展开
-
Google Chrome源码剖析【序】
【序】开源是口好东西,它让这个充斥着大量工业垃圾代码和教材玩具代码的行业,多了一些艺术气息和美的潜质。它使得每个人,无论你来自米国纽约还是中国铁岭,都有机会站在巨人的肩膀上,如果不能,至少也可以抱一把大腿。。。现在我就是来抱大腿的,这条粗腿隶属于 Chrome(开源项目名称其实是Chromium,本来Chrome这个名字就够晦涩了,没想到它的本名还更上一层楼…),Google那充满转载 2016-04-07 20:06:29 · 3396 阅读 · 1 评论 -
Google Chrome源码剖析【一】:多线程模型
【一】 Chrome的多线程模型0. Chrome的并发模型如果你仔细看了前面的图,对Chrome的线程和进程框架应该有了个基本的了解。Chrome有一个主进程,称为Browser进程,它是老大,管理 Chrome大部分的日常事务;其次,会有很多Renderer进程,它们圈地而治,各管理一组站点的显示和通信(Chrome在宣传中一直宣称一个 tab对应一个进程,其实是很不确切的转载 2016-04-07 20:09:24 · 1852 阅读 · 0 评论 -
Google Chrome源码剖析【二】:进程通信
【二】Chrome的进程间通信1. Chrome进程通信的基本模式进程间通信,叫做IPC(Inter-Process Communication),在Chrome不多的文档中,有一篇就是介绍这个的,在这里。Chrome最主要有三类进程,一类是Browser主进程,我们一直尊称它老人家为老大;还有一类是各个Render进程,前面也提过了;另外还有一类一直没说过,是Plugin进程,每转载 2016-04-07 20:10:52 · 1763 阅读 · 0 评论 -
Google Chrome源码剖析【三】:进程模型
【三】 Chrome的进程模型1. 基本的进程结构Chrome是一个多进程的架构,不过所有的进程都会由老大,Browser进程来管理,走的是集中化管理的路子。在Browser进程中,有xxxProcessHost,每一个host,都对应着一个Process,比如RenderProcessHost对应着RenderProcess,PluginProcessHost对应着PluginP转载 2016-04-07 20:12:19 · 1332 阅读 · 1 评论 -
Google Chrome源码剖析【四】:UI绘制
【四】Chrome的UI绘制1. Chrome的窗口控件Chrome提供了自己的一个UI控件库,相关文档可以参见这里。用Chrome自己的话来说,我觉得市面上的七荤八素的图形控件库都不好用,于是自己倒腾倒腾实现了一套。。。广告虽如此说,不过,Chrome的图形控件结构,我还未发现有啥非常非常特别的地方。Chrome的窗口、按钮、菜单之类的控件,都直接或间接派生自View,这转载 2016-04-07 20:13:12 · 1894 阅读 · 0 评论 -
Google Chrome源码剖析【五】:插件模型
【五】 Chrome的插件模型1. NPAPI为了紧密的与各个开源浏览器团结起来,共同抗击IE的垄断,Chrome的插件,也遵循了NPAPI(Netscape Plugin Application Programming Interface)标准,支持这个标准的浏览器需要实现一组规定的API供插件调用,这组API形如NPN_XXX,比如NPN_GetURL,插件可以利用这些AP转载 2016-04-07 20:14:36 · 1422 阅读 · 0 评论 -
一个著名的日志系统是怎么设计出来的?
一个著名的日志系统是怎么设计出来的?原创: 老刘 码农翻身 2017-10-231前言Java帝国在诞生之初就提供了集合、线程、IO、网络等常用功能,从C和C++领地那里吸引了大量程序员过来加盟,但是却有意无意地忽略了一个重要的功能: 输出日志。对于这一点,IO大臣其实非常清楚, 日志是个很重要的东西, 因为程序运行起来以后, 基本上就是一个黑盒子,如果程序的行为和预料的...转载 2019-07-04 10:46:55 · 672 阅读 · 0 评论