
Linux相关
文章平均质量分 62
Linux相关
duhf_think
这个作者很懒,什么都没留下…
展开
-
PaddleOCR以及CUDA、cuDNN安装踩坑记录
安装cudnn,从官网(https://developer.nvidia.com/rdp/cudnn-download)下载安装包,如果是Ubuntu可以下载deb包直接安装,如果是CentOS则需要下载tar包自行解压,cudnn就是一堆头文件和链接库。找到提示报错的so文件后,后将文件软链到/usr/lib下(CentOS对应是/usr/lib64),并所在路径注册到LD_LIBRARY_PATH变量中(需要写在/etc/profile中,然后source一下)原创 2023-09-14 11:17:38 · 1139 阅读 · 0 评论 -
linux中断处理的上半部和下半部
中断处理程序的上半部在接收到一个中断时就立即执行,但只做比较紧急的工作,这些工作都是在所有中断被禁止的情况下完成的,所以要快,否则其它的中断就得不到及时的处理。剩下的其他工作都可由下半部分执行。DECLARE_TASKLET (my_tasklet,my_tasklet_func,data)实现了将名称为my_tasklet的tasklet与my_tasklet_func()函数相关联。但是,在大多数真实的系统中,当中断到来时,要完成的工作往往并不会是短小的,它可能要进行较大量的耗时处理。原创 2023-09-09 08:41:48 · 505 阅读 · 0 评论 -
软中断与硬终端描述
在前后台程序中,由于只有中断上下文和一个任务上下文,所以中断上下文触发事件,设置标记位,任务上下文循环扫描标记位,执行相应的动作,也就是中断发生之后的事情由任务来完成了,只不过任务上下文采用扫描的方式,实时性不能得到保证。软中断的一种典型应用就是所谓的"下半部"(bottom half),它的得名来自于将硬件中断处理分离成"上半部"和"下半部"两个阶段的机制:上半部在屏蔽中断的上下文中运行,用于完成关键性的处理动作;很多情况下,软中断和"信号"有些类似,同时,软中断又是和硬中断相对应的,"硬中断是。原创 2023-09-09 08:41:03 · 194 阅读 · 0 评论 -
大页内存(HugePages)原理
若给定的页号没有超出页表长度,则将页表始址与页号和页表项长度的乘积相加,得到该表项在页表中的位置,于是可以从中得到该页的物理块地址,将之装入物理地址寄存器中。此外,由于页表项有10M之多,而快表只能缓存几百页,即使程序的访存性能很好,在大内存耗费情况下,快表缺失的概率也很大。在配置好了页表后,进程执行时,通过查找该表,即可找到每页在内存中的物理块号。上述地址变换机构对中小程序来说运行非常好,快表的命中率非常高,所以不会带来多少性能损失,但是当程序耗费的内存很大,而且快表命中率不高时,那么问题来了。原创 2023-09-09 08:36:41 · 454 阅读 · 0 评论 -
Linux中select poll和epoll的区别
对于第二个缺点,epoll的解决方案不像select或poll一样每次都把current轮流加入fd对应的设备等待队列中,而只在epoll_ctl时把current挂一遍(这一遍必不可少)并为每个fd指定一个回调函数,当设备就绪,唤醒等待队列上的等待者时,就会调用这个回调函数,而这个回调函数会把就绪的fd加入一个就绪链表)。epoll_wait的工作实际上就是在这个就绪链表中查看有没有就绪的fd(利用schedule_timeout()实现睡一会,判断一会的效果,和select实现中的第7步是类似的)。原创 2023-09-09 08:34:52 · 508 阅读 · 0 评论 -
Linux下如何查看和调试进程信息
通过ldd(ld=ld depandency)命令输出进程二进制链接的共享库和模块依赖。通过vmstat命令的cs列可以查看系统的上下文切换,上下文切换越高,说明线程越多。通过strings命令查看嵌于二进制文件中的字符串。通过strace跟踪一个进程发出和接收的系统调用。通过strip命令去除符号表可以给可执行文件瘦身。通过pstree查看进程启用的子进程或线程。通过nm命令查看进程二进制的符号定义。通过lsof查看进程打开的文件句柄。通过file命令查看文件类型。通过pmap查看进程占用。原创 2023-09-09 08:31:37 · 211 阅读 · 0 评论 -
grep正则说明
范围是数字用,隔开 2,5 表示2~5个, 2表示2个,2, 表示2到更多个 ,注意,由于{ }在SHELL中有特殊意义,因此作为正则表达式用的时候要用\转义一下。行首与行尾字符 ^ $. ^ 表示行的开头,$表示行的结尾( 不是字符,是位置)那么‘^$' 就表示空行,因为只有行首和行尾。[] 内可以用范围表示,比如[a-z] 表示小写字母,[0-9] 表示0~9的数字, [A-Z] 则是大写字母们。利用[]搜索集合字符,[] 表示其中的某一个字符 ,例如[ade] 表示a或d或e。原创 2023-09-09 08:29:31 · 169 阅读 · 0 评论 -
vim的使用快捷键之删除、复制、粘贴
ctrl+r 与u相反,表示重做前一步操作(特别重要,类似于windows里面的word里面的crtl+y)nX n表示数字,表示向前删除每个字符,例如:10X表示删除光标前的10个字符,不包括光标所在字符。nx n表示数字,表示向后删除每个字符,例如:10x表示删除包括光标在内的后面10个字符。x 小写的x表示向后删除一个字符,也就是删除光标所在字符。X 大写的X表示删除光标前的一个字符,不包括光标所在字符。ndd n表示数字,删除光标所在的向下n行。nyy n表示数字,复制光标所在的向下n行。原创 2023-09-09 08:28:56 · 925 阅读 · 0 评论 -
ldconfig和ldd用法
ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表。2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到。行模块的dependency。原创 2023-09-09 08:28:12 · 282 阅读 · 0 评论 -
什么是Linux的Overcommit和OOM
注意:redis在dump数据的时候,会fork出一个子进程,理论上child进程所占用的内存和parent是一样的,比如parent占用 的内存为8G,这个时候也要同样分配8G的内存给child,如果内存无法负担,往往会造成redis服务器的down机或者IO负载过高,效率下降。在Unix中,当一个用户进程使用malloc()函数申请内存时,假如返回值是NULL,则这个进程知道当前没有可用内存空间,就会做相应的处理工作。合理的overcommit会被接受,不合理的overcommit会被拒绝。原创 2023-09-09 08:26:34 · 459 阅读 · 0 评论 -
Shell 字符串比较
这是最基本的比较方法,使用lt(小于),gt(大于),le(小于等于),ge(大于等于),优点:还没发现;方法四: if (echo ${A} - ${B} | bc -q | grep -q "^-");方法四:typeset C=${echo ${A} ${B} | awk '{print $1+$2}')5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true。缺点:还是只能比较整数。>= 大于等于(需要双括号),如:(("$a" >= "$b"))原创 2023-09-09 08:24:31 · 210 阅读 · 0 评论 -
Linux和UNIX系统监控工具
cron:可以让你安排进程执行的子系统。你可以安排这些实用程随着时间的推移定期收集统计信息,并可以在特定时间负载期间)查看统计信息。并显示用户登录数量和在 1分钟钟的内系统平均负荷量。vmstat:显示内存、分页、块传输和 CPU 活动的相关信息。iostat:显示平均磁盘活动和处理器负载情况。mpstat:显示多处理器系统的 CPU使用率。top:显示根据CPU使用率排序的活动进程。pmap:显示各种进程分别占用内存的情况。netstat:显示网络活动的相关信息。ps:显示系统上运行的进程列表。原创 2023-09-09 08:22:29 · 80 阅读 · 0 评论 -
Bash常见快捷键
中,熟记以下快捷键,将极大的提高你的命令行操作效率。原创 2023-09-09 08:19:28 · 805 阅读 · 0 评论 -
Ubuntu搜狗输入法美化与修复
虽然个人很喜欢Linux,但是shiyo原创 2014-11-25 10:14:38 · 2327 阅读 · 0 评论