linux
文章平均质量分 96
DivineH
这个作者很懒,什么都没留下…
展开
-
GDB命令基础,让你的程序bug无处躲藏
简介使用GDB启动运行设置/查看断点(breakpoint)设置/查看观察点(watchpoint)设置/查看捕捉点(catchpoint)维护停止点维护条件停止点停止点设置运行命令断点菜单恢复程序运行和单步调试信号产生信号量线程查看栈信息查看源码搜索源代码指定源文件路径源代码内存查看运行时数据查看内存自动显示设置显示选项历史纪录环境变量查看寄存器修改程序的执行跳转执行强制函数返回强制调用函数GDB语言环境退出技巧简介软件开发,或多或少会走上调试这条路。调试工具可以帮你更加深入了解整个程序的运行状态,.转载 2020-11-29 16:03:53 · 1351 阅读 · 1 评论 -
CPU体系架构与MSC锁
CPU体系架构SMPNUMAMPP自旋锁CLH锁MSC锁CPU体系架构SMPSMP(Symmetric Multi-Processor),对称多处理器结构,指服务器中多个CPU对称工作,每个CPU访问内存地址所需时间相同。其主要特征是共享,包含对CPU,内存,I/O等进行共享。SMP能够保证内存一致性,但这些共享的资源很可能成为性能瓶颈,随着CPU数量的增加,每个CPU都要访问相同的内存资源,可能导致内存访问冲突,可能会导致CPU资源的浪费,常用的PC机就属于这种,其架构简单,但是扩展性很差。.转载 2020-08-30 17:13:50 · 705 阅读 · 0 评论 -
内存缓存(cache)常用淘汰算法
简介缓存淘汰算法不可能实现的算法 OPT无脑算法 FIFO常见算法 LRU进阶算法 2Q进阶算法 LIRS参考资料简介在工程实践中,完成一个项目,通常可以分两步走:产品实现,即完成产品的编码,实现产品需求,能够提供所需的功能;产品优化,即对产品已有功能进行优化,可以是并发度、延时、qps等各个方面的优化;当然,也可以两步合一步走,在代码实现的同时,就将产品优化考虑进去,但实际情况,产品往往要求优先提供功能,即该产品要具有某种能力,所以开发周期比较偏短,难以将深层次代码优化一起考虑进去,实际情.原创 2020-08-30 15:10:59 · 4707 阅读 · 0 评论 -
Linux内核数据结构移植(list和rbtree)
简介list 介绍修改部分list.h 对外的接口使用示例 - 测试 list.h 中所有的list操作rbtree 介绍修改部分rbtree.h 对外接口使用示例简介主要移植了内核中的 list,rbtree。使得这2个数据结构在用户态程序中也能使用。同时用 cpputest 对移植后的代码进行了测试。(测试代码其实也是使用这2个数据结构的方法)内核代码的如下文件:(内核版本 v3.2 ...转载 2020-03-14 17:08:41 · 932 阅读 · 0 评论 -
Linux samba的配置和使用
目录背景samba是什么samba怎么安装samba怎么配置配置新创建的用户背景在最近学习FFmpeg的过程中自己使用了VMware Workstation安装的Linux(CentOS6)开发环境,在环境的搭建过程中需要使用samba,其实在日常工作中也经常使用samba,只是自己很少去亲自操作,而这次自己从头开始搭环境时遇到了一些问题,因此打算研究一下samba的常规使用方法和常见问题的解...转载 2019-10-08 23:08:04 · 316 阅读 · 0 评论 -
Make命令教程
简介Make的概念Makefile文件的格式概述目标(target)前置条件(prerequisites)命令(commands)Makefile文件的语法注释回声(echoing)通配符模式匹配变量和赋值符内置变量(Implicit Variables)自动变量(Automatic Variables)判断和循环函数Makefile 的实例执行多个目标编译C语言项目简介代码变成可执行文件,...转载 2019-08-18 15:20:03 · 894 阅读 · 1 评论 -
select poll epoll
简介select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核...转载 2018-08-17 16:04:18 · 265 阅读 · 0 评论 -
Linux—shell中$(( ))、$( )、``与${ }的区别
命令替换在bash中,$( )与` `(反引号)都是用来作命令替换的。命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。 exp 1[root@localhost ~]# echo today is $(date "+%Y-%m-%d")today is 2017-11-07[root@localhost ~]# ec...转载 2018-06-29 16:09:25 · 409 阅读 · 0 评论 -
Shell中的特殊符号和特殊变量
简介$0:当前脚本的文件名$n:第n个位置参数$*:传递给脚本或函数的所有参数,$*会将这些参数视为一个整体$@:传递给脚本或函数的所有参数,$@会将所有参数当作同一字符串中的多个独立的单词$#:脚本运行时携带的参数个数$?:最近一个命令的退出状态码$$:当前shell的进程ID(PID)$!:最近一个后台命令的PIDIFS:内部字段分隔符,IFS环境变量定义了shell用作字段分隔符的一系列字符...原创 2018-06-13 20:10:06 · 5550 阅读 · 0 评论 -
Linux系统运行级介绍
Linux系统内核创建的第一个进程(称为init进程)来启动系统上所有其他进程。当内核启动时,它会将init进程加载到虚拟内存中。内核在启动任何其他进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。Linux系统使用一个表来管理在系统开机时要自启的进程,这个表一般位于/etc/inittab或/etc/init.d目录中,一些开机启动或停止某个应用的脚本放在这个目录下。...原创 2018-06-02 19:52:38 · 727 阅读 · 0 评论