kernel

Linux中Kdump服务的配置

删除回忆录丶 提交于 2020-02-16 09:44:44
Kdump 是一种的新的crash dump捕获机制,用来捕获kernel crash时候产生的crash dump。Kdump需要配置两个不同目的的kernel,其中一个我们在这里称作standard(production) kernel;另外一个称之为Crash(capture)kernel。 standard(production)kernel,是指我正在使用的kernel,当standard kernel在使用的过程中出现crash的时候, kdump会切换到crash kernel, 简单来说,standard kernel会正运行时发生crash,而crash(capture) Kernel 会被用来捕获production kernel crash时候产生的crash dump。 捕获crash dump是在新的crash(capture) kernel 的上下文中来捕获的,而不是在standard kernel上下文进行。 具体是当standard kernel方式crash的时候,kdump通过kexec(后面介绍)自动启动进入到crash kernel当中。如果启动了kdump服务,standard kernel会预留一部分内存, 这部分内存用来启动crash kernel。 kdump机制主要包括两个组件:kdump和kexec kexec

PERCPU

南楼画角 提交于 2020-02-14 20:15:57
https://0xax.gitbooks.io/linux-insides/content/Concepts/linux-cpu-1.html percpu对某些应用来说非常高效,但是对需要频繁分配percpu变量时,就会变成累赘。因为分配时需要一个全局变量的锁。 最新的upstream kernel里面有一些patch解决了tc里面的percpu的问题。 commit d86784fe9b037baf06a154283a4e8cff46b6fe2f Merge: 21d8bd123ac4 9ae6b78708a7 Author: David S. Miller <davem@davemloft.net> Date: Wed Oct 30 18:07:51 2019 -0700 Merge branch 'Control-action-percpu-counters-allocation-by-netlink-flag' Vlad Buslov says: ==================== Control action percpu counters allocation by netlink flag Currently, significant fraction of CPU time during TC filter allocation is spent in

QQ游戏 找茬脚本

廉价感情. 提交于 2020-02-12 23:16:34
前言 毕设干扰了前一段记录笔记的进度,闲暇时刻用找茬消遣,但有时发现五处不同仅仅找出两三处,这种呼之欲出却无法求得的感觉非常难受。于是制作了适用于QQ游戏大厅–>大家一起来找茬 的辅助器,此篇博客的笔记由函数与打包组成。 思路 界面–>屏幕截取–>对比找出不同–>鼠标自动点击 一、界面 运用最近接触到的pyqt5,界面的设计要点:小巧。 class window(QMainWindow): def __init__(self): super().__init__() self.resize(300,50) self.move(100,100) self.setWindowTitle('连连看作弊器') #text self.text = QTextEdit(self) self.text.resize(150,25) self.text.setText('处理信息') #button start self.button = QPushButton('开始',self) self.button.clicked.connect(self.grabphoto) self.button.resize(150,25) self.button.move(150,0) #button stop self.button1 = QPushButton('停止',self) self.button1

IORESOURCE_IO和IORESOURCE_MEM

♀尐吖头ヾ 提交于 2020-02-11 12:11:34
内核中有很多资源,但属于IO资源的有: #define IORESOURCE_IO 0x00000100 /* Resource type */ #define IORESOURCE_MEM 0x00000200 #define IORESOURCE_IRQ 0x00000400 #define IORESOURCE_DMA 0x00000800 本文我主要研究IORESOURCE_IO IORESOURCE_MEM,及地址空间的管理,涉及的文件只有kernel/resource.c. 这两种资源本质上都是一段地址空间. 只是类型不一样 IORESOURCE_IO 指的是IO地址空间,这个空间从kernel编程上来看,只能通过专门的接口函数才能访问.硬件层面上,cpu需要用特殊指令才能访问或需要用特殊访问方式才能访问,不能直接用指针来寻址.在PC机上,其指的就是PCI/CPU IO address space.在嵌入式中,基本上没有io address space. IORESOURCE_MEM 指的是属于外设或者用于和设备通讯的支持直接寻址的地址空间.PC机上,主板上北桥上连的内存都是交给kernel直接管理,或者都是用于软件执行,所以这部分内存不属于IORESOURCE_MEM, IORESOURCE_MEM主要是指PCI设备的 memory address space.

OpenCV--图像的形态学处理

纵饮孤独 提交于 2020-02-10 01:22:30
形态学-腐蚀操作 img = cv2.imread('dige.png') cv2.imshow('img', img) cv2.waitKey(0) cv2.destroyAllWindows() 效果: kernel = np.ones((3,3),np.uint8) erosion = cv2.erode(img,kernel,iterations = 1) #迭代次数 cv2.imshow('erosion', erosion) cv2.waitKey(0) cv2.destroyAllWindows() 效果: pie = cv2.imread('pie.png') cv2.imshow('pie', pie) cv2.waitKey(0) cv2.destroyAllWindows() 效果: kernel = np.ones((30,30),np.uint8) erosion_1 = cv2.erode(pie,kernel,iterations = 1) erosion_2 = cv2.erode(pie,kernel,iterations = 2) erosion_3 = cv2.erode(pie,kernel,iterations = 3) res = np.hstack((erosion_1,erosion_2,erosion_3)) cv2.imshow(

Example Post - PCT的博客

六月ゝ 毕业季﹏ 提交于 2020-02-09 23:09:54
This document is not completed and will be updated anytime. Catagory Unix Bell Labs Xenix BSD FreeBSD & Apple NeXTStep Darwin POSIX Unix-like Single Unix Specification Apple iOS XNU Kernel Linux Linux Kernel GNU Project Android Android Kernel Android ROM Chrome OS Chromium OS Unix Unix is a family of multitasking, multiuser computer OS. Derive from the original AT&T Unix , Developed in the 1970s at Bell Labs (贝尔实验室), initially intended for use inside the Bell System . Bell Labs Bell 和 AT&A 在那时已经是一家了,可以看到那时的通信公司真是一线 IT 公司呢。 C 语言也是 Bell Labs 的产物 ,从一开始就是为了用于 Unix 而设计出来的。所以 Unix (在 73 年用 C 重写

redis服务器性能优化

断了今生、忘了曾经 提交于 2020-02-09 12:47:20
1、系统内存OOM优化 vm.overcommit_memory Redis会占用非常大内存,所以通常需要关闭系统的OOM,方法为将“/proc/sys/vm/overcommit_memory”的值设置为1(通常不建议设置为2) 也可以使用命令sysctl设置,如:sysctl vm.overcommit_memory=1,但注意一定要同时修改文件/etc/sysctl.conf,执行“sysctl - p”,以便得系统重启后仍然生效。 可选值:0、1、2 。 0: 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 1: 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 2: 表示内核允许分配超过所有物理内存和交换空间总和的内存 # cat /proc/sys/vm/overcommit_memory 0 # echo vm.overcommit_memory = 1 >> /etc/sysctl.conf # sysctl -p 2、关闭透明大页(THP) 透明大页(THP)管理和标准/传统大页(HP)管理都是操作系统为了减少页表转换消耗的资源而发布的新特性。这二者的区别在于大页的分配机制,标准大页管理是预分配的方式,而透明大页管理则是动态分配的方式。有两种关闭方法: 方法1: 设置

IMX6ULL系列学习记录-kernel篇

泄露秘密 提交于 2020-02-08 09:17:59
主题:IX6ULL kernel移植记录(参考官方文档i.MX_BSP_Porting_Guide) 硬件平台:野火IMX6ULL 软件:ubuntu19.04 交叉编译器:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf U-Boot:uboot-imx-rel_imx_4.1.15_2.1.0_ga kernel:linux-imx-rel_imx_4.1.15_2.1.0_ga 日期:2019-11-10 目的:从NXP官方的IMX6IMX6ULL参考板移植kernel到用户IMX6ULL。 过程: 2.1 kernel版本选择 linux-imx-rel_imx_4.1.15_2.1.0_ga.tar 2.2 找到配置文件目录 arch/arm/configs 在此目录里面可以查看到关于imx系列的配置文件,但是IMX6ULL是arm-v7架构的,所以有俩选型,带mfg的是可以使用mfg工具烧写整个系统的,这里我后续将使用SD卡烧写,所以不需要mfg版,还有一个问题,经过对比发现不带mfg版配置比mfg版本的默认配置细致一点多一点,比如后续说到了sii902x驱动(lcd转hdmi)在mfg版本中就没有配置,而非mfg版已经默认配置好了。 mx_v4_v5_defconfig imx_v6_v7_defconfig

unbuntu 加载tun模块

混江龙づ霸主 提交于 2020-02-07 21:37:43
1.查看自己系统内核版本 zc@zc-HP-ZHAN-99-Mobile-Workstation-G1:~$ uname -a Linux zc-HP-ZHAN-99-Mobile-Workstation-G1 5.3.13 #1 SMP Fri Feb 7 15:01:04 CST 2020 x86_64 x86_64 x86_64 GNU/Linux 2.下载源码 查看linux可下载版本 zc@zc-HP-ZHAN-99-Mobile-Workstation-G1:~$ sudo apt-cache search linux-source linux-source - Linux kernel source with Ubuntu patches linux-source-4.15.0 - Linux kernel source for version 4.15.0 with Ubuntu patches linux-source-4.18.0 - Linux kernel source for version 4.18.0 with Ubuntu patches linux-source-5.0.0 - Linux kernel source for version 5.0.0 with Ubuntu patches linux-source-5.3.0 - Linux

形态学转换

筅森魡賤 提交于 2020-02-07 14:57:11
1、腐蚀 cv2.erode() 就像土壤侵蚀一样,这个操作会把前景物体的边界腐蚀掉(但是前景仍然 是白色)。这是怎么做到的呢?卷积核沿着图像滑动,如果与卷积核对应的原图 像的所有像素值都是 1,那么中心元素就保持原来的像素值,否则就变为零。 这回产生什么影响呢?根据卷积核的大小靠近前景的所有像素都会被腐蚀 掉(变为 0),所以前景物体会变小,整幅图像的白色区域会减少。这对于去除 白噪声很有用,也可以用来断开两个连在一块的物体等。 2、膨胀 cv2.dilate() 与腐蚀相反,与卷积核对应的原图像的像素值中只要有一个是 1,中心元 素的像素值就是 1。所以这个操作会增加图像中的白色区域(前景)。一般在去 噪声时先用腐蚀再用膨胀。因为腐蚀在去掉白噪声的同时,也会使前景对象变 小。所以我们再对他进行膨胀。这时噪声已经被去除了,不会再回来了,但是 前景还在并会增加。膨胀也可以用来连接两个分开的物体。 3、开运算先进行腐蚀运算再进行膨胀就叫做开运算, 被用作去除噪声,cv2.morphologhEx() opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel) 4、闭运算,先膨胀再腐蚀,它经常被用来填充前景物体中的小洞,或者前景物体上的 小黑点。 closing = cv2.morphologyEx(img, cv2.MORPH