自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sdulibh的专栏

专注云计算虚拟化、大数据处理系统、机器学习算法

  • 博客(457)
  • 资源 (1)
  • 收藏
  • 关注

转载 环境变量,include搜索路径,lib库搜索路径

环境变量 系统环境变量 我们知道,我们经常要设置一些环境变量,系统环境变量我们非常容易理解。其实我们在windows中经常容易接触。其实环境变量是一个非常广泛的一个概念,它与web应用程序中的web.config所处的角色很像。什么意思呢?就是说,程序(系统或应用)要运行的时候,它的基本业务逻辑可能是一定的,但是实现业务逻辑的时候有些设置性的东西却可以改变程序很多。如web应用程序,编译之后他的业...

2018-04-04 16:57:41 3240

转载 LSM-tree最透彻的解释

LevelDB is an open source key-value store that originatedfrom Google’s BigTable [18]. It is an implementation ofLSM-tree, and it has received increased attention in bothindustry and academia [6][34][2...

2018-03-20 19:48:52 5945

转载 矛与盾:二进制漏洞攻防思想对抗

0×0二进制漏洞二进制漏洞是可执行文件(PE、ELF文件等)因编码时考虑不周,造成的软件执行了非预期的功能。二进制漏洞早期主要以栈溢出为主,那时候操作系统和软件厂商还没有相应的安全意识,漏洞利用在当时来说可谓是如入无人之境。要理解栈溢出,首先要掌握C语言中函数的调用过程:C语言中调用一个函数,在编译完成后执行的是汇编语句Call指令。Call指令会执行两个操作:(1)将Call指令之后的下一条指令...

2018-02-27 09:56:46 596

转载 解读存储虚拟化

一、何为“存储虚拟化技术”   “存储虚拟化”并不是近期才提出的一个新概念,它是伴随着大型计算机的产生、发展而出现的一个较为经典的概念,但随着网络存储的兴起,在新的领域中,存储虚拟化又被赋予了全新的解读,不过从存储的核心功能来看,其本质是具有延续性的。(一) 存储虚拟化的概念  从广义的角度看,存储具有两大特性:其一,它是具有存取数据功能的载体;其二,它具有可管理性。  存储虚

2018-01-24 10:45:36 4942

转载 KVM 虚拟化原理探究--启动过程及各部分虚拟化原理

KVM 虚拟化原理探究— overview标签(空格分隔): KVM写在前面的话本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验。同时希望借此系列博客,能够对KVM底层有一些清晰直观的认识,当然我没有通读KVM的源码,文中的内容一部分来自于书籍和资料,一部分来自于实践,还有一些来自于自己的理解,肯定会有一些理解的偏差,欢迎讨论并指正。本系列文章敬代表我个人观点和实践,不代...

2018-01-05 16:31:34 31854

转载 虚拟化技术大观

CPU二进制翻译和“陷入-模拟”是两种不同的方式,原理不同,比如,二进制翻译一般发生在用户态,而trap-emulation则发生在VMM中全虚拟化:主要采用优先级压缩(Ring Compression)和二进制代码翻译技术(Binary Translation)这两个技术。优先级压缩能让VMM和Guest运行在不同的特权级下,对X86架构而言,就是VMM运行在特权级最高Ring

2018-01-03 13:45:22 1130

转载 QEMU,一个快速的和便捷的动态翻译器(论文译文)

QEMU, a Fast and Portable Dynamic Translator论文译文 https://www.usenix.org/legacy/event/usenix05/tech/freenix/full_papers/bellard/bellard_html/摘要我们展示QEMU实现的内部原理,QEMU是一个快速的模拟器,它使用了一个原始的便捷的动态翻译器。它可以在多种主机上(

2018-01-02 15:09:10 1661

转载 Linux内存管理

1.进程页表项中的内核部分是各进程复制的,并且采取了延迟更新的方式:以vmalloc为例(最常使用),这部分区域对应的线性地址在内核使用vmalloc分配内存时,其实就已经分配了相应的物理内存,并做了相应的映射,建立了相应的页表项,但相关页表项仅写入了“内核页表”,并没有实时更新到“进程页表中”,内核在这里使用了“延迟更新”的策略,将“进程页表”真正更新推迟到第一次访问相关线性地址,发生page ...

2017-12-19 07:49:12 863

转载 BIOS-SMI Introduction

了解SMI之前先了解一些基本的知识。1.0  SYSTEM MANAGEMENT MODE OVERVIEW         SMM是一个特定的操作模式,用于处理系统级的功能。比如:Power management, system hardware control, special OEM designed code . 它被设计成只给system firmware 使用,不是给应

2017-12-17 12:12:50 1685

转载 FPGA较传统CPU强在哪里?

微软数据中心里的服务器仍然由传统的英特尔 CPU 主宰,但据报道,微软现在正计划采用现场可编程阵列或现场可编程门阵列(FPGA)来代替原有的处理器架构,让微软可以采用自主软件专门修改并为自己服务。一、为什么使用 FPGA?众所周知,通用处理器(CPU)的摩尔定律已入暮年,而机器学习和 Web 服务的规模却在指数级增长。人们使用定制硬件来加速常见的计算任务,然而日新月异的行业又要求这

2017-12-17 12:02:54 3626

转载 DevicePass-through及网卡的直接分配在Xen里面的实现

 《系统虚拟化原理》这本书看了大半年了,里面的内容反复看过之后,会不断的有收获,之前关于Passthough的概念很直很模糊,Passthough的具体实现也不清楚,今天看完书之后,终于有了一个初步的理解,特记录下来。 首先需要理解passthough这个概念,Passthough是指在虚拟化平台下,将物理设备直接分配给某个客户机使用。为实现设备的直接分配,VMM需要提供以下三种功...

2017-12-06 16:38:24 533

转载 内存初始化

一、前言一直以来,我都非常着迷于两种电影拍摄手法:一种是慢镜头,将每一个细节全方位的展现给观众。另外一种就是快镜头,多半是反应一个时代的变迁,从非常长的时间段中,截取几个典型的snapshot,合成在十几秒的镜头中,可以让观众很快的了解一个事物的发展脉络。对应到技术层面,慢镜头有点类似情景分析,把每一行代码都详细的进行解析,了解技术的细节。快镜头类似数据流分析,勾勒一个过程中,数据结构的演

2017-11-29 14:05:39 895

转载 Pci设备驱动:设备枚举

有了设备模型基础及usb设备驱动的基础知识,来了解PCI设备驱动,就相对简单了,因为PCI设备驱动仍然套用了设备驱动模型的方式,用到的仍然是设备模型的相应函数,只是把相应的pci设备挂载到PCI总线的device队列,而凭此驱动则挂载到pci总线的driver队列,对应的匹配函数,探测函数,都是pci总线提供的函数。 因为pci设备驱动的安装跟usb设备驱动的安装模式相似,因此,其

2017-11-08 17:06:01 1241

转载 网卡的若干知识

1.认识网卡,我们上网必备组件之一。       网卡工作在osi的最后两层,物理层和数据链路层,物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为MAC控制器。很多网卡

2017-09-21 12:22:44 883

转载 linux内核中等待队列

根据内核3.1.6版本源码、书籍和网上资料,对几个函数进行分析       介绍这几个函数,不得不先介绍等待队列wait_queue_head_t       等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。等待队列       (一)数据结构       等待队列结构如下,因为每个等待队列都可以

2017-09-21 11:34:21 521

原创 libvmi编译问题

fatal error: json-c/json.h: No such file or directory ---解决方法:sudo apt-get install libjson-c-dev然后重新执行./autoconf  ./configure make 即可

2017-08-08 17:33:00 733

原创 grub

## DO NOT EDIT THIS FILE## It is automatically generated by grub-mkconfig using templates# from /etc/grub.d and settings from /etc/default/grub#### BEGIN /etc/grub.d/00_header ###if [

2017-07-24 10:05:58 997

转载 boot repair

Boot Info Script cfd9efe + Boot-Repair extra info      [Boot-Info 26Apr2016]============================= Boot Info Summary: =============================== => No boot loader is installed in

2017-07-21 22:19:08 1426

转载 linux 启动流程图

http://blog.163.com/x_ares/blog/static/101548562011710112613165/http://baogf92.blog.51cto.com/10869243/1728752http://blog.chinaunix.net/uid-23069658-id-3142047.html http://blog.chinaunix.net/u

2017-07-14 10:22:16 3998

转载 在grub中添加win7(以及从win7来的win10)的启动项

本文来自http://blog.sina.cn/dpool/blog/s/blog_59eff7510100ztgf.html?vt=4&m=703515e7b533291963709edbdf9fab25&sudaref=xui.ptlogin2.qq.com&retcode=0和http://www.ruesin.com/system/centos/centos7-grub2-19

2017-06-24 21:30:38 7304

转载 高级语言的编译:链接及装载过程介绍

引言随着越来越多功能强大的高级语言的出现,在服务器计算能力不是瓶颈的条件下,很多同学会选择开发效率高,功能强大的虚拟机支持的高级语言(Java),或者脚本语言(Python,Php)作为实现功能的首选,而不会选择开发效率低,而运行效率高的 C/C++ 作为开发语言。而这些语言一般情况下是运行在虚拟机或者解释器中,而不需要直接跟操作系统直接打交道。虚拟机和解释器相当于为高级语言或者脚

2017-06-23 18:49:46 598

转载 用户空间与内核空间,进程上下文与中断上下文[总结]

1、前言  最近在学习linux内核方面的知识,经常会看到用户空间与内核空间及进程上下文与中断上下文。看着很熟悉,半天又说不出到底是怎么回事,有什么区别。看书过程经常被感觉欺骗,似懂非懂的感觉,很是不爽,今天好好结合书和网上的资料总结一下,加深理解。2、用户空间与内核空间    我们知道现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的3

2017-06-23 10:49:29 396

转载 BIOS 工作流程解析

学习Linux很长时间了,一直没有时间把经验和挖掘的一些技巧整理出来,这个暑假在家没事,整理了一些与大家分享。由于都是自己的理解和实验产物,所以肯定有些不当之处,期待交流指正!  这个系列文章将以Ubuntu探秘命名,内容涉及到整个开机流程及GNOME桌面的hack . 今天发表第一篇心得:BIOS到底干啥用?     BIOS(basic input/output system,基本输入输出系统...

2017-05-31 18:29:26 16072 6

转载 Xen启动过程概述

源码是xen-3.1.0xen支持很多种平台:x86_32、x86_64、powerpc等下面代码的分析都是基于x86_32的。虽然现在服务器绝大多数已经是64位的,但自己使用的环境是32位的,对32位平台比较熟悉。xen内核是通过修改Linux内核实现的,只做了部分修改,启动过程与Linux很像。首先是xen-3.1.0-src\xen\arch\x86\boot

2017-04-11 20:38:10 3479

转载 云计算中心技术架构

邬江兴:女士们、先生们早上好,很有幸能够在这样一个讲台上表达一下我对云计算的框架一些背景,当然也表达一下我们的理念,更重要我们觉得云计算是一次难得的计算技术的一次革命,绝不是现在已有技术的情况,无论从商业还是从用户,还是从服务理念,大会组开辟一个新的事业。 我们今天报告的题目就是云计算高效能之路。大家都知道云计算在里面核心的问题是高效能。至于能提供什么样的服务,管它是公有云还是私有云,还是

2017-04-11 20:21:35 1645

转载 在浏览器中输入 Google.com 回车之后发生了什么?

这个仓库试图回答一个古老的面试问题:当你在浏览器中输入google.com并且按下回车之后发生了什么?不过我们不再局限于平常的回答,而是想办法回答地尽可能具体,不遗漏任何细节。这将是一个协作的过程,所以深入挖掘吧,并且帮助我们一起完善它。仍然有大量的细节等待着你来添加,欢迎向我们发送Pull Requset!回车键按下为了从头开始,我们选择键盘上的回车键被按到最低处作为起点。在这个

2017-04-09 12:03:35 1481

转载 QEMU+KVM学习笔记

1 QEMU和KVM的关系:     现在所说的虚拟化,一般都是指在CPU硬件支持基础之上的虚拟化技术。KVM也同hyper-V、Xen一样依赖此项技术。没有CPU硬件虚拟化的支持,KVM是无法工作的。     准确来说,KVM是Linux的一个模块。可以用modprobe去加载KVM模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有KVM模块是 远远不够的,因为用户无法直接控制

2017-03-24 21:54:19 1380

转载 CPU亲和性的使用与机制--含Xen中VCPU和PCPU的綁定方法

CPU的亲和性, 就是进程要在指定的 CPU 上尽量长时间地运行而不被迁移到其他处理器,亲和性是从affinity翻译过来的,应该有点不准确,给人的感觉是亲和性就是有倾向的意思,而实际上是倒向的意思,称为CPU关联性更好,程序员的土话就是绑定CPU,绑核。在多核运行的机器上,每个CPU本身自己会有缓存,缓存着进程使用的信息,而进程可能会被OS调度到其他CPU上,如此,CPU cache命中率就...

2017-03-24 14:39:24 3779

转载 Linux文件系统基础之inode和dentry

inode和dentry在VFS和实体的文件系统(ext2、ext3等)中都是比较重要的概念。首先看一下虚拟文件系统的标准定义:虚拟文件系统(英语:Virtual file system,缩写为VFS),又称虚拟文件切换系统(virtual filesystem switch),是操作系统的文件系统虚拟层,在其下是实体的文件系统。虚拟文件系统的主要功用,在于让上层的软件,能够用单一的方式,来跟

2017-03-04 15:32:35 541

转载 Xen 启动客户虚拟机的过程分析

Thanks to paravirtualisation, many of the lowlevel steps involved in a conventional x86 OS boot process (such as interactions with the BIOS, and the use of 16-bit real mode) can be elided. The mai...

2017-03-03 11:29:34 1402

转载 Xen中的异常和中断(系统调用)、gdt、ldt

HYPERVISOR_set_gdtstatic void xen_load_gdt(const struct desc_ptr *dtr)/* * load_gdt for early boot, when the gdt is only mapped once */static void __init xen_load_gdt_boot(const struct desc_...

2017-02-18 19:41:53 1852 1

转载 Xen的内存布局及其启动

我会在接下来几篇博客里面介绍Xen的memory。这些都是我在看了各种资料,并且研究了Xen的代码之后的个人总结。之所以写这个系列,是感觉现在网络上没有什么比较具体介绍Xen内存的资料,这里有一个,但是是比较老的版本,而且主要介绍的是32位的系统。而我现在看的是Xen最新的版本(4.6),然后介绍的主要是64位的系统,希望能把自己花时间学到的东西分享出去。如果有什么错误的,或者解释的不清楚的地方,

2017-02-14 21:37:34 3241

转载 计算机的启动

今天看了阮一峰最新的一篇博客计算机是如何启动的,感觉写得很好,又清楚又简单。虽然自己关于计算机启动这个过程从大三OS课的时候就陆陆续续地一直有了解,但是都没有一个系统的了解,或者了解了又忘了,希望通过这次记录把这点彻底弄清楚来并且记在脑子里。另外在评论中有另外一个小哥大磊把他的博客也贴出来了,写得很详细,作为阮一峰的补充吧。以下是转来的文章,中间加上了大磊的补充,也没有区分哪句话是谁说

2017-02-14 21:33:56 381

转载 x86架构中特权级

特权级,可以分为三种;第一、描述符中的特权级DPL,表示这个段的特权;第二、选择子的RPL表示请求方的特权级;第三、当前特权级,表示正在执行的代码段所具有的特权;下面有关特权级知识的总结:        第一、对于数据段来说,特权级DPL表示了可以访问该数据的最低特权。若数据段的DPL为1,那么只有特权级为0或1的程序才能访问他;        第二、特权指

2017-01-22 13:46:41 872

转载 关于机器学习的领悟与反思

近年来,人工智能的强势崛起,特别是去年AlphaGo和韩国九段棋手李世石的人机大战,让我们深刻地领略到了人工智能技术的巨大潜力。数据是载体,智能是目标,而机器学习是从数据通往智能的技术、方法途径。因此,机器学习是数据科学的核心,是现代人工智能的本质。通俗地说,机器学习就是从数据中挖掘出有价值的信息。数据本身是无意识的,它不能自动呈现出有用的信息。怎样才能找出有价值的东西呢?第一步要给数据一

2017-01-16 15:41:26 931

转载 Linux 段错误详解

1 背景笔者早年写过一篇:《可恶的”Segmentation faults”之初级总结篇》,网络转载甚多。多年下来,关于段错误的讨论依旧很热烈,该问题也还是很常见。所以打算在这里再系统地梳理一下该问题的来龙去脉。2 什么是段错误下面是来自 Answers.com 的定义:A segmentation fault (often shortened to segfa

2016-12-27 11:13:18 1935

原创 yum 问题集锦

1.One of the configured repositories failed (Unknown),and yum doesn't have enough cached data to continue. At this point the onlysafe thing yum can do is fail. There are a few ways to work "fix"

2016-11-10 14:39:50 1649

原创 pymongo连接mongodb的replset

replset的一个目的是保持集群的健壮性,但是,因此需要通过合理的方式连接整个replset,才能在primary宕机的时候,自动启用secondary。为此,pymongo提供了replica_set_connection来连接整个集群,但是,随着版本的增高,提供该功能的变为mongo_replica_set_client。实例代码如下:#!/usr/bin/python#codi

2016-11-03 16:47:51 3716

转载 浅析linux内核中的idr机制

idr在linux内核中指的就是整数ID管理机制,从本质上来说,这就是一种将整数ID号和特定指针关联在一起的机制。这个机制最早是在2003年2月加入内核的,当时是作为POSIX定时器的一个补丁。现在,在内核的很多地方都可以找到idr的身影。    idr机制适用在那些需要把某个整数和特定指针关联在一起的地方。举个例子,在I2C总线中,每个设备都有自己的地址,要想在总线上找到特定的设备,就必须要

2016-10-20 17:06:51 400

转载 内核设备模型分析

Sysfs文件系统 内核设备模型主要的模块和用户之间能看到的相关部分就是sysfs文件系统了。内核在启动的时候会注册sysfs文件系统,并且在启动系统的初期。通过mount命令挂载sysfs文件系统到/sys挂载点。Mount -t sysfs sysfs /sys 那么sysfs文件系统的作用是什么呢。概括的说有三点:1、建立系统中总线、驱动、设备三者之间

2016-10-20 10:29:17 362

空空如也

空空如也

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

TA关注的人

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