
Tuhuolong
tuhuolong
足球,NBA
展开
-
FIDO(身份认证标准):UAF(终端认证+私钥加签)/U2F
FIDO(身份认证标准):UAF(终端认证+私钥加签)/U2F原创 2021-06-08 10:37:33 · 1966 阅读 · 0 评论 -
sql执行顺序(查询)
SELECT DISTINCT<Select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> WITH {CUBE|ROLLUP} HAVING <having_condtion> ORDER BY <or原创 2020-11-17 13:21:07 · 185 阅读 · 0 评论 -
Android和IOS打开文档
IOS:WKWebView直接打开Android:腾讯X5内核TbsReaderView mTbsReaderView = new TbsReaderView(this, this);RelativeLayout mRelativeLayout = findViewById(R.id.tbsViewContainer);mRelativeLayout.addView(mTbsReaderView, new RelativeLayout.LayoutParams(-1, -1));Bundle原创 2020-05-26 17:49:59 · 305 阅读 · 0 评论 -
命令行实现SMTP和IMAP
telnet smtp.qq.com 25ehlo USERNAMEauth login用户名的Base64密码的Base64telnet imap.qq.com 1431 login USERNAME@qq.com 密码2 select INBOXopenssl s_client -connect imap.qq.com:993 -crlf原创 2020-05-21 17:07:51 · 598 阅读 · 0 评论 -
WireShark抓浏览器的https包
定义shell变量export SSLKEYLOGFILE=~/.ssl-key.log配置WireSharkWireShark->Preferences->Protocols->TLS->(Pre)-Master-Secret log filename填入~/.ssl-key.logshell启动浏览器Chromeopen -a 'Google Chrome'原创 2020-05-21 12:03:30 · 1384 阅读 · 0 评论 -
微内核和宏内核
微内核:多个进程通过(尽量小)内核转发消息.宏内核:一个进程,直接调用Linux大部分都是单内核的操作系统内核可能是微内核,也可能是单内核(后者有时称之为宏内核Macrokernel)。按照类似封装的形式,这些术语定义如下: l 微内核(Microke转载 2011-08-31 09:42:28 · 1810 阅读 · 0 评论 -
当你输入一个网址的时候,实际会发生什么?
作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~1. 首先嘛,你得在浏览器转载 2011-09-02 15:40:27 · 537 阅读 · 0 评论 -
Java&CAR
(1)设计Java类时,有需要快速访问的属性,则可以设计成复合类/复合对象(Java对象+CPP对象),将正常属性和共享属性放入Java对象(通过Java/JNI方法)访问,将快速属性放入C++对象(通过C++函数访问)。(2)实际上C++部分的具体实现放入了构件(通过复合类原创 2011-09-05 10:55:08 · 749 阅读 · 0 评论 -
控制反转-依赖倒置-依赖注入
控制反转:框架控制应用/组件依赖倒置:依赖注入:框架动态注入依赖关系到应用/组件----------------------------------------------------------------------------------在《道法自然——面向转载 2011-05-05 13:43:00 · 989 阅读 · 0 评论 -
LLVM(Low Level Virtual Machine)
LLVM(低级虚拟机):编译器架构(1)前端: 源代码==静态编译==>中间码(2)后端: 中间码==运行时动态编译(非解释)==>机器码能够使C/C++跨平台LLVM从本质上来说,它不是一个编译器.它是一个原创 2011-09-14 11:17:56 · 1737 阅读 · 0 评论 -
JIT具体过程
Calling a method for the first time:Your program code calls a method Foo()The CLR looks at the type that implements Foo() and gets the metadata associated with itFrom the metadata, the CLR kno原创 2011-06-14 15:35:00 · 845 阅读 · 0 评论 -
C++和Java的属性访问和方法调用 效率比较
属性访问----C++快于JavaJVM访问对象属性时(字节码OP_IGET_/OP_SGET_),会先通过属性名字字符串去查ClassObject元数据中属性的偏移(通过属性名字符串找到ClassObject中Field,再取保存在Field中属性在对象中的偏移,最后访问属原创 2011-05-19 10:54:00 · 1477 阅读 · 0 评论 -
Windows内存管理 - 隐藏在new和malloc背后的heap
先来说,heap是什么,heap就是堆,在不知道具体细节的时候,我们只知道,通过new和malloc,我们可以动态获得一个内存区域,用来存放自己的对象和变量,而这些内存区域都是在heap上的。heap应该就是一个内存区域吧。应该会有很多人这么认为过。 后来,学习了Win转载 2011-03-21 14:08:00 · 1185 阅读 · 0 评论 -
Windows内存管理
关于内存管理 32位的Windows系统,每个进程都有4GB内存(Gigabytes)大小的虚拟内存空间可以寻址(因为32位指针可以使用从0x00000000 – 0xFFFFFFFF内的任何一个值),而64位的Windows系统,每个进程有8TB(Terabyt转载 2011-03-16 16:34:00 · 1429 阅读 · 0 评论 -
内存管理
(32位)每个进程4GB独立的虚拟内存(虚拟地址空间). 分配内存:(1)分配虚拟内存 (2)访问时映射 到 物理内存/Swap/文件 MMU管理虚拟内存和物理内存的映射 内存映射:虚拟内存映射到 物理内存/原创 2011-03-16 13:37:00 · 733 阅读 · 0 评论 -
垃圾回收趣史
引用计数(循环引用,Stop-The-World)----JavaScript |标记-清除(碎片,占CPU,Stop-The-World) | 双区复制(浪费一半内存,Stop-The-World) |标记-压缩(Stop-The原创 2011-03-28 15:02:00 · 1623 阅读 · 0 评论 -
属性访问器(Property Accessor)----Setter/Getter
Setter/Getter:属性/成员变量的封装 本质上是实例方法,但是在类的外部作为属性来访问,它允许创建只读和只写属性。使用:getter方法:必须有返回类型,且和要访问的私有属性类型一致。必须有返回语句,返回要访问的私有属性。setter方法:必须要有原创 2011-03-24 11:06:00 · 2370 阅读 · 0 评论 -
IBM Java垃圾回收
垃圾回收策略,第1部分垃圾回收策略,第2部分 出色的"清洁工具"--理解IBM Java垃圾回收器,第1部分:对象分配出色的"清洁工具"--理解IBM Java垃圾回收器,第2部分:垃圾回收出色的"清洁工具"--理解I转载 2010-11-03 14:38:00 · 919 阅读 · 0 评论 -
SPOOLing技术
输入:通过输入缓冲放入输入井,CPU空闲时读入内存输出:从内存放入输出井,外设空闲时通过输出缓冲输出输入/输出井:磁盘输入/输出缓冲:内存原创 2011-09-22 15:41:32 · 829 阅读 · 0 评论 -
C++和Java区别
C++ for Java ProgrammersBarbara Staudt LernerSeptember 1998C++ was developed in the early 1980s. Its goal was to introduce object-orientation to C while maintaining backwards compatibility转载 2011-06-12 21:57:00 · 1648 阅读 · 0 评论 -
进程状态转换图
原创 2011-09-27 16:34:54 · 1129 阅读 · 0 评论 -
TLB和cache
虚拟地址(叶号+偏移)-->TLB/页表-->物理地址(帧号+偏移)-->cache(标记+数据)/内存-->值TLB是一种cache进程(虚拟地址空间)分页,内存分帧原创 2011-10-12 14:25:17 · 753 阅读 · 0 评论 -
指令周期
取指令(FI)->译码指令(DI)->计算操作数(CO)->取操作数(FO)->执行指令(EI)->写操作数(WO)原创 2011-10-12 15:26:42 · 724 阅读 · 0 评论 -
Misc(网络+组成原理)
TCP:发送窗口(连续发送/超时重传已发送的)----接受窗口(按序累积确认)TCP(连接建立)三次握手:1次请求,2次确认TCP(连接释放)四次握手:2次请求,2次确认-------------------------------------------------原创 2011-06-02 16:12:00 · 1441 阅读 · 0 评论 -
路由算法
RIP(距离向量算法):定期交换路由表收到相邻(路由器X的RIP报文)路由表1.修改所有项下一跳改为X, 距离加12.更新本路由表(1)空目的网络:原路由表无目的网络,直接添加(2)同目的网络: 下一跳是X, 替换 下一跳不是X,原创 2011-10-14 10:41:10 · 940 阅读 · 0 评论 -
【我的定义】
HTML:网页标准POSIX(Portable Operating System Interface):(Unix系统)API标准端口号:进程标识 (进xxx端口) HTTP通过socket调用TCP,TCP都必须使用socket 类:同类对象的抽象 overhead:额外负担 Node.js:封装过的V8驱动:(操作系统与外设间的)双向解释器(原创 2011-03-27 12:25:00 · 671 阅读 · 0 评论 -
Windows的安全模型
To understand how it works, one needs a basic understanding of the Windows security model. With this model all processes have an access token. This access token is like an ID card, it contains informa翻译 2011-12-08 15:00:22 · 783 阅读 · 0 评论 -
Web本地计算发展史
Web计算本地化(前端技术)历史-HTML->CSS->Javascript最初的网络上传输的内容是【纯文本】的,从网络上传输回来直接通过字符界面展示出来就够了,本地几乎不用计算。后来,为了更直观,更层次化展现网络内容,人们在文本的基础上加上了什么之类的标签,于是出现了【HTML】,这时候,就出现了浏览器,浏览器是把这些标签解释,并且按照一定格式渲染,这时,就需要一定的本地计算来进转载 2011-09-14 15:53:31 · 794 阅读 · 0 评论 -
漫谈Google的Native Client(NaCl)技术
Native Client简介Native Client是Google在浏览器领域推出的一个开源技术,它允许在浏览器内编译Web应用程序,并执行原生的编译好的代码。Native Client有以下几个优势(参考Google官方英文介绍):为Web提供更多的图形,音频以及其他功能:可以直接在web上执行了原生的2D,3D图形渲染程序(对Web游戏很有用),播放音视频,响应鼠标键盘转载 2011-09-14 16:13:33 · 4385 阅读 · 0 评论 -
跨域资源共享的10种方式
同源策略在客户端编程语言中,如javascript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义。同源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。那么什么叫相同域,什么叫不同的域呢?当两个域具有相同的协议(如http), 相同的端口(如80),相同的host(如www.example.or转载 2011-12-22 14:49:58 · 569 阅读 · 0 评论 -
跨域 资料
一个域(脚本)访问另一个域的资源域/源:域名+协议+端口号,包含许多资源同源规则:一个域的脚本(script)不能访问其他域的资源一个页面(页面可以嵌套)在一个沙箱同域的页面(HTML+JS)可以相互访问,不同域的页面不能相互访问原创 2011-12-22 14:37:25 · 493 阅读 · 0 评论 -
Chrome Native Client 原理
Native Client:A Sandbox for Portable, Untrusted x86 Native Code系统架构 一个NaCl应用程序由许多可信和不可信NaCl模块组成,每个模块都在一个进程中单独运行。假想一个基于NaCL实现的,用于管理和分享图片的应用,它由两个组件构成,一个用javascript实现的用户界面接口,运行在web浏览器中,另转载 2011-09-13 15:59:34 · 5642 阅读 · 2 评论 -
DLL和COM的发展过程
1.可执行程序太大+软件复用2.拆分成模块 (1)DLL ->DLL Hell (2)COM(新的DLL:PE/ELF格式,固定的DLL函数:get组件对象指针):通过CLSID定位组件,再查注册表得到元数据(调用规范)3.CAR(免注册:将元数据放入组件,而不是系统注册表)CAR将元数据(可以还原成.h头文件----各种声明)放入DLL中原创 2011-09-23 15:54:30 · 539 阅读 · 0 评论 -
沙箱(Sandbox)
沙箱:受控的运行环境 ,不限制CPU和内存沙箱化进程被禁用了所有系统调用,只能使用浏览器内核APIusing-the-google-chrome-sandboxnew-approach-to-browser-security-googleSandbox-design documentsSandbox-FAQChrome只把原创 2011-11-14 10:04:53 · 1415 阅读 · 0 评论 -
Native Client 资料
Native Client:本地程序(C/C++和目前不支持的其他程序)沙箱 [JavaScript通过浏览器(解释引擎)来完成功能,HTML5只是扩展了部分功能]Native Client 适合纯计算(CPU+内存)本地程序,不适合 创建进程/直接访问文件/无限制访问网络 程序================================原创 2011-12-05 15:35:04 · 3184 阅读 · 1 评论 -
DLL Hell
DLL Hell是因为DLL当初是作为函数级共享库设计的,并不能真正提供一个类所必需的信息(导类的时候出现问题)DLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向对象的程序员,希望DLL可以导出类,以便在类的层次上实现复用。所幸的是,DLL确实也可以导出类。转载 2012-02-08 16:46:11 · 537 阅读 · 0 评论 -
基于Native Client的编程框架
上面是一个浏览器的架构图,JS引擎+渲染引擎+外壳Shell+内核 4部分构成了浏览器的主体,传统的插件(上图左部)通过NPAPI与浏览器通信,Native Client(上图右部)通过PPAPI与浏览器通信,只有浏览器内核可以直接访问本地系统OS。【Native Client】Native Client是Chrome浏览器里面的一个沙箱,它允许在沙箱里面运行本地码程序,使得程原创 2012-03-15 20:55:34 · 2580 阅读 · 0 评论 -
WURFL:终端(手机设备)信息的文件
原创 2012-03-22 11:13:32 · 732 阅读 · 0 评论 -
Linux的.a .so和.o文件
“LINUX下只有.o、.a和.so” .o、.a、.so文件都是Linux下的程序函数库,即编译好的可以供其他程序使用的代码和数据优点:程序模块化,容易重新编译,方便升级。分类:静态函数库(对应.a文件)、共享函数库(对应.so文件,类似于Windows的dll文件)、动态加载函数库(对应.o文件,相当于Windows里的.obj文件)静态函数库特点:实际上是简单的普转载 2012-03-22 17:29:38 · 616 阅读 · 0 评论 -
JVM架构
原创 2011-12-22 16:22:00 · 601 阅读 · 0 评论