- @[toc] 第一章 操作系统概述1,操作系统定义:操作系统(Operating System)使计算机系统中的一个==系统软件==,是一些程序模块的集合,它能以尽量有效,合理的方式==组织和管理计算机的软硬件资源==,合理组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得计算机系统高效地运行。(没有广泛接受的标准定义)2,操作系统中一些名词解释名词解释ROM(Read-O... @[toc] 第一章 操作系统概述1,操作系统定义:操作系统(Operating System)使计算机系统中的一个==系统软件==,是一些程序模块的集合,它能以尽量有效,合理的方式==组织和管理计算机的软硬件资源==,合理组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得计算机系统高效地运行。(没有广泛接受的标准定义)2,操作系统中一些名词解释名词解释ROM(Read-O...
- 源码角度了解Skywalking之告警机制是怎么实现的 告警初始化 检查是否触发告警 发送告警信息 告警信息持久化 发送告警信息给第三方 总结 源码角度了解Skywalking之告警机制是怎么实现的我们在使用Skywalking的时候有没有想过它的告警机制是怎么实现的呢,本篇文章就介绍一下它的告警机制的实现机制skywalking插件的源码部分在server-alarm-plugin 模块... 源码角度了解Skywalking之告警机制是怎么实现的 告警初始化 检查是否触发告警 发送告警信息 告警信息持久化 发送告警信息给第三方 总结 源码角度了解Skywalking之告警机制是怎么实现的我们在使用Skywalking的时候有没有想过它的告警机制是怎么实现的呢,本篇文章就介绍一下它的告警机制的实现机制skywalking插件的源码部分在server-alarm-plugin 模块...
- 源码角度了解Skywalking之Trace可以跨线程吗 使用 实现原理 CallableOrRunnableConstructInterceptor CallableOrRunnableInvokeInterceptor beforeMethod()方法 afterMethod()方法 总结 源码角度了解Skywalking之Trace可以跨线程吗Trace信息是一个重要的信息,那么Sk... 源码角度了解Skywalking之Trace可以跨线程吗 使用 实现原理 CallableOrRunnableConstructInterceptor CallableOrRunnableInvokeInterceptor beforeMethod()方法 afterMethod()方法 总结 源码角度了解Skywalking之Trace可以跨线程吗Trace信息是一个重要的信息,那么Sk...
- 源码角度了解Skywalking之Skywalking是如何进行JVM监控的 JVMService prepare()方法 boot()方法 run()方法 Sender run()方法: 总结 源码角度了解Skywalking之Skywalking是如何进行JVM监控的大家都知道Skywalking可以监控Java的JVM情况,包括垃圾回收情况等等,那么它是怎么实现的呢?今天就带大家一探... 源码角度了解Skywalking之Skywalking是如何进行JVM监控的 JVMService prepare()方法 boot()方法 run()方法 Sender run()方法: 总结 源码角度了解Skywalking之Skywalking是如何进行JVM监控的大家都知道Skywalking可以监控Java的JVM情况,包括垃圾回收情况等等,那么它是怎么实现的呢?今天就带大家一探...
- 源码角度了解Skywalking之Skywalking是怎么收集Trace信息的 Trace信息收集 Trace信息的发送 总结 源码角度了解Skywalking之Skywalking是怎么收集Trace信息的上篇文章我们了解到SKywalking的Trace信息的生成和采样,今天我们分析一下Skywalking是怎么收集这些Trace信息发送给OAP的。 Trace信息收集Trace信息... 源码角度了解Skywalking之Skywalking是怎么收集Trace信息的 Trace信息收集 Trace信息的发送 总结 源码角度了解Skywalking之Skywalking是怎么收集Trace信息的上篇文章我们了解到SKywalking的Trace信息的生成和采样,今天我们分析一下Skywalking是怎么收集这些Trace信息发送给OAP的。 Trace信息收集Trace信息...
- 源码角度了解Skywalking之Trace信息的采样一条请求链路产生那么多trace信息,skywalking是每条trace都进行采集吗?显然不是,这就涉及到skywalking的采样了,我们看一下SKywalking是怎么对Trace信息进行采样的 采样采样涉及到的类是SamplingService,在上篇文章中我们分析ContextManager的createEntrySpan()... 源码角度了解Skywalking之Trace信息的采样一条请求链路产生那么多trace信息,skywalking是每条trace都进行采集吗?显然不是,这就涉及到skywalking的采样了,我们看一下SKywalking是怎么对Trace信息进行采样的 采样采样涉及到的类是SamplingService,在上篇文章中我们分析ContextManager的createEntrySpan()...
- 源码角度了解Skywalking之Trace信息的生成TraceId是分布式链路的一个信息,可以通过它定位一条链路 TraceId的生成Skwalking的TraceId的生成是通过GlobalIdGenerator的generate()方法来生成的,第一部分:具体是应用程序实例 ID第二部分:线程 ID第三部分:时间戳*10000+当前线程中的 seq,seq的值介于 0(包含)和 99... 源码角度了解Skywalking之Trace信息的生成TraceId是分布式链路的一个信息,可以通过它定位一条链路 TraceId的生成Skwalking的TraceId的生成是通过GlobalIdGenerator的generate()方法来生成的,第一部分:具体是应用程序实例 ID第二部分:线程 ID第三部分:时间戳*10000+当前线程中的 seq,seq的值介于 0(包含)和 99...
- 源码角度了解Skywalking之建立连接与服务注册这篇文章主要讲一下Agent与OAP建立连接并进行服务注册。从SkyWalking的启动流程SkyWalkingAgent的premain()中我们了解到调用ServiceManager.INSTANCE.boot()来启动插件服务,并分析了利用SPI机制加载配置的各种插件的BootService,然后依次遍历BootService实例,... 源码角度了解Skywalking之建立连接与服务注册这篇文章主要讲一下Agent与OAP建立连接并进行服务注册。从SkyWalking的启动流程SkyWalkingAgent的premain()中我们了解到调用ServiceManager.INSTANCE.boot()来启动插件服务,并分析了利用SPI机制加载配置的各种插件的BootService,然后依次遍历BootService实例,...
- 源码角度了解ConcurrentLinkedQueueConcurrentLinkedQueue是基于链表的线程安全的队列,队列遵循先进先出的策略,新元素插入到尾部,获取元素获取的是队列的头部元素,队列的元素不可以为null一开始头部指针和尾部指针都指向null 入队列方法offer()方法offer()方法是将元素插入队列尾部,因为队列是无界的,这个方法永远不会返回falsepublic... 源码角度了解ConcurrentLinkedQueueConcurrentLinkedQueue是基于链表的线程安全的队列,队列遵循先进先出的策略,新元素插入到尾部,获取元素获取的是队列的头部元素,队列的元素不可以为null一开始头部指针和尾部指针都指向null 入队列方法offer()方法offer()方法是将元素插入队列尾部,因为队列是无界的,这个方法永远不会返回falsepublic...
- 这篇文章比较特殊,是一篇穿插答疑文章,由于刚好在前一篇教程`《驱动开发:内核枚举PspCidTable句柄表》`整理了枚举句柄表的知识点,正好这个知识点能解决一个问题,事情是这样的有一个粉丝求助了一个问题,想要枚举出驱动中活动的线程信息,此功能我并没有尝试过当时也只是说了一个大致思路,今天想具体聊一聊这个话题,也想聊一聊自己对粉丝们的想法。 这篇文章比较特殊,是一篇穿插答疑文章,由于刚好在前一篇教程`《驱动开发:内核枚举PspCidTable句柄表》`整理了枚举句柄表的知识点,正好这个知识点能解决一个问题,事情是这样的有一个粉丝求助了一个问题,想要枚举出驱动中活动的线程信息,此功能我并没有尝试过当时也只是说了一个大致思路,今天想具体聊一聊这个话题,也想聊一聊自己对粉丝们的想法。
- 在笔者上一篇文章`《驱动开发:Win10枚举完整SSDT地址表》`实现了针对`SSDT`表的枚举功能,本章继续实现对`SSSDT`表的枚举,`ShadowSSDT`中文名`影子系统服务描述表`,SSSDT其主要的作用是管理系统中的图形化界面,其`Win32`子系统的内核实现是`Win32k.sys`驱动,属于GUI线程的一部分,其自身没有导出表,枚举`SSSDT`表其与`SSDT`原理基本一致。 在笔者上一篇文章`《驱动开发:Win10枚举完整SSDT地址表》`实现了针对`SSDT`表的枚举功能,本章继续实现对`SSSDT`表的枚举,`ShadowSSDT`中文名`影子系统服务描述表`,SSSDT其主要的作用是管理系统中的图形化界面,其`Win32`子系统的内核实现是`Win32k.sys`驱动,属于GUI线程的一部分,其自身没有导出表,枚举`SSSDT`表其与`SSDT`原理基本一致。
- 在笔者上一篇文章`《驱动开发:内核枚举Registry注册表回调》`中我们通过特征码定位实现了对注册表回调的枚举,本篇文章`LyShark`将教大家如何枚举系统中的`ProcessObCall`进程回调以及`ThreadObCall`线程回调,之所以放在一起来讲解是因为这两中回调在枚举是都需要使用通用结构体`_OB_CALLBACK`以及`_OBJECT_TYPE`所以放在一起来讲解最好不过。 在笔者上一篇文章`《驱动开发:内核枚举Registry注册表回调》`中我们通过特征码定位实现了对注册表回调的枚举,本篇文章`LyShark`将教大家如何枚举系统中的`ProcessObCall`进程回调以及`ThreadObCall`线程回调,之所以放在一起来讲解是因为这两中回调在枚举是都需要使用通用结构体`_OB_CALLBACK`以及`_OBJECT_TYPE`所以放在一起来讲解最好不过。
- 在前面的文章中`LyShark`一直在重复的实现对系统底层模块的枚举,今天我们将展开一个新的话题,内核监控,我们以`监控进程线程`创建为例,在`Win10`系统中监控进程与线程可以使用微软提供给我们的两个新函数来实现,此类函数的原理是创建一个回调事件,当有进程或线程被创建或者注销时,系统会通过回调机制将该进程相关信息优先返回给我们自己的函数待处理结束后再转向系统层。 在前面的文章中`LyShark`一直在重复的实现对系统底层模块的枚举,今天我们将展开一个新的话题,内核监控,我们以`监控进程线程`创建为例,在`Win10`系统中监控进程与线程可以使用微软提供给我们的两个新函数来实现,此类函数的原理是创建一个回调事件,当有进程或线程被创建或者注销时,系统会通过回调机制将该进程相关信息优先返回给我们自己的函数待处理结束后再转向系统层。
- 在笔者上一篇文章`《驱动开发:内核枚举进程与线程ObCall回调》`简单介绍了如何枚举系统中已经存在的`进程与线程`回调,本章`LyShark`将通过对象回调实现对进程线程的`句柄`监控,在内核中提供了`ObRegisterCallbacks`回调,使用这个内核`回调`函数,可注册一个`对象`回调,不过目前该函数`只能`监控进程与线程句柄操作,通过监控进程或线程句柄,可实现保护指定进程线程不被终止 在笔者上一篇文章`《驱动开发:内核枚举进程与线程ObCall回调》`简单介绍了如何枚举系统中已经存在的`进程与线程`回调,本章`LyShark`将通过对象回调实现对进程线程的`句柄`监控,在内核中提供了`ObRegisterCallbacks`回调,使用这个内核`回调`函数,可注册一个`对象`回调,不过目前该函数`只能`监控进程与线程句柄操作,通过监控进程或线程句柄,可实现保护指定进程线程不被终止
- 在笔者上一篇文章`《驱动开发:内核注册并监控对象回调》`介绍了如何运用`ObRegisterCallbacks`注册`进程与线程`回调,并通过该回调实现了`拦截`指定进行运行的效果,本章`LyShark`将带大家继续探索一个新的回调注册函数,`PsSetLoadImageNotifyRoutine`常用于注册`LoadImage`映像监视,当有模块被系统加载时则可以第一时间获取到加载模块信息,需要 在笔者上一篇文章`《驱动开发:内核注册并监控对象回调》`介绍了如何运用`ObRegisterCallbacks`注册`进程与线程`回调,并通过该回调实现了`拦截`指定进行运行的效果,本章`LyShark`将带大家继续探索一个新的回调注册函数,`PsSetLoadImageNotifyRoutine`常用于注册`LoadImage`映像监视,当有模块被系统加载时则可以第一时间获取到加载模块信息,需要
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签