
Linux
文章平均质量分 66
linux/ubuntu/centos
江太翁
这个作者很懒,什么都没留下…
展开
-
-pthread和-lpthread
这两个选项的效果是类似的,都可以使程序正确地使用多线程功能。选项则直接指定了pthread库的链接路径。它告诉编译器在链接阶段使用指定的pthread库文件(通常是。因为它可以自动处理与多线程相关的链接信息。如果你确定要指定pthread库的链接路径,可以使用。选项告诉编译器生成适用于多线程程序的可执行文件。它包含了多线程库的链接信息,以。但是,使用该选项时需要确保指定的库路径是正确的,否则可能会导致链接错误。.(我放弃了小'L'.)之后编译'make'没有错误。原创 2023-11-16 14:36:44 · 542 阅读 · 0 评论 -
使用Linux的dstat命令监控系统性能和资源
在Linux系统中,了解系统的性能和资源使用情况对于有效管理和故障排除至关重要。dstat是一个功能丰富的命令行工具,它提供了实时监控和统计系统性能和资源的能力。本文将介绍如何使用dstat命令来监控关键指标并显示实时统计信息和图表。转载 2023-10-24 17:37:52 · 1083 阅读 · 0 评论 -
readelf
系统里的目标文件是按照特定的目标文件格式来组织的,各个系统的目标文件格式都不相同。从贝尔实验室诞生的第一个Unix系统使用的是a.out格式(直到今天,可执行文件仍然称为a.out文件)。Windows使用可移植可执行(PortableExecutable,PE)格式。Mac OS-X使用Mach-O格式。现代x86-64Linux和Unix系统使用可执行可链接格式(Executable and Linkable Format,ELF)。转载 2023-10-19 19:45:00 · 242 阅读 · 0 评论 -
Linux内核malloc()背后的实现原理——内存池
内存池的原理。内存池是一种将对象预先分配到一块连续的内存中,用时直接从这块内存中获取对象的高效内存分配方式。相对于栈而言,堆这片内存面临着一个稍微复杂的行为模式:在任意时刻,程序可能发出请求,要么申请一段内存,要么释放一段已经申请过的内存,而且申请的大小从几个字节到几个GB都有可能,我们不能假设程序一次申请多少堆空间,因此,堆的管理显得较为复杂。转载 2023-09-21 10:13:13 · 540 阅读 · 0 评论 -
linux内存管理之malloc、kmalloc、kzalloc、vmalloc的区别
1)用于申请内核空间的内存;2)内存以字节为单位进行分配;3)所分配的内存虚拟地址上连续;4)都是基于slab机制。转载 2023-09-21 10:02:17 · 891 阅读 · 0 评论 -
VMware15 虚拟机分别设置连接笔记本的WLAN和以太网双网络
在虚拟网络编辑器中设置虚拟机的网路VMnet0和VMnet2分别桥接笔记本电脑的以太网口和wifi网口。设置虚拟机的网络适配器1和2绑定虚拟机的VMnet0和VMnet2。利用桥接模式分别设置笔记本电脑的以太网和WiFi网络,可以在虚拟机中跟电脑主机一样管理虚拟机的网络连接。转载 2023-07-11 22:18:42 · 2888 阅读 · 0 评论 -
TTL COM 电平
电平就是指电路中两点或几点在相同阻抗下电量的相对比值。这里的电量自然指“电压”、“电流”、“电功率”并将倍数化为对数,用“分贝”表示,记作“dB”。分别记作:10lg(P2/P1)、20lg(U2/U1)、20lg(I2/I1)上式中P、U、I分别是电功率、电压、电流。常用的电平有功率电平和电压电平两类,它们各自又可分为绝对电平和相对电平两种。而TTL电平就是指适合于ttl电路工作的电平。TTL的电源工作电压是5V,那么5V就可为高电平,0V为低电平。转载 2023-06-11 15:50:17 · 431 阅读 · 0 评论 -
SIGPIPE 信号
① 初始时,C、S连接建立,若某一时刻,C端进程宕机或者被KILL而终止(终止的C端进程将会关闭打开的文件描述符,即向S端发送FIN段),S端收到FIN后,响应ACK。② 假设此时,S端仍然向C端发送数据:当第一次写数据后,S端将会收到RST分节;当收到RST分节后,第二次写数据后,S端将收到SIGPIPE信号(S端进程被终止)SIGPIPE信号产生的规则:当一个进程向某个已收到RST的套接字执行写操作时,内核向该进程发送SIGPIPE信号。SIGPIPE信号产生的场景举例。转载 2023-01-13 17:16:49 · 198 阅读 · 0 评论 -
Man 命令
a:在所有的man帮助手册中搜索;-f:等价于whatis指令,显示给定关键字的简短描述信息;-P:指定内容时使用分页程序;-M:指定man手册搜索的路径。数字:指定从哪本 man 手册中搜索帮助;关键字:指定要搜索帮助的关键字。原创 2022-11-28 23:37:18 · 148 阅读 · 0 评论 -
多线程操作 pthread_create pthread_join
进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了变化:它只是资源分配的基本单位,而不再是调度运行的单位。在微内核系统中,真正调度运行的基本单位是线程。转载 2022-11-07 11:54:18 · 4732 阅读 · 0 评论 -
c++ 11特性
C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方面的知识,也得益于很多其他网友的总结。本博客文章是在学习的基础上,加上博主在日常工作中的使用C++11的一些总结、经验和感悟,整理出来,分享给大家,希望对各位读者有帮助,文章中的总结可能存在很多不完整或有错误的地方,也希望读者指出。大家可以根据如下目录跳到自己需要的章节。 1、关键字及新语法 1.1、auto关键字及用法 1.2、nullptr关键字及转载 2022-03-08 17:24:33 · 603 阅读 · 0 评论 -
Linux内核4级页表的演进
Linux内存管理中core VM代码中,关于页表(page tables)管理的代码是个重点,是虚拟内存(Virtual Memory, VM)的基石,本文探讨Linux的页表实现及发展过程。页表概览在虚拟内存中,页表是个映射表的概念, 即从进程能理解的线性地址(linear address)映射到存储器上的物理地址(phisical address)。很显然,这个页表是需要常驻内存的东西, 以应对频繁的查询映射需要(实际上,现代支持VM的处理器都有一个叫TLB的硬件级页表缓存部件,本文不讨论)。转载 2022-01-27 16:33:16 · 1642 阅读 · 0 评论 -
Translation Lookaside Buffer (TLB)
CPU每次访问虚拟内存,虚拟地址都必须转换为对应的物理地址。从概念上说,这个转换需要遍历页表,页表是三级页表,就需要3次内存访问。就是说,每次虚拟内存访问都会导致4次物理内存访问。简单点说,如果一次虚拟内存访问对应了4次物理内存访问,肯定比1次物理访问慢,这样虚拟内存肯定不会发展起来。幸运的是,有一个聪明的做法解决了大部分问题:现代CPU使用一小块关联内存,用来缓存最近访问的虚拟页的PTE。这块内存称为translation lookaside buffer(TLB)。TLB的工作机制如下。对于一次虚拟转载 2022-01-27 16:05:32 · 1747 阅读 · 0 评论 -
linux ffmpeg推流 到 srs
ffmpeg录屏ffmpeg 已开启 x11grabffmpeg version 2.8.17-0ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609 configuration: --prefix=/usr --extra-version=0ubuntu0.1 --build-suffix=-ffm...原创 2021-08-26 12:15:37 · 751 阅读 · 0 评论 -
GDB与shell 调试
GDBgcc -g -o hello hello.cgdb hello带参数(gdb) set args a b cgdb调试命令(最常用的) run : 程序第一次执行,到第一个断点位置暂停。如果没有断点,则一直执行程序直至完成 run 后面可以加上参数,作为主函数main的参数 run 可简写为 r start : 进入逐行调试模式, 不会一次性执行完整个程序 ...原创 2021-08-11 17:28:06 · 1402 阅读 · 0 评论 -
小技巧整理
1 如何找出nginx配置文件的所在位置a ps -ef | grep nginxb 找出配置文件路径/usr/local/openresty/nginx/sbin/nginx -t原创 2021-07-30 15:46:13 · 120 阅读 · 0 评论 -
centos7进入桌面环境
1.需要安装 Gnome 包sudo yum groupinstall "GNOME Desktop" "Graphical Administration Tools"2 在系统下次启动的时候自动进入图形界面,就需要更改系统的运行级别sudo ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target1.重启系统...原创 2021-07-21 10:48:21 · 2328 阅读 · 0 评论 -
log4cxx ubuntu18.04
log4cxx现在是apache的一个项目,用来记录日志。看名字就知道,是给c++使用的。gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)log4cxx依赖于apache 的 apr 和 apr-util,所以安装顺序是: apr, apr-util, log4cxx。1.软件包下载apr: http://apr.apache.org/download.cgi..原创 2021-07-19 17:40:56 · 236 阅读 · 0 评论