12 sdulibh

尚未进行身份认证

心中无敌

等级
TA的排名 4k+

ZooKeeper 原理及其在 Hadoop 和 HBase 中的应用

ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是GoogleChubby的开源实现。分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。简介ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是GoogleChubby的开源实现。分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式..

2020-05-12 16:11:10

Linux开机详细流程

计算机启动分为内核加载前、加载时和加载后3个大阶段,这3个大阶段又可以分为很多小阶段,本文将非常细化分析每一个重要的小阶段。内核加载前的阶段和操作系统无关,Linux或Windows在这部分的顺序是一样的。由于使用anaconda安装Linux时,默认的图形界面是不支持GPT分区的,即使是目前最新的CentOS 7.3也仍然不支持,所以在本文中主要介绍传统BIOS平台(MBR方式)的启动方式(...

2020-03-31 15:28:13

Linux 内存管理篇(2)内核初始化与内存管理启用

前言继内存寻址之后, 本篇开始介绍Linux内核地址空间初始化过程。通过内存寻址篇我们知道, Linux 系统运行过程中位于保护模式,系统必须要是用MMU来完成地址寻址, 这就依赖于段表跟页表。但是问题来了, 系统是如何将段表跟页表是如何装入的呢?本文通过 Linux 系统初始化过程,开始介绍内存管理的构建过程。BIOS 时代:当PC机加电的那一刻,主机开始获取操作指令,初...

2020-01-15 16:30:05

xen虚拟机的启动(引导)方式

xen虚拟机的启动(引导)方式有几种不同的方式来引导虚拟机,各有利弊。1.BIOS bootloader适用于全虚拟化,loader模拟了BIOS原文:Booting via the BIOS is available for hypervisors supporting full virtualization. In this case the BIOS has a boot ...

2020-01-13 16:06:16

libvirt 启动 qemu 的过程

1背景介绍gdb 调试多任务程序时会有些麻烦: fork 之后没法同时跟踪父进程和子进程,如果在子进程里设置了一个 breakpoint,那么子进程将会收到一个SIGTRAP信号并退出。gdb 手册里提到了一种小技巧,那就是在想要插入 breakpoint 的位置添加sleep()调用。但经过笔者试验,添加以下代码更加适合:static volatile int hol...

2019-05-16 10:05:16

TAP/TUN Vnet veth

TAP 设备与 VETH 设备TUN/TAP 设备是一种让用户态程序向内核协议栈注入数据的设备,一个工作在三层,一个工作在二层,使用较多的是 TAP 设备。VETH 设备出现较早,它的作用是反转通讯数据的方向,需要发送的数据会被转换成需要收到的数据重新送入内核网络层进行处理,从而间接的完成数据的注入。图 3 .TAP 设备和 VETH 设备工作过程 如图所示...

2019-05-15 13:34:02

Vmware 中Windows和虚拟机共享文件--VMware-tools补丁安装

结合之前搜到的一些讯息,大概可以判断出VMware Tools在Ubuntu下不稳定,一些功能会时不时自动失效,通过这个补丁来安装VMware Tools的话就能解决这些问题 现在就用这个补丁来安装VMware Tools吧!sudo apt-get install dkms linux-headers-$(uname -r) build-essential psmiscgit clone...

2019-04-17 10:27:36

IOMMU

在没有IOMMU的情况下,设备(指32bit或64bit设备,老的16bit的不提)的DMA操作可以访问整个物理地址空间,所以理论上设备可以向操作系统的代码段、数据段等内存区域做DMA,从而破坏整个系统。当然,通常来说不会有这样的设备。IOMMU的出现,可以实现地址空间上的隔离,使设备只能访问规定的内存区域。下面简要说一下intel的IOMMU怎么做到这点的: 目前PC架构最多有256PCI...

2019-01-23 15:47:48

从需求的角度去理解Linux系列:总线、设备和驱动

《从需求的角度去理解Linux系列:总线、设备和驱动》是一篇有关如何学习嵌入式Linux系统的方法论文章,也是从需求的角度去理解Linux系统软件的开篇。这是作者精心撰写的经验总结,希望嵌入式Linux的学习者仔细领会,多读几遍也无妨。一、软件、面向对象、软件框架软件是为了解决现实问题而产生的,面向对象的软件思维是解决普遍现实问题的一种有效的抽象方法,而软件框架指的是用面向对象的思维去解决...

2019-01-23 11:08:30

linux使用vim浏览python源码

1.python tags生成脚本#! /usr/bin/env python# ptags## Create a tags file for Python programs, usable with vi.# Tagged are:# - functions (even inside other defs or classes)# - classes# - filename...

2019-01-16 16:34:04

linux内核内存管理的三个阶段分析

----------------------------------------硬件:E500v2内核PowerPC ,linux版本:2.6.35----------------------------------------linux内核的内存管理分三个阶段。1. 启动---->bootmem初始化完成为第一阶段。此阶段只能使用memblock_reserve函数分配内存。  ...

2019-01-02 16:42:03

VLAN原理详解

1.为什么需要VLAN1.1 什么是VLAN?VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。在此让我们先复习一下广播域的概念。广播域,指的是广播帧(目标MAC地址全部为1)所能传递到的范围,亦即能够直接通信的范围。严格地说...

2018-12-27 11:14:07

ext文件系统机制原理剖析

将磁盘进行分区,分区是将磁盘按柱面进行物理上的划分。划分好分区后还要进行格式化,然后再挂载才能使用(不考虑其他方法)。格式化分区的过程其实就是创建文件系统。文件系统的类型有很多种,如CentOS 5和CentOS 6上默认使用的ext2/ext3/ext4,CentOS 7上默认使用的xfs,windows上的NTFS,光盘类的文件系统ISO9660,MAC上的混合文件系统HFS,网络文件系统...

2018-12-07 09:50:45

vim+cscope+nerdtree等

index.sh#!/bin/bash echo "delete cscope.files, cscope.out, tags" rm -f cscope.files cscope.out tags  echo "create cscope.files" find `pwd` -name '*.h' -o -name '*.c' -o -name '*.S'> cscope.f...

2018-12-04 13:37:55

Docker源码分析(一):Docker架构

1 背景1.1 Docker简介Docker是Docker公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。目前,Docker可以在容器内部快速自动化部署应用,并可以通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行...

2018-11-23 11:35:04

给开源编译器插入后门

说起 Ken Thompson,我们首先想到的是他发明的 UNIX 操作系统。他因此获得 1984 年的图灵奖。在图灵奖演讲上,Ken Thompson 提出了一个深刻的问题:看到了软件的源码,就意味着没有后门吗?编译器是否可能存在能自我复制的后门?KenThompson这篇发表在《ACM 通讯》上的论文只有短短三页,省略了很多细节。原理上有点像输出自身代码的 C 程序,但又比它难很多。我...

2018-11-20 15:26:24

VC维的来龙去脉(转)

目录:说说历史 Hoeffding不等式 Connection to Learning 学习可行的两个核心条件 Effective Number of Hypotheses Growth Function Break Point与Shatter VC Bound VC dimension 深度学习与VC维 小结 参考文献VC维在机器学习领域是一个很基础的概念,它给诸多机...

2018-11-15 16:07:06

bootloader详解(转载)

一。bootloader介绍bootloader是硬件在加电开机后,除BIOS固化程序外最先运行的软件,负责载入真正的操作系统,可以理解为一个超小型的os。目前在Linux平台中主要有lilo、grub等,在Windows平台上主要有ntldr、bootmgr、grldr等。这里以grub-0.97为基础描述bootloader的启动过程。一般grub主要分为stage1和stage2两个...

2018-11-05 09:24:11

CPU的三种虚拟化机制

事实上,不同类型的虚拟化技术是从不同的地方开始引导虚拟机系统的:从模拟的BIOS开始引导的,支持MBR、EFI、PXE等启动方式,如QEMU、VMWare; 从内核开始引导的,虚拟机镜像内不包含内核,如KVM、Xen; 从init进程开始引导的,虚拟机是一个与主机共享内核的容器,会按照操作系统的引导过程启动各种系统服务,如LXC、OpenVZ; 只运行一个特定的应用程序...

2018-11-02 13:47:08

区块链深入理解---BLOCKBENCH:A Framework for Analyzing Blockchains

论文发表在SIGMOD'2017 ,SIGMOD是数据库顶级会议。可见论文作者基本是数据库界的大牛,从论文中也可以看出这一点。这样也好,站在不同视角理解区块链。可能更开脑洞。本文的确是一篇分析私有(或许可型)区块链的难得好文。 下面是笔者在读这篇论文时做的一点笔记。 1、引言 区块链,也称分布式账本,本质上是系统互不信任的节点维护了一种只可附加的数据结构。(系统所有节点对存...

2018-10-29 18:54:41

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。