- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 linux 可执行文件启动流程
linux ELF文件启动流程一、背景 最近看了《linkers and loader》和以前学习《程序员的自我修养》,但是看了理解不是特别透,所以就想通过一个实际的案例来把了解到知识串起来,因此就想到把linux 识别和启动elf可执行文件流程梳理下,巩固自己所学。二、内容2.1 基础知识 无论是通过shell还是通过system函数的方式去调用新的命令,他底层的调用接口都是通过linux函数族实现的,linux主要的函数如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下
2021-10-29 21:54:05
1371
原创 内存泄漏定位思路整理
一次内存泄漏定位之旅一、问题描述 我们自己写的软件,在常稳的压力测试中,大概每天会增长1G左右的内存,这个内存增加量是非常之巨大并且影响也是非常严重的。二、基础知识准备 既然要定位内存泄漏,那肯定不能够直接凭眼睛看和屏蔽代码的方式,这样的效率低并且很大概率是找不到问题所在的,所以还是要依赖工具,下面就介绍一下基本工具使用:1. valgrind(神器):这个工具堪称是内存泄漏定位神器,基本上linux设备上的内存泄漏都可以通过这个工具进行定位,但是这个工具有一个本身的缺陷就是它是在软件层面模拟
2021-08-31 14:40:57
407
原创 计算机组成原理读书总结
计算机组成原理读书总结一、学习目标 通过对本书的阅读,让我自己对计算机底层各个硬件间的协作有了一更加清晰的认识,主要的包括CPU内部系统工作机制以及CPU与内存、CPU与I/O间的数据协同实现机制。二、主要内容整理2.1 内存 计算机的内存主要有以下几类,分别适用不同的场景:内存类型存储的设备适用场景主存SRAM、DRAM、DDRAM、ROM(MROM、PROM、EPROM、EPPROM、FLASH)主要是存储数据量相对较大,需要CPU进行较快访问的数据缓存
2021-04-03 10:31:15
383
1
原创 OPENCL编程学习
OPENCL编程学习一、基本介绍 OPENCL(open computing language) 是一个工业级开放的异构编程标准,它同时提供了一个并行编程的框架和封装库,可以让编程人员编写高性能并且可移高的代码。二、基础内容 下面将从四个方面对opencl进行阐述,分别是基本框架、内存组织、执行模型、编程模型:2.1 基本框架 opencl基本框架如下图: 关键字释义Compute Device计算设备(GPU/ANIC/FPGA)Compu
2021-04-02 14:16:05
411
原创 CUDA编程学习
CUDA编程学习一、背景介绍 CDUA(compute unified device architecture) 主要的设计目标是针对CPU和GPU进行异构编程,极大限度提升代码执行效率。二、基础内容2.1 GPU 硬件架构学习一、GPU架构的演进背景 由于在传统CPU体系架构下,软件执行效率的提升主要依靠CPU指令处理效率的提升,但是在2003后因为功耗和散热问题致使CPU的执行执行效率不能在以前的基础上有大规模的提升,为了进一步提升CPU执行效率人们转向多核并行处理器架构,但是C
2021-04-02 14:11:18
372
原创 路由协议
路由协议一、背景 自己了解这块主要是有两个原因: 1. 工作相关的主要是从事网络相关的TCP/IP数据相关处理; 2. 自己以前也了解过二层、三层相关的协议,但是接触的不多所以一直对这块理解不是特别深;二、路由协议分类 路由协议分类如下: 工程上用的比较多的就是: ospf 、rip、bgp,但是ospf 和 rip数据交互都是基于组播方式进行通信而bgp基于单波方式进行的,因此ospf、rip只能在较小的规模范围内部署比较方便,当网络规模比较大的时候还是推荐bgp路由协议
2021-01-05 15:12:03
149
原创 协程
协程(coroutine)一、定义 协程是由Melvin Conway于1958年首次提出,这个概念主要是针对线程和进程上的差别进行区别的(进程:操作系统管理单元,线程:代码执行控制单元),由于进程和线程都由操作系统进行控制管理,所以进程和线程上下文切换就需要进行操作系统权限切换相对代价比较高,协程就是在这样的一个理念上提出的,他们的一个关系属于一对多的关系(process->threads->corotines)。二、协程原理 协程上下文切换主要是在用户层进行,并且由用户自己进行执
2020-12-24 17:16:25
174
2
原创 C++ std::move, std::forward
C++ std::move, std::forward一、摘要 本文主要是针对std::move 和std::forward 转换原理和功能特性进行阐述,我比较喜欢从源码的方式进行,这个比较直观并且更能够明白实现细节二、右值引用解析规则 转换规则1:引用表达式解析等价结果A& &A&A& &&A&A&& &A&A&& &&A&a.
2020-11-04 15:15:20
121
原创 加速器行业看法
加速器行业看法背景岁月荏苒,时光如梭不知不觉间在加速器行业已经呆了将近三年左右的时间了,对加速器行业也算是有了一个比较清晰的认识,从某种意义上讲加速器行业其实就类似国家的基建行业,政府出资让基建公司(中铁一建、二建)来承建,然后政府有外包给其它服务型公司来管理和收取费用,加速器公司就类似于外包服务的公司,基础承建商类似阿里、腾旭这些IDC基础服务提供商。行业介绍加速器该行业诞生主要是有两点原因(在中国):GFW 屏蔽某些服务; 常规用户线路网络通信传输效果不好;所以加速器行业就是在.
2020-08-19 14:25:10
459
原创 定位windows 1903系统不可用思路整理
问题出现场景 当加速奇游加速器后关机重启后,电脑就会出现各种问题,主要体现网络不可用,并且很多windows功能都不能用,主要体现就是ipconfig不可以用,还有netsh这个命令也是不可以用。复现问题确定场景在本地搭建windows 1903对加速器各个模式场景下,进行重启复现,发现只要加速openvpn对应模式重启后就会出现网络不可用,这样就确定是openvpn...
2020-03-09 20:58:15
352
4
原创 浅谈windows NRTP
基本介绍Windows nrtp(Name Resolution Policy Table) 即域名解析策略表,主要是针对dnsclient进行域名解析策略功能表,配置方式有全局和dnsclient策略模式,配置域名分流方式主要是使用dnsclient策略模式。主要场景介绍配置dnsclient策略模式主要是使用Add-DnsClientNrptRulepowershell命令进行...
2020-03-09 20:40:42
1607
原创 设计模式整理
设计模式总结概述本篇文章主要是对大话设计模式读书笔记并结合自己对编程的理解做了一点的提炼。设计模式原则2.1 开放-封闭原则对扩展开放对修改关闭。2.2 依赖倒转原则提倡面向抽象编程或面向接口编程,不能面向具体细节。2.3 单一职责原则类设计时尽量保证,单一类只做一件相关性事情。2.4 迪米特法则尽量少暴露类的成员变量,保持类的封装性。具体设计模式特点...
2020-03-02 21:33:02
141
原创 git 常用文章总结
Git常用命令小结一、 下载代码1. git clone url 将url存储库克隆到新的目录下;2. git checkout 切换到url下的另外分支 git checkout branchnamegit checkout file 回退当前文件修改git checkout . 回退当前目录下所有修改git checkout –bbranchname(git
2017-11-08 23:31:11
175
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人