自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 资源 (15)
  • 收藏
  • 关注

原创 Linux内核源代码 学习笔记

一、内核源码下载和在线阅读地址Linux source code (v5.18.1) - BootlinIndex of /pub/linux/kernel/二、阅读源代码初次看源代码的同学问的最多的两个问题:2、1 使用什么IDE来阅读源代码?代码阅读工具是source insight2、2 网络协议栈源代码有哪些?由于linux内核代码非常的多,我只看网络协议栈相关代码,所以只需要导入以下的目录:目录结构以后再慢慢的调整,不着急。基础部分lib..

2021-05-29 10:35:10 1985 1

原创 云安全相关技术调研(开源项目)

一、Linux基础命名空间(Namespaces)命名空间隔离了相邻的进程,并且限制了容器所能看到的内容,因此可以防止攻击的蔓延。cgroups该工具限制了容器使用的资源,限制容器可以使用的内容,从而防止受感染的容器占用所有的资源。SeLinux该工具为内核提供访问控制。它强制执行“强制访问控制(MAC)”,依据策略控制了容器访问内核的方式。AppArmor该工具可以启用进程访问控制,可设置强制执行策略,亦可设置为仅在违反策略时发出报告。Secco...

2021-03-28 19:18:24 2758

原创 NTA流量分析基础 and 开源项目(持续整理)

软中断和硬中断区别hardirq和softirq软中断是执行中断指令产生的,而硬中断是由外设引发的。硬中断处理程序要确保它能够快速地完成任务,这样程序执行时才不会等待较长时间,称为上半部。软中断处理硬中断未完成的工作,是一种推后执行的机制,属于下半部。NAPI和DPDK的区别在大量数据传输时,在收到硬件中断后,通过poll方式将传输的数据一次性接收,大大提高了接收数据的效率cpu亲和性和绑核心每个cpu核心一个线程,核心之间访问数据无需加锁。为了减少线程调度的开销..

2021-03-25 09:55:48 1605 2

原创 如何有效的阅读开源代码

一、初步了解1.在下载源代码之后,先看下代码目录组织结构,如base代表基础库,net代表网络库等我2.开始阅读框架的源代码之前,先去google搜集下资料:这个框架是解决了什么问题?都是用了什么技术?分为多少个模块,每个模块之间有什么联系?尽量看官网英文的资料,因为中文技术博客的内容很多是错误的。3.试图将程序完整的跑起来,编译通过、修改配置文件,然后正常运行起来;这...

2020-06-25 08:26:55 3964 5

原创 《C++程序设计实践与技巧:测试驱动开发》 读书笔记(持续更新)

最近一直在读《C++程序设计实践与技巧-测试驱动开发》一书,这不仅仅是一本讲程序设计的书,更是一本使用gmock和gtest技术,秉承TDD(“测试驱动开发”)的理念的软件开发流程的好书。读这本书时,一定要参考随书源代码来读,直接阅读书籍总觉得感悟有点不深刻。在此记录下学习过程中的几个阶段:一、 2月10号 下载随书代码,并搭建运行环境1.升级cmake版本到3.16.5更换高版本...

2020-03-15 22:25:08 682

原创 比较杂的知识点合集

1.多线程访问stl容器时,记得对于begin、end、size、empty函数也加锁2.lamda表达式需要补起来啊。

2020-02-19 22:11:48 252 1

原创 程序员修炼之道(每周看一遍,迷茫时看一遍)

一、代码质量1.用自动化提升工作效率使用脚本将简单重复的工作自动化,能有效的提高工作效率,shell python 脚本的熟练使用,对工作是锦上添花2.逻辑清晰的代码,可读性和可维护性好代码逻辑简单明了,条理越清晰,代码隐藏的bug就越少,后续维护起来也越简单。代码逻辑混乱不清,条理越混乱,势必会造成后续的开发中犯错和维护中的bug产生3.多阅读同事的代码每...

2020-01-25 16:48:03 2185 2

原创 优秀博客学习资源(持续更新)

互联网时代,知识种类繁多且复杂,有好的也有坏的.而跟着大牛学则可以在一定程度上减轻知识学习的负担. 把个人时间和精力集中在高品质内容的学习和研究上.互联网时代跟着人来学知识要速度快一点.个人博客 Coolshell 后端技术 by Tim Yang 云风的 BLOG 陈硕的Blog 阮一峰的网络日志 花钱的年华 顶级C++社区 知行一 开涛的博客 廖雪峰的官方网站团队博客 云栖

2017-03-13 17:04:20 1936

原创 web 服务器功能模块设计(部分实现)

认准一件事后,就朝着这一件事走.做一个httpserver服务器,完整的代码,完整的设计.每个程序员都应该尝试下写博客 http://droidyue.com/blog/2017/01/02/why-every-programmer-should-try-to-write-blogs/ 今天确定下web server的框架.linux下使用libevent作为基础框架来搭建这个web serve

2017-01-03 13:27:43 3579

原创 go-containerregistry 实战篇之容器镜像下载

go-containerregistry 实战篇之容器镜像下载一、库介绍go-containerregistry 是 google 公司开源的用于处理容器镜像的golang客户端库,它提供了一个对镜像的操作接口,这个接口背后的资源可以是 镜像仓库的远程资源,镜像的tar包,甚至是 docker daemon 进程。它主要基于同名的python项目 下面我们就简单介绍下如何使用这个项目来完成我们的目标—— 在代码中解析镜像。库提供了crane和远程远程镜像进行交互。二、crane初体验2、1 c

2022-03-05 13:37:31 731

原创 K8S网络实践大纲(借鉴培训机构)

https://youdianzhishi.com/web/course/1021?utm_source=blog&utm_campaign=referral&utm_medium=tophero优点知识,专注云原生实战视频课程。https://youdianzhishi.com/web/course/1021?utm_source=blog&utm_campaign=referral&utm_medium=tophero在网上很多K8S网络实战教程的,其实给我们提供了很

2021-12-07 20:52:17 577

原创 仿写开源项目的正确方式

一、选择什么样的开源项目仿写?代码量小(在5000 ~ 10000行之间)有名气(值得去模仿)模块划分清晰(便于循序渐进)优先编写独立模块的代码,如groupcache中的LRU和ConsistentHash一致性哈希的代码。二、如何去模仿开源项目选择一个合适的commit点,使用tig快速浏览commit,选择代码量剩余5k左右的commit点。三、删除代码至500 – 1000 行左右删代码的过程也是熟悉代码结构的过程删代码比添加代码要难删减到拥有基础

2021-11-25 17:59:06 461

原创 分享如何高效学习的途径

高效学习一、找到更好的资料二、平时注重基础技术的学习,积累、总结三、画出知识图谱,明确需要学习的方向四、学习模板 1)技术出现的背景,要达到什么样的目标,解决了什么问题。 2)技术的优势和缺点 3)技术的适用场景,每种技术都有其擅长的和不擅长的,场景一般分为两种,业务场景 vs 技术场景 4)技术的组成部分和关键点,这是技术的核心思想和核心组件。 5)技术的底层原理和关键实现 6)横向和纵向进行对比,已有的开源项目是如何实现的此类思...

2021-11-23 12:02:38 310

原创 开源对程序员的影响

如何做开源?开源对技术人的影响理想中的开源开放的源代码详细的文档活跃的社区持续的改进如何做开源从小工具开始入手 bat文档要跟上(这块很多开源项目很需要)开始也是从写文档,录制视频教程来开始的,做一些工具类的东西。从小事开始做起,今天下班之前,必须把这个事情搞定。明天就开始弄其他的事情了。仿写各种开源的组件,仿写其简易版本,包括dpdk都可以弄个简易的版本出来。Go 的练手项目有哪些值得推荐? · GoCN社区...

2021-11-22 13:57:29 287

原创 浅谈编程实战提升

一、为什么想精进下编程能力1、1 提升解决问题能力先说明下,编程能力不仅仅是编码能力或者手敲代码,而是解决问题的问题,解决一个个遇到的问题。敲下每一行代码是简单的;想解决实实在在的问题不容易;1、2 训练量不够大学期间的编码训练,训练量不够无法引起质变,更别谈理解设计模式和架构设计。1、3 适当造轮子,加深对知识的理解对于公司项目,有造轮子的能力,更有不造轮子的觉悟,多么深刻的领悟,哈哈。同种类型的开源项目,如果你不满足于当一个CURD小子,多造轮子或参与开源是不

2021-11-03 21:03:34 340

原创 个人购买的付费工具

其中clion和goland这两个编程的IDE工具,一年就要消耗点1000块钱,所以平时一定要多写点代码,好赚回来,哈哈。clion 一年 $71.00 -> 453.33 冲着这个价格,都得多看点代码,多写点代码。goland 一年 $71.00 -> 453.33 每多写一行代码,我都感觉自己是赚的。知识共享学院 年卡 68(极客时间和慕课网的课程,重点突破)ProcessOn 一年 159 好好多画下图oneDrive 一年 298codecademy 年卡 淘宝买

2021-10-23 10:29:59 1984

原创 《有效训练你的研究能力》读书笔记

有效训练你的研究能力

2021-09-28 11:30:57 5305

原创 得到app专栏《如何成为有效学习的高手》学习笔记

《有效训练你的学习能力》一、找到适合自己的学习方法二、用任务来驱动学习以工作中的任务作为驱动,工作的任务有明确且真实存在的目标,做任务的过程中边赶边学,能看到距离目标越来越近,给人以成就感。以教为学(需加强),内心要有学完了要教会别人的思想来学习任何知识。三、解决拖延症四、在衣食住行上训练专注力一个人做事和学习的专注程度会决定做事效率。落实到实处,如何来提升专注力呢?1、买付费的编程软件(能力承受范围内)学习工具的金钱让自己心疼,买贵的,人真是贱皮子,辛苦得来

2021-09-28 11:28:15 253

原创 深入浅出学习vuls

一、vuls简介1、1 研究背景对于系统管理员,每天必须执行安全漏洞分析和软件更新可能会很麻烦。为了避免生产环境中的停机时间,系统管理员通常不使用包管理器提供的自动更新功能,而是手动执行更新。将会导致以下问题:1、系统管理员需要不断跟进NVD(国家漏洞数据库)或类似数据库以查找新漏洞。2、如果服务器上有大量已安装的软件包,则系统管理员可能无法监视所有软件。3、分析受新漏洞影响的服务器是代价昂贵的。在分析过程中可以忽略一个或两个服务器。Vuls用于解决以上问题,它有以下特征:通知用户与系统相关

2021-05-27 00:10:53 1527 4

原创 hashicorp go-plugin构建golang插件系统

一、go-plugin简介1、1 go-plugin是什么?我们知道Go语言缺乏动态加载代码的机制,Go程序通常是独立的二进制文件,因此难以实现类似于C++的插件系统。即使go的最新标准引入了go plugin机制,但是由于限制性条件比较多导致在生产环境中不是很好用,比如插件的编写环境和插件的使用环境要保持一致,如gopath、go sdk版本等。HashiCorp公司开源的go-plugin库解决了上述问题,允许应用程序通过本地网络(本机)的gRPC调用插件,规避了Go无法动态加载代码的缺点。go-

2021-04-26 23:43:45 1601

原创 如何辩证看待看视频学习(辩证法)

如何辨证的观看编程学习视频教程?好处:1、对初学者友好,按步操作,获得成就感看视频适合某个领域的编程初学者,可以考虑跟着视频操作 + 多动手练习,好好把基础夯实。视频是学习编程过程中的拐杖,有好处但是也容易产生依赖心理,看视频主要看代码实现思路,然后自己敲代码实现;亲自手敲代码期间,遇到问题是正常的,要把心态摆正,莫害怕犯错误,反而把犯错误当成发掘自身不足,把技术精进的好机会。出错就代表这块方面的内容自己掌握的不是很好,出错的地方恰恰是需要自己弥补和提高的地方,刚刚接触一个领域或

2021-04-12 17:50:26 272

原创 服务器开发——定时器

学习新东西时,首先我们想了解下这个东西有什么作用,它能解决什么样的实际问题,带来什么样的好处。 -----菜鸟语录文章导读1.概念性的介绍下定时器,定时器的使用场景2.定时器主流实现方式...

2021-04-08 16:12:36 3369 1

原创 C++11之lock_guard学习总结和代码实例

std::lock_gurad 是 C++11 中定义的模板类。定义如下:template<class _Mutex> class lock_guard { // class with destructor that unlocks mutexpublic: typedef _Mutex mutex_type; explicit lock_guard(_Mutex

2021-04-08 15:14:41 2829 1

原创 TcpFlow 1.4.6( C++版本)源代码分析之main函数分析

最近公司项目拟定使用tcpflow来分析http协议分析源代码后才能更好的利用源代码进行二次开发代码下载地址:https://github.com/simsong/tcpflow1.从main函数开始分析 第一步:process_infile函数处理-r 和 -R参数的pcap文件解析//打开pcap离线文件,根据pcap文件格式进行解析pd = pcap_open_offline(file_p

2021-04-08 15:10:38 1068

原创 C++11学习之share_ptr和weak_ptr

一、shared_ptr学习1.shared_ptr和weak_ptr 基础概念shared_ptr与weak_ptr智能指针均是C++ RAII的一种应用,可用于动态资源管理shared_ptr基于“引用计数”模型实现,多个shared_ptr可指向同一个动态对象,并维护了一个共享的引用计数器,记录了引用同一对象的shared_ptr实例的数量。当最后一个指向动态对象的shared_ptr销毁

2021-04-08 15:10:18 10031 4

原创 协程学习笔记(继续完善)

**一 协程是什么? 二 协程有什么好处?主要用来解决什么问题? 三 协程的原理和实现 四 协程的主要开源库有哪些**为什么觉得协程是趋势? https://www.zhihu.com/question/32218874一.协程概念介绍协程的历史 早在上世纪70年代,Donald Knuth提出coroutines不过是一种特殊的subroutines(过程调用),在一些

2021-04-08 15:09:27 742

原创 docker搭建lvs dr模式记录

一、自动部署https://github.com/paopaoyu/docker-lvs/参考上面这个地址二、手动部署2.1 lvs端部署脚本#!/bin/bash VIP=172.17.0.200 RIP1=172.17.0.3RIP2=172.17.0.4/etc/rc.d/init.d/functions case "$1" in start) ...

2021-04-07 19:12:38 722

原创 程序员 跨平台 and 跨语言 学习攻略

欢迎转载 转载请注明原文出处:写篇文章记录下,从windows平台编程到Linux平台编程的转变,以及从C++语言到java语言的学习转变,心态的调整。语言组织的很一般,请大家多多指教1.开发环境的转变,从vs转vi+makefile搞windows下都是使用visual studio可视化平台,vs这个集成开发环境爽的很,敲代码时有代码补全,调试时具有可视化环境,能够实时看到代码执行到什么行,变

2021-04-07 19:10:19 2393

原创 google搜索技巧 整理

1、双引号完全匹配的意思2、通配符程序报错后会有日志信息,直接采用出错信息来进行搜索比使用人类语言描述错误要搜索的更加精准。但鉴于错误信息可能长度比较长,而且包含特定场景下的类名、函数名、指针等,他们对于google搜索来说,可能是无用的,此时可采用通配符来进行搜索。2、site:xxx.com 使用特定域需要在特定的网站,搜索特定的内容3、去除结果 (减号)注意,减号前面必须有空格,后面必须没空格4、学术论文good网站https://schol...

2021-03-25 09:33:48 200

原创 抗ddos方法——对tcp标志的校验

在抗ddos工作中,tcp的防护主要是对tcp标志位的检测//全部tcp都填写和都不填写if (unlikely((tcp_hdr-&gt;tcp_flags &amp; TCP_FLAG_ALL) == TCP_FLAG_ALL ||(tcp_hdr-&gt;tcp_flags &amp; TCP_FLAG_ALL) == 0)) {retu...

2021-02-19 17:28:02 165 2

原创 谈谈更快更好的写代码

一、动手敲代码之前一定想清楚每次在动手敲代码之前,先默默问自己三遍你考虑清楚了吗?你考虑清楚了吗?你考虑清楚了吗?想清楚什么?程序流程,在脑子里面大概的过一遍,高手总是一遍遍的告诉我,动手敲代码之前一定要想清楚。想清楚一件事先做什么,再做什么,最后做什么,事情想清楚大概步骤以后,敲代码也会顺畅很多。成熟的程序员,切记不清不楚就开始写代码,先熟悉业务逻辑,然后熟悉代码逻辑,才可能写出在逻辑上、功能上bug很少的代码。二、代码的构建是循序渐进的,不断完善的过程放弃心中的.

2021-02-15 07:12:31 416

原创 groupcache 全方位解读之LRU篇

一、核心组件概览groupcache的核心组件,按照优先级列举如下:1、1 http部分peers接口singleflightLRUconsistenthashbyteviewsinksgroupcachepb参考文档:https://cloud.tencent.com/developer/article/1454568...

2021-01-29 19:58:52 684

原创 groupcache 全方位解读之基础篇

groupcache的官网文档太少了,几乎是没有,这篇文章是整合网上的文章加上自己的思考。目录一、groupcache简介二、项目代码目录结构三、编写demo并运行(玩耍吧,少年!)四、源代码流程分析4、1 读取缓存流程4、1、1 查询本地的maincache和hotcache缓存4、1、2 peer查询4、1、3 调用用户注册的回调函数回填缓存4、2 写入缓存流程5、总结一、groupcache简介1、1 功能和特性groupcache is a d

2021-01-29 14:32:34 1340 11

原创 《10x程序员工作法》读书笔记之任务分解

14、大师级程序员的工作秘笈大师级程序员每当遇到一件要做的事,把他分解成几个小任务,记录在一个清单上,然后才是动手写测试、写代码、重构这样一个小循环。等一个循环完成了,他会划掉已经做完的任务,开始下一个。一旦在解决问题的过程中遇到任务新问题,他会把要解决的问题记录在清单上,保证问题不会丢失,然后,继续回到自己正在处理的任务上。当他把一个个任务完成的时候,问题就解决完了。每个任务完成时,代码都是可以提交的。看上去简单,但是很多程序员都做不到。只有把任务分解到很小,才可能做到小步提交。而把任务分解到很小

2021-01-22 16:04:57 500

原创 go资料和博客收集(常看看)

golang好书《go设计与实现》https://draveness.me/golang/这本书最好是有一定的代码量以及工程实践再阅读比较好。go最佳实践https://dave.cheney.net/practical-go/presentations/qcon-china.htmlgo.cn这个酷站挺不错的https://gocn.vip/sites倪鹏飞的博客https://kubernetes.feisky.xyz/google C++ 最佳实践当时我看完这篇文章,真正

2020-12-20 08:53:11 212

原创 -D_GLIBCXX_USE_CXX11_ABI宏实验

带着问题学习是最好的1.-D_GLIBCXX_USE_CXX11_ABI宏的作用是什么?Dual ABI GCC 5 以后的版本,将std::string 与 std::list 重新实现了,对于c++03 与 c++11 来说, list<int> 从原有的 std::list<int> 变为了std::__cxx11::list<int> ,从原有的std::string变为了std::__cxx11::string,所以在链接的时候,为了兼容旧版本的代码

2020-09-11 20:38:54 4975 1

原创 《代码的艺术》直播笔记

技术(加强)编码能力,数据结构,算法系统结构,操作系统,计算机网络,分布式系统产品对业务的理解,交互设计,产品数据统计,产品/业务运营项目管理研究和创新Research && Development一个系统工程师的培养需要至少8至10年的时间在Coding的过程中,需要掌握:把握问题的能力建立模型的能力沟通协作的能力编码执行的能力写代码,要先建立起品味,知道什么是好代码?好的代码时从哪来的呢?首先,写代码时,严格要求自己的代码.

2020-08-27 10:59:02 225

原创 公司排查问题记录

SIG_PIPE:对端套接字已关闭,但是依旧往套接字中写入数据,会触发此信号handle SIGPIPE nostop noprintSIG_TERM:进程结束的信号

2020-06-30 09:12:22 162

原创 敏捷思维指导学习和工作

公司推行敏捷开发已有时日,我也尝试将敏捷的思想应用到实际生活中敏捷的思想:将大的需求通过AC分解成多个规模略小的任务,并评估出每个任务的规模,需要投入的时间(以人天为单位)一、任务拆解以读书会为例:将极客时间的Linux性能优化实战的课程拆分成5个阶段阶段1:CPU篇阶段2:内存篇阶段3:文件系统和磁盘篇阶段4:网络篇阶段5:综合篇每一个阶段需要写笔记,并统计笔记完成情况,来总结和检验自己是否学会,以及对知识的掌握程度,是浮在表面上?还是理解了技术的原理?二、里程

2020-06-28 09:42:07 284

原创 极客时间-linux性能优化 31~40

31.套路篇:磁盘 I O 性能优化的几个思路一、磁盘和文件系统的基准测试首先,对磁盘和文件系统进行基准测试然后,根据公司对磁盘和文件系统的应用场景,评估出性能优化的指标是多少?推荐fio测试工具随机读,顺序读,随机写,顺序写direct:是否跳过系统缓存iodepth:表示使用异步io时,同时发出的io请求上限rw:io模式,顺序读写还是随机读写ioengine:io引擎bs:表示IO的大小filename:文件路径结果输出slat,clat,lat都是

2020-06-23 08:35:18 558

vpp 源代码

vpp 官网源代码,从https://github.com/FDio/vpp 官网上下载的正版源代码,后续会持续更新,由于github上下载源代码特别的慢,所以传到csdn上方便大家

2018-04-25

DPDK学习之基础概念介绍

dpdk入门教程,学习dpdk的基础概念,dpdk新手的福音,后续还会有example分析文档,和源代码分析文档

2017-06-26

ubuntu和centos通用的smb.conf文件

ubuntu和centos通用的smb.conf通用文件,实现windows和linux下文件的共享,编程人员可以在windows下编写代码,然后在linux下编译运行代码。

2016-06-22

ddkwizard_setup_v1.3.0a+ddkbuild.bat+ddkbuild.cmd

ddkwizard_setup_v1.3.0a+ddkbuild.bat+ddkbuild.cmd 在win7 64位环境下搭建驱动开发环境必备工具 驱动开发 环境搭建(VS2008+WDK+DDKWzard)

2014-10-16

mp3文件格式详解

使用通俗易懂的语言一步步分析了mp3的文件格式,对于从事流媒体行业开放的技术人员非常有帮助

2014-06-06

学生考试管理系统

学生考试 管理系统 sql Server ADO操作类 sql Server的环境大家需要自己搭建,开启数据库时的路径,账号,密码,ip地址和端口,基本上都在ADO.h文件中,需要大家自己配置下

2014-02-26

VC++多线程 垃圾清理工具

VC++多线程 垃圾清理工具 一个积分都不要,是个练习多线程编程的不错的例子

2014-02-26

opencl 异构编程

opencl 异构编程

2013-03-26

Visual Assist X10.7.1912.0

VA X插件,很好用,代码高亮功能,书写API函数的时候有提示和自动完成的功能,使用以后会加快你的开发速度

2013-03-25

桌面管理工具fences sony侧边栏 stardock

桌面管理工具fences sony侧边栏 stardock

2013-03-25

调试_解密版

软件调试技术,帮助你更好的掌握工作中的内容

2012-12-31

实用C++程序设计

学习计算机语言最好的途径是编写和调试程序。凌晨两点还在琢磨一个有故障的程序,只是为了找出你在应该键入==的地方键入了=,这是一种非常有效的教学手段。本书包含许多有关常见编程错误的例子 本书内容涵盖: ·C++语法 ·代码编写标准和风格 ·对象类的创建和使用 ·模板 ·调试和优化 ·C++预处理器的使用 ·文件输入/输出

2012-12-31

windows远控源代码

自己写的windows远程控制,源代码,最近需要积分所以共享出来,其实5个积分也值了,不会的可以在csdn上私密我,我抽空回复

2012-08-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除