- 博客(38)
- 收藏
- 关注
转载 虚拟化技术
虚拟化可以理解为将一台物理硬件虚拟成多个虚拟硬件平台。虚拟机OS看到的物理内存不是从0开始的,而每个内核所使用的物理内存必须是从0开始的地址空间,好分配内存地址;我们将虚拟机称为guestos;虚拟机监控软件起名叫:hypervisor;I/O设备虚拟化:将来自不同的包文进行封装即可;虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高
2015-08-21 18:52:42
1563
转载 命名返回值优化
今天突然想到一个问题,如果在函数fun中定义一个局部对象a,然后返回该局部对象a给调用函数main,会不会专门为返回值再生成一个对象?即如以下代码所示,一共会调用多少次构造函数和析构函数呢?class A{ public: A(){cout A(const A &a){cout ~A(){cout}; A
2015-07-14 10:54:26
665
转载 Python 装饰器
这是我自己的理解,如有不妥,请指正 其实弄明白了python中的嵌套函数(也就是所谓的闭合函数)之后,再想搞懂python装饰器就简单多了。总之python装饰器不过就是一个针对嵌套函数的语法糖 它的作用就是在函数调用方法不变的情况下,把此函数包装成另一个函数来使用 一、首先来大致了解下嵌套函数: 被嵌套与一层函数中的二层函数可以记录上上一层函数作用域中
2015-06-17 20:32:53
613
转载 Python2.x和3.x主要差异总结
开始使用Python之后就到处宣扬Python如何如何好,宣传工作的一大重要诀窍就是做对比,比如原先用Java的时候做个什么东西要写多少代码,怎么个别扭,现在用Python实现同样的功能怎么个简单等等。不过谈Python,不管怎么谈,老会谈到Python2.x和3.x的版本差异问题,这个差异真不是一般的大,从一个简单的print到核心库的改进都牵扯到了很多,现在总结了一些主要的差异点。
2015-03-29 16:27:20
5171
原创 SSI(Server Side Include)简介
Server-side include(服务器端包括)Server-side include(服务器端包括)是浏览器向服务器请求您的文档时并入您的文档的一个文件。当访问者浏览器请求含有 include(包括)指令的文档时,服务器处理 include(包括)指令并创建新的文档,在新文档中 include(包括)指令被所包括的文件内容取代。然后服务器将此新文档发送给访问者的浏览器。但当您在浏览
2014-07-05 15:41:02
2818
转载 apache工作模式:prefork和worker
apache作为现今web服务器用的最广泛也是最稳定的开源服务器软件,其工作模式有许多中,目前主要有两种模式:prefork模式和worker模式一、两种模式prefork模式: prefork是Unix平台上的默认(缺省)MPM,使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接,效率高,但内存占用量比较大。 这个多路处理模块
2014-07-02 08:19:37
697
原创 字节序
由于历史的原因,业界存在两种字节序标准:BigEndian和LittleEndian,Power PC是大头,X86是小头,有些CPU可以通过寄存器设置支持不同的字节序,例如MIPS;所谓大头就是高位在低字节,低位在高字节;小头则与此相反,以0x345678为例,大头内存从低到高的存放次序为00,34,56,78,小头内存从低到高的存放次序为78,56,34,00;(上面的数值统一为1
2014-06-06 11:05:11
971
转载 C语言字节对齐
一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐 需要字节对齐的根本原因在于CPU访问数据的效率问题。假设上面整型变量的地址不是自然对齐,比如为0x00000002,则CPU如果
2014-06-06 08:24:29
597
转载 chroot
chroot[--help][--version][目的目录][执行指令...][功能]把根目录换成指定的目的目录.[描述]‘chroot’使用一个指定的根目录运行命令,在大多数系统上,仅限于超级用户可以做这个动作。通常情况下,搜索文件名开始于根目录结构。比如‘/’。‘chroot’命令可以更改根路径到新的指定的路径。使用chroot,实现了如下等功能:1).增加了
2014-06-05 19:21:18
2093
原创 iptables规则的查看、添加、删除和修改
这里只列出比较常用的查看、添加、删除和修改参数,对于其中的默认策略(policy)的定义、以及其他各种规则如何定制这里暂不讨论。1、查看iptables -nvL –line-number-L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数-n 不对ip地址进行反查,加上这个参数显示速度会快很多-v 输出详细信息,包含通过
2014-03-05 21:03:44
2402
原创 双网卡双网关冲突问题
首先要声明一点,双网卡一台电脑拥有两个默认网关是不可能的,因为默认网关(default gateway)只能是一个。双网卡双网关冲突问题造成的原因是:两张网卡设置两个网关,由于都设置成了默认网关导致了冲突,造成网络不通。解决方法:一张网卡设置成默认网关,另一张利用静态路由,使得该网卡对应ip所在的网络数据传输通过静态路由中的网关(非主机默认网关)。
2014-02-15 22:19:34
25459
转载 串的模式匹配算法:BF和KMP算法
Brute-Force算法的思想1.BF(Brute-Force)算法 Brute-Force算法的基本思想是:1) 从目标串s 的第一个字符起和模式串t的第一个字符进行比较,若相等,则继续逐个比较后续字符,否则从串s 的第二个字符起再重新和串t进行比较。2) 依此类推,直至串t 中的每个字符依次和串s的一个连续的字符序列相等,则称模式匹配成功,此
2014-02-11 23:32:39
1128
转载 ICMP报文结构原理 及ICMP协议的分析与实现
目的不可达报文类型:3代码:0至15检验和未使用(全0)收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节源端抑制报文类型:4代码:0检验和未使用(全0)收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节
2014-02-11 12:44:31
12828
2
转载 中继器、集线器(HUB)、网桥、交换机、路由器比较
中继器或集线器既不能隔离冲突域又不能隔离广播域,网桥或交换机只能隔离冲突域不能隔离广播域,路由器既能隔离冲突域又能隔离广播域,为什么?【解析】 首先要清楚什么是冲突域和广播域,当一块网卡发送信息时有可能和另一块网卡冲突的所有的网卡的集合称为冲突域。一块网卡发出一个广播,能收到这个广播的所有的网卡的集合称为一个广播域。一般来说一个网段就是一个冲突域,一个局域网就是一个广播域;先了解这么多
2014-02-09 12:17:11
2591
转载 拨号上网、ISDN、ADSL、光纤上网比较
不同点拨号上网ISDNADSL线路直接使用普通电话线路对电话线进行改良,升级到ISDN对电话线进行分频处理速率最高56Kbps64K或128K(2个B通道,每个B通道64K)最高可达8Mbps,实际使用中均可
2014-02-08 12:23:21
18675
1
原创 dump、cpio、tar、dd四种备份工具比较
dumpdump可执行文件系统增量备份的存储操作,dump 可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。dump 可以执行类似 tar 的功能。然而,dump 倾向于考虑文件系统而不是个别的文件。配合 dump 的程序是 restore ,它用于从转储映像还原文件。restore 命令执行转储的逆向功能。可以首先还原文件系统的完全备份,而后续的增量备份可以在已还原的
2013-10-12 20:05:52
6223
原创 Linux文件特殊权限
Linux中文件除了r、w、x这三个读、写、执行的权限还有特殊权限(s、t)。SUID权限:当s这个标志出现在文件所有者的x权限上时(如:"-rwsr-xr-x"),则被称为Set UID,简称SUID权限。SGID权限:Sticky Bit权限:
2013-09-26 20:00:51
1131
原创 Linux文件属性
要了解Linux的文件属性,有个重要的也是常用的指令,就是"ls"这一个查看文件的指令。在你以root身份或普通用户身份登入Linux之后,下达"ls -al"看看,则查看了当前目录下的内容。其中的total 192指的是~目录下所占容量大小(单位为:Kbytes),因为目录中内容并不连续排放,所以total>=内容总容量。ls是"list"的意思,重点在显示文件的文件名与相关
2013-09-18 17:24:00
1427
原创 引导加载程序:GRUB
计算机在启动的时候,首先由BIOS中的程序执行自检,自检通过后,就根据CMOS的配置找到第一个可启动磁盘的MBR中的Boot Loader程序(一般在启动盘的第一个物理扇区,占416字节),并把控制权交给Boot Loader,由Boot Loader进一步完成操作系统内核的加载。当Boot Loader找到内核之后,就把控制权交给操作系统内核,由内核继续完成系统的启动。可以看出,Boot Loa
2013-09-09 12:28:29
1653
转载 Linux目录结构
/• root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。• home --- 存储普通用户的个人文件• ftp --- 用户所有服务• httpd• samba• user1• user2• bin --- 系统启动时需要的执行文件
2013-08-30 22:18:53
1037
原创 硬盘分区表
计算机硬盘的读取。计算机并不像人那么聪明。在读取相应的文件时,你必须要给出相应的规则。这就是分区概念。分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录和引导记录备份的存放位置。而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过以后的高级格式化,即Format命令来实现。面、磁道和扇区硬盘分区后,将会被划分为面(Side)、磁
2013-08-30 12:06:04
1439
原创 什么是操作系统
对于一台计算机,机器本身只能识别0、1,因此你必须学习机器语言才能与计算机进行面对面的交流,你写的程序要给计算机看,你得参考相应机器本身各个硬件的功能函数,期间需要参考相应的硬件技术手册,这工作量无疑是巨大的,并且你辛苦编出来的程序对于不同的机器却无法移植,且程序程序具有专一性(即:如果你已经开发了一个浏览器程序,想要再开发文件管理程序,还得重头看硬件手册)。为了解决程序的专一性问题,计算机学
2013-08-25 09:24:50
1247
原创 C++多态性及虚函数
多态性一种接口,多种方法多态性可分为:静态多态性和动态多态性静态多态性(编译多态性):通过重载实现(包括函数的重载、运算符的重载)。动态多态性(运行多态性):通过虚函数实现。虚函数虚函数真正作用:突破了无法通过基类指针或引用去调用派生类对象中的成员函数的限制,从而实现了动态多态性。虚函数的使用方式虚函数的实现原理:虚函数表实现
2013-08-20 13:43:55
1200
原创 作用域及域作用符
先来阐述一下各个作用域1、局部作用域:函数名{},作用域为 {}内从声明处开始到“ }” 结束。例如{...int a; //从此处以下到“}”是a的局部作用域...} 2、类作用域:类的 定义的{ 开始 到 } 结束 这个和1 不同,一个属性成员在类内是全局的3、名字空间作用域:一个在名字空间定义中声明的标识符,它的作用域从
2013-08-18 20:46:47
1157
原创 引用作为函数返回类型
格式:类型标识符 &函数名(形参列表及类型说明){ //函数体 }好处:在内存中不产生被返回值的副本;(注意:正是因为这点原因,所以返回一个局部变量的引用是不可取的。因为随着该局部变量生存期的结束,相应的引用也会失效,产生runtime error!举例分析:#include using namespace std; int a = 4; //函数返回a
2013-08-16 19:17:09
1266
原创 运算符重载规则
重载运算符的函数一般格式:函数类型operator 运算符名称(形参表列){对运算符的重载处理 }重载运算符遵循规则:(1)C++不允许自定义新的运算符,只能重载已有运算符。(2)五种运算符不能重载:“.”、“.*”、“::”、“sizeof”、“?:”(3)重载不能改变运算对象个数,即双目仍为双目、单目仍为单目。(4)重载不能改变运算符优先级。
2013-08-15 16:42:18
2243
原创 静态数据成员及静态成员函数
静态数据成员:作用:实现同类的多个对象之间的数据共享,且又避免了使用全局变量实现数据共享的不安全性。(1)以关键词static开头.(2)为各对象所共有,对象分配的空间中不包含静态数据成员所占空间。(3)静态数据成员在对象外单独开辟空间,其空间不随对象的建立和撤销的影响,静态数据成员在程序编译时被分配空间,到程序结束时才释放空间。(4)静态数据成员可以初始化,但只能在类体外进行
2013-08-14 22:25:07
1032
原创 链表的反转
#include #include typedef struct Node{ int data; struct Node *Next; }Node,*pNode; void InitialNode(pNode *node);//Intial Node void ReverseLink(pNode L);//reverse
2013-08-12 14:03:01
677
转载 C/C++ 编译、连接与执行
代码的编译连接与执行过程1.编译 一个个源文件,经过编译系统的处理,生成目标文件的过程叫做编译。编译是对一个个源文件分别处理的,因此每个源文件构成了一个独立的编译单元编译过程中不同的编译单元互不影响。a.cpp和b.cpp这两个源文件经过编译后,在Linux下会生成a.o和b.o两个目标文件。 目标文件主要用来描述程序在运行过程中需要放在内存中的内容,这
2013-08-12 09:43:12
2163
转载 VC++ MFC SQL ADO数据库访问技术使用的基本步骤及方法
1.首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,只需要直接用 #import引用它既可。可以直接在Stdafx.h文件中加入下面语句来实现:[cpp] view plaincopy#
2013-08-08 15:19:31
1338
原创 string类修改字符串常量
在看C++的string类型的时候,突然发现string类型可以对其字符串常量中的字符进行修改,而我记得字符串常量是被存储在常量存储qu
2013-08-08 11:09:43
3497
转载 C/C++内存分区及各区区别
c/c++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。堆:就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由存储区
2013-08-06 22:34:44
1250
转载 win7下VC6.0 注册数据库控件失败解决办法
Win 7 下使用VC6.0注册数据库控件失败的解决办法。 在win7下使用VC6.0老是会出现这样那样的问题,有时候问题真的是很奇快。这次写这篇文档的主要目的是结局win7下使用VC6.0注册数据库控件失败的问题。 (本例针对对话框程序)我们在VC6.0中庸MFC进行数据库应用程序的设计编程时会用到一些常用的数据库访问控件:比如ADO Data控件,Dat
2013-08-03 10:06:40
1777
转载 VC文件扩展名解读
.APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。(删除后再次打开工程又会重新生成) .BMP:位图资源文件。 .BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。用于浏览项目信息的,如果用sour
2013-08-02 12:57:17
659
原创 C/C++中头文件格式
关于C/C++的头文件格式之前就有所了解,今天在看C++的时候再次看到,决定把这个记录下来。先来看一段代码:这里include"student.h"不能写成include。原因在于:""首先搜索当前目录,当前目录没有,再搜索头文件的标准目录,另外还有一个问题,来看一下下面两段代码:这两段代码都能编译通过。原因是在C++中#include using
2013-08-01 21:55:37
5852
原创 开始写博客啦!
这段时间有一种深刻的感受,想学点技术但又不知从哪开始。于是决定开始写博客,记录下程序生活的点点滴滴。今天是我写博客的第一天,一个新的开始,虽然不知道以后会怎样,总之,加油加油加油!!!
2013-08-01 13:41:29
957
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人