- 博客(13)
- 资源 (11)
- 收藏
- 关注
原创 Linux RCU机制
1. 简介RCU (Read-copy update)是2002年10月添加到Linux内核中的一种同步机制。作为数据同步的一种方式,在当前的Linux内核中发挥着重要的作用。RCU主要针对的数据对象是链表,目的是提高遍历读取数据的效率,为了达到目的使用RCU机制读取数据的时候不对链表进行耗时的加锁操作。这样在同一时间可以有多个线程同时读取该链表,并且允许一个线程对链表进行修改(修改的时候,需要加锁)。RCU适用于需要频繁的读取数据,而相应修改数据并不多的情景,例如在文件系统中,经常需要查找定位目
2022-03-24 12:47:58
5212
原创 虚拟化技术介绍
虚拟化是一种资源管理技术,它将计算机的各种实体资源(CPU、内存、存储、网络等)予以抽象和转化出来,并提供分割、重新组合,以达到最大化利用物理资源的目的。VMM(Virtual Machine Monitor),虚拟机监控器,也称为Hypervisor,VMM软件层实现了虚拟化功能。虚拟化分类软件虚拟化和硬件虚拟化软件虚拟化是指通过VMM层纯软件的环境来模拟执行客户机里的指令。其中QEMU可以将使用客户机指令集的二进制代码转换为宿主机指令集的二进制代码,然后交给实际的物理平台执行。硬件虚
2022-03-24 12:41:58
10593
原创 QEMU调试Linux内核环境搭建
一个最小可运行Linux操作系统需要内核镜像bzImage和rootfs,本文整理了其制作、安装过程,调试命令,以及如何添加共享磁盘。编译内核源码从The Linux Kernel Archives网站下载内核源码,本文下载的版本为4.14.191,4.14.191源码下载。使用wget获取源码。wgethttps://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.14.191.tar.gz解压源码:tar -...
2022-03-21 11:43:34
2817
原创 采用radix_trees加快文件查找
概述radix tree内核函数初始化radix tree复制 1234567 #include <linux/radix-tree.h>RADIX_TREE(name, gfp_mask); /* Declare and initialize */struct radix_tree_root my_tree;INIT_RADIX_TREE(my_tree, gfp_mask); 第一种方式以一种给定的名称初
2022-03-21 10:48:37
859
原创 移动设备页缓存优化
预读算法预读模式提高了Linux系统的读性能,但是在Android上直接使用传统的预读方案并不完全适用。移动设备上的请求大小和页面缓存大小要小很多,可能导致降低预读效率,从而损害用户体验,比如很多预读的页面没有被使用,导致频繁的页面缓存回收,导致额外的延迟。根据论文实验数据显示,传统的预读方案直接移植到移动设备,当预取100个页面到页面缓存时,平均大约有75个页面没有使用。在当前的Linux内核中预读算法的不足:当一个请求属于顺序读操作时,将执行预读操作,预取大小为该读请求的2或4倍的页面。如果
2022-03-21 10:44:45
2940
原创 Netty组件和设计
Netty的组件和设计Channel 接口在基于Java的网络编程中,其基本的构造是class socket。Netty的Channel接口所提供的api,大大的降低了直接使用Socket类的复杂性。EventLoop 接口EventLoop 定义了 Netty 的核心抽象,用于处理连接的生命周期中所发生的事件。一个EventLoopGroup包含一个或者多个EventLoop; 一个EventLoop在它的生命周期内只和一个Thread绑定;所有由EventLoop处理的 I/O
2022-03-21 10:36:40
125
原创 Next主题开启文章分享功能及去除图片上的分享按钮
Hexo的Next主题中已经集成了文章分享功能,我们只需要clone下github上的分享插件,并修改Next主题配置文件就可以实现文章的分享功能。具体操作如下。配置Next主题配置文件打开主题配置文件检索baidushare配置如下:复制 12345678910111213141516171819 baidushare: type: slideneedmoreshare2: enable: true po
2022-03-21 10:33:47
550
原创 系统调用跟踪-xv6 lab syscall
1.概述本文记录xv6操作系统的系统调用跟踪实验,xv6是一个类Unix的简单操作系统。该实验是要求实现一个trace系统调用,该系统调用的功能是根据用户传入的系统调用号跟踪某个或者某些进程的系统调用情况。2. 实验要求2.1 实验铺垫有一个已给出的用户态trace.c程序如下:复制 1234567891011121314151617181920212223242526272829 #inclu
2022-03-20 10:18:39
7380
1
原创 编写简单文件系统
1. 前言文件系统是操作系统向用户提供一套存取数据的抽象数据结构,方便用户管理一组数据。文件系统在Linux操作系统中的位置在下图红框中标出,如Ext2、Ext4等。而在windows中现在常用的文件系统为NTFS、exFAT等,想必大家在格式化U盘、硬盘的时候就经常见到了。为什么要用文件系统来存取数据呢?是为了图个方便。试想如果没有文件系统,放置在存储介质(硬盘)中的数据将是一个庞大的数据主体,无法分辨一个数据从哪里停止,下一个数据又从哪里开始。通过将数据分为一块一块的,并为每一块都赋予一个名字,数
2020-11-16 10:55:43
2577
原创 进程管理常见系统调用
进程管理笔记1.前言2.如何提供有许多CPU的假象?2.1 操作系统是管理多个进程执行的软件3.操作系统提供哪些系统调用API?3.1创建(fork)1.前言进程的定义非常简单:进程就是运行中的程序。程序本身没有生命周期,它只是存在磁盘上面的一些指令或者静态数据。这些字节需要操作系统的帮助运行起来,发挥其应该有的作用。我们在使用计算机的时候,会喜欢一边听着音乐,一边玩着游戏,这样是没问题的,我们的操作系统可能有上百个进程在同时运行。但是我们的硬件资源是有限的,假设一个计算机只有一个CPU(实际上也不会
2020-11-04 14:10:34
1983
原创 OceanConnect编解码插件开发教程
概述本文共分为四个章节,第一章介绍书写本文的意图,编解码概述,以及书写编解码插件所需的前期准备。编解码概述书写编解码插件之前首先需要书写Profile文件,定义如下。Profile文件用于描述一款设备的能力特性。Lot平台通过解析Profile文件,获取该设备支持的服务(通信协议里面的一条完整报文)、属性(报文中的一个字段)、命令(报文中的一个字段)等信息。Lot平台通过编解码插件,对N...
2018-11-27 11:39:24
2579
原创 myeclipse新建Maven工程pom.xml首行报错解决
新建maven工程后pom.xml首行错误信息如下:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject,org.apache.maven.archiver.MavenArchiveConfiguration)第一种解决方案:将maven-jar-plugin的版本修改为2...
2018-05-03 15:52:34
3977
原创 Asynchttpclient实现模拟登陆教务系统失败解决办法
虽然已经有很多关于模拟登陆的资料了,但是自己还是想趁着刚做完写一下,算是做个记录,本来打算从头一直写完,但写起来感觉东西也挺多的,自己没有充裕的时间了,还有重定向,解析上的好多问题想写,以后再补充吧。
2016-10-29 14:47:25
716
plsqldeveloper-1105_x64+Instant Client Setup.exe
2018-04-12
springmvc表单验证JSR-303验证框架jar包
2017-07-22
学生选课(数据库课程设计)(java+sqlsever数据库+设计文档) 下载
2017-03-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人