-
2021-07-09 11:36:06
系统启动后,Kernel会常驻内存,负责系统的基础功能,如进程调度,硬件管理.普通程序就是用户态程序,在Kernel中的程序叫做内核态程序.普通程序如果想申请内存,需要进行系统调用来申请,系统调用这个动作就是kernel来做的.
如果用户程序想申请相机资源,需要调用Kernel提供的系统接口.
如果一个普通用户进程死掉了,系统不会崩,但是如果Kernel死掉了,系统也就死掉了.
Kernel是系统启动的第一个程序
kernel运行在受保护的内存中间中,普通程序不能访问.
更多相关内容 -
linux内核分析及各个版本kernel源码地址
2017-11-15 13:49:08为方便大家学习计算机操作系统原理,请有需要的同仁自行下载。linux内核分析及各个版本kernel源码地址。 -
kernel-security-learning:关于内核安全性的一切。 CTF内核pwn,内核利用,内核模糊和内核防御论文,内核...
2021-05-14 18:18:08CTF kernel pwn & kernel exploit, kernel fuzz and kernel defense paper & kernel debugging technique & kernel CVE debug. Keep updating... 1. CTF linux内核提权系列教程(3):栈变量未初始化漏洞 【linux... -
OpenCV滤波器内核Kernel
2018-06-24 20:57:48在图像处理中许多滤波器(滤波函数)都会使用核(Kernel),那么什么是核呢? 核其实是一组权重,决定了如何利用某一个点周围的像素点来计算新的像素点,核也被称为卷积矩阵,对一个区域的像素做调和或者卷积运算,...在图像处理中许多滤波器(滤波函数)都会使用核(Kernel),那么什么是核呢?
核其实是一组权重,决定了如何利用某一个点周围的像素点来计算新的像素点,核也被称为卷积矩阵,对一个区域的像素做调和或者卷积运算,通常基于核的滤波器被称为卷积滤波器。OpenCV中的filter2D()函数,可以运用由用户指定的任意核来计算。
核是什么样的格式?
通常核是一个二位数组,特征是奇数行、奇数列,中心位置对应着感兴趣的像素,数组每一个元素为整数或者浮点数,相对应值的大小对应其权重,比如:
kernel1=numpy.array([[-1, -1,-1],
[-1, 9, -1],
[-1,-1,-1]])
表明感兴趣的像素值权重为9,相邻区域权重为-1,而计算则为将中心像素值乘以9,减去周围所有的像素,如果感兴趣的像素与周围像素存在差异,则该差异会被放大,达到了锐化的目的。【注意】权重加起来和为1,这样做的结果是不会改变图像的亮度,如果权重之和为0,则会得到一个边缘检测核,将边缘转为白色,而非边缘区域转为黑色。
使用方法:cv2.filter2D(InputArray=img, depth=-1,kernel, OutputArray=dst)
depth指定图像每个通道的位深度(位深度cv2.CV_8U表示每个通道为8位),关于这部分详解内容见参看链接[1],为负值表示目标图像和源图像保持一致。而针对彩色图像,filter2D会对每一个通道都使用相同的核,如果要用不同的核,需要使用split()和merge()函数。
python实现各种滤波及其表现:
卷积类:
class ConvolutionFilter(object): """ 一个普通的卷积滤波器(灰度图或者彩图) """ def __init__(self,kernel): self._kernel=kernel def apply(self,src): dst=cv2.filter2D(src,-1,self._kernel) return dst
锐化滤波器类(sharpenFilter):
class SharpenFilter(ConvolutionFilter): """ 一个指定核的滤波器 """ def __init__(self): kernel=numpy.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]]) ConvolutionFilter.__init__(self,kernel)
实现不同的滤波器只需要修改相应的核即可,比较有意思的一个核,它不对称,同时具有模糊(因为有正的权重)和锐化(因为负的权重)的作用,会产生浮雕(emboss)的效果:
调用起来也很方便:kernel=numpy.array([[-2, -1, 0], [-1, 1, 1], [0, 1, 2]])
import cv2 import filters image=cv2.imread('building.jpg')cv2.imshow('src',image) #Emboss滤波效果 embossFilter=filters.EmbossFilter() embossImg=embossFilter.apply(src=image) cv2.imshow('embossImage',embossImg) cv2.waitKey(0)cv2.destroyAllWindows()
下面看看实际处理效果:
图从左至右由上至下分别为:1)原图 2)锐化 3)自编核 4)模糊处理 5)浮雕 6)Canny边缘检测单单是改变核,哪怕是某一个元素的值,实现的功能可能就会不同,而要注意的是在边缘检测前往往会对图像进行模糊处理,可以很好的解决将噪声错误的识别为边缘的问题,opencv内常用的模糊方法有blur()(简单的算术平均),medianBlur(src,blurKsize)以及GaussianBlur(src,ksize)。
目的相同,不同的核其效果也会有所差别,方法的选择取决于你的目的。
参考文献
OpenCV 3计算机视觉 Python语言实现(第2版)
opencv2函数学习之blur,GaussianBlur,medianBlur和bilateralFilter:实现图像平滑处理
-
Linux 内核(Kernel)组成分析
2020-05-08 16:48:59Linux 内核采用宏内核架构,即 Linux 大部分功能都会在内核中实现,如进程管理、内存管理、设备管理、文件管理以及网络管理等功能,它们是运行在内核空间中(也可以称之为特权模式下运行)。 而微内核,它仅仅是将...一、Linux内核简介
Linux 内核采用宏内核架构,即 Linux 大部分功能都会在内核中实现,如进程管理、内存管理、设备管理、文件管理以及网络管理等功能,它们是运行在内核空间中(也可以称之为特权模式下运行)。
而微内核,它仅仅是将内核的基本功能放入内核中,如进程管理、进程调度等,而其他的设备管理、文件管理等功能都放在内核空间之外(即运行在非特权模式下)。
Linux 内核组成 :
Linux 内核主要由 5 部分组成,分别为:进程管理子系统,内存管理子系统,文件子系统,网络子系统,设备子系统。
由系统调用层(系统调用子系统)进行统一管理,应用层通过系统调用层的函数接口与内核进行交互,用户应用程序执行的
地方是用户空间,用户空间之下则是内核空间,Linux 内核正是位于内核空间中。
二、Linux内核组成
1、进程管理子系统
进程管理的核心就是进程的调度。在 Linux 内核中,进程调度的单元是进程,进程调度控制系统中的多个进程对 CPU 的访问,从宏观上看,系统中的进程在 CPU 中是并发执行的。此外内核通过系统调用提供了应用程序编程接口,例如:创建新进程(fork,exec),结束进程(kill,exit),并且提供了控制进程,同步进程和进程间通信的接口。
(1)进程与程序的区别:
- 程序:存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体。
- 进程:是一个执行中的程序,它是动态的实体。
(2)进程的四要素:
- 有一段程序供其执行,这段程序不一定是某个进程所专有,可以与其他进程共用。
- 有进程专有的系统堆栈空间(也可以称之为内核堆栈空间)。
- 在内核中有一个 task_struct 数据结构,即进程控制块。有了这个数据结构,进程才能被内核调度器识别并参与内核调度,除此之外它还记录着进程所占有的各项资源。
- 除上述的专有的系统堆栈空间外,进程还需要有独立的用户堆栈空间,这就是 mm_struct 数据结构,该数据结构位于 task_struct 结构中,字段名称为 mm。
(3)进程的堆栈:
- 内核在创建一个新的进程(创建进程控制块 task_struct) 时,为进程创建堆栈。
- 一个进程有 2 个堆栈,即用户堆栈和系统堆栈;用户堆栈的空间指向用户地址空间,内核堆栈的空间指向内核地址空间。
- 当进程在用户态运行时,CPU 堆栈指针寄存器指向用户堆栈地址,使用用户堆栈。
- 当进程运行在内核态时,CPU 堆栈指针寄存器指向的是内核堆栈空间地址,使用内核堆栈。
(4)进程与线程的区分:
- 进程:四个要素是必要条件
- 用户线程:有共享的用户空间
- 内核线程:没有用户空间,即 mm_struct 为 NULL
- 简单区分如图所示:
(5)进程调度:
- 进程调度是进程管理子系统中最重要的一个功能,是一个管理进程之间使用 CPU 资源的管理程序。
- 进程调度器有效地为各个进程分配其使用的 CPU 资源时间,同时又要达到良好的用户体验效果,此外调度器还需要解决一些互相冲突的情况,例如既要实现实时任务的最小化响应时间, 又要最大限度地提高 CPU的总体利用率等。
- 在 Linux2.6 版本之后,进程调度器使用新的进程调度算法——Completely Fair Scheduler,简称 CFS,即完全公平调度算法。该算法会按所需分配的计算能力,向系统中每个进程提供最大的公正性,它负责将 CPU 资源,分配给正在执行的进程,目标在于最大化程式互动效能,最小化整体 CPU 的运用,这个算法使用红黑树来实现,算法效率为 O(log(n))。
(6)进程状态:
就绪态 R
(TASK_RUNNING)
(可执行状态)
该状态的进程才能被允许参与调度器调度并且使用 CPU 资源,而同一时刻可能有多个进程处于就绪态,这些进程的 task_struct 结构(进程控制块)被放入对应 CPU 的可执行队列中(一个进程最多只能出现在 一个 CPU 的可执行队列中)。进程调度器的任务就是从各个 CPU 的可执行队列中分别选择一个进程在该 CPU 上运行。运行态 R
(TASK_RUNNING)
进程正在使用 CPU 资源。提示:很多操作系统的书将正在 CPU 上执行的进程定义为 RUNNING 状态、而将可执行但是尚未被调度执行的进程定义为 READY 状态,这两种状态在 linux 下统一为 TASK_RUNNING 状态暂停态 T
(TASK_STOPPED or TASK_TRACED)
向进程发送 SIGSTOP 信号,进入 TASK_STOPPED 状态向进程发送 SIGCONT 信号,从 TASK_STOPPED 状态恢复到 TASK_RUNNING 状态,当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。”正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。比如在 gdb 中对被跟踪的进程下一个断点,进程在 断点 处停下来的时候就处于 TASK_TRACED 状态。可中断睡眠态 S (TASK_INTERRUPTIBLE)
(睡眠态)
因为等待某些事件的发生而进入睡眠状态(比如等待 socket 连接、等待信号量等)。当这些事件发生的时候进程将被唤醒,如产生一个硬件中断、释放进程正在等待的系统资源或是传递一个信号都可以是唤醒进程的条件。系统的大多数进程都是处于这个状态,在终端可以通过 ps –aux 命令查看系统进程状态。不可中断睡眠状态 D (TASK_UNINTERRUPTIBLE)
(深度睡眠态)
把信号传递到这种睡眠状态的进程不能改变它的状态,也就是说它不响应信号的唤醒,这种状态一般由 IO 引起, 同步 IO 在做读或写操作 时(比如进程对某些硬件设备进行操作,等待磁盘 IO ,等待网络 IO ),此时 CPU 不能做其它事情,只能处于这种状态进行等待,这样一来就能保证进程执行期间不被外部信号打断。僵死态 Z
(TASK_DEAD - EXIT_ZOMBIE)
(僵尸态或者退出态)
进程退出 的过程中,除了 task_struct 数据结构(以及少数资源)以外,进程所占有的资源将被系统回收,此时进程没法继续运行了,但它还有 task_struct 数据结构,所以被称为僵死态。之所以保留 task_struct 数据结构,是因为 task_struct 中保存了进程的退出码、以及一些其他的信息,而其父进程很可能会关心这些信息,因此会暂时被保留下来。2、内存管理子系统
- 主要作用是保证系统安全访问内存区域,且绝大部分 CPU 都是支持内存管理单元的(Memory Management Unit,MMU)
- 内存管理子系统负责管理每个进程完成从虚拟内存到物理内存的转换,以及系统可用内存空间。
- 内存管理的硬件按照分页方式管理内存,分页就是把系统的物理内存按照相同大小等分,每个内存分片称作内存页,通常内存页大小是 4KB。内存管理子系统要管理的不仅是 4KB 缓冲区,它提供了对 4KB 缓冲区的抽象,例如 slab 分配器。这种内存管理模式使用 4KB 缓冲区为基数,然后从中分配管理结构,并跟踪内存页使用情况。系统就支持动态调整内存使用情况。
- Linux 还支持内存交换,因为 Linux 中使用的是虚拟内存,当物理内存不足时,内存管理子系统会将内存暂时移到磁盘中,在物理内存充裕时又将内存页从磁盘移到物理内存中。
- 在 32 位的系统上,每个进程都最大享有 4GB 的内存空间,因为由于 32 位的系统寻址空间只有4G,当然这是虚拟内存,0~3GB 是属于用户内存空间,3~4GB 是属于系统内存空间,实际上用户的程序几乎使用不完那么大的用户空间,一旦超出将无法正常运行,当然系统内存空间与用户内存空间是可以调整的。
3、文件管理子系统
- 在 Linux 系统中一切皆文件,它把一切资源都看作是文件,包括硬件设备,通常称为设备文件。
- Linux 的文件管理子系统主要实现了虚拟文件系统(Virtual File System,VFS),虚拟文件系统屏蔽了各种硬件上的差异以及具体实现的细节,为所有的硬件设备提供统一的接口,即实现了设备无关性,同时文件管理系统还为应用层提供统一的 API 接口。
- Linux 的文件系统体系结构是对一个对复杂系统进行了抽象化,通过使用一组通用的 API 函数,Linux 可以在许多种存储设备上支持多种文件系统,如 NTFS、EXT2、EXT3、EXT4 、FAT 等等;而用户空间包含一些应用程序和 GNU C 库(glibc),它们使用的 API 接口是由系统调用层提供(如打开、读、写和关闭等)。
- 框架如图所示:
4、网络子系统
在 Linux 内核中,与网络相关的代码被 Linux 独立开,形成一个相对独立的子系统,称为网络子系统,网络子系统是一个层次化的结构,可分为以下几个层次:- Socket 层(也可以称之为协议无关层):Linux 在发展过程中,采用 BSD Socket API 作为自己的网络相关的 API 接口。同时,Linux 的目标又要能支持各种不同的协议族,而且这些协议族都可以使用 BSD Socket API 作为应用层的编程接口,这样一来将 Socket 层抽象出来就能屏蔽不同协议族之间的差异,不会对应用层的使用产生影响。
- 协议层:Linux 网络子系统功能上相当完备,它不仅支持 INET 协议族(也就是通常所说的 TCP/IP 协议族),而且还支持其它很多种协议族,如 INET6、DECnet,ROSE,NETBEUI 等,对于 INET 、INET6 协议族来说,又会进一步将协议族划分为传输层和网络层以及链路层等。
- 网络设备层:网络设备其实是设备驱动层的内容了,它抽象了网卡数据结构,在一个系统中可能存在多种网卡,屏蔽了不同硬件上的差异,这一层提供了一组通用函数供底层网络设备驱动程序使用。
- 框架如图所示:
5、设备子系统
设备子系统又被称之为设备驱动,如 LCD、摄像头、USB、音频等都是属于设备,且设备的厂商不同其驱动程序也是不同的,但是对于 Linux 来说,不可能去将每个设备都包含到内核,它只能抽象去描述某种设备。
系统调用层是 Linux 内核与应用程序之间的接口,而设备驱动则是 Linux 内核与硬件之间的接口,设备驱动程序为应用程序屏蔽了硬件的细节,在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作(打开、读、写和关闭)。
设备驱动程序是内核的一部分,主要功能:- 对设备初始化和释放
- 把数据从内核传送到硬件和从硬件读取数据
- 读取应用程序传送给设备文件的数据和回送应用程序请求的数据
- 检测和处理设备出现的错误
根据设备的共性将设备分 类:字符设备、块设备、网络设备
- 字符设备,是以字节为单位传输的 IO 设备,可以提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。这种字符传输的效率通常是比较低的,如鼠标、键盘、串口等都是字符设备。
- 块设备,是以块为单位进行传输的设备,应用程序可以随机访问块设备中的数据,程序可以指定读取数据的位置。磁盘就是一种常见的块设备,应用程序可以寻址磁盘上的任何位置,并在这个位置读取数据。块设备读取的数据只能以块为单位的倍数进行(通常是 512Byte 的整数倍),而不能与字符设备一样以字节为单位读取。块设备的传输速度是比较高的。
- 网络设备,其实就是网络子系统中描述的网络设备层,统一描述了不同的网卡设备,如 WIFI、以太网等。因为网络设备存在协议栈(协议族),它涉及了网络层协议,所以 Linux 将网络设备单独分层一类设备。传输速率通常很高。
- 框架如图所示:
文章参照: [野火]i.MX Linux开发实战指南 归纳总结笔记 -
centos 7升级内核kernel 5.17.1
2022-04-07 16:03:471、离线升级时,可在http://ftp.sjtu.edu.cn/sites/elrepo.org/linux/kernel/el7/x86_64/RPMS选择对应架构平台不受影响的内核版本文件下载,然后离线安装,也可通过yum下载包后进行安装 2、在线安装时,直接通过yum...一、简介
1、本次升级主要是处理CVE-2022-0847的漏洞问题
2、操作系统版本CentOS Linux release 7.2
3、内核版本,升级前3.10.0-327.el7.x86_64二、下载内核
1、离线升级时,可在http://ftp.sjtu.edu.cn/sites/elrepo.org/linux/kernel/el7/x86_64/RPMS选择对应架构平台不受影响的内核版本文件下载,然后离线安装,也可通过yum下载包后进行安装
2、在线安装时,直接通过yum进行安装即可。三、升级内核
因为在线yum升级较为简单,且大部份命令相同,因此本次升级以离线方式进行升级。
首先找台能访问互联网的机器,下载内核包
1、安装 ELRepo 最新版本库
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
2、查看可用的最新kernel版本
yum --disablerepo=“*” --enablerepo=“elrepo-kernel” list available
可以看到有两个版本
内核版本介绍:
lt:longterm的缩写:长期维护版;
ml:mainline的缩写:最新稳定版;3、下载内核
可用yum --enablerepo=elrepo-kernel install kernel-直接在线安装
这里我们使用yum的downloadonly下载到本地。
下载稳定版本
yum -y install --downloadonly --downloaddir=/tmp/kernel --enablerepo=elrepo-kernel kernel-ml
安装
rpm -ivh *
切换内核
查看所有可用内核版本
grubby --info=ALL | grep ^kernel
查看默认的内核版本
grubby --default-kernel
awk -F’ ‘$1=="menuentry " {print i++ " : " $2}’ /etc/grub2.cfg
设置内核版本
grubby --set-default “/boot/vmlinuz-5.17.3-1.el7.elrepo.x86_6”
grub2-set-default 1
重启
reboot重启服务器
问题处理
问题1、鼠标无法使用,不灵敏
处理:将旧内核驱动复制到新的内核里面
[root@localhost ~]# cp -r /usr/src/kernels/3.10.0-327.el7.x86_64/drivers /usr/src/kernels/5.17.2-1.el7.elrepo.x86_64/drivers编译安装参考http://blog.itpub.net/27771627/viewspace-1256552/
-
CentOS 7.x 内核kernel版本升级实操
2020-11-28 23:29:40文章目录CentOS 7.x 内核kernel版本升级实操前言实操记录升级前信息查看和准备升级 CentOS 7.× 内核,启用 ELRepo设置 GRUB 默认的内核版本删除 CentOS 更新后的旧内核 CentOS 7.x 内核kernel版本升级实操 前言 在... -
CentOS6.X 升级内核Kernel
2017-12-01 10:19:19CentOS 6.X升级Kernel,方便安装Docker升级方法 参考:http://elrepo.org/tiki/tiki-index.php导入public key: rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 有关ELRepo项目使用的GPG密钥的详细... -
Linux内核中读写文件数据的方法
2020-07-29 21:28:10有时候需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据。在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有:filp_open() filp_close(), vfs_read() vfs_write(),set_... -
Linux内核kernel panic机制浅析
2015-05-06 16:55:03内核错误(Kernel panic)是指操作系统在监测到内部的致命错误,并无法安全处理此错误时采取的动作。一旦到这个情况,kernel就尽可能把它此时能获取的全部信息都打印出来,至于能打印出多少信息,那就看是哪种情况... -
CentOS yum方式升级内核kernel
2019-04-07 20:09:02CentOS7的32位,我试过用CentOS6的32位内核来升级,可升级可重启可使用,半个小时后删除了此系统没再尝试使用,所以不知道会带来什么不良体验。) CentOS、Debian升级内核的方式,前几篇日志中也提到过。 自编译... -
Linux内核(kernel)版本号的意义
2021-01-17 15:30:41在linux下有一个目录,即/usr/src/kernels/目录,下面记载着一个linux系统的内核文件,例如:2.6.18-164.el5-x86_64、2.6.18-8.el5-x86_64和2.6.18-194.el5-x86_64等,这些文件编号意味着什么呢?例如2.6.18代表着... -
ReloadKernel(重载内核全程分析)
2014-02-25 17:39:49重载内核内容: 1、 将内核文件加载到内存 2、 进行基址重定位 3、 重定位ssdt结构 4、 Hook KiFastCallEntry,让RING3进程调用走新内核 -
机器学习中的kernel是什么?(待补充)
2019-03-21 17:08:48近来看到SVM和核化线性降维...kernel是什么 ? 首先我们先给出kernel的定义:核函数(kernel function)就是指K(x,y)=<f(x),f(y)>,其中x和y是n维的输入值,f()指的是n维到m维的映射(通常m>>n),<x... -
Kernel:编译、安装内核详解教程
2021-05-10 19:54:19有关ramdisk的更多信息,请参见本文:什么是initrd, initrd原理, 创建initrd, 手动创建initrd System.map 内核符号表(Kernel Symbol Table)之一(另一个是/proc/ksyms) System.map是文件系统上的一个真实文件。... -
Android 编译内核 (kernel)
2020-06-09 09:35:45在编译内核的时候,需要具备两个条件 1.下载好kernel源码 2.交叉编译器(如果你有已经下载了AOSP),那就好,AOSP里面就有这个交叉编译器,位置呢在 aospCode/prebuilts/gcc/linux-86/aarch64/aarch64-linux-... -
小强学Python+OpenCV之-1.5内核Kernel
2017-06-06 21:38:22中间的Convolution kernel就是核,或者说是一个卷积核。核与在源图像上的投影区域进行卷积,得到新的像素。当核遍历了整个源图像之后,就得到了一张新的图像(当然,要注意,这里的新的图像小了一号,因为,卷积核的... -
鸿蒙系统所说的「微内核」,具体是什么?
2021-05-28 15:30:12自进入大众视野以来,华为就一直宣称自家的鸿蒙操作系统(鸿蒙OS)是基于「微内核」设计的,那么,究竟什么是「微内核」呢?微内核的英语是Microkernel(或者μ-kernel),在计算机科学中,顾名思义,「内核」是指它是... -
linux内核start_kernel分析
2018-12-27 10:53:47这个入口的函数是start_kernel函数,它主要更进一步地初始化系统相关的内容,以便系统进入一种服务状态,提供一种虚拟机的服务,提供各种API调用的服务。 在start_kernel函数里,需要非常注意的是里面初始化函数的... -
Linux kernel 用户态和内核态
2022-04-13 15:07:21Linux操作系统架构分为了用户态和内核态,也称为用户空间和内核空间。作为系统的用户,我们所处的状态为用户态,但用户在用户态所运行的应用程序确并非是完全通过用户态即可完成程序的执行。用户态的应用程序几乎都... -
你不知道的Linux Kernel——Linux内核的工作原理
2019-03-06 10:32:18Linux内核更新是越来越快了,可能由于Linux的普及,大家都开始关注了,各种安全隐患也越来越多。支持Intel、Alpha、PPC、Sparc、IA-64、ARM、MIPS、Amiga、Atari和IBMs/390等,还支持32位大文件系统。而在Intel平台... -
什么是内核
2018-06-14 06:06:38内核是操作系统的内部核心程序,它向外部提供了对计算机设备的核心管理调用。 我们将操作系统的代码分成2部分。内核所在的地址空间称作内核空间。而在内核以外的统称为外部管理程序,它们大部分是对外围设备的管理... -
树莓派(Raspberry Pi 4 Model B)编译64位内核Kernel
2019-08-27 17:41:05网上其实有很多树莓派3B的编译64位内核,我都试了一遍,全部启动不了,也不是说写得不对,只不过好像不适用于我,搞了我三四天,很愁人;所以我下面的步骤也不保证每个人都可以成功,因为每个人的情况都不一样,造成... -
再谈Linux内核模块注入(没有kernel header也能hack kernel)
2020-05-07 23:54:49在前面的一篇文章中,我简单描述了一种Linux内核模块注入的方法: ...我们知道,编写Linux内核模块必须要有对应版本的kernel header,并且版本号必须100%匹配,一个字都不能差,这对Linux内核模... -
通过“ipython kernel”重新启动ipython内核
2021-01-13 06:44:47我有一个ipython内核通过ipython kernel这使我可以选择从不同的客户机(控制台、qtconsole甚至通过ssh从其他机器)连接到这个内核。在最简单的情况是通过以下方式进行本地连接:^{pr2}$但是如果我现在想重新启动内核... -
linux启动内核kernel错误状态记录以及分析
2019-06-15 16:22:37一 why 记录下移植内核过程中,出现的错误以及解决问题办法 a. 加载内核时,提示提示空分区名(empty pattition name) 原因,分区被异常擦掉了,解决办法 ... 重新烧写uboot、kernel、以及文件系统 ... -
树莓派实时内核(RT-kernel)的配置和编译
2019-09-19 10:09:00鉴于网上研究树莓派实时系统的文章很少,在此记录一篇关于树莓派实时内核编译的过程。 树莓派内核的编译主要分为两种:本地编译和交叉编译。本地编译速度较慢,但是方便;交叉编译速度快,但是操作麻烦。本篇介绍... -
Linux 升级到指定内核(Centos7 yum升级内核、centos系统中kernel-devel)
2021-05-20 14:02:23文章目录Linux 升级内核Centos7 yum升级到最新内核Centos 7 yum升级到指定内核Linux内核源码的编译及安装 Linux 升级内核 Centos7 yum升级到最新内核 如何在 CentOS 7 中安装或升级最新的内核 参考URL: ... -
Jetson TX1内核kernel编译与烧写
2017-09-14 14:00:23Jetson tx1内核kernel的编译和烧写 -
解决jupyter notebook的kernel error内核启动失败问题
2022-04-13 11:56:09当Anconda安装多个python环境时,或者由于多次卸载安装Anaconda时,导致python的kernel内核启动失败问题,使得jupyter notebook不可用。找不到启动文件。还有就是直接复制粘贴别人已经搭建好的环境过来,在kernel....