自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(176)
  • 收藏
  • 关注

转载 wanthelaping--1.1QEMU用户态框架

本节首先分析Qemu的初始化top level流程;从而引出Qemu各大功能模块的描述。最后分析Qemu与内核态KVM的通讯接口。1.1.1Main的主流程main–  (vl.c function main)a)   module_call_init(MODULE_INIT_QOM);--设备驱动初始化和注册 type_init(x86_cpu_register_types)(tar

2016-05-24 20:16:02 993

转载 一个IO传奇的一生-6

IO调度器 当IO旅行到调度器的时候,发现自己受到的待遇竟然很不一样,有些IO倚仗着特权很快就放行了;有些IO迟迟得不到处理,甚至在有些系统中居然饿死!面对这样的现状,IO显然是很不高兴的,凭什么别人就能被很快送到下一个旅程,自己需要在调度器上耗费青春年华?这里是拼爹的时代,人家出身好,人家是读请求,人家就可以很快得到资源。咱们是写请求,出生贫寒�">* may now be merg

2016-05-24 20:05:17 983

转载 一个IO传奇的一生-5

块设备层分析无论是经过EXT3文件系统还是块设备文件,最终都要通过writeback机制将数据刷新到磁盘,除非用户在对文件进行读写的时候采用了DirectIO的方式。为了提高性能,文件系统或者是裸设备都会采用Linux的cache机制对数据读写性能进行优化,因此都会采用writeback回写机制将数据写入磁盘。通过上述分析我们已经知道�%8ss="as3 plain">{/* 获取

2016-05-24 20:04:36 905

转载 一个IO传奇的一生-4

块设备buffer cache机制 在EXT3文件IO踏上新的征程之前,需要介绍一位EXT3文件IO的同伴,他们即将踏上相同的旅程。只不过这位同伴没有经历过EXT3文件系统的精彩,却领略了另外一番略有差别的风情。这位同伴是在块设备写操作时创建诞生的,我们可以称它为块设备IO。在很多�22>.writepages = generic_writepages,.releasepage

2016-05-24 20:04:16 764

转载 一个IO传奇的一生-1

http://alanwu.blog.51cto.com/3652632/1286553前言前几天同事提议写一篇文章来仔细分析一下一个IO从创建到消亡的整个过程,我觉得这个想法很好,一个IO从创建到消亡经历了千山万水,从软件到硬件涉及到很多很多的技术。一个看似简单的IO读写操作,其实汇集了从计算机软件技术、硬件技术、电子技术、信号处理等各个方面的内容。所以,我想把IO的一生通过自己

2016-05-24 20:00:49 867

转载 select(poll)实现代码实现分析(基于kernel 3.10.0)

分析转自网上。针对kernel3.10.0的代码重新注释,对其中的错误进行了修正上层要能使用select()和poll()系统调用来监测某个设备文件描述符,那么就必须实现这个设备驱动程序中struct file_operation结构体的poll函数,为什么?因为这两个系统调用最终都会调用驱动程序中的poll函数来初始化一个等待队列项, 然后将其加入到驱动程序中的等待队列头,这样就可以在硬

2016-05-18 13:30:37 671

转载 kvm--虚拟机运行

1、基本原理KVM虚拟机通过字符设备/dev/kvm的ioctl接口创建和运行,相关原理见之前的文章说明。虚拟机的运行通过/dev/kvm设备ioctl VCPU接口的KVM_RUN指令实现,在VM和VCPU创建好并完成初始化后,就可以调度该虚拟机运行了,通常,一个VCPU对应于一个线程,虚拟机运行的本质为调度该虚拟机相关的VCPU所在线程运行。虚拟机(VCPU)的运行主要任务是要进行上下

2016-05-18 12:30:19 642

原创 “firefox profile cannot be loaded" "server cannot be found"

win7里面firefox运行出现提示” your firefox profile cannot be loaded. It maybe missing or inaccessible"解决:window键+R 打开“运行”框,输入 %APPDATA%\Mozilla\Firefox, 在弹出的窗口,有个profile文件,是ini类型的。将它删除即可。ubuntu里面启动fi

2015-11-20 11:35:46 1096

转载 Linux设备模型之kobject

Linux设备模型之kobject阿辉原创,转载请注明出处http://www.cnblogs.com/helloahui/p/3677192.html参考文档:LDD3-ch14、内核文档Documentation/kobject.txt,本文中使用到的代码均摘自Linux-3.4.75---------------------------------------------

2015-10-20 11:01:16 707

转载 How to pass QEMU command-line options through libvirt

An entire virtual machine configuration can be passed on QEMU's extensivecommand-line, including everything from PCI slots to CPU features to serialport settings. While defining a virtual machine

2015-07-02 19:35:21 1771

原创 nfs 的安装与使用

一、 NFS简介   NFS是Network File System的简称,即网络文件系统。NFS是系统间进行文件共享   的一种网络协议,它允许用户像访问本地文件一样去访问网络上共享的文件。    在NFS的应用结构中,有服务器(Server)和客户端(Client)两种角色,NFS客户端  通过挂载NFS文件系统的方式访问NFS服务器中输出的共享目录。 在同一台主机中,既可

2015-06-23 20:39:15 9428

原创 win7下面安装One lingo.msi出现Error:2738 Could not access VBScript run time for custom action

系统:win7 64bit安装软件:Pearson_English_One_LinGo_2_1.msi安装过程中出现:Error:2738 Could not access VBScript run time for custom action分析:应该是Windows的脚本(VBScript)没有被注册。 解决方法:1.依次点击:开始->运行,注意,要用右键单击命令提示符,然

2015-06-02 13:53:05 2822

原创 Linux内核编译中遇到的Kconfig,.confi和Makefile的关系

最近在学习设备驱动程序,编写完之后进行编译之前,要在Kconfig和Makefile文件里面添加一些内容,参考了其他的源码,发现源码树目录下几乎都有Kconfig和Makefile文件,并且在内核编译之前,要使用make menuconfig(或者xconfig)生成配置文件。那么到底这些文件对于内核的编译有什么作用?它们之间是怎么样的关系,网上参考了一些文章,然后自己实地操作了一番,现简

2015-05-21 14:05:43 2176

转载 Linux2.6 内核的 Initrd 机制解析

Linux2.6 内核的 Initrd 机制解析 李 大治 ([email protected]), 软件工程师 简介: Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然

2015-05-20 16:49:26 600

转载 linux内核编程4部曲之四:模块编程

linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说linux内核编程4部曲之二:增加linux内核系统调用linux内核编程4部曲之三:修改O(1)调度算法linux内核编程4部曲之四:模块编程  一、实验要求         添加系统调用加减乘除,并通过模块加载,实现加减乘除。二、增加系统调用         按照实验一的步骤增加系统

2015-05-20 15:08:59 702

转载 linux内核编程4部曲之三:修改O(1)调度算法

linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说linux内核编程4部曲之二:增加linux内核系统调用linux内核编程4部曲之三:修改O(1)调度算法linux内核编程4部曲之四:模块编程 一、实验目的    修改O(1)调度程序,使交互性非常强的程序(IO密集型)在时间片用完后,不放置到活动数组,而放入过期数组(与O(1)调度实现相反)

2015-05-20 15:08:34 1092

转载 linux内核编程4部曲之二:增加linux内核系统调用

linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说linux内核编程4部曲之二:增加linux内核系统调用linux内核编程4部曲之三:修改O(1)调度算法linux内核编程4部曲之四:模块编程  本文,承接上面一篇linux内核编译,增加系统调用后,需要重新编译内核。一、实验目的    增加加减乘除系统调用,并测试系统调用和用户调用的

2015-05-20 15:08:15 965

转载 linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说

linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说linux内核编程4部曲之二:增加linux内核系统调用linux内核编程4部曲之三:修改O(1)调度算法linux内核编程4部曲之四:模块编程一、编译环境        ubuntu 5.10,要编译的内核源码版本2.6.12 二、下载并解压源代码     首先从linux内核的官网www

2015-05-20 15:07:13 678

原创 读《人生不设限》 有感

在我觉得最灰暗绝望的那段日子里,我疯狂地在网上寻找励志方面的书,然后我发现了这本畅销书《人生不设限--我那好得不像话的生活体验》,封面上这个没有四肢却洋溢着灿烂笑容的年轻人,叫力克*胡哲, 以前在校内网上看过关于他的视频,那是一段他在滑板上表演,他在泳池里游泳,他在舞台上舞动身体自信乐观的视频,那时候只知道特别震撼,也特别感动。所以当再次看到他的出现和他的书,那么急切地买下来。       书

2015-03-23 12:36:08 875

原创 socket.error: [Errno 98] Address already in use

最近在学Karrigell的时候,终止了服务,再运行python Karrigell的时候,出现了socket.error: [Errno 98] Address already in use这个错误,在网上查了一下原来是当通过客户端向服务器端发送消息,关闭了连接后,这时如果马上再去运行服务器端程序,会提示这个错误。 这与TCP/IP协议终止连接时候发出ACK之后需要等2个MSL时

2015-02-01 23:05:14 16921

转载 python 模块相互import

模块A中import B,而在模块B中import A。这时会怎么样呢?这个在Python列表中由RobertChen给出了详细解释,抄录如下:[A.py] from B import D class C:pass [B.py] from A import C class D:pass为什么执行A的时候不能加载D呢? 如果将A.py改为:import B就可

2015-02-01 22:19:44 4330 2

原创 ”ImportError: No module named t2“---python的import机制+模块的搜索路径

一、背景      最近在学pyhon的web框架Karrigell,下载了源码之后运行,出现了 ImportError: No module named  k_target , 在www/index.py里面 import k_target,但是运行的时候出现      了上述错误,网上查了一下,知道是不同目录下import 模块或者包的话,需要将模块或者包的路径加入到sys.path中

2015-02-01 21:09:03 1012

原创 Karrigell ---python web 框架介绍

Python 提供了五花八门的web框架,有功能强大的Django,也有特别方便小巧的Bottle, Karrigell, wxpython,最近在看《可爱的python》这本书,对于有编程基础的人,这本书入门python非常好,里面介绍了Karrigell这个web框架,它是一个支持python开发web程序的框架,简单来说,就是可以解释python脚本的web服务器。当然,语法不是单纯的pyt

2015-02-01 16:28:51 887 1

原创 stgit的使用总结

前端时间认真学习了Git,后来又学习了quilt。发现如果在开发的时候将这两者结合起来使用的确在开发的时候是可以在开发过程中的代码管理上事半功倍。有这样一个工具,他在你提交补丁和git push 之前帮你整理补丁,形成一个漂亮的提交,他就是StGit。这个工具是一个Python的Git前端。其作者是一个在英国剑桥工作的软件工程师,在这里膜拜一下,这个软件的想法真的不错,实现的也很好。    起

2015-01-31 19:49:01 1926

原创 git 操作总结(整个工作流程)

由于整个项目的管理都是通过git来实现的,所以想把整个操作流程记下来,以便更好地理解git.这里简单说一下git的工作原理:1. 本地工作目录, 本地仓库, 远端的代码仓库      git是分布式代码管理工具,在远程有个代码仓库R(repository),是项目整个的代码,因为是分 布式的,所以所有人都可以clone一份原始的代码到自己的电脑上,也称为本地工作目录D(work

2015-01-30 14:47:05 2268

原创 python学习

2015-01-191.print是格式化打印   -print "hello world"   -print  “ %d is year"  %  year   -strHello = "the length of (%s) is %d" %('laowangpython',len('laowangpython'))    print strHello   -print

2015-01-19 22:14:54 611

原创 javascript学习笔记9,10---定时器+数码时钟

定时器:格式setInterval(show, 1000) setTimeout(show,1000)show是函数,function show()1000是间隔时间 得到一个定时器变量var timer=null; timer=setInterval(function() {},1000)  停止定时

2015-01-10 19:59:49 816

原创 在emacs里面安装js2-mode

最近想学学web编程,所以就从javascript开始了,网上推荐说Sublime Text 功能非常强大(http://www.iplaysoft.com/sublimetext.html?1420815260356),并且原来看过一篇文章介绍其同时操作多行的技巧文章,应该很不错。。不过功能强大的编辑器想要学好都得花一些时间,我已经用emacs一段时间了,并且emacs是编辑器之神嘛,需要下苦功

2015-01-10 00:45:52 2676

转载 程序员必修的中文MOOC汇总

程序员必修的中文MOOC汇总 原文地址:http://blog.sunner.cn/recommended-mooc-for-programmers/2014年11月13日NULLSunnerGoogle 做了一个列表,推荐程序员去学习一些免费的在线课程,很受欢迎。所以,我也把迄今为止已经开出的中文计算机 MOOC 做个汇总。后续会不断更新,以展示最新进展。为避免软文嫌疑,回答中不

2015-01-02 15:00:34 603

转载 MapReduce原理与设计思想

MapReduce原理与设计思想简单解释 MapReduce 算法一个有趣的例子你想数出一摞牌中有多少张黑桃。直观方式是一张一张检查并且数出有多少张是黑桃?MapReduce方法则是:给在座的所有玩家中分配这摞牌让每个玩家数自己手中的牌有几张是黑桃,然后把这个数目汇报给你你把所有玩家告诉你的数字加起来,得到最后的结论

2015-01-02 14:56:02 545

转载 值得阅读的C语言开源项目代码

本文地址:http://www.cnblogs.com/archimedes/p/c-opensource-project.html,转载请注明源地址。本篇文章主要总结一些C开源项目,有些是很著名的,有些则比较生僻1.WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最

2015-01-02 14:53:04 787

转载 C++学习心得

1.把C++当成一门新的语言学习;2.看《Thinking In C++》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;5.不要放过任何一个看上去很简

2015-01-02 14:50:20 495

转载 GitHub干货分享

Github 网友 prakhar1989 的整理分享,内容包括:系统、编程语言/编译器、算法、CS 理论、CS 入门 和其他。系统编程语言/编译器算法CS 理论CS 入门其他Awesome XXX 系列:《Github干货系列:C++ 资源集合》《Github干货系列:C 语言资源集合》《Github干货系列:Java 资源集合》《Github干货系列:Go 语言

2015-01-02 14:48:31 513

转载 老码农教你学英语:补充一些英语学习素材

前几天写了《老码农教你学英语》之后,有一些朋友让我推荐一些各个阶段学习英语的素材。好吧,这次废话少说,下面就是我推荐的素材,供大家参考: 1. 白话书《Steve Jobs》 京东《The Mythical Man-Month》 京东《More Joel on Software.pdf》 下载链接 这里面,Steve Jobs的传记是我强烈推荐看的,不仅语言丰富

2015-01-02 14:18:10 384

转载 编写属于你的第一个Linux内核模块

曾经多少次想要在内核游荡?曾经多少次茫然不知方向?你不要再对着它迷惘,让我们指引你走向前方……内核编程常常看起来像是黑魔法,而在亚瑟 C 克拉克的眼中,它八成就是了。Linux内核和它的用户空间是大不相同的:抛开漫不经心,你必须小心翼翼,因为你编程中的一个bug就会影响到整个系统。浮点运算做起来可不容易,堆栈固定而狭小,而你写的代码总是异步的,因此你需要想想并发会导致什么。而除了所有这一切之外

2015-01-02 13:19:00 531

转载 进程虚拟地址空间中的虚拟内存区域(vma)---可执行程序与虚拟地址空间的映射关系

http://www.cnblogs.com/zszmhd/archive/2012/08/29/2661461.html http://www.cnblogs.com/chengxuyuancc/archive/2013/04/17/3026920.html http://www.cnblogs.com/bizhu/archive/2012/10/17/2727518.html

2014-12-29 23:21:39 689

转载 虚拟地址到物理地址的映射

虚拟地址和物理地址=========================================    CPU通过地址来访问内存中的单元,地址有虚拟地址和物理地址之分,如果CPU没有MMU(Memory Management Unit, 内存管理单元),或者有MMU但没有启用,CPU核在取指令或访问内存时发出的地址将直接传到CPU芯片的外部地址引脚上,直接被内存芯片(以下称为物理内

2014-12-29 22:54:26 4064

转载 linux驱动虚拟地址和物理地址的映射

【ioremap】在ARM中,设备的寄存器或者存储块的这部分空间属于内存空间的一部分,我们称之为IO内存。 在内核中访问IO内存之前,我们只有IO内存的物理地址,这样是无法通过软件直接访问的,需要首先用ioremap()函数将设备所处的物理地址映射到内核虚拟地址空间(3GB~4GB)。然后,才能根据映射所得到的内核虚拟地址范围,通过访问指令访问这些IO内存资源。 在将I/O内存

2014-12-29 22:53:14 1234

原创 linux内存布局及页面映射

在Linux系统中,以32bit x86系统来说,进程的4GB内存空间(虚拟地址空间)被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G。 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间。 每个进程的用户空间存放用户的程序和代码(堆栈,数据区,代码区等),因为是虚拟地址,所以每个进程的用户空间是完全独立的,互不影响。用户进程有自己的进程页

2014-12-29 20:58:42 4755

转载 来自豆瓣点评《深入理解linux内核》

这里没法插图片,完整版(带图片和一些格式调整)见   http://www.manio.org/cn/scheduling-of-linux-view-of-society/      注:我看的是影印版,写得很好。      Linux内核是一个无比复杂的系统,要想看清大致的脉络也非易事。其实,可以把运行中的Linux想像成一个人类的社会,当中的进程就是社会中的人。人有生老病

2014-12-28 15:52:56 1663

空空如也

空空如也

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

TA关注的人

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