- 博客(10)
- 收藏
- 关注
原创 【无标题】
中断预处理的实现方法就是直接处理(硬中断),中断后处理有两种实现方法,一是直接中断后处理,有软中断和tasklet,二是线程化中断后处理,有workqueue和中断线程。不同的中断信号需要有不同的处理方式,系统是靠中断向量号来区分不同的中断信号的。如何根据中断信号匹配中断向量号呢,对于cpu异常来说,其向量号是根据cpu架构标准规定的,对于外设来说,其中断向量号是由设备驱动动态申请的;中断类型:同步中断和异步中断。注意硬件中断,软件中断,硬中断,软中断是不同的概念,主要指的是中断的产生方式和处理方式。
2023-07-21 11:36:23 133 1
原创 Linux内核设计与实现学习心得
Linux内核设计与实现一.第一章 Linux内核简介内核空间和·用户空间a. 内核空间:对于具有保护机制的现代操作系统来说,内核一般处于系统态,这种系统态和被保护起来的内存空间,统称为内核空间。b. 用户空间:应用程序运行的空间。内核运行的时候,系统以内核态进入内核空间运行,普通应用程序以用户态进入用户空间运行。应用程序通过系统调用与内核通信。当一个应用程序执行系统调用,应用程序被称为通过系统调用在内核空间运行,内核被称为运行在进程上下文中。操作系统内核a. 单内核:所有内核服务都在
2021-10-27 16:45:45 417
原创 vmvare虚拟机中Linux下Samba的安装配置
由于直接在Linux中修改代码,编译调试不太方便,因此,想到安装Samba实现在本地的代码编写。具体步骤如下:1. 切换到root权限下:sudo su输入密码2. 安装Samba:apt-get install samba3. 配置Samba: 1)在配置Samba之前,首先新建一个文件夹作为与本地的共享文件夹(我是直接在自己账户下建立): mkdir share 2)查看文件夹的地址(该地址后面配置Samba的时候会用到): pwd 3)给文件夹加上可读可写可执行权限: chm
2020-05-27 09:39:05 907
原创 进程调度相关内容总结
在上一篇文章Linux内核进程相关知识点总结中介绍了进程相关的一些基础知识,包括进程的创建、运行以及终止等。这篇文章中主要介绍进程的调度。进程调度:举个栗子,在一个单核处理器中,同一时刻只能有一个进程拥有处理器资源,其他的进程只能在就绪队列中排序,等待处理器空闲之后才有机会获取处理器资源并开始运行。在这种情况下,操作系统就需要从众多的就绪进程中选择一个最为合适的进程来运行,这就是进程调度器,其出...
2020-01-06 11:39:47 414
原创 Linux内核进程相关知识点总结
Linux内核进程相关知识点总结Linux操作系统由Linux核心、shell(/bin/bash)、应用程序组成,三大核心功能是进程管理、内存管理和文件管理。这篇文章主要基于Linux4.0版本内核介绍进程,使得大家对进程有一个清晰的认识。后面将会陆续对3个核心功能进行介绍。进程指的是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程是进程...
2019-12-28 22:39:16 599
原创 共享内存代码实现中遇到的一系列问题附解决方法
在学习进程间通信时,想实现基于共享内存的进程间通信方法。编写源代码如下:写入方:读出方:在使用:gcc -o writer.o write.c 进行编译时,两个文件都没有报错和警告。在当前执目录下运行writer.o:./writer.o,出现segmentation fault,报错如下:使用gdb调试:编译时执行:gcc -g -o writer.o writer.c执行:...
2019-11-06 21:01:59 727 2
原创 gcc: warning: hello: linker input file unused because linking not done
在学习系统调用的时候想去追踪系统调用函数,就想把.c代码编译成汇编代码,执行以下操作:gcc -S -o hello.s hello结果报错如下:试着编译成可执行文件,执行以下操作:gcc -o hello.o hello结果报错如下:查阅资料,十个人有十种解决方法,试了几种还是不行,最后发现是源代码hello后缀不对,必须写成hello.c才能进行编译。问题解决!...
2019-08-30 10:38:45 5299 1
原创 浅谈public、protected、private
一:private,public,protected的访问范围:Public:public中声明的变量可以被该类的函数、友元函数、子类函数以及该类的对象访问。Protecd: protected中声明的变量可以被该类的函数、友元函数、子类函数访问,不能被该类的对象访问。将上述代码中data的权限由public换成protected,则该类对象报错。注释掉报错的那一行,代码如下:Priv...
2019-07-08 22:41:05 366
原创 自己动手写hello world内核模块
hello world模块虽小却是五脏俱全,该有的部分都有了。话不多说,直接上手。1.编译Linux中运行的内核模块,需要指定到当前系统对应的内核中。一般来说,Linux系统的内核模块都会安装到/lib/modules目录下,通过“uname -r”命令可以找到对应的内核版本(我的是/lib/modules/4.13.0-36-generic)。2.找到内核版本后,进入到内核版本文件夹中,建立...
2019-06-26 16:36:55 322 1
原创 Linux内核学习心得
本人正值找工作阶段,以后想从事Linux内核相关职业,故将学习过程中的一些心得记录下来,希望大家多加指正~~很多像我一样的初学者对CPU、Linux内核和Linux操作系统傻傻分不清楚,就去特意找了一下相关资料,把自己的理解记录下来。1.CPU和操作系统。CPU指的是电脑**硬件系统**中的其中一个配件,它好比这个系统中的大脑。而操作系统一般是指和这个硬件系统相互配合运行的某种软件系统,在这个...
2019-06-15 10:18:58 546
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人