玩转Linux编程
文章平均质量分 91
编程实战营
爱老婆娃儿、爱技术、爱锻炼的小胖子,哈哈
展开
-
浅谈编程实战提升
一、为什么想精进下编程能力1、1 提升解决问题能力先说明下,编程能力不仅仅是编码能力或者手敲代码,而是解决问题的问题,解决一个个遇到的问题。敲下每一行代码是简单的;想解决实实在在的问题不容易;1、2 训练量不够大学期间的编码训练,训练量不够无法引起质变,更别谈理解设计模式和架构设计。1、3 适当造轮子,加深对知识的理解对于公司项目,有造轮子的能力,更有不造轮子的觉悟,多么深刻的领悟,哈哈。同种类型的开源项目,如果你不满足于当一个CURD小子,多造轮子或参与开源是不原创 2021-11-03 21:03:34 · 395 阅读 · 0 评论 -
服务器开发——定时器
学习新东西时,首先我们想了解下这个东西有什么作用,它能解决什么样的实际问题,带来什么样的好处。 -----菜鸟语录文章导读1.概念性的介绍下定时器,定时器的使用场景2.定时器主流实现方式...原创 2021-04-08 16:12:36 · 3496 阅读 · 1 评论 -
linux下条件变量的实验研究
linux下条件变量的触发属于边缘触发模式。实验一:#include <pthread.h>//基类的Waiterclass Waiter{public: virtual void wait()=0; virtual void signal()=0;protected: Waiter() { pthread_mutex_init(&mutex_,转载 2017-03-18 00:03:38 · 407 阅读 · 0 评论 -
-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 · 5214 阅读 · 1 评论 -
《C++程序设计实践与技巧:测试驱动开发》 读书笔记(持续更新)
最近一直在读《C++程序设计实践与技巧-测试驱动开发》一书,这不仅仅是一本讲程序设计的书,更是一本使用gmock和gtest技术,秉承TDD(“测试驱动开发”)的理念的软件开发流程的好书。读这本书时,一定要参考随书源代码来读,直接阅读书籍总觉得感悟有点不深刻。在此记录下学习过程中的几个阶段:一、 2月10号 下载随书代码,并搭建运行环境1.升级cmake版本到3.16.5更换高版本...原创 2020-03-15 22:25:08 · 721 阅读 · 0 评论 -
后台开发技术基础之无锁队列
1.kafaka是scala语言开发的,先安装下scala语言 先安装java开发环境,解压压缩包到指定目录,并设置环境变量.然后使环境变量生效.2.原创 2017-03-02 18:01:02 · 653 阅读 · 0 评论 -
cpu,内存,硬盘和指令的关系
CPU的工作:向内存要指令,然后操作各个类型的寄存器(如EAX,EBX,ECX,ESP,EBP)进行运算,执行命令.1.cpu如何通知硬盘装载数据到内存呢? cpu->系统总线->IO桥->IO总线->硬盘.cpu无法直接运行硬盘上的程序,需要硬盘先将程序拷贝到内存中,但是硬盘运输数据太慢了,所以想到了异步的方法,cpu通知硬盘运输什么数据,然后cpu去执行其他指令,在此期间,硬盘将数据运输到内存原创 2017-02-23 21:57:49 · 710 阅读 · 0 评论 -
epoll ET模式触发条件是什么?
linux下的网络模型,首推EPOLL模型 最近在思考,epoll ET模式触发条件是什么?1.ET模式下,对端发送1000字节数据,tcp内核缓冲区有1000字节数据,然后epoll通知我可读事件,我读取了200就不读了,内存缓冲区还剩余800字节,如果对端不继续发送数据,那么没法再次触发可读事件,这800字节就被丢掉了如果对端又发送了1个字节,那么会再次触发可读事件,现在内核缓冲区里原创 2018-01-23 15:00:32 · 502 阅读 · 0 评论 -
协程学习笔记(继续完善)
**一 协程是什么? 二 协程有什么好处?主要用来解决什么问题? 三 协程的原理和实现 四 协程的主要开源库有哪些**为什么觉得协程是趋势? https://www.zhihu.com/question/32218874一.协程概念介绍协程的历史 早在上世纪70年代,Donald Knuth提出coroutines不过是一种特殊的subroutines(过程调用),在一些原创 2021-04-08 15:09:27 · 758 阅读 · 0 评论 -
linux pthread_once和pthread_atfork,pthread_key_create
当调用pthread_key_create 后会产生一个所有线程都可见的线程特定数据(TSD)的pthread_key_t 值,调用pthread_setspecific 后会将每个线程的特定数据与pthread_key_t 绑定起来,虽然只有一个pthread_key_t,但每个线程的特定数据是独立的内存空间,当线程退出时会执行destructor 函数。pthread_once能保证多个线原创 2018-01-08 22:09:26 · 528 阅读 · 0 评论 -
DDOS知识总结
从DDoS的危害性和攻击行为来看,我们可以将DDoS攻击方式分为以下几类:a)资源消耗类攻击资源消耗类是比较典型的DDoS攻击,最具代表性的包括:Syn Flood、Ack Flood、UDPFlood。这类攻击的目标很简单,就是通过大量请求消耗正常的带宽和协议栈处理资源的能力,从而达到服务端无法正常工作的目的。1.UDP / ICMP洪水攻击UDP小包攻击,占用网络设备的带宽资...原创 2018-08-28 17:49:42 · 902 阅读 · 0 评论 -
L4Drop: XDP DDoS Mitigations 翻译 XDP DDOS 缓解
原文链接https://blog.cloudflare.com/l4drop-xdp-ebpf-based-ddos-mitigations/有效的丢包是Cloudflare公司环境DDoS攻击的关键所在。我们在丢包库中引入了一个新工具:L4DROP我们在过去已经写了大量关于DDoS缓解的文章,包括:GateBot:分析可疑流量,并部署和可疑流量相匹配的缓解措施bpftools...翻译 2019-04-10 19:03:52 · 1198 阅读 · 0 评论 -
进程打开文件进行写入时,使用vim打开文件进行写入导致fd文件描述符失效
今天解决了一个困扰一上午的问题,进程打开文件进行写入时,使用vim打开文件进行写入导致fd文件描述符失效https://www.douban.com/note/592324007/一、bug描述dpi v5程序在运行一段时间过后,程序的server日志不生成了.使用sed -i 修改了一个日志文件后,tail -f 发现该文件不再有输出了,最后,无奈,reload了下进程才能重写。二、做实验复现下面原创 2017-12-25 16:47:29 · 876 阅读 · 0 评论 -
Linux C++ 实现时间轮 优化超时检测机制
C++实现的时间轮tcp会话超时检测会话超时检测代码整洁原创 2016-07-24 03:00:58 · 4107 阅读 · 0 评论 -
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 · 3648 阅读 · 0 评论