参考资料: 1. <Windows Internals> 知识点: ● 当一个进…
参考资料: 1. <Windows Internals> 2. Dependency Walker 3. Ntoskrnl.exe 4. Livekd的使用 5. WinDbg的使用(一) 6. WinDbg的使用(二) Now, let's delve into the internal structure & the role each key OS component plays at the high-level achitecture. ^-^ 知识点: ● 先上图,下图是w…
参考资料: 1. <Windows Internals> 2. http://bestcbooks.com 3. Windows Drive Kit 4. Microsoft Windows SDK 5. WDK下载地址 6. Windows内核模式和用户模式 知识点: 1. 用户模式下的四种基本进程类型: ● Fixed (or hardwired) system support processes, Such as the logon process & the session m…
参考资料: 1. <Windows Internals> 2. Fibers 知识点: ● 当一个进程在系统上启动时,内核将创建一个进程对象来代表它,并执行各种内核相关的初始化任务.然而,这些任务不会真正执行应用,而只是进行上下文和环境的准备工作.应用程序不像驱动(内核模式),它执行在用户模式下.因此,大部分初始化工作实际上都是在内核外完成的,且该工作是由Image Loader(Ldr)执行的. ● Image Loader存在于用户模式下的系统DLL Ntdll.dll中,而不在内核库中.…
参考资料: 1. <Windows Internals> 知识点: ● 陷阱trap:它是一种处理器机制,用以在某一异常或中断出现时,捕捉该执行线程,并将其控制权转交到操作系统中某一固定位置.在Windows中,处理器将控制权转交到一个trap handler(一个针对特定中断或异常的函数). ● 一个中断是一个异步的事件,它与正执行的处理器无关.主要由I/O设备.处理器和时钟触发,且可以打开或关闭. ● 一个异常属于一种同步的情况,通常是由于执行某一特殊执行而触发的. ● 内核将系统服务调用…
参考资料: 1. <Windows Internals> 2. Windows Drive Kit 3. Microsoft Windows SDK 4. WDK下载地址 知识点: 1. Windows Drive Kit(WDK)是微软提供的用于Windows平台的设备驱动软件开发工具集.它包括:文档.实例.Build环境和为驱动开发人员提供的开发工具.早期,它以Windows Driver Development Kit(DDK)闻名,支持Windows Driver Model(WDM)…
参考资料: 1. <Windows Internals> 2. 自旋锁spinlock剖析与改进 3. Lock指令前缀 4. Lock指令前缀(二) 5. Kernel Dispatcher Objects 6. Windows同步机制原理 知识点: ● Interlocked Operations:最简单的同步机制,基于硬件对安全多处理器整数操作的支持,包括:InterlockedIncrement.interlockedDecrement.InterlockedExchange和Inte…
参考资料: 1. 下载地址 2. 使用示例…
作者:Grey 原文地址:Java IO学习笔记八:Netty入门 多路复用多线程方式还是有点麻烦,Netty帮我们做了封装,大大简化了编码的复杂度,接下来熟悉一下netty的基本使用. Netty+最朴素的阻塞的方式来实现一版客户端和服务端通信的代码,然后再重构成Netty官方推荐的写法. 第一步,引入netty依赖包. <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</a…
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般会看到以下几种格式的文件: msi, egg, whlmsi文件:Windows系统的安装包, 在Windows系统下可以直接双击打开, 并按提示进行安装egg文件:setuptools使用的文件格式, 可以用setuptools进行安装whl文件:wheel本质上是zip文件, 它使用.whl作为…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo indigo PCL例子以及xtionpro live pcl --$ roslaunchrobot1_description display.launch model:="`rospack findr…
Go语言学习笔记八: 数组 数组地球人都知道.所以只说说Go语言的特殊(奇葩)写法. 我一直在想一个人参与了两种语言的设计,但是最后两种语言的语法差异这么大.这是自己否定自己么,为什么不与之前统一一下. 声明数组 var variable_name [SIZE] variable_type 例子: var x [10] int 初始化数组 var x = [5] int {1, 2, 3, 4, 5} var y = [...] int {1, 2, 3, 4, 5} 初始化数组中 {} 中的元…
createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数原型: int createTrackbar(const String& trackbarname, const String& winname, int* value, int count, TrackbarCallback onChange = , ); 第一个参数,const strin…
1.查看命令 (1)man 可以使用 man 命令名称 命令查看某个命令的详细用法,其显示的内容如下: NAME:命令名称 SYNOPSIS:语法 DESCRIPTION:说明 OPTIONS:选项 man 数据库保存在以下的目录中(可以使用 manpath 命令查看): /usr/local/man /usr/local/share/man /usr/share/man 在每一个保存位置可以发现多个以 manX 命名的子目录(X 代表数字,范围为 1~9,分别对应不同的命令): 1:可执行文件…
目录 go微服务框架kratos学习笔记八(kratos的依赖注入) 什么是依赖注入 google wire kratos中的wire Providers injector(注入器) Binding Interfaces go微服务框架kratos学习笔记八(kratos的依赖注入) 笔记二提过依赖注入,和如何生成,但没有细讲,本文来简单看看kratos的依赖注入. 什么是依赖注入 来看一个小程序, 创建一个小程序模拟带有问候的事件 我们将创建三个结构类型: 1)为迎宾员创建消息 message…
作者:Grey 原文地址:Redis学习笔记八:集群模式 前面提到的Redis学习笔记七:主从复制和哨兵只能解决Redis的单点压力大和单点故障问题,接下来要讲的Redis Cluster模式,主要是用来解决Redis的单点容量问题. 如何来解决Redis单点容量问题呢? 如果数据可以拆分,我们可以让不同业务的客户端打到不同的Redis实例中. 如果数据不能拆分,我们有如下方式: 方案2-1 modula方式 可以通过Hash加上取模的方式来定位打到哪个Redis实例中. 这种方式的弊端在于:模…
[学习笔记] Numpy基础 上专业选修<数据分析程序设计>课程,老师串讲了Numpy基础,边听边用jupyter敲了下--理解+笔记. 老师讲的很全很系统,有些点没有记录,在PPT里就不搬了. 环境:python3.6 vscode+jupyter扩展 #%% #------------------------------2019.9.23 NumPy----------------------------- import numpy as np # 1.NumPy在一个连续的内存块中存储数…
大型python程序以模块和包的形式组织.python标准库中包含大量的模块.一个python文件就是一个模块.1.标准模块 python自带的,不需要你安装的2.第三方模块 需要安装,别人提供的. pip install xxx 自动化安装的 手动安装 首先下载安装包 解压 在命令行里面进入到这个解压之后的目录 执行python setup.py install3.自己写的 自己写的python文件import xx 导入一个文件 ,导入文件的实质是什么,把这个python运行一次import…
1 前言 本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-industrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Qt"新建项目"和"新建文件"选项中出现ROS的相关选项,让我们可以直接在Qt下创建.编译.调试ROS项目,也可以直接在Qt项目中添加ROS的package.urdf.launch,感谢Levi-Armstrong.目前这个插件还在不断完善,有问题或者其他功能建议可以在r…
前言 在上一章博客的内容中vue学习笔记(七)组件我们初步的认识了组件,并学会了如何定义局部组件和全局组件,上一篇内容仅仅只是对组件一个简单的入门,并没有深入的了解组件当中的其它机制,本篇博客将会带大家深入了解组件的其它知识,组件的校验,组件的通信等等. 本章目标 学会组件简单的校验 学会父组件向子组件传递数据 学会子组件向父组件传递数据 父组件向子组件传递数据 父组件向子组件传递数据实现的方式特别简单,只用使用props进行数据传递就可以了. 语法:props['属性1',‘属性2’,...]…
BufferedReader和BufferedWriter 这两个类是高效率的提高文件的读取速度,它们为字符输入和输出提供了一个缓冲区,可以显著的调高写入和读取的速度,特别针对大量的磁盘文件读取的时候,下面着重的讲讲这两个类 BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取,要特别注意的是这个市针对字符流而不是字节流. 通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求.因此,建议用 BufferedReader…
栅格系统(bootstrap的核心之一,也是bootstrap的主要布局风格) 栅格系统是对原有div布局的升级版.打破了传统div模式只能纵向垂直排列的弊端,大大提高了页面布局的速度和效果,也很好的配合响应式布局.在设备宽度不够时栅格系统会自动把所有栅格纵向排列. 什么是栅格系统: Bootstrap内置了一套响应式.移动设备优先的流式栅格系统,随着屏幕设备或视口(viewport)尺寸的增加,系统会自动分为最多12列.它包含了易于使用的预定义classe,还有强大的mixin用于生成更具语义…
 欢迎装载请说明出处:http://blog.csdn.net/yfqnihao/article/details/8267669 课程源码:http://download.csdn.net/detail/yfqnihao/4866500 这一节,以实践为主,在跟着我做相应的操作之前,我希望你已经能够理解笔记七所提到的概念,至少你应该对于笔记七的那个大图有所了解. 好了!对于习惯用ecplise的朋友今天不得不逼迫你把jdk的环境搭建出来!下面让我们动手来实践一下对jar进行签名吧!  第一步,首…
学习Windows程序设计也有一些时间了,为了记录自己的学习成果,以便以后查看,我希望自己能够坚持写下一系列的学习心得,对自己学习的内容进行总结,同时与大家交流.因为刚学习所以可能有的地方写不不正确,希望大家能够指出. 在学习了一定的Windows API后我决定进入到一些基础的学习,希望能够学习一些原理性的知识,能够做到知其然的同时知其所以然.为了达到这个目的,这段时间我学习了一些计算机的基础知识,在这写下这篇博客,总结一下. 在早期的16位8086CPU中我们使用段与段内的偏移偏移的方式寻址…
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:继承关系中爷爷类.父类.子类,现在父类行为有了增强,如何不影响子类? // 思路:首先考虑让父类实现增强能力的接口,但是这样做,会让继承子类也具有增强能力 // Son son = new Son(); // son.method(); // 其次考虑让父类中的增强行为方法设置为private,这样子类是没有继…
类的高级用法 多态:   在其他语言,使用的是类的继承. 在python中,不需要指定数据类型. 基于TCP协议的socket通信实现: 类似于打电话的情景. 服务端: 1.买手机 2.插卡 3.开机 4.等待电话链接 5.收消息 6.发消息 7.挂电话 8.关手机 具体代码实现如下: import socket #导入一个socket模块 server1=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #买手机,基于socket的网络通信,使用…
IO流:用于处理设备上数据. 流:可以理解数据的流动,就是一个数据流.IO流最终要以对象来体现,对象都存在IO包中. 流也进行分类: 1:输入流(读)和输出流(写). 2:因为处理的数据不同,分为字节流和字符流. 字节流:处理字节数据的流对象.设备上的数据无论是图片或者dvd,文字,它们都以二进制存储的.二进制的最终都是以一个8位为数据单元进行体现,所以计算机中的最小数据单元就是字节.意味着,字节流可以处理设备上的所有数据,所以字节流一样可以处理字符数据. 那么为什么要有字符流呢?因为字符每个国…
JBoss Marshalling 是一个java序列化包,对JDK默认的序列化框架进行了优化,但又保持跟java.io.Serializable接口的兼容,同时增加了一些可调参数和附加特性,这些参数和特性可以通过工厂类进行配置. 一.开发环境准备 要用到JBoss Marsharlling编解码就需要相应的jar包,这里我们需要引入其api和序列化类库. 首先在maven仓库中查找竟然没找到,只好官网下载了http://jbossmarshalling.jboss.org/downloads…
对于Windows 在 Security 方面的学习. 纯兴趣. UNIX 的另外开一条路线学习. 话说今天查gpedit.msc的资料的时候发现 M$ 官网上怎么连个文档都没有. 后来才点了 gpedit.msc 的 Help 才发现原来 M$ 官网是面对最终用户的. 技术人员要去 TECHNET.MICROSOFT.COM 才对! 先留个坑. 慢慢填 首先有个问题. QPCore, 360 等流氓服务的原理? 参考资料: http://www.zhihu.com/question/30848…
一.基础知识. 1:普通IO类型. 1,非阻塞IO:发出open/read/write等IO操作,并使这些操作不会永远阻塞.当不能完成时,会立即出错返回. 1)非阻塞的两种标志方式:指定标志:O_NONBLOCK. 2)非阻塞语义:文件状态标志的更改影响同一文件表项的所有用户,但与通过其他文件表项对同一设备的访问无关.(关联于文件表项) 2,异步IO(asynchronous IO). 1)机制:当描述符准备号可以进程IO时,发送一个信号通知进程. 1-仅当描述符引用中断设备或网络时,它才能起作…