自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 系统调用

为什么要有系统调用?我认为有以下原因:用户空间想要访问硬件用户空间之间访问硬件是不安全的因此,系统调用就作为用户空间进程和硬件设备的中间层出现,它使得用户进程可以受限制的访问硬件设备。这样既保证了安全,又可以使用了。API POSIX和C库用户进程不是直接调用的系统调用,而已调用的应用编程接口(API)。unix世界中,流行的API是基于 POSIX 标准的。C库实现了unix...

2020-01-05 15:07:22 153

原创 进程调度

进程调度是一个内核子系统,负责决定将哪个进程投入运行,何时运行以及运行多长的时间。它是多任务操作系统的基础。 调度相关概念多任务操作系统I/O消耗性与处理器消耗性优先级处理器时间使用比Linux调度算法调度相关概念多任务操作系统在单处理器机器上,会产生多个进程同时在运行的幻觉在多处理器机器上,会使多个进程在不同的处理器上真正同时,并行的执行。I/O消耗性与处理器消耗性进程...

2020-01-04 17:16:36 152

原创 进程管理

一切为了进程进程是处于执行期的程序以及相关的资源的总称 进程的虚拟机制进程生命周期相关的函数进程描述符进程的虚拟机制虚拟处理器进程觉得自己在独享处理器虚拟内存进程觉得自己在独享内存线程之间可以共享虚拟内存,但每个都拥有各自的虚拟处理器进程生命周期相关的函数fork() 他爹生他出来复制一个现有的进程来创建一个全新的进程exec() 他自己成家立业为fork()的新进程...

2020-01-02 16:12:00 112

原创 读书笔记(一):内核基本常识

处理器的活动单内核与微内核内核开发的特点处理器的活动每个处理器在任何指定时间点上的活动必然为下列三者之一运行于用户空间,执行用户进程运行于内核空间,处于进程上下文,代表某个特定的进程执行运行于内核空间,处于中断上下文,于任何进程无关,处理某个特点的中断单内核与微内核linux是单内核,但它也汲取了微内核的精华。支持动态加载内核模块支持对称多处理(SMP)机制对称多处...

2020-01-01 23:00:28 108

原创 虚拟内存管理(二)——mmap实验

1. 实验目的2. 实验要求3. 实验过程3.1 过程分析3.1.1 分解实验要求3.1.2 实验步骤1. 实验目的了解mmap系统调用的使用方法与原理2. 实验要求编写一个简单的字符设备驱动程序,分配一段物理内存,然后使用mmap方法把这段物理内存映射到进程地址空间中。用户进程打开这个驱动程序之后就可以读写这段物理内存了3. 实验过程3.1 过程分析3.1.1 分解实验要求(1...

2019-12-22 18:08:01 683

原创 字符设备驱动

一个字符设备驱动的建立1. 总体流程1.1 定义1.2 初始化1.3 添加到系统中1.4 从系统中删除2. 杂项设备3. 虚拟设备4. KFIFO5. 阻塞与非阻塞IO6. IO多路复用对于linux内核来说,每定义一种概念,就会有对应的一个数据结构来描述(或者说是管理)它。然后相同种类的数据结构一般会被串成链表之类的存在在系统中(个人理解)一个字符设备驱动的建立1. 总体流程描述一个字...

2019-12-14 01:03:30 127

原创 虚拟内存管理(一)

文章目录进程地址空间内存区域内存区域规划内存区域管理结构体遍历一个进程中所有的VMA用户态对进程地址空间的操作mallocmmap理解task_struct, mm_struct, 和vm_area_struct之间的关系。即是理解进程,进程地址空间和VMA之间的关系进程地址空间进程地址空间是指进程可以寻址的虚拟地址空间。32位的处理器中,进程可以虽然寻址4G虚拟地址空间,但是内存空间用...

2019-12-13 00:46:37 99

原创 buddy与slab

buddy 与 slab 对比buddyslab缓存分配器背后的想法kmalloc()是如何工作的buddy 与 slab 对比算法特点使用者举例buddy基于页alloc_page()slab基于具体的数据对象,缓存池kmalloc()buddyslab感觉slab就是缓存池的思想,类似Threadx的字节池和块池。假如想要在Threadx中实...

2019-12-12 00:12:52 383

原创 物理内存管理

1. pfn与mem_map[]2. zone站在处理器的角度来看,管理内存的最小单位是页。在linux内核中,一个页的大小是4KB,管理一个页的数据结构为struct page,每个页面都有自己的编号pfn。struct page的地址存储在mem_map[]数组中。1. pfn与mem_map[]对于一个计算机系统,其整个物理地址空间应该是从0开始,到实际系统能支持的最大物理空间为止...

2019-12-11 23:00:33 159

原创 内核链表

内核链表#include <stdio.h>#include <stdlib.h>#include "list.h"struct node{ int index; struct list_head list;};int main(){ struct node testnode; struct node *pnode; struct list_he...

2019-12-06 00:50:05 112

原创 GCC编译

GCC编译GCC编译流程预处理(Pre-Process)编译(Compile)汇编(Assemble)链接(Link)附: Makefile文件GCC编译流程GCC(GNU Compiler Collection)编译流程主要分为四个步骤:test.itest.stest.otest.cPre-ProcessCompileAssembleLinktest这里一一个测试程序lab2_1为例...

2019-12-04 23:51:41 262

转载 VFS的核心概念:file、dentry、inode、super_block

每个进程在PCB(Process Control Block)中都保存着一份文件描述符表,文件描述符就是这个表的索引,每个表项都有一个指向已打开文件的指针,已打开的文件在内核中用file结构体表示,文件描述符表中的指针指向file结构体。在file结构体中维护File Status Flag(file结构体的成员f_flags)和当前读写位置(file结构体的成员f_pos)。在上图中,进...

2018-09-15 12:25:47 829

转载 文章标题

BGP是自治 系统 间的路由协议,BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策。主叫号码信息识别及传送(CID,Calling Identity Delivery),是指交换机将主叫用户的主叫号码及呼叫的日期、时间等信息传送给被叫用户,由被叫号用户的主叫号码显示器将信息显示出来并存储。 国标规定交换机中具备CID功能的用户电路的配置比例暂定为 10

2017-07-22 23:04:56 235

转载 嵌入式笔试题(3)

嵌入式

2017-06-05 21:03:04 1100

转载 嵌入式笔试题(2)

1. 关键字 static的作用是什么? 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 1) 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问, 但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内

2017-05-25 11:12:20 376

转载 嵌入式笔试题(1)

1. 什么是嵌入式系统? 带有微处理器的专用软硬件系统都可称为嵌入式系统。2. 嵌入式中为什么要用Linux? (1) 功能齐全,对于很多硬件设备都有丰富的驱动程序,只需要移植一下,不需要改动太多; (2) 稳定,这个用过Linux做服务器的人都知道,windows越来越慢,产生的垃圾会很多; (3) 对于大多数芯片,都有裁剪的配置文件; (4) Linux分而治之的思想,可以使

2017-05-25 11:05:48 421

转载 冷屏是什么?

磁共振设备易发生的故障是制冷系统故障,所以磁共振制冷系统的维护对设备的正常工作和降低使用成本有积极的意义。 超导磁体具有场强高、磁场稳定均匀不受外界温度影响及在紧急情况下可通过人为失超的办法将磁场关闭的优点,因此超导磁体在磁共振中占据了主导地位。超导磁共振机装置(MagneticResonance Imaging,MRI)组成: 电子计算机 射频系统 梯度电源系统 自动控制部

2017-03-12 13:10:50 2901

原创 linux设备驱动模型 学习

设备驱动分类 证明linux “一切皆文件”思想: /dev 目录:存放设备所对应的文件 目录下的每一个文件对应一个设备 linux是一个树型结果,没有分区概念 比如:sda1 就对应在跟目录下 linux设备驱动模型 总线 设备(与平台相关,平台信息,移植是改这个部分) 驱动(是跨平台的,不需要任何改动的)每一个设备在注册的时候会寻找匹配的驱动 每一个驱动在

2016-12-27 22:56:06 364

原创 DAY5:

VS2012一个解决方案下的两个项目怎么实现调用 VS 中项目引用或第三方包引入需要处理2个部分: A. 头文件: pac 项目属性面板中, “C++ 常规/附加包含目录”, 将 AEDLL的头文件所在目录包含进去; B. 库文件: PAC项目添加引用 AEDLL : 展开项目,右键点击引用,选择添加引用,选择解决方案(项目),点击确定 或者 添加

2016-12-21 14:20:09 371

原创 文章标题

库 1、定义 一种可执行代码的二进制形式,可以被操作系统载入内存执行2、种类 静态库 动态库(共享库)静态库的代码在编译过程中已经被载入可执行程序,因此体积较大 共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小.o 就相当于windows里的obj文件 ,一个.c或.cpp文件对应一个.o文件 .a 是好多个.o合在一起,用于静态连接

2016-12-19 20:59:17 223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除