- 博客(51)
- 资源 (6)
- 收藏
- 关注
原创 Ceph-Radosgw开发实践之防盗链(一)
认识一个软件最好的方法就是在它已有的基础上进行二次开发,添加新的功能. 本系列”Ceph-Radosgw开发之防盗链”文章就是在通过开发目前Ceph-RGW(Firefly版本)还没有的防盗链功能来加深对Ceph以及对象存储网管(Radosgw)地认识和理解,此过程会深入到代码细节. 注意:对于Ceph或者Radosgw(RGW)的基础知识不会过多或者特意提及.什么是防盗链
2017-01-06 10:12:16
1590
原创 外网访问KVM虚拟机
外网访问KVM虚拟机KVM虚拟机连接到的是virt-manager创建的内部网络,但是有时我们还需要能够从外部网络访问到创建的虚拟机. 虚拟机叫做客户机, 运行虚拟机的物理机叫做宿主机.情景如下:在宿主机上创建一个虚拟网络,然后创建一个虚拟机,将这虚拟机连接到虚拟网络上.现在我们需要通过宿主机所在的局域网络来访问刚才创建的虚拟机.首先在宿主机上创建一对虚拟网卡(vir-i1和vir-i2是两个虚
2017-01-05 10:28:53
4385
原创 Pycharm中的一些技巧
作为一个工具控,不来总结点pycharm的使用技巧怎么行呢?1)远程代码编辑+调试这类使用情景就是,比如远程机器是运行CentOS系统的服务器,本地主机是安装了Pycharm的OS X。要在本地写代码,远程机器上运行调试。首先,新建一个项目(目前还是一个空项目),配置远程Python解释器。并且设置SSH密钥登陆。(步骤见下)大概会进过几分钟的时间,pycharm会在远
2015-12-23 21:45:54
11807
原创 VMware fusion设置端口转发
VMware fusion中设置端口转发虽然VMware fusion和workstation都是同一家公司的产品,但是它们在某些设置的地方还是有所区别,比如设置端口转发,workstation提供了图形界面而fusion则是通过编辑配置文件。 首先找到fusion的网络配置文件,NAT的配置文件位/Library/Preferences/VMware Fusion/vmnet8/nat.conf
2015-11-13 22:49:27
4347
原创 django(一)--- 安装django
准备好虚拟环境:Python开发虚拟环境安装前的准备1. 下载django:django下载本文使用的是django-1.5.9(不同版本之间的区别还是比较大的,别搞错了)2.准备django的项目目录:自己定义一个目录来作为项目目录我自己准备的是 : ~/django153.关于虚拟环境 3.1 创建mkvirtualenv djan
2015-07-20 22:48:18
1136
原创 Python开发环境配置
基于Linux/ Mac OS X。也许很多朋友和我一样想要,另外也怕自己搞忘了。一、版本平台的说明1、系统平台此次开发环境的配置是基于Linux或者Mac OS X 的,对于windows没有试验过,所以不好说,应该都是一样的。不过个人建议,Python开发还是在Linux或者OS X平台上搞,这两个系统对于Python提供了原生支持。至少是 系统自带的。对于Ubuntu 1
2015-07-20 08:20:04
1851
原创 Linux下汇编语言------计算n的阶乘
用高级语言比如C语言写个阶乘很简单,那现在就来熟悉下Linux使用AT&T汇编格式写一个程序来计算阶乘吧写法一是 使用跳转指令实现,写法二是使用函数来实现约定:本程序没有将结果打印在标准输出上。需要使用GDB调试查看写法一#as filename.s -o filename.o#ld filename.o -o filename # gdb filename.section
2015-07-16 13:17:42
5512
原创 记录下org指令是干啥的 :D
第一回:org指令时NASM中的一个指令。在《NASM手册》中“org指定程序被载入内存时,程序的起始地址”boot.asm中第一行这样写的:org 07c00h。也许就会联想它的意思就是指定boot程序被加载到内存07c00的位置,产生这样的联想也很正常。但是BIOS本身就规定boot程序要被加载到内存位置07c00的,那 这个org不是多余的吗。也就是说,不要这个org照样
2015-07-01 11:01:14
3695
原创 安装Kali小记
在虚拟机上安装kali-1.1.0akali下载地址:下载 或者http://mirrors.ustc.edu.cn/kali-images/kali-1.1.0a/kali-linux-1.1.0a-amd64.iso虚拟机软件:VMware-fusion 7.1.2安装好后的工作:1)替换更新源:打开:leafpad /etc/apt/sources.list将官方源给
2015-06-30 18:35:08
1896
原创 Linux下汇编语言------找出最大数
Linux下汇编语言------找出最大数基于AT&T汇编语法编写#HOW TO Compile: as name_file.s -o name_file.o#HOW TO Link: ld name_file.o -o name_file.section .datadata_item: .long 23,45,67,3,122,22,11,66,0.section .text
2015-06-30 16:02:49
907
原创 ubuntu 14.04 32bit安装bochs-2.6.2
按照以下步骤一步一步:sudo apt-get install build-essentialsudo apt-get install g++sudo apt-get install xorg-devsudo apt-get install libgtk2.0-dev接着生成Makefile文件:./configure --enable-debugger --enable-dis
2015-06-29 12:45:12
1199
原创 二级指针删除单链表
首先创建一个节点typedef struct node{ int data; struct node *next;}Node;然后再创建一个链表,链表元素是由 1 ~ 5 这5个整数除以2得到的余数构成的。创建这个链表依然使用了二级指针。直接在create函数中修改了*head的值,让*head的值是第一个节点。可见这种方法创建的链表不存在大多数教材上得“头结点”这个节点。
2015-06-25 22:19:24
948
翻译 Snort:Barnyard2+MySQL+BASE 基于Ubuntu 14.04SNORT
首先明确操作系统平台是Ubuntu 14.04 LTS现在我们要在Ubuntu 14.04上部署snort NIDS(入侵检测系统)。需要这些东西:SNORT / Barnyard2 / Mysql / Apache2 / BASE在进行所有工作之前,请执行以下命令,确保安装必要的软件(工具链)sudo apt-get install -y build-essentia
2015-06-08 11:25:20
8104
3
转载 GDB Manual
原文地址:http://bbs.chinaunix.net/thread-150524-1-1.html用GDB调试程序GDB概述 2使用GDB 5GDB中运行UNIX的shell程序 8在GDB中运行程序 8调试已运行的程序 两种方法: 9暂停 / 恢复程序运行 9一、设置断点
2015-05-18 17:51:20
811
翻译 译文】添加PPA之后遇到未满足的依赖关系如何解决?
【译文】添加PPA之后遇到未满足的依赖关系如何解决?通常当我们通过sudo apt-get install soft_name安装东西时,会遇到如下的错误:Some packages could not be installed. This may mean that you haverequested an impossible situation or if you are usi
2015-04-29 12:50:17
1456
转载 socket中的close和shutdown区别
很明显这个两个函数是有差别的。close关闭本进程的socket id,但链接还是开着的。怎么理解?我们知道socket描述符是对内核中socket对象的引用。而close操作的正式socket描述符,可以理解为断开了当前进程和内核中socket对象的关系。但是其他进程同样可以和这个socket对象建立关系。当然也就是说连接是开着的(因为其他进程可以通过socket读写数据)shutdown破坏了s
2015-04-05 22:15:00
3930
原创 TCP 回射服务器
TCP Reflect Server & ClientTCP回射服务器。学习了《UNP》的第五章前面的知识,自己把代码敲出来了,加深了理解吧。概述简单地说就是,Client发送给Server一条消息(一行文本),Server再将同样地消息发送回Client。就像这样:客户端用到的函数和API包括:1) socket API — 创建套接字,负责建立基本的
2015-03-28 21:12:08
669
原创 为什么这样写:readline()
这里就不贴代码了。代码来自《UNIX 网络编程》第一卷(3rd edition)P73,P75具体来看看为什么要这样写。这是两个函数:P73的readline() Version 1;P75的readline() Version 2。readline() Version 1P73代码都是普通的C语言代码,关键是作者这样写的思路是啥,为什么要这样写但是后来却把这个版本的代
2015-03-28 17:34:29
776
原创 为什么要这样写:readn(),writen()?
这里就不贴代码了。代码来自《UNIX 网络编程》第一卷(3rd edition)P72,P73具体来看看为什么要这样写。对于readn()首先定义了两个size_t的变量:nleft表示还剩下的字节数;nread表示已经读取的字节数接着是一个字符型指针变量:ptr,指向读取的目标缓冲区(ptr = vptr)我们要读取的时n字节的数据,于是就先将赋值:nleft = n;(
2015-03-27 22:52:37
1535
转载 **4.4**在汇编语言中使用C语言库函数
**4.4**在汇编语言中使用C语言库函数上一个程序使用Linux系统调用显示CPU厂商信息。还有一种不使用系统调用的方法,那就是使用C语言库函数。接下来通过调用C库函数的printf()函数,编写一个调用printf()函数的新cpuid.s。*4.4.1*使用printfC库包含很多C程序通用的很多函数。比如exit()和printf()。新的cpuid.s中的Linux系统调
2014-11-21 15:37:15
1075
原创 《汇编语言程序设计》说明
《汇编语言程序设计说明》此书作者:(美国)布鲁姆我只是对其中的大部分东西作简要的摘录。一方面害怕自己忘记而没有书籍查证(这本书是向图书馆借的),另一方面是现在大部分汇编语言是基于win32平台的,而这本书是基于Linux下面的汇编,值得学习。而又不敢独享,遂与大家分享。基于以上原因呢,就没有表明是原创的。为什么从第四章开始?也许是我急于求成吧,也许是前面几章知识太枯燥,反正是各种原
2014-11-20 20:54:47
793
原创 汇编语言调用Linux系统调用read和write
.section .dataUserMsg:.ascii "Please input the message:"LenOfUserMsg:.equ lenMsg, LenOfUserMsg - UserMsg#.section .bss# .lcomm resb, 200OutputMsg:.ascii "This is your input:"LenOfOu
2014-10-09 17:25:32
4736
3
原创 通过cpuid指令获取CPU Verdor ID
#cpuid.s simple program to extract the processor Vendor ID#HOw TO complie and run#as -o cpuid.o cpuid.s#ld -o cpuid cpuid.o.section .dataoutput: .ascii "The processor Vendor ID is 'xxx
2014-09-21 11:20:46
3003
原创 vim后续配置 :)
VIM默认情况下,函数名是不会高亮的,将下面这段代码添加到/usr/share/vim/vim73/syntax/c.vim文件的末尾即可,需要说明的是/usr/share/vim/vim73/syntax/c.vim这个不是固定的:"highlight Functionssyn match cFunctions "\[^()]*)("me=e-2syn mat
2014-09-16 17:40:00
851
原创 单链表---直接插入排序
####记录####在链表中解决从小到大排序的问题!解决这个问题的方法很多直接排序代码:#include#includetypedef struct lNode{int data;struct lNode *next;}linklist;linklist *create( linklist
2014-09-12 23:43:27
2021
转载 Mac OS Apache MySQL PHP (mamp)环境搭建笔记
Mac OS Apache MySQL PHP (mamp)环境搭建笔记系统自带apache和php配置macos 是自带apache php的。但是需要手动打开。打开terminalsudo nano /etc/apache2/httpd.conf去掉loadModule php5_module libexec/apache2/libphp5.so前的#
2014-09-07 22:31:04
1742
原创 Mac中源代码编译安装Vim7.4
紧接着之前说的Mac安装YCM,由于YCM必须在vim7.4以上的版本才可以,但是Mac自带vim是7.3,于是需要将自带vim升级。###升级的方法很多,这里我选择一个终极方案,自己下载vim源代码,在Mac上面编译出vim7.4###1.在vim官方网站下载vim7.4源代码:http://www.vim.org/sources.php新建一个目录用于存放新安装的vim
2014-09-04 20:37:20
7946
原创 说说Mac安装YCM
说说Mac安装YCM首先我们得安装brew,安装brew的目的是为了安装cmake!1.安装brew和cmakeruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrewgoinstall)"接下来安装cmake安装之前先检查:brew doctor 然后
2014-09-04 20:24:25
4868
转载 oh-my-zsh
oh-my-zsh is an open source, community-driven framework for managing your Zsh configuration.It comes bundled with a ton of helpful functions, helpers, plugins, themes, and a few things that make y
2014-09-03 22:23:34
2077
转载 实模式与保护模式解惑之(一)——二者的起源与区别
概述:实模式和保护模式是处理器发展的两个非常重要的阶段。这两个模式下的编程也有着显著的不同,弄明实模式与保护模式的区别是理解操作系统运行原理和编写操作系统的基础。本文主要讲解了实模式和保护模式的区别和保护模式的起源,侧重点在二者寻址方式上的差异。本文来源:实模式与保护模式解惑之(一)——二者的起源与区别1.保护模式的起源 最开始的程序寻址是
2014-07-30 19:31:37
639
转载 【Linux学习笔记】Linux C中内联汇编的语法格式及使用方法(Inline Assembly in Linux C)
原文在这里:点击打开在此感谢原作者的创作!!
2014-07-18 19:34:37
603
转载 Linux C语言内联汇编使用
原文本文档的Copyleft归rosetta所有,使用GPL发布,可以自由拷贝、转载,转载时请保持文档的完整性。参考资料:《Linux内核完全剖析》,《新版汇编语言程序设计》,《Linux C编程一站式学习》 最近要改个C语言算法的关键部分用汇编语言实现,Linux里嵌入汇编基本使用AT&T汇编,比如Linux系统的启动部分用的就是AT&T汇编 。以前学过AT&T汇编,但学过
2014-07-18 17:22:43
1024
原创 关于%s 和%c的小小的收获
/****************************关于%s 和%c的小小的收获*今天早上偶尔看到一个函数:*定义在string.h中的*char *strstr(char *s1, char *s2)*作用就是找出s2字符串在s1中第一次出现的位置(不是数字位置)*使用举例:***************************//*******
2014-07-11 11:34:31
760
原创 Linux命令自己写 — ls
本文基于Ubuntu 12.04.4 (kernel version : 3.11.0-15-generic)这几天在写一个Linux的基础命令——ls。当然最终的效果可能和标准的GUN coreutils所提供的ls有些出入,但是在大致相同的情况下了解其中的原理!它的作用自然是明了的先说说文件的属性相关的文件的基本属性:文件类型,名字,大小,所有者以及所有者所在的组(具体
2014-06-25 18:57:13
1072
转载 fstat、stat和lstat 区别(转)
stat系统调用系列包括了fstat、stat和lstat,它们都是用来返回“相关文件状态信息”的,三者的不同之处在于设定源文件的方式不同。1首先隆重介绍的是一个非常重要的”VIP”人物,他是fstat, stat和lstat三者都要用到的一个结构体类型,名字叫做struct stat。可以说,没有这个struct stat的支持,上述三个系统调用将寸步难行。这个s
2014-06-19 11:40:22
802
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人