
linux
文章平均质量分 93
Huo的藏经阁
linux爱好者,平时喜欢阅读内核源码,从源码角度解开操作系统神秘面纱
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
影响程序性能的几个关键因素
由于摩尔定律的限制,单核cpu早已经难以满足性能要求,现代所使用的cpu架构一般都是使用多核架构,多核架构其实对程序编程有更好的要求,《Is parallel Programming Hard and if so, What can't You Do About it》一书中总结了几个影响程序性能的几个关键因素Pipelined Cpus(CPU流水线)现代CPU都是采用流水线方式,来支持同时运行多个指令,早期1980年代cpu流水线分为取指(fetched an instructiom)、译码(d原创 2021-11-28 15:49:31 · 1284 阅读 · 0 评论 -
linux 关于虚拟内存的几个系统调用
《linux/UNIX系统编程手册》中提到的一个关于虚拟内存的几个系统调用,在有些场景下需要对应用程序的虚拟内存进行进一步的调优时经常需要用到这几个系统调用。mprotectmproect系统调用主要用于修改内存区域上的权限,函数原型如下:#include <sys/mman.h>int mprotect(void *addr, size_t len, int prot);addr: 所要修改的虚拟内存区域的起始地址,其中addr地址必须与系统页(sysconf(_SC_P原创 2021-11-15 21:37:50 · 2412 阅读 · 0 评论 -
linux mmap系统调用
brk/mmaplinux 提供了两个比较重要的系统调用brk 和mmap,用于向内核申请相应用户空间,内核会根据系统运行状态判定是否申请新的VMA来管理新申请的用户空间,brk和mmap在整个系统中都占有非常重要的地位。brk()系统调用被gblic进行了进一步封装成malloc接口,用户层程序一般都是通过调用malloc,由glibc间接调用brk来向内核申请用户空间。brk申请的用户空间属于堆空间 mmap系统调用也可以向内核申请用户空间,不过与brk不同的师,mmap申请的空间属于mma.原创 2021-08-26 21:39:15 · 1008 阅读 · 0 评论 -
linux /proc文件系统(1)
Proc文件系统proc文件系统是linux 中比较重要的的一个文件系统,在sysfs文件系统没有出现之前,它可以说是用户层获取内核层信息的唯一方式,它是一个一种特殊的、由软件创建的文件系统,proc内的文件并不是真正‘real' 文件,而是一种描述进程信息的伪 文件系统(process information pesudo-file sysrem), 被用来描述系统运行信息(比如系统内存,设备挂载,或者是硬件配置等).常常用来控制或者描述内核信息。在系统初始化阶段proc文件系统会被挂载到/proc目原创 2021-02-27 22:03:11 · 1370 阅读 · 0 评论 -
linux 如何查看进程内用户虚拟空间分布
linux用户空间占用0~3G范围内,但不是每个进程都能将地址占满(其实很少有占满情况),在内核中一般使用vm_are_struct结构来表示一块使用的用户空间,相当于把用户空间切割成一块块的范围转化常vm_are_struct进行管理,每块区域不会出现交叉,在用户中一般可以使用/proc/PID/maps来查看每个进程的用户空间分布...原创 2020-08-09 07:57:35 · 725 阅读 · 0 评论 -
linux 如何查看一个进程空间所装载的共享库
linux中每个进程空间都为共享库划分了专门区域,如下所图查看一个进程所有已被映射的区域可以使用/proc/PID/maps看到例如原创 2020-07-29 09:16:59 · 560 阅读 · 0 评论 -
ubuntu中将git 提交编译器nano 修改为vim
Ubuntu下git提交代码时终端默认的编辑器为nano, 使用起来非常不方便一般使用 Vim 来为提交代码 git commit 添加comments更好用。设置方法操作步骤如下:修改 ~/.bashrc文件,在最后一行增加:export EDITOR=/usr/bin/vim重启终端,再提交代码的时候就会默认使用VIM编辑也可以在当前终端中之间设置环境变量,省去了重开终端。...原创 2020-05-16 15:07:06 · 461 阅读 · 0 评论 -
从sockaddr结构获取IP和端口
前言 从sockaddr结构中提取IP, 先将结构sockaddr转为sockaddr_in结构,然后用在利用相关API将其中的IP地址从网络格式转化我们熟悉点分十进制的字符串。一、sockaddr和sockaddr_in结构程序员不应操作sockaddr结构,sockaddr是给操作系统用的程序员应使用sockaddr_in来表示地址,sockaddr_in区分...转载 2020-02-05 12:29:58 · 4616 阅读 · 0 评论 -
ubuntu Could not get lock /var/lib/dpkg/lock解决方法
安装ubuntun ssh遇到以下问题magicdepth@magicdepth-UP-APL01:~$ sudo apt-get install openssh-serverE: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to loc...原创 2020-01-09 11:04:53 · 410 阅读 · 0 评论 -
/proc/net/tcp中各项参数说明
/proc/net/tcp中的内容由tcp4_seq_show()函数打印,该函数中有三种打印形式,我们这里这只列出状态是TCP_SEQ_STATE_LISTENING或TCP_SEQ_STATE_ESTABLISHED的情况,如下所示:...转载 2020-01-08 10:10:20 · 530 阅读 · 0 评论 -
Linux环境编译时报错/lib64/libdl.so.2: could not read symbols: Invalid operation
今天编译遇到一下问题:/usr/lib64/libdl.so.2: error adding symbols查了下资料,所用的第三方库用到了dlclose之类的库1、问题描述Linux环境编译时报错/usr/bin/ld: /home/src/lib***.so: undefined reference to symbol 'dlsym@@GLIBC_2.2.5'/usr...转载 2019-11-27 19:41:37 · 6069 阅读 · 2 评论 -
Ubuntu下通过命令打开图片
xdg-open命令会根据系统的默认打开方式打开一个文件,比如图片、音频等。想要打开一个图片,但是这个图片又不在可以看到的文件夹下面,就需要通过命令的方式打开了。比如打开~/.local/share/icons文件夹下面的png图片,就可以通过以下命令:xdg-open ~/.local/share/icons/xxx.png#替换自己想要打开的图片名称...转载 2019-10-30 13:45:09 · 1473 阅读 · 0 评论 -
ubuntu中由apt-get获得的文件包保存在哪里?
ubuntu中由apt-get获得的文件包保存在/var/cache/apt/archives;通过apt-get命令下载的软件包,放在/var/cache/apt/archives 目录下;下载文件位置可以在/etc/apt/source.list文件中指定。...转载 2019-10-08 17:05:02 · 1383 阅读 · 1 评论 -
ubuntu自带截图工具--方便好用
ubuntu自带的截图工具感觉能够满足基本的截图功能,可以不必安装另外的截图软件。一般用到的截图类型有三种:全屏、当前活动窗口、自定义区域,其中自定义区域截图是最灵活也是我们用的最多的方式。在ubuntu下可以通过其自带的截图工具轻松实现这三种功能。ubuntu自带的截图工具为screenshot,可以在Dash home中搜索找到(如下图),打开之后就可以进行三种基本截图功能...转载 2019-08-16 14:50:42 · 389 阅读 · 0 评论 -
Ubuntu 在终端下使用命令行打开pdf文件
终端下使用命令行打开pdf文件> evince <文件名>&使用evince命令在后台打开使用鼠标打开感觉怪怪的原创 2019-08-19 16:35:21 · 855 阅读 · 0 评论 -
Ubuntu16.04 python2.7升级python3.5
正常情况下,你安装好ubuntu16.04版本之后,系统会自带python2.7版本,如果需要下载新版本的python3.5,就需要进行更新。下面给出具体教程: 1.首先在ubuntu的终端ternimal输入命令:sudo apt-get install python3 (博主选择的是安装python3.5,命令为:sudo apt-get install python3.5)...转载 2019-08-06 10:58:24 · 290 阅读 · 0 评论 -
ubuntu16.04 升级内核
一、环境 在虚拟机上运行的ubuntu16.04 , 使用命令uname -r查看当前系统内核版本 当前版本为4.15.0-45-generic. 要升级的内核为4.20.2 二、准备需要的材料 到网址https://kernel.ubuntu.com/~kernel-ppa/mainline/下载要升级的内核版...转载 2019-08-06 10:43:50 · 653 阅读 · 0 评论 -
linux笔记_timeval
/* * Structure used in select() call, taken from the BSD file sys/time.h. */struct timeval { long tv_sec; /* seconds */ long tv_usec; /* and microseconds */};...原创 2019-07-26 16:51:36 · 1268 阅读 · 0 评论