用户空间(态)和内核空间(态)
文章目录一、简介二、定义1. 用户空间2. 内核空间三、为什么要划分用户空间和内核空间四、用户态和内核态区别五、用户态切换到内核态的3种方式1. 系统调用2. 异常3. 外围设备的中断一、简介现在操作系统都采用虚拟寻址(有很多好处,比如扩大逻辑内存(通过动态链接),给用户统一的编址模型,安全保护等)...
Linux内核分析实验二:mykernel实验指导(操作系统是如何工作的)
计算机是如何工作的?(总结)——三个法宝存储程序计算机工作模型,计算机系统最最基础性的逻辑结构;函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能;enterpushl %ebpmovl %esp,%...
debian内核版本升级步骤详解
在Debian系统上升级内核版本可以通过以下步骤进行详细操作: 步骤一:更新软件包列表 Bash1sudo apt update 这条命令会更新本地的软件包列表索引,以便系统知道仓库中有哪些可用的新版软件包,包括新的内核版本。 步骤二:查找可用内核版本 Bash1sudo apt-cache sea...
2.移植3.4内核-支持烧写yaffs2,裁剪内核并制作补丁
在上章-制作文件系统,并使内核成功启动jffs2文件系统了本章主要内容如下:1)使内核支持yaffs2文件系统2)裁剪内核3)制作内核补丁1.首先获取yaffs2源码(参考git命令使用详解)cd /work/nfs_rootgit clone git@github.com:lifeyx/yaffs...
linux内核中socket的创建过程源码分析(总结性质)
在漫长地分析完socket的创建源码后,发现一片浆糊,所以特此总结,我的博客中同时有另外一篇详细的源码分析,内核版本为3.9,建议在阅读本文后若还有兴趣再去看另外一篇博文。绝对不要单独看另外一篇。一:调用链:二:数据结构一一看一下每个数据结构的意义:1) socket, sock, inet_soc...
linux内核虚拟内存之slub分配器
上一章主要讲述以页为最小单位进行内存分配的伙伴管理算法,较大程度上避免了内存碎片问题。而实际上对内存的申请却不是每次都申请一个页面的(比如文件节点,任务描述符等结构体内存),通常是远小于一个内存页面的大小,此外更可能会频繁地申请释放这些内存。对于这种情况,每次分配小于一个页面的都统一分配一个页面的空...
TI实时内核SYSBIOS启动流程
1 内容简介对操作系统与非操作系统下TI芯片启动后的C语言初始环境配置流程进行整理介绍。包含: 第二章:运行支持库,介绍TI芯片运行支持库作用,非操作系统下程序起始位置,运行环境初始化流程。 第三章:SYSBIOS启动流程,介绍使用SYSBIOS实时内核时,芯片对应的启动过程。2 运行支持库2.1 ...
记一次内核模块查看 - 初步通过文件厂商判断有无可疑内核模块
现在怀疑有人远程连接我的电脑;可能是专业厂家提供的服务;该程序可能是一个内核模块;下面尝试用PowerTool查看一个内核模块有没有什么直接可见的异常;启动程序以后此工具自己释放了一个驱动,就是这个.sys文件;然后此工具自己启动了;我记得以前使用这软件,它好像要加载驱动模块,杀软会拦截;这次没有;...
使用VMware Workstation安装(Linux内核)银河麒麟系统
1.下载软件:VMware Workstation Kylin-x86_64.iso(Linux内核)银河麒麟系统镜像包。2.安装完成VMware Workstation并运行。3.创建新的虚拟机。 4.选中“典型”,下一步。 5.安装程序光盘映像文件(浏览——文件存放路径),下一步。 6.虚拟机中...
Windows内核与原理读书笔记之DPC和时钟中断和定时器管理
1.DPC(延迟过程调用)DPC有普通的(normal) 和线程的(threaded)。普通的DPC可以在任何一个线程环境中运行,线程的DPC只能在一个专门的DPC线程中运行。WRK 中DPC对象定义:typedef struct _KDPC { UCHAR Type; UCHAR Im...
网狐6603棋牌源码编译通过,能正常运行,包含内核引擎,游戏引擎,网络服务
编译环境: VS2015 + sql server 2008 + Microsoft DirectX SDK (June 2010)源码版本: 网狐6603编译成功后,只运行了一个二人麻将。嘿嘿。。感觉这套棋牌源码还不错,用做二次开发,是绝佳的基础。也可用作学习框架用。我的 网狐交流群: 652...
linux1.0内核代码学习(五) 之保护模式编程
linux1.0内核是压缩的zImage映像文件,其内部格式组织如下: 其启动各个阶段在内存中的位置如下: 下图是指zboot/zSystem中程序调用自带的解压缩程序,将tools/zSystem解压到0x100000的内存地址处,并跳转到0x100000处执行boot/head.s程序。这个阶段...
Linux Kernel Driver 之 mmap 机制 Linux 内核编程的分离思想
前言Linux 编程中,大多数的场景,数据的交换,不论读还是写都要经过两次数据拷贝过程:用户和内核,内核和硬件物理内存如果数据的访问量比较小,两次的数据拷贝对系统性能影响几乎可以忽略不计如果数据的访问比较大,两次的数据拷贝势必影响系统性能数据的操作的规律是源要不是用户或者硬件,目的要不是硬件或者用户...
强制修改.ko文件中的内核版本号与内核对应
当需要一个ko在一个内核下编译,insmod到另一个内核时,1、include/config/kernel.release文件中为内核版本号,将其改为所需版本。 2、include/generated/utsrelease.h文件中 #define UTS_RELEASE “XXX” 将xxx改为自...
spark内核解析——spark master和worker的启动
更好的理解spark——spark master和worker的启动1、master通过start-master.sh 启动之后,首先创建了RpcENV。设置了MasterEndpoint这种通讯环境,然后通过onstart来初始化了自己的服务,通过receive和receiveAndReplay方...
Linux内核追踪[4.14] X86的5级页表管理
X86的4级页表已经能够管理48bit(256TB)的VA,以及64TB的PA。不过由于某些供应商发布了超过64T的超大物理内存,因此需要实现了一个5级页表特性来进行支持。 下面是原来4级页表的48bitVA地址空间,原先的X64芯片规定,高8位永远与第48bit(从0开...
Linux内核虚拟内存之页表管理
linux采用了一种同时适用于32位和64位系统的普通分页模型。对于像32位arm系统来说两级页表已经足够,但64位系统需要更多数量的分页级别。2.6.10版本以前,linux采用三级分页的模型,从2.6.11版本开始采用4级分页模型。4种页表如下:页全局目录(pgd)页上级目录(pud)页中间目录...
Ubantu16.04添加系统调用(内核版本4.16.8)作业报告
这个作业我是从五月上旬开始着手准备的,因为在这期间有几门考试,所以从装系统到完成作业前前后后大概用了半个多月的时间。在做作业的过程中,我经历了很多之前没有经理过的东西,装双系统,修改内核,为Ubantu升级网卡驱动,之后又因为Ubantu系统故障导致重装系统,最后为了保险起见转而使用虚拟机,这其中的...
移动操作系统内核分析--Linux系统调用
一 、实验目的了解Linux系统调用的工作机制掌握Linux系统调用的实现方法二、 实验内容实现一个新的“Hello World”系统调用。验证系统调用创建一个用户程序来调用“Hello World”系统调用:将用户程序编译后,放入rootfs.img根文件系统中。启动qemu虚拟机,在虚拟...
Ubuntu禁止内核自动更新与启动内核选择的方法(内核自动更新会导致Nvidia显卡驱动不能使用的问题)
一、 禁止内核自动更新查看已安装内核dpkg --get-selections |grep linux-image查看正在使用的内核uname -a删除旧内核sudo apt-get remove linux-image-x.xx.x-xx-genericsudo apt-get remove li...