自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(15)
  • 收藏
  • 关注

原创 Virtio

虚拟机与物理机的通信通过vring来实现数据交互,这之间存在一种io的通信机制。 主机通知客户机是通过注入中断来实现,虚拟设备连在模拟的中断控制器上,有自己的中断线信息,PCI设备的中断信息会被写入该设备的配置空间 客户机通知主机是通过virtio读写内存来实现的。 上面第二条分有两类:MMIO和PIO。MMIO是通过mmap()像写内存一样读写虚拟设备,比如内存。PIO(就是通常意义上的io端口)通过hypervisor捕获设备io来实现虚拟化。两者的区别是:MMIO是通过内存的异常来

2022-01-29 10:47:41 1368

原创 JVM本质

JVM虚拟机是什么东西,本质就是一套程序能动态产生新的程序,还能产生线程去执行动态产生的新程序

2021-06-06 16:18:49 89

原创 编译器,代码,操作系统的关系

1.编译器可以生产代码2.编译本身是代码构成3.操作系统也是编译器生产出来的代码4.操作系统上面也可以运行各种编译器理清这些问题就可以理解JVM虚拟机

2021-04-29 09:21:58 533

原创 自己构造页表 平滑过渡到保护模式

不管是实模式下的物理地址,还是保护模式下的物理地址,反正他们都是物理地址,实模式下求的物理地址,也能在保护模式下使用,只是他们不同的是,如何寻址的方式不一样。

2021-03-20 11:36:50 77

原创 驱动三大任务

1 读写设备内存2 配置设备DMA3 处理设备中断

2021-02-05 12:57:57 131

原创 备忘 有关虚拟内存与物理内存

CPU 访问一个地址 都要页表去转换 首先要有页表项 没有页表项 直接内存段错误.其次要有挂物理页 没有物理页,可以缺页异常去补上,就可以访问成功,内核线性映射区就可以映射完所有物理内存,vmalloc区的内核虚拟地址与物理地址就不存在线性关系.虚拟地址与物理地址是多对一与一对多的关系。所以一个物理页是可以映射给不同的进程,也可以同时映射给内核与进程...

2021-01-24 11:02:48 48

原创 Eventfd

eventfd是一个用来通知事件的文件描述符.内核与用户空间互动,肯定要通信.一种方式是内核通知用户空间,告诉这个文件描述符在内核的状态,以便让用户空间采取了相应的方法去处理.epoll机制就是这样,把连接源源不断地交给内核协议栈处理,通过eventfd 等好了去批量处理....

2021-01-07 09:15:48 99

原创 swapper pg dir 内核页表

它进程通过do_page_fault(缺页异常)从swapper_pg_dir 来修正自己的页表

2020-12-14 22:12:49 157

原创 信息的作用

信息的存储 传输 处理 都需要额外的信息,这些功能由硬件和软件共同配合完成,数据库,文件系统,操作系统,网络协议栈是软件层面的技术。cpu 内存 硬盘 网络设备是硬件的技术.硬件和软件要共同配合才能完成任务,如cpu内存与操作系统内核配合,构建出一个支持多进程同时运行的平台大大提高硬件效率与降低软件开发的复杂度。一句话程序等于数据结构加指令。...

2020-11-28 16:28:52 189

原创 Linux 内核相关 备忘2020-7-9

童梦(Kevin Luo) 下午11:10指针可以想象成一根连接线童梦(Kevin Luo) 下午11:44加锁和释放锁是执行流的约定行为规范 如果不遵守 有可能出问题————— 2020-7-9 —————童梦(Kevin Luo) 上午12:42调试原理是调试器和被调试进程建立了联系后 因为被调试进程被标记了 内核就会对他特别处理 当调试事件发生时 让被调试进程停下 通知调试器处理 Windows 与Linux 都是这么干的 int3断下后 可以再TF标志位设置去单步...

2020-07-09 00:45:00 142 1

原创 关于指针

1 指针是变量 有内存空间2 指针存的内容是一个地址3 指针有类型4 指针可以指向任意地址,但是只能用自己的类型去解释指向地址的内存数据以上是指针的本质

2020-07-07 13:23:39 85

原创 总结备忘

Dear:"文件传输助手"和"童梦(Kevin Luo)"的聊天记录如下:————— 2020-5-26 —————童梦(Kevin Luo) 下午2:40锁是针对内存资源的 关中断与关抢占是针对单cpu的童梦(Kevin Luo) 下午10:51链表删除操作必须找到前驱节点 如果是单链表 只能遍历去找 效率低————— 2020-5-28 —————童梦(Kevin Luo) 下午4:52临界区要串行执行 可以通过原子操作或者锁来保证 为了尽快执行完 可以关中断—————

2020-07-07 13:16:57 933

原创 Epoll 内核机制有感

io都是通过内核获取 用户线程只是持有io句柄或文件描述符 本质是一个索引号 如果io 没有就绪 线程去读就会阻塞 单线程如果想处理多路io 的话 那就要内核帮忙返回已就绪的io 这样线程才可以同步调用返回后逐个处理 实现高并发 epoll 这是在内核管理io 的...

2020-05-09 17:52:07 83

原创 编译型语言与解释型语言的对比备忘

1.编译型语言调用的是一个个函数 python调用的是一个程序 开发效率是无法比较的.怪不得python 叫胶水语言2.Java的跨平台是在操作系统上添加一层,对上提供统一接口,对下针对不同平台把字节码转成本地机器码去执行。3 .net core来自微软,终于忍不住了,眼看java 通吃所有平台的应用开发,自家的c#却始终在自家小众平台上无大作为,这回可要学java搞跨平台跨语言。希望能有好未...

2020-05-06 16:47:28 97

原创 内核同步机制备忘

1.并发的问题是多个线程访问相同的全局变量2.要求有序访问 符合业务逻辑 因此需要同步机制代码来保证3.问题由全局变量引起 那就引入另一些全局变量去解决 各种锁就是这样的全局变量...

2020-05-06 10:03:12 110

空空如也

空空如也

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

TA关注的人

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