• 2024-05-22Notes: Understanding the linux kernel Chapter 8 Memory Management
    dynamicmemoryPageFrameManagementPageDescriptorsusedtodistinguishthepageframesthatareusedtocontainpagesthatbelongtoprocessesfromthosethatcontainkernelcodeorkerneldatastructures.Similarly,itmustbeabletodeterminewhet
  • 2024-05-20arm64 下内核 crash—— 非法地址
    下面是在实际工作中遇到的一次内核(5.4.110)访问非法内存地址(空指针)导致出错的现场,在这里记录一下简单的分析流程为以后遇到类似的问题作为参考。[220.619861]UnabletohandlekernelNULLpointerdereferenceatvirtualaddress0000000000000023[220.628815]Memabort
  • 2024-05-15docker启动java容器报错unable to allocate file descriptor table - out of memory
    问题:启动java进程报错{"log":"libraryinitializationfailed-unabletoallocatefiledescriptortable-outofmemory","stream":"stderr","time":"2024-05-15T06:27:14.681052443Z"}原因:LimitNOFILE=infinity
  • 2024-04-28HarmonyOS 自定义装饰器
    1.引言在软件工程中,日志记录是监控和调试应用程序的重要工具。鸿蒙操作系统(HarmonyOS)支持自定义装饰器,这使得开发者可以方便地向类的方法添加日志记录功能。本文将介绍两个用于记录方法执行的自定义装饰器:LogMethod和logDecorator。2.装饰器基础装饰器是一种特殊类型的声明
  • 2024-04-12Protobuf_动态消息-反射
    protobufprotoc版本协议文件版本message消息中承载的数据分别对应于每一个字段都有一个名字和一种类型optionalrepeated:在格式正确的消息中,此字段类型可以重复零次或多次。系统会保留重复值的顺序字段规则字段类型字段名称=字段编号[default=0];
  • 2024-03-26线上gc问题-SpringActuator的坑
    整体复盘:一个不算普通的周五中午,同事收到了大量了cpu异常的报警。根据报警表现和通过arthas查看,很明显的问题就是内存不足,疯狂无效gc。而且结合arthas和gc日志查看,老年代打满了,gc不了一点。既然问题是内存问题,那么老样子,通过jmap和heapdump文件分析。不感兴趣的可以直接看结论
  • 2024-03-22@Autowired,@Resource,@Value,@Lazy注入的核心逻辑原理
    classDefaultListableBeanFactoryextendsAbstractAutowireCapableBeanFactory{@Override@NullablepublicObjectresolveDependency(DependencyDescriptordescriptor,StringrequestingBeanName,Set<String>autowiredBeanNames,TypeConverter
  • 2024-03-18文件描述符(File Descriptor, FD)和 poll 函数简介
    文件描述符(FileDescriptor,FD)是Unix和类Unix操作系统中用于标识进程打开的文件、设备或其他I/O资源的一个抽象概念。它是一个非负整数,由内核在进程打开或创建一个文件时分配给该进程。当应用程序通过系统调用如open()、socket()等操作打开一个现有文件、创建新文件或者创
  • 2024-03-07通过debug搞清楚.vue文件怎么变成.js文件
    前言我们每天写的vue代码都是写在vue文件中,但是浏览器却只认识html、css、js等文件类型。所以这个时候就需要一个工具将vue文件转换为浏览器能够认识的js文件,想必你第一时间就想到了webpack或者vite。但是webpack和vite本身是没有能力处理vue文件的,其实实际背后生效的是vue-loade
  • 2024-01-13聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇)
    聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇) 合集-聊一聊如何整合Microsoft默认的Ioc容器和Castle.Core(4) 1.聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(二)01-122.聊一聊如何结合Microsoft.Extension
  • 2024-01-13聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇)
    前言书接上回,上回我们了解了castle代理的一些缺点,本文将开始操作整合Microsoft.Extension.Dependency和Castle,以让默认的容器可以支持拦截器我们将以进阶的形式逐步完善我们的封装,以实现一个更方便易用、普适、高性能的基础设施库。基础版还是先上代码,这是基础版本我们
  • 2023-12-27RM520N Info
    RM520NInfo 如何检查设备中是否存在USB驱动:可通过检查/sys/bus/usb/drivers的目录确认是否存在USB驱动程序。例如root@glinet:~#ls/sys/bus/usb/driverscdc_ethercp210xqcserialums-cypressums-karmausb-stora
  • 2023-12-15device descriptor read/64, error -11
    硬件平台:CM48GRAM核心板Hardware:BCM2711Revision:d03141Serial:100000002297c853Model:RaspberryPiComputeModule4Rev1.1系统:树莓派32位OS问题背景:核心板是8GRAM,由于默认的PAGE_OFFSET是3G,所以内核分配的内存+DMA总大
  • 2023-12-13vulkan/descriptorSet
    参考Shaderlayout(binding=0)uniformUniformBufferObject{mat4model;mat4view;mat4proj;}ubo;layout(location=0)invec2inPosition;layout(location=1)invec3inColor;layout(location=2)invec2inTexCoord;layout(location=0)
  • 2023-12-01xv6 device driver
    Interruptsanddevicedrivers驱动程序是操作系统中管理特定设备的代码:它配置设备硬件,告诉设备执行操作,处理由此产生的中断,并与可能等待设备I/O的进程进行交互。驱动程序需要与它所管理的设备并发执行并且必须理解设备的硬件接口,编写代码可能很棘手。设备通常可以产生中断,内核
  • 2023-11-08Unity 自定义Postprocess Kawase Blur
    前言本篇将介绍如何通过添加RenderFeature实现自定义的postprocess——KawaseBlur关于RenderFeature的基础可以看这篇https://www.cnblogs.com/chenglixue/p/17816447.htmlKawaseBlur介绍因为毛神对于十大模糊算法的介绍已经整理得十分详细了,所以这里不会深入,但会大致讲讲它
  • 2023-11-08PE文件结构
    导入表typedefstruct_IMAGE_IMPORT_DESCRIPTOR{union{DWORDCharacteristics;//0forterminatingnullimportdescriptorDWORDOriginalFirstThunk;//RVA指向INT(PIMAGE_THUNK_DATA结构数组)}DUMMYUNIONNAME;
  • 2023-10-13使用Hot Chocolate和.NET 6构建GraphQL应用 —— 创建Attribute中间件
    需求在部分接口添加一个机器人校验的功能思路读者们可以看下使用HotChocolate和.NET6构建GraphQL应用(5)——实现Query过滤功能,我们可以自定义创建一个类似的特性中间件来对接口进行管理.添加了该特性的接口即可实现机器人校验功能.实现输入对象///用户输入public
  • 2023-10-08Spring源码解析——IOC属性填充
    正文doCreateBean()主要用于完成bean的创建和初始化工作,我们可以将其分为四个过程:最全面的Java面试网站createBeanInstance()实例化beanpopulateBean()属性填充循环依赖的处理initializeBean()初始化bean第一个过程实例化bean在前面一篇博客中已经分析完了,这
  • 2023-09-11操作系统高级教程
    关于访问控制,是CPU基于段实现的一种机制。而所谓的高低特权指令和数据,则是指高低特权的指令和数据。高特权指令可以访问高特权和低特权数据,低特权指令仅可以访问低特权数据注意以上仅仅是指令访问数据的规则,对于指令调用指令与之不同,无论是高特权还是低特权指令,均不能调用不同权
  • 2023-08-14library initialization failed - unable to allocate file descriptor table - out of memory 问题处理
    1、修改docker服务启动配置文件#vim/usr/lib/systemd/system/docker.service...[Service]...ExecStart=/usr/bin/dockerd-Hfd://--containerd=/run/containerd/containerd.sock--default-ulimitnofile=65536:65536#第13行...2、重新加载配置systemctldae
  • 2023-08-09Vulkan Descriptor绑定过程
    如果shader中的资源是这么排布的://vslayout(set=0,binding=0,std140)uniformUBO{mat4projection;mat4view;mat4model;}ubo;layout(location=0)invec3inPos;layout(location=0)outvec3outUVW;//fslayout(set=0,binding=1)uni
  • 2023-08-09使用MyEclipse如何部署Descriptor (XML)编辑器?
    Descriptor(XML)Editor编辑器包含了高级的XML编辑功能,在本文中您将了解到这些编辑功能、WebXML编辑等,此功能包含在MyEclipse中可用。MyEclipsev2023.1.2离线版下载MyEclipse技术交流群:742336981欢迎一起进群讨论1.WebXML编辑器MyEclipse WebXML编辑器包括高级XML编
  • 2023-06-28.net core IOC容器实现(三)--CallSite
    接着上面一节,这一节主要来看看callSite是如何生成的CallSite是通过CallSiteFactory.GetCallSite(TypeserviceType,CallSiteChaincallSiteChain)生成的,CallSiteFactory是在ServiceProvider里实例化的。代码如下privatereadonlyConcurrentDictionary<ServiceCacheKey,
  • 2023-06-20如何快速发现 ASP.NET Core 应用程序中的服务生命周期问题?【转】
    在ASP.NETCore中,内置了非常强大的依赖注入容器功能。但是,如果不正确使用,也可能会引起一些问题。问题下面我们通过一段示例代码来说明这个问题。public interface IServiceA{    string Get();}public interface IServiceB{    string Get();}public class S