自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 ubuntu16.04安装、配置etcd

安装$ curl -L  https://github.com/coreos/etcd/releases/download/v2.3.0-alpha.1/etcd-v2.3.0-alpha.1-linux-amd64.tar.gz -o etcd-v2.3.0-alpha.1-linux-amd64.tar.gz$ tar xzvf etcd-v2.3.0-alpha.1-linux-amd...

2018-10-12 10:45:48 2329 6

原创 详解Linux下的自动挂载文件/etc/fstab

一、/etc/fstab文件的作用         磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。        系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。二、挂载的限制    在说明这个文件...

2018-08-15 15:15:13 6237

原创 Python字符串中嵌入单/双引号

两种方法:1、在双引号前面加个转义符 \ ,即反斜杠。如"Hello  \"W \"orld",会输出  Hello "W"orld2、用单引号引起整个字符串,如'Hello "W"orld',同样输出  Hello "W"orld     同理也可以在字符串里嵌入单引号,如"Hello 'W'orld",输出 Hello 'W'orld...

2018-08-13 09:50:42 2361

转载 Git 工具 - 重写历史

重写历史很多时候,在 Git 上工作的时候,你也许会由于某种原因想要修订你的提交历史。Git 的一个卓越之处就是它允许你在最后可能的时刻再作决定。你可以在你即将提交暂存区时决定什么文件归入哪一次提交,你可以使用 stash 命令来决定你暂时搁置的工作,你可以重写已经发生的提交以使它们看起来是另外一种样子。这个包括改变提交的次序、改变说明或者修改提交中包含的文件,将提交归并、拆分或者完全删除——...

2018-07-26 16:58:53 321

转载 Git 将本地项目上传到 GitHub

、一、本地创建本地文件夹        安装好git之后,现在本地创建一个空文件夹,并且进入该文件夹$ mkdir test //创建文件夹$ cd test //进入当前目录123二、执行git命令  1、通过git init命令让新建的文件夹成为git可管理的仓库$ git init12  执行完这一步在test文件夹里就会看到.git文件夹,它是用来跟踪和管理版本...

2018-05-22 16:59:07 3092

原创 五分钟了解Python Virtualenv

在开发Python应用程序的时候,系统默认安装的Python3-3.4。应用程序所需第三方包通过pip安装到Python3的site-packages目录。如果同时开发多个应用,则多个应用程序共用系统python3环境及所需第三方包,若应用A需要jinja 2.7,而应用B需要jinja 2.6,则出现了包冲突。这种情况下,每个应用需要各自拥有一套“独立”的Python运行环境。virtualen...

2018-03-28 14:49:17 562

转载 十分钟帮你解决git amend 错误

原文出处:https://www.cnblogs.com/dsxniubility/p/5817776.html一、问题回顾问题是git commit --amend 引起的。 一条commit已经push到远端develop了,但是后来又在这条commit上进行了amend操作,导致这条commit的哈希码发生了变化。并且后续又在这条commit之后进行了N条commit操作。

2018-01-23 17:50:37 5087

原创 python tarfile模块的基本用法

参考文档:https://docs.python.org/2/library/tarfile.html1.压缩一个文件夹下的所有文件#coding=utf8  import os  import tarfile    __author__ = 'Administrator'    def main():      cwd = os.getcwd() 

2018-01-09 19:34:19 5458

转载 Python中*args 和**kwargs的用法

当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。测试用例如下:[python] view plain copydef fun_var_args(farg, *args):      print "arg:", farg      for value in args: 

2017-12-11 10:37:12 370

原创 【已解决】WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSI

2017-11-30 09:50:40 3320

转载 PEP8管理Python代码风格

Python 的代码风格由 PEP 8 描述。这个文档描述了 Python 编程风格的方方面面。在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格。这样就易于阅读,易于在程序员之间交流。1 变量常量 : 大写加下划线USER_CONSTANT对于不会发生改变的全局变量,使用大写加下划线。私有变量 : 小写和一个前导下划线

2017-11-09 13:19:47 355

转载 Linux Source命令及脚本的执行方式解析

原文出处:http://xiaoqinglang.blog.51cto.com/712624/1882860当修改了/etc/profile文件,想让它立刻生效,而不用重新登录;这时就想到用source命令,如:source /etc/profile对source进行了学习,并且用它与sh 执行脚本进行了对比,现在总结一下。source命令:source命令也称为“点命令”,也

2017-09-15 15:03:28 504

原创 Ubuntu16.04下使用Devstack快速安装、部署Openstack

对于Openstack的初学者而言,除去看大量的官方文档了解整个Openstack架构外,还需要通过实践,自己搭建Openstack平台,用来学习,最后在使用的过程中,通过查看源码不断的解决遇到的问题。今天就和大家讲下如何使用Devstack在Ubuntu16.04下搭建一个简单的Openstack平台。参考文档为官方文档:https://docs.openstack.org/devstack/l

2017-09-01 13:42:20 6870

原创 解决Fedora忘记root密码及添加root用户问题

Fedora忘记密码:第一步:在开机进入grub菜单的时候选择正确的启动项,按e第二步:找到开头是linux16这一行,在末尾加上rd.break,注意空格,按ctrl+x第三步:此时进入救援模式,输入mount -o remount,rw /sysroot重新挂载为可读写第四步:输入chroot /sysroot转换到真正的/目录第五步:输入passwd修改密码第六步

2017-08-22 11:30:21 4823

原创 SSH的基本使用

工作中涉及到维护服务器的操作,为了操作方便及安全考虑,常常需要在服务器端安装SSH服务端,在自己机器上安装SSH客户端来连接到远程服务器上。SSH中的基本操作命令:1、连接到远程主机ssh name@serverip或 ssh serverip -l name提示输入密码后,连接到远程服务器。2、连接到远程主机某指定端口ssh name@serverip -p 端口号

2017-08-17 14:19:48 492

原创 初识Python-python教程总结

学习目标:掌握Python基本语法、熟悉debug以及常用的python库。Python 是一种面向对象的脚本语言,不需要编译。python有一个明确定义的语法,一个广泛的标准库。python可以嵌入到C/C++程序中。python 环境搭建:Linux下源码安装的方式(1,./configure 2,make 3,make install)此外,环境的变量的配置,在pat

2017-08-09 13:32:21 607

原创 初识OpenStack+KVM

1.虚拟化1型虚拟化:hypervisor直接运行于硬件之上,对硬件虚拟化做了优化,性能较高,但不支持虚拟机嵌套,例如Xen VMware的EXSI都属于1型虚拟化。1型虚拟化其hypervisor内存上严格隔离的。2型虚拟化:宿主机操作系统运行于硬件之上,hypervisor作为一个内核模块运行在宿主机操作系统之上。支持虚拟机嵌套,例如KVM,VMware的works

2017-08-09 13:26:24 7588

原创 使用devstack快速安装、部署openstack

关于openstack的学习今天终于进入正轨,开始学习如何搭建openstack环境,这件事在研究生第二年刚刚进入实验室的时候做过,那个时候为了彻底了解opesntack整体架构,使用命令行源码安装的方式。写了很多笔记,但没有同步到博客上来,近期打算整理下,敬请期待。今天就跟着别人的博客学习一下,使用devstack工具如何快速安装部署openstack。1、Linux中下载devstack

2017-08-03 17:19:48 1686

原创 openstack学习笔记

终于开始安心学习,今天开始学习openstack和KVM相关知识。学习主要参照的网络资源为cloudman的五分钟学习openstack:http://www.cnblogs.com/CloudMan6/tag/OpenStack/1.虚拟化1型虚拟化:hypervisor直接运行于硬件之上,对硬件虚拟化做了优化,性能较高,但不支持虚拟机嵌套,例如Xen

2017-08-02 17:42:51 737

原创 KVM学习笔记

KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚拟机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。  但是,KVM 本身不执行任何硬件模拟,需要客户空间程

2017-07-25 17:21:41 771

原创 git学习笔记(一)

1.理解git工作区、暂存区和版本库工作区为当前电脑内可以可到的目录,隐藏目录 .git不是工作区,而是版本库,内含各个分支及内容,包括master主分支。而暂存区为工作区到版本库的过渡。注意git commit只负责将暂存区的修改提交。没有执行git add 而仅执行git commit是无法提及修改到版本库的。操作:执行 git status,发现文件被修改,文件状态为modifi

2017-07-21 11:26:56 392

原创 Macbook pro下终端命令总结

很久没有更新博客了,最近刚刚入职,还处在了解环境和补基础的阶段。公司分配了Mac,平时没有使用过,之前曾经在知乎上看到一篇帖子,讲的是为什么说程序员都要有一个Mac,当时不理解,现在终于明白了,用Mac做开发比windows要方便的多。Mac OS作为类Linux系统,除了自带git外,还自带终端,终端的命令和Linux命令行几乎无差别,只是少部分命令行参数做了优化而已。那接下来就总结下Mac

2017-07-20 15:16:26 11800 1

转载 Xen半虚拟化下,IO共享环、事件通道、授权表之间的联系和区别

最后的例子很有意思,文章出处: http://blog.csdn.net/qianlong4526888/article/details/7553105初学Xen,对于DomU与Dom0之间的通信机制概念不清晰,现总结如下供大家参考,仅作抛砖引玉之用。找到一篇论文,《基于Xen的IO准虚拟化驱动研究》(胡冷非)讲得不错,拿来参考。(1)I/O共享环:在不同Domain之间存在的一块固定的共

2016-10-21 16:13:01 647

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

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

2016-09-12 21:16:28 1806 1

转载 linux内核分析-内存管理

转载请注明出处:http://blog.csdn.net/zhijianjingling00/article/details/9335333在内核模块中申请分配内存需要使用内核中的专用API:kmalloc、vmalloc、kzalloc、kcalloc、get_free_pages;当然,设备驱动程序也不例外;对于提供了MMU功能的处理器而言,Linux提供了复杂的内存管理系统,使得进程

2016-08-21 19:29:28 761

原创 Linux内核中编写一个模块,实现申请一块内存,需要考虑哪些方面?

1、Linux内核模块               编写模块:               1、module_init(XXX_init);                    static int __init XXX_init(){...};               2、module_exit(XXX_exit);                    static

2016-08-21 19:17:12 1857

原创 Xen超级调用详细实现

概述:当虚拟机的Guest OS需要执行一些更高权限的操作(如:页表的更新、对物理资源的访问等)时,由于自身在非特权域无法完成这些操作,于是便通过调用Hypercall交给Xen Hypervisor来完成这些操作。与系统调用类似,Xen启用130号中断向量端口作为超调用的中断号。这一中断向量的DPL被设置为1,类型为中断门。超调用能够由处于特权级1的客户机操作系统发起,而不能从用户态发起。

2016-08-16 18:47:54 2245

原创 Xen前后端分离设备驱动模型通信过程分析(包括事件通道、授权表、环缓冲区)

首先,在Xen分离设备驱动模型中,前端驱动通过事件通道、环缓冲区和授权表来和后端进行交互;       “事件通道”是类似于中断的一种机制,用于通知虚拟机对事件进行处理。当有请求等待处理,或者请求已经完成需要查收时,前端或者后端使用事件通道来通知对方。        “环缓冲区”,环状缓冲区,按页分配,里面放置请求和应答。环缓冲区采用生产者消费者模式,甲方首先放置请求,乙方获取并处理完请求

2016-08-16 11:24:57 1918

原创 Xen中Credit调度算法分析

调度简介      Xen调度不同的虚拟机到处理器上运行,基本方法是虚拟机按时间片运行。Xen通过调度器实现,用户可以根据自己的需要实现不同的调度器,从而实现不同的调度策略。     struct scheduler     schedulers 数组          {             &sched_sedf_def,             &sched_

2016-08-16 09:51:50 2033

转载 轻松搞定二叉树面试题

版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树

2016-08-11 17:16:06 1373

转载 sizeof浅析,求结构体大小

运算符sizeof可以计算出给定类型的大小,对于32位系统来说,sizeof(char) = 1; sizeof(int) = 4。基本数据类型的大小很好计算,我们来看一下如何计算构造数据类型的大小。              C语言中的构造数据类型有三种:数组、结构体和共用体。       数组是相同类型的元素的集合,只要会计算单个元素的大小,整个数组所占空间等于基础元素大小乘上元素的个

2016-08-10 18:07:25 433

原创 【总结】关于字符串匹配算法研究

(1)BF算法(常规算法)         BF算法就是最笨的算法,一个一个进行匹配。这里采用后缀匹配算法。其实与正常的BF算法想法差不多。只不过为了与第四种算法相对应,就用后缀匹配算法代替BF算法。         从网上搞些图(自己实在不想自己画图)                   从后面开始进行匹配。当不匹配时,子串整体向右偏移一个单位,再与主串进行比较。从而不断进行

2016-08-02 12:00:07 826

原创 【详细解析】字符串匹配的KMP算法

字符串匹配是计算机的基本任务之一。  举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?  许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。  这种算法不太容

2016-08-02 11:56:21 714

原创 Linux进程地址空间

转自:http://blog.chinaunix.net/uid-27119491-id-3325943.html下图是x86_64下linux进程的默认内存布局形式:下面逐一分析以上各个地址段的含义。 text 代码段代码段,从虚拟内存地址00400000开始,使用pmap $$可以查看到,这个地址是固定的:linux

2016-07-28 13:38:18 535

原创 Linux内存管理

理解linux内存管理首先得理解内存映射。转自:http://blog.chinaunix.net/uid-27119491-id-3282175.html程序用的都是逻辑地址,以下为objdump反汇编程序的结果,左边一列都是逻辑地址:000000000040053c:40053c:      55                      push %rbp

2016-07-28 13:36:14 521

转载 腾讯后台开发笔试知识点汇总

linux和os:netstat :显示网络状态tcpdump:主要是截获通过本机网络接口的数据,用以分析。能够截获当前所有通过本机网卡的数据包。它拥有灵活的过滤机制,可以确保得到想要的数据。ipcs:检查系统上共享内存的分配ipcrm:手动解除系统上共享内存的分配(如果这四个命令没听说过或者不能熟练使用,基本上可以回家,通过的概率较小 ^_^ ,这四个命令

2016-07-26 10:50:25 635

转载 [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结

基础篇:操作系统、计算机网络、设计模式一:操作系统1. 进程的有哪几种状态,状态转换图,及导致转换的事件。2. 进程与线程的区别。3. 进程通信的几种方式。4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)5. 线程的实现方式. (也就是用户线程与内核线程的区别)6. 用户态和核心态的区别。7. 用户栈和内核栈的区

2016-07-26 10:35:52 699

转载 Linux 下系统调用的三种方法

系统调用(System Call)是操作系统为在用户态运行的进程与硬件设备(如CPU、磁盘、打印机等)进行交互提供的一组接口。当用户进程需要发生系统调用时,CPU 通过软中断切换到内核态开始执行内核系统调用函数。下面介绍Linux 下三种发生系统调用的方法:通过 glibc 提供的库函数glibc 是 Linux 下使用的开源的标准 C 库,它是 GNU 发布的 libc 库,即运行时库。

2016-07-21 17:34:55 408

原创 leetcode算法总结之字符串除空格操作

给定字符串(ASCII码0-255)数组,请在不开辟额外空间的情况下删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。例如:"   i    am a      little boy.    ",变成"i am a little boy",语言不限,但不要用伪代码作答,函数输入输出请参考如下的函数原型:C++函数原型:voidFormatString(char

2016-07-13 17:24:12 3017

原创 leetcode算法题总结之Counting Bits

题目介绍:Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1's in their binary representation and return them as an array.Example:

2016-07-13 14:45:26 413

Android系统安全机制

Android是Google于2007年11月5日宣布的基于Linux内核的手持终端操作系统的名称。由于该系统自身具有开放源码的特性,所以它的安全性正在成为信息安全领域一个重要的课题。

2015-07-31

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

TA关注的人

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