自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (2)
  • 收藏
  • 关注

原创 mount概念

0,  // cd to top dir    $ mkdir -v {content, old, new0, new1}    $ cd content    $ touch  {content0, content1, content2}    $ cd old    $ touch {old0, old1, old2}    $ mkdir -v old-c

2012-07-13 15:59:42 1176

原创 手动安装linux kernel

1,编译内核,略2,将modules安装到指定路径,命令如下      make INSTALL_MOD_PATH=xxx modules_install      安装完毕后,在xxx/lib/modules下会出现新内核的modules目录 yyy。将xxx/lib/modules/yyy目录下两个链接文件删除3,将xxx/lib/modules/yyy拷贝到/boot/lib

2012-06-11 19:23:55 2304

原创 基于busybox制作自己的root filesystem

1,编译busybox      1)获得busybox-1.19.4源代码,并解压,进入源代码根目录busybox-1.19.4       2)$make O=busybox/build/dir menuconfig          选择编译static版本。取消ubi相关的选项,它会导致编译错误。确定安装目录为./_install       3)make O=busybo

2012-04-08 01:28:23 3645 1

原创 libvirt programming guide

1,如果要使用资源(cpu, memory等)资源查询API,如virDomainGetCPUStats,(), 需要挂载cgroup文件系统并在etc/libvirt/qemu.conf文件中配置      mkdir -v /dev/cgroup      mount -t cgroup -o devices,cpu,memory,blkio,cpuset,cpuacct none /

2012-03-29 11:00:36 1697

原创 Building issues of open source projects

1,gdb    如果编译用版本控制工具从code repository获得的mainline代码,要确定安装texinfo, flex和bison包。    并给gdb/remote.c打上一下补丁。      buf_len = strlen (rs->buf);    /* Further sanity checks, with knowledge of

2012-03-25 22:00:41 1340

转载 关于Virtualization和Cloud的链接

1)将qcow2镜像导入virt-manager后启动不成功,报no boot device,解决方案如下http://ubuntuforums.org/showthread.php?t=16387082)建立iSCSIhttps://fedoraproject.org/wiki/Scsi-target-utils_Quickstart_Guidehttp://www.cy

2012-02-17 13:31:49 1017

原创 例解gcc内嵌汇编(inline assembly)中&修饰符(modifier)的作用

被gcc内嵌汇编中的&修饰符困扰了好久,一直不知道在输出列表(output list)中,=与=&有什么区别。今天找到了答案。        例1:                int output;                int a, b, c, d, e, f;                asm volatile ("mov %%cs, %0\n\t"

2011-12-01 03:12:28 2490

转载 关于通用编程和Linux内核的链接

一篇非常不错关于汇编编程的总结http://www.acsu.buffalo.edu/~charngda/x86assembly.html    一篇不错的关于C/C++中aliasing的分析http://cellperformance.beyond3d.com/articles/2006/06/understanding-strict-aliasin

2011-11-01 01:50:13 1185

原创 Linux kernel boot process——从实模式(real mode)到保护模式(protected mode),再到分页(paging)

本文简要介绍X86-32架构下的Linux kernel被boot loader(如grub)加载到内存后,如何从最初的实模式,切换到保护模式,并开启分页机制。本文不涉及boot loader如何将内核加载到内存,因为这是boot loader的事,跟内核自己无关(当然他们之间一定要有种事先约定的协议来沟通)。因为启动代码并不经常变化,所以对这部分的分析基本适用于较早的2.6.24至现在的3.0.

2011-10-24 16:07:47 10684

原创 Linux Kernel源代码分析中的终极问题

吼吼,文章名字很唬人啊。这里只是记录我在研究Linux Kernel源代码时碰到的有意思的,而目前不知道为什么的问题。               * * * * *        1)为什么Interrupt handler不能睡眠,或者更严格的说,被调度(resc

2011-10-12 00:20:23 1814 2

原创 Memory Consistency Model for Shared-Memory Multiprocessors学习笔记(一)

最近纠结与linux kernel中关于memory barrier的语义和使用方法。遂进行深入阅读研究,所思所得记录如下。一,Sequential Consistency Model        对于程序员来说,在SMP系统中编程,最直观的内存一致性模型就是Sequential Consistency (SC,其实内存一致性模式可以扩展为分布式系统中的一致性模型)。因为它跟UP

2011-10-11 21:48:27 1942

原创 自己动手实现操作系统引导程序(OS bootloader)——借助QEMU/GDB/losetup/dd等工具

引导程序可以认为是PC加电启动后运行的第一段代码,它是一段长度为512字节的16位运行于实模式的代码。事实上,机器启动后会首先运行0xFFFF0处(也有的资料说是0xFFFFFFF0,BIOS这块我也不熟:-( )ROM中的BIOS代码,之后会跳转到0x07C00处执行引导程序。

2011-10-05 15:13:11 9720 4

原创 借助loop device与losetup命令制作硬盘镜像

1,创建镜像文件        用如下命令创建镜像文件sdb.img,bs指定block大小,镜像文件大小为bs*count        dd if=/dev/zero of=sdb.img bs=512 count=163842,用losetup命令将生成的镜像文

2011-09-29 20:28:27 8359

原创 Makefile特殊语法的应用

1,FORCE        原理:一个没有prerequistes和recipe的target总是会被更新,导致每个以该target为prerequistes的rule总是会被执行。        示例:                T1:P1                    CMDXX                P1:FORCE

2011-09-27 11:22:24 986

转载 Installing GRUB on a Hard Disk Image File

IntroductionGRUB is the GRand Unified Bootloader. For those unfamiliar, a bootloader is a critical piece of software used when a compu

2011-09-06 00:19:13 1292

原创 memcached结构分析(一)——线程模型

题记:        最近在阅读memcached的源代码,打算将自己学习所得成文留念,更因为是第一次正式接触memcached,水平有限,希望大家多多交流。此系列文章按自己的理解将memcached分成几个模块分别分析。这里以memcached-1.4.6为例。

2011-08-08 20:51:34 6499 3

原创 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)

工欲善其事,必先利其器。一个强大的开发环境可以大大提高工作效率。好吧,我知道这是废话。。。不过,我想一定有很多跟我一样打算进入Linux平台开发的新手,一开始都为找不到一个像Windows下的VS那样可以一键安装并且功能几乎完美无缺的开发工具而郁闷不已,甚至打算收回刚刚迈出的脚步。所幸的是,通过几天努力,我总算配置出了一个功能完备的基于Vim的开发环境。这个开发环境除了基本的Vim外,还包括Cta

2011-07-25 23:38:25 141690 22

转载 手把手教你把Vim改装成一个IDE编程环境(图文)

By:吴垠Date:2007-09-07Version:0.5Email:lazy.fox.wu#gmail.comHomepage:http://blog.csdn.net/wooinCopyright:该文章版权由吴垠和他可爱的老婆小包子所有。可在非商业目的下任意传播和复制。

2011-07-23 17:54:14 13437

原创 Linux系统使用Tips

摘要:1, 设置Terminal提示符格式2, 挂载移动硬盘3, diff与patch命令4, 使用安装盘修复GRUB5, 快速返回上次cd操作的目录6, 编译VIM7, 设置环境变量8, 截屏命令scrot9, bunzip2解压.bz210, 用find命令搜索时,不搜索某子目录11, netstat命

2011-07-09 01:05:43 1501

原创 linux下编译安装gcc

最近研究网络编程,最后发现还是unix/linux下相关资源比较多,研究起来方便,所以最近在安装相关开发环境,第一步当然是安装gcc。用rpm包安装,我想很多人会,没什么好说的。这里介绍从源代码编译安装,我的安装平台为fedora11-x86_64。    首先当然是下载相关源代码了。我下载了gmp-4.3.2.tar.bz2,mpfr-2.4.2.tar.bz2,gcc-4.4.

2010-03-14 23:37:00 13240 4

原创 Windows中的时间(SYSTEMTIME和FILETIME)

上一篇中介绍了C运行库中的时间处理函数。这一篇介绍Windows SDk中提供的时间函数。两种时间系统之间没有本质区别(事实上CRT时间是用Windows时间实现的,当然这是说的VC实现),同样提供本地时间和UTC时间之间的转换。不过CRT中的tm时间在SDK中对应为系统时间(SYSTEMTIME),CRT中的time_t时间在SDK中对应的为文件时间(FILETIME),那个"特殊时刻"也变成1

2010-02-26 23:00:00 54572 13

原创 CRT中的时间(time_t和tm)

    时间处理时实际项目中经常碰到的问题,这里介绍最常用的时间处理函数。    首先介绍基本的时间概念。时间一般分为两种,一种是本地时间(Local Time),一种是协调世界时间(Coordinated Universal Time ,UTC),也就是传说中的格林威治时间。本地时间与UTC时间之间的差即为时差,比如,北京时间(东八区)比UTC时间晚8个小时。    C运行库中处理时

2010-02-26 22:03:00 8541 4

原创 Windows异步IO (Asynchronous IO) (二)

        前一篇文章我们知道如何向设备驱动发送异步IO请求。显然,仅仅知道这些肯定是不够的,用户线程必须在必要的时候收到设备驱动的完成通知(Completion Notification),以执行相关任务,不然异步IO没有任何意义。Windows提供四种方法来接受来自设备驱动的完成通知。        也许有朋友已经想到了一个方法。前一篇提到,我们可以通过Overlapped的Int

2010-01-30 13:23:00 4739 1

原创 Windows异步IO(Asynchronous IO) (一)

题记:最近在学习Windows SDK编程,打算在这里贴出自己的学习总结和心得与大家交流,主要参考资料来自和。我尽量用英文术语来表达技术概念,方便大家查找其它资料。第一篇从异步IO(Asynchronous IO)说起,以文件IO作为代表。     异步IO是现代操作系统必不可少的特性,它让宝贵的CPU计算资源不会浪费在等待慢速IO上。它的行为方式很直观,用户线程在发送IO请求(Iss

2010-01-29 13:14:00 7563

fix-qpid-link.patch

修正使用automake编译QPID时遇到的cannot find boost-program-options, boost-filesytem等库的错误。不过未修正代码中ignore return value警告引起的错误。

2012-03-30

fix-qpid-link-problem.patch

修正使用automake编译QPID时遇到的cannot find boost-program-options, boost-filesytem等库的错误。 不过未修正代码中ignore return value警告引起的错误。

2012-03-30

空空如也

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

TA关注的人

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