linux
文章平均质量分 66
锐湃
这个作者很懒,什么都没留下…
展开
-
Linux eventfd 原理与实践
本文摘自,完整教程请查阅 https://yuandaimaahao.github.io/AndroidFrameworkTutorialPages/转载 2023-10-10 10:16:35 · 187 阅读 · 0 评论 -
Linux IO 多路复用 epoll 机制
在 Linux 中:IO 就是对文件的读写操作多路是指同时读写多个文件复用是指使用一个程序处理多个文件的同时读写问题来了,为什么需要多路复用,为了快,要给每一个 fd 通道最快的感受,要让每一个 fd 觉得,你只在给他一个人跑腿。为了更快的处理多路 IO,大体有两种方案:一种方案是:一个 IO 请求(比如 write )对应一个线程来处理,但是线程数多了,性能反倒会差。另外一种方案是: IO 多路复用接下来,我们就来看看 IO 多路复用:我不用任何其他系统调用,能否实现 IO 多路复用?转载 2023-10-10 10:09:57 · 62 阅读 · 0 评论 -
Linux timerfd 的基本使用
本文摘自写给应用开发的 Android Framework 教程,完整教程请查阅 https://yuandaimaahao.github.io/AndroidFrameworkTutorialPages/转载 2023-10-10 10:04:47 · 157 阅读 · 0 评论 -
最近很火的反调试,你知道它是什么吗?
我们日常开发中,永远离不开debug调试,断点技术一直是我们排查bug的有力手段之一!随着网络安全意识的逐步提高,对app安全的要求就越来越高,(有朋友不太了解这个概念,这里我解释一下,就是通过调试技术,比如我们可以反编译某个apk,即使apk是release包,同样也可以进行反编译后调试,比如最新版本的jadx)的技术也渐渐深入我们开发者的眼帘,那么我们来具体看看,android中,同时也是linux内核中,是怎么处理调试程序的!转载 2023-09-07 09:58:40 · 225 阅读 · 0 评论 -
VSS、RSS、PSS、USS
Proportional Set Size,实际使用的物理内存,它与RSS不同,它会按比例分配共享库所占用的内存。这部分内存完全是该进程独享的。例如,如果有三个进程共享一个占30页内存控件的共享库,每个进程在计算PSS的时候,只会计算10页。PSS是一个非常有用的数值,如果系统中所有的进程的PSS相加,所得和即为系统占用内存的总和。进程被杀死后,它所占用的共享库内存将会被其他仍然使用该共享库的进程所分担。产生误导,因为它包含了所有该进程使用的共享库所占用的内存,一个被加载到内存中的共享库可能有很。转载 2023-08-15 14:24:29 · 530 阅读 · 0 评论 -
开发中VSS、RSS、PSS、USS的区别
表示一个进程在RAM中实际使用的空间地址大小,它按比例包含了共享库占用的内存。假如有3个进程使用同一个共享库,那么每个进程的PSS就包括了1/3大小的共享库内存。在实际中很少用这种方式来表示进程占用内存的情况,用它来表示单个进程的内存使用情况是不准确的。RSS可能会产生误导,因为它报告进程使用的所有共享库的总数,即使共享库只加载到内存中一次,无论有多少进程使用它。表示一个进程在RAM中实际使用的空间地址大小,包括了全部共享库占用的内存,这种表示进程占用内存的情况也是不准确的。转载 2023-08-15 14:21:47 · 605 阅读 · 0 评论 -
frp工具实现内网穿透
上述命令会先检测本地是否已下载frpc工具,如果没有会先从docker官方下载对于的docker容器,另外如果容器正在运行,那么需要先清除当前docker,然后再运行。注意:上7000是frp服务端口,7500为frp dashboard管理端口, 7001端口是用于映射本地web服务的80端口。frp主要作用是实现内网穿透,将内外网端口进行映射,这样如果我想访问局域网内的某项服务,那么我直接访问公网上相对应的映射端口即可。所以如果主机上未安装docker的,请先安装docker。访问内网的HTTP服务。转载 2023-07-19 09:50:01 · 694 阅读 · 0 评论 -
是时候了解下 mmap 了
由上图可以看出,进程的虚拟地址空间,由多个虚拟内存区域构成。使用mmap需要注意一点,mmap映射区域大小必须是物理页大小(page_size)的整数倍,原因是:内存的最小粒度是页,而进程虚拟地址空间和内存的映射单位也是以页为单位,为了匹配内存操作,mmap从磁盘到虚拟地址空间的映射也必须是页。5、为映射分配新的虚拟地址区域后,通过待映射的文件指针,在文件描述符表中找到对应的文件描述符,通过文件描述符,链接到内核“已打开文集”中该文件结构体,每个文件结构体维护者和这个已经打开文件相关各项信息。转载 2023-06-07 15:31:34 · 2819 阅读 · 1 评论 -
执行shell命令的工具类
shell执行命令的工具类原创 2023-05-09 14:23:00 · 237 阅读 · 0 评论 -
Android FD 文件描述符 泄露总结
简述最近在项目中碰到一个跟FD相关的crash,从log中获取到信息如下经过一番奋斗终于解决,然后调研了下这个之前没碰到过的东西,发现还挺重要挺常见的,但是又不容易被发现,在此记录。什么是FDFD(File Descriptor)文件描述符在形式上是非负整数,它是一个索引值,指向内核为每个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。转载 2023-05-04 17:53:09 · 1011 阅读 · 0 评论 -
关于 Linux 最大文件句柄数量限制问题 ulimit -n
有人认为 ulimit -n,限制用户单个进程的文件最大打开数量,严格来说这个说法是错误的。并且即使是非 root 用户的最大文件数设置不能超过 limits.conf 的设置,这也只是一个表象,实际上是因为,每个用户登录进来,ulimit -n 的默认值是 limits.conf 的 soft nofile 指定的,但是对于非 root 用户,ulimit -n 只能越来越小,不能越来越大,其实这个才是真正的原因,不过最后的结果还是一样的,即非 root 用户无法超过 limits.conf 设置的值。转载 2023-05-04 17:26:40 · 1758 阅读 · 0 评论 -
Linux的文件描述符个数限制导致创建文件(或socket)失败的问题
这就涉及到/proc/net/tcp(udp对应/proc/net/udp)文件了,其中也列出了相应socket的inode号通过比对此字段,我们能在/proc/net/tcp下获得此套接口的其他信息,如对应的对,窗口大小,状态等信息。在碰到的这个实际问题中,相关进程的FDSize一起来就已经到了1024,而用ulimit -n查看进程打开的fd限制刚好是1024,再用/proc/进程号/fd中去查看个数是五百多个,这时还是未真正出错的时候。转载 2023-05-04 17:19:18 · 384 阅读 · 0 评论 -
linux内核线程分析报告
root@221-comecs tmp]# ps -Lf 3735 进程共启动了n个线程。/proc/pid/schedstat 分。/proc/pid/stat 分。/proc/schedstat 总。/proc/stat 总。转载 2023-05-04 17:13:30 · 124 阅读 · 0 评论 -
linux查看某个进程内存占用情况以及/proc/pid/status解释
State: S (sleeping) /*进程的状态信息,具体参见http://blog.chinaunix.net/u2/73528/showart_1106510.html*/CapPrm: 0000000000000000 /*进程能够使用的能力,可以包含CapEff中没有的能力,这些能力是被进程自己临时放弃的*/VmExe: 576 kB /*程序所拥有的可执行虚拟内存的大小,代码段,不包括任务使用的库 */SigQ: 0/8183 /*待处理信号的个数/目前最大可以处理的信号的个数*/转载 2023-05-04 17:09:53 · 2984 阅读 · 0 评论 -
Android 查看当前应用的线程数是否超限
cat /proc/sys/kernel/threads-max,针对不同设备的结果不同,一般情况下,低端机型threads-max比较小,当某一应用的线程数超过threads-max容易出现oom问题。版权声明:本文为CSDN博主「王的博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。其中PID就是进程号,所以我们的目标应用com.wwy.setup的进程号就是 14985。如果Threads数超出规定的上限,我们就必须考虑怎么去降低线程数了,进行线程优化。转载 2023-04-26 16:24:17 · 964 阅读 · 0 评论 -
查看某个进程占用空间大小 VmHWM VmRSS终极总结
查看某个进程占用空间大小 VmHWM VmRSS终极总结转载 2023-04-25 16:06:31 · 780 阅读 · 0 评论 -
linux 查看进程占用内存
1.toptop -b -n 1 |grep opera|awk '{print "cpu:"$9"%","mem:"$10"%"}'cpu:0.0% mem:26.4%2. ps aux其中:RSS-------------进程实际占用物理内存大小;VSZ--------------任务虚拟地址空间的大小3./proc/pid/status[root@localhost ~]# cat /proc/self/statusName: catState: R (running...转载 2021-04-13 15:01:06 · 376 阅读 · 0 评论 -
linux /proc/pid/smaps各字段含义
/proc/$PID/smaps第一行:08048000-080bc000 地址空间的开始地址 - 结束地址r-xp 属性。前三个是rwx(读、写、可执行),如果不具有则为“-”。最后一个是p/s(私有/共享)00000000 偏移量。如果这段内存是从文件里映射过来的,则偏移量为这段内容在文件中的偏移量。如果不是从文件里面映射过来的则为0.03:02 If the region was mapped from a file, this is the major and minor devic转载 2021-04-13 14:43:14 · 1053 阅读 · 0 评论 -
Linux proc/pid/task/tid/stat文件详解
[root@localhost~]#cat/proc/6873/stat6873(a.out)R6723687367233481968738388608770004195831002503058826541409024564294967295134512640134513720321557904002097798000000017000[root@localhost~]#每个参数意思为:参数...转载 2021-04-10 17:23:43 · 804 阅读 · 0 评论 -
linux下查看线程信息 /proc/pid/status /proc/pid/task/tid/status文件说明
一、ps查看线程信息 参数说明:-L Show threads, possibly with LWP and NLWP columns-TShow threads, possibly with SPID column-m Show threads after processes,同时显示进程和线程时使用,最经常使用;名词解释:LWP:light weight process,linux下面表示线程;SPID:system process id,linux下面表示...转载 2021-04-10 17:18:16 · 6823 阅读 · 0 评论 -
android系统/proc/pid/status性能数据获取
需要用到随机读取File类,常规的File IO流读取不到数据public static void getProcessStatus(String pid) { try { RandomAccessFile reader2 = new RandomAccessFile("/proc/"+ pid +"/status", "r"); String str; while ((str = reader2.readL.原创 2021-03-29 22:37:45 · 1463 阅读 · 0 评论 -
PROC系列之/proc/pid/status
[root@localhost ~]# cat /proc/self/statusName: catState: R (running)SleepAVG: 88%Tgid: 5783Pid: 5783PPid: 5742TracerPid: 0Uid: 0 0 0 0Gid: 0 0 0 0FDSize: 256Groups: 0 1 2 3 4 6 10VmSize: 6588 kBVmLck: 0 kBVmRSS: 400 kBVmData: 144 kBVmStk:..转载 2021-03-29 22:25:55 · 411 阅读 · 0 评论 -
centos6.5-64bit安装htop
首先启用 EPEL Repository:yum -y install epel-release启用 EPEL Repository 後, 可以用 yum 直接安裝 Htop:yum -y install htop安裝好 Htop 後, 啟動只需執行 "htop" 指令:htop 按F5显示树形结构,输入进程号22922回车,查找到目标进程,按大写的H键,隐藏转载 2017-12-01 00:32:28 · 475 阅读 · 0 评论 -
Linux :service network restart :bringing up interface eth0:unknown connection
暑假开始拿了本linux的书自虐,在安装gnome桌面环境之后,service network restart之后又发现bringing up interface eth0:unknown connection 【Failed】我只是用vi /etc/sysconfig/network-scripts/ifcfg-eth0修改了ip而已啊,报的错误是未知连接然后是uuid,同时ifconf转载 2017-12-01 00:31:27 · 1042 阅读 · 0 评论 -
CentOS 6.5 配置IP地址的三种方法
实验软件环境:虚拟机VMware Workstation10.0 、CentOS 6.5 32位 客户机 Windows 71、自动获取IP地址虚拟机使用桥接模式,相当于连接到物理机的网络里,物理机网络有DHCP服务器自动分配IP地址。#dhclient 自动获取ip地址命令#ifconfig 查询系统里网卡信息,ip地址、MAC地址 分配到ip地址后,用物理机进行转载 2017-12-01 00:29:30 · 1133 阅读 · 0 评论 -
Linux下查看网关方法
Linux下查看网关方法: 1、route -n 2、ip route show 3、traceroute www.prudentwoo.com -s 100 【第一行就是自己的网关】 4、netstat -r 5、more /etc/network/interfaces 【Debian/Ubuntu Linux】转载 2017-11-30 23:27:29 · 4594 阅读 · 0 评论 -
centos 6.5安装VMware tools
系统描述:win7旗舰版64位系统+VMware Workstation10+CentOS6.5(win7系统上安装了VMware Workstation10虚拟化软件,在该虚拟化软件上安装了CentOS6.5),现在我想要在win7系统和CentOS系统之间传递数据,那么我 只要在虚拟机上安装VMware tools工具并启动共享目录即可。 1.安装步骤1、VMware转载 2017-11-30 00:57:47 · 3949 阅读 · 0 评论 -
Xshell实现Windows上传文件到Linux主机
1.登录centos 6.5系统,使用root用户登录,如果为非root用户则执行su或su - 或su root或su - root切换为root用户。2.查看SSH是否安装(检查是否装了SSH包)。输入命令:rpm -qa | grep ssh如图所示说明centos 6.5系统已经为我们默认安装了SSH包。注:若没安装SSH则可输入:yum install openssh-server安转载 2017-11-29 23:08:16 · 327 阅读 · 0 评论 -
centos 6.5下安装、配置并启动SSH远程访问
此文章已于 23:08:05 2017/11/29 发布到 chuyouyinghe的专栏 centos 6.5下安装、配置并启动SSH远程访问 1.登录centos 6.5系统,使用root用户登录,如果为非root用户则执行su或su - 或su root或su - root切换为root用户。2.查看SSH是否安装(检查是否装了SSH包)。输入命令:rpm原创 2017-11-30 00:18:39 · 454 阅读 · 0 评论 -
CentOS安装scp命令
在测试中需要在两台虚拟机之间传递文件,首先想到的是scp命令,结果提示:-bash: scp: command not found想当然用yum install scp命令安装,结果提示:No package scp available.后来发现scp这东西应该属于openssh-clients这个包,运行:yum install ope转载 2017-12-01 17:24:07 · 1284 阅读 · 0 评论 -
解决“/bin/bash^M: bad interpreter: No such file or directory”
在执行shell脚本时提示这样的错误主要是由于shell脚本文件是dos格式,即每一行结尾以\r\n来标识,而unix格式的文件行尾则以\n来标识。 查看脚本文件是dos格式还是unix格式的几种办法。(1)cat -A filename 从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$。(2)od -t x1 filename 如果看到输出内容中存在0转载 2018-01-02 00:14:01 · 1313 阅读 · 0 评论 -
在Linux中如何修改root帐户的登录用户名
vi /etc/passwd按i键进入编辑状态修改第1行第1个root为新的用户名按esc键退出编辑状态,并输入:x保存并退出vi /etc/shadow按i键进入编辑状态修改第1行第1个root为新的用户名按esc键退出编辑状态,并输入:x!强制保存并退出详见:修改root登录用户名减少阿里云Linux主机“被暴力破解”警告转自:https转载 2017-12-29 00:49:44 · 21946 阅读 · 1 评论 -
VMWare克隆CentOS后虚拟网卡无法启动
大家在学习linux时,会建立linux虚拟模板,然后我们会创建克隆,但克隆会查看启动过程会发现网卡无法启动,此时我们需要如下操作。vi /etc/sysconfig/network-scripts/ifcfg-eth0#vi编辑器编辑这个文件。#按i进入编辑模式,删除HWADDR和UUID这两行。然后按esc退出编辑模式,按:wq保存并退出。#清空以下文件>/etc/udev/ru转载 2017-12-29 00:52:21 · 300 阅读 · 0 评论 -
Vmware虚拟机设置固定IP地址
一、在菜单栏选择编辑→ 虚拟网络编辑器,打开虚拟网络编辑器对话框,选择Net网络连接方式,随意设置子网IP,点击NAT设置页面,查看子网掩码和网关,后面修改静态IP会用到。注:上面的“使用本地DHCP服务……”这一项是没有钩选的二、检查物理主机 网卡设置,打开网络和共享中心→ 更改适配器设置→,在VMware Network Adapter VMnet8上单击右键,选择属性按钮打开属性对话框。 ...转载 2018-05-10 12:53:47 · 2923 阅读 · 0 评论 -
Bringing up interface eth0: Error: No suitable device found: no device found for connection 'System
遇到的问题:# service network restartShutting down loopback interface: [ OK ]Bringing up loopback interface: [ OK ]Bringing up interface eth0: Error:...转载 2018-05-10 12:55:01 · 205 阅读 · 0 评论 -
解决 Error:No suitable device found: no device found for connection "System eth0"
解决使用VMware克隆出来的新虚拟机无法联网的问题一.背景 我们安装好了一个虚拟机,我想做分布式集群,想模拟几台服务器,这时就想直接复制已经有的安装好的虚拟机,这样比较省事,不要在重复的安装虚拟机并配置JAVA环境,省掉做同样的事情,这时直接复制,这样之前配置的JAVA环境都有了。二.问题 这时我复制好的虚拟机,启动登陆进去(用户名和密码跟之前那台是一样的),修改好IPADDR,然后网卡...转载 2018-05-10 13:00:36 · 1781 阅读 · 0 评论 -
ssh连接时去掉“The authenticity of host xx can’t be established”解决方法
一个彻底去掉这个提示的方法是,修改/etc/ssh/ssh_config文件(或$HOME/.ssh/config)中的配置,添加如下两行配置:StrictHostKeyChecking noUserKnownHostsFile /dev/null修改好配置后,重新启动sshd服务即可。centos7重启ssh服务命令为systemctl restart sshd.service转自:https:...转载 2018-07-06 15:54:18 · 11368 阅读 · 0 评论 -
shell 基础 $(cd `dirname $0`;pwd)
$ cd `dirname $0` 和PWD%/* shell变量的一些特殊用法在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的"."。这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。在/home/admin/test/下新建test.sh内容如下:cd `dirn...转载 2018-08-29 17:50:28 · 710 阅读 · 0 评论 -
阿里 yum 源设置
阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/CentOS系统更换软件安装源第一步:备份你的原镜像文件,以免出错后可以恢复。mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup第二步:下载新的CentOS-Base.repo 到/etc/yum.rep...转载 2018-09-27 10:18:29 · 3754 阅读 · 0 评论 -
CentOS 6.5系统安装配置图解教程
相关设置如下: 操作系统:CentOS 6.5 64位 IP地址:192.168.21.129 网关:192.168.21.2 DNS:8.8.8.8 8.8.4.4 备注: CentOS 6.5系统镜像有32位和64位两个版本,生产服务器如果是大内存(4G以上内存) 建议安装64位版本CentOS-6.5-x86_64-bin-DVD1.转载 2017-11-29 22:55:16 · 259 阅读 · 0 评论