多年Linux虚拟化内核开发和架构设计经验,对操作系统内核有深入研究和理解。
让虚拟机(guest)能够访问外网的方法很多,这里介绍一个我所了解的最简单的办法:macvtap。 1. 设置libvirt的虚机配置xml文件的网络部分如下: 点击(此处)折叠或打开 !-- mac...
在我们装rpm包时,有时候怎么安装都会失败,而且错误也很难理解,这时候有可能是系统的rpm数据库已经损毁,可以通过下面简单几个步骤 来恢复: 1. 删除rpm 锁文件: rm -rf /var/lib/rpm/__db.
From: quntmec@hotmail.com To: qf.hao@hotmail.com Subject: 关于《UNIX技术内幕》的勘误及遇到的问题_26 Date: Sun, 26 Feb 2012 16:34:18 +0800 郝先生, 线程方面碰到的问题如下: 1、689页,倒数第2、3行,里面提到第14章所实现的线程在退出时只会将线程栈释放、而不会释放该线程所分配的堆空间,这是否会造成内存泄漏?[郝]:如果用户线程在每次调用malloc后,都会调用free来释放它,那么就不会有内存泄漏。
From: quntmec@hotmail.com To: qf.hao@hotmail.com Subject: RE: 关于《UNIX技术内幕》的勘误及遇到的问题_25 Date: Fri, 17 Feb 2012 11:08:10 +0800 郝先生, 对...
使用方法: killtask.bat process_name比如: killtask.bat firefox杀掉所有firefox进程。源代码如下: 点击(此处)折叠或打开 @echo off rem Usage: killtask.
统计范围是个公式:功能描述:统计地址位于(pc-buflen*16K/scale, pc+buflen*16K/scale )内的指令执行时间,存放到buf中。其中,buf[0]是位于(pc-16K/scale, pc+16K/scale)内的指令执行时间, 把buflen-=1,pc=6.5K和scale=32带入公式,可以得出buf[0]是统计地址[6,7k)的指令。
From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: 关于《UNIX技术内幕》的勘误及遇到的问题_23Date: Fri, 3 Feb 2012 23:47:25 +0800郝先生,最近碰到的问题如下:1、有关 ptrace 的例子(1)567页,例1的输出中,最后2行的顺序似乎错了,应为如下:.
在C++中,一个类的构造函数没法直接调用另一个构造函数,比如: 点击(此处)折叠或打开 #ifndef _A_H_ #define _A_H_ #include stdio.h> #include new> class A { public: A() { printf("In A::().
From: qf.hao@hotmail.comTo: quntmec@hotmail.comSubject: RE: 关于《UNIX技术内幕》的勘误及遇到的问题_20Date: Fri, 3 Feb 2012 09:01:06 +0800 Steve,对,这里是应该为10.
cppunit是一个很好的针对于C++/C的单元测试框架,它源自于junit。利用cppunit我们可以很好的管理运行测试用例。cppunit是开源的,遵循LGPLv2许可证。你可以从http://sourceforge.net/projects/cppunit/下载到最新版本。
From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: 关于《UNIX技术内幕》的勘误及遇到的问题_19Date: Thu, 5 Jan 2012 14:31:49 +0800 郝先生,关于“进程交换过程“一章,我的疑问如下:1、420页最后一段起,到421页10.2节之间的内容,我的理解如下:对 于所有的进程,如果涉及进程的换入/换出,则需要换出的进程全部换出至一个特定的区域中。
在程序的性能指标中,内存是一个很重要的方面。内存问题包括很多方面:内存泄漏,非法指针使用(包括很常见的问题--使用未初始化指针),数组越界,栈溢出和奇地址访问等。这些问题在C/C++语言当中尤为明显,因为很少有其他语言比如java提供指针直接访问地址和内存空间。
在上一篇我们讲到单元测试时,可用gcov来做代码覆盖率检查,但有时候我们不仅需要知道代码覆盖率,而且还要判断它是否达到我们实现设定的阈值,比如90%,如果没有达到,就打印警告信息。我们可以自己写一个脚本来实现此功能,并集成到make文件中运行。
单元测试(unit test)是一种白盒测试,它是开发人员对自己编写的代码所做的测试。所谓白盒测试,就是浏览并测试代码的各个部分和分支。一般它需要开发人员自己写一些测试代码,来调用被测代码的接口,并通过测试结果来判断被测代码是否正确工作。
From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: 关于《UNIX技术内幕》的勘误及遇到的问题_18Date: Sat, 31 Dec 2011 17:09:43 +0800郝先生,新年快到了,先预祝你在新的一年里身体健康,心想事成。
Steve,请见答复。From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: 关于《UNIX技术内幕》的勘误及遇到的问题_17Date: Sun, 18 Dec 2011 18:24:23 +0800 郝先...
From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: 关于《UNIX技术内幕》的勘误及遇到的问题_16Date: Fri, 2 Dec 2011 18:27:20 +0800郝先生,目前碰到的问题如下:1、第256页提到的 b...
From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: 关于《UNIX技术内幕》的勘误及遇到的问题_15Date: Sun, 20 Nov 2011 16:45:18 +0800 郝先生,1、建议:第223页,最后一段,有关“句柄“与“文件描述符”等价的说明,建议加入到“1.6 缩写及术语说明“处。
Steve,请参见答复。From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: 关于《UNIX技术内幕》的勘误及遇到的问题_13Date: Thu, 3 Nov 2011 15:10:59 +0800 郝先生,目前碰到的疑问如下:1、第169页,第2行下面的表格,对于“shell进程”记录的“p_pri”项,为何为0?我重现再看99~100页的有关 newproc()的代码,也没有发现该项的赋值。
在用ant编译项目时,有时会碰到build.xml中所定义的任务找不到的问题: 点击(此处)折叠或打开 [root@tivu25 test]# ant -f build.xml local_war Buildfile: build.
Steve,答复如下。From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: 关于《UNIX技术内幕》的勘误及遇到的问题_12Date: Fri, 28 Oct 2011 21:46:12 +0800 郝先生,1、第158页,第2段第3、4行里提到的wakeup(&runin)可以改为 setrun(&proc[0]),我觉得直接替换不可以吧?如果真要替换,那也只能是设置一个循环遍历所有进程,符合唤醒条件的才 setrun(&proc[0])。
Steve,mtpi是一个汇编指令,用于在内核模式和用户模式之间传递数据。在第18页有描述From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: RE: 关于《UNIX技术内幕》的勘误及遇到的问题_10Date: Sun, 20 Nov 2011 17:01:08 +0800 郝先生,mtpi函数的代码在哪一页?我重新翻阅了一下,除了在第140页处(最后一段)可以找到一点有关mtpi的说明外,我没有发现书里有mtpi的代码。
Steve,应该是第2中情况,u变量就是一个user结构体,并且该变量地址固定在0o140000处,其所占空间长度就是结构体的长度。至于为什么要固定地址是0o140000,因为它是第6号虚拟寄存器映射的。
From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: 关于《UNIX技术内幕》的勘误及遇到的问题_3Date: Thu, 6 Oct 2011 19:24:10 +0800 郝先生,对于启动模块这一章...
Windows所提供的获取当前调用栈机制和Solaris有点类似,附件代码把它加以封装,以CallStack类提供给使用者。 #ifndef _CALLSTACK_H_ #define _CALLSTACK_H_ #include list> #def...
主要使用backtrace和backtrace_symbols两个函数。 #include #include using namespace std; //返回当前堆栈调用列表 string print_trace(int fd, int filter_first_l...
本文转自:http://stackoverflow.com/questions/6403803/how-to-get-backtrace-function-line-number-on-solaris主要使用了getcontext和walkcontext两个函数。
在AIX及其他unix/linux平台上,我们可以使用nm, objdump和readelf来分析ELF文件的符号表。具体使用方式是:nm objfile objdump -x objfile (或其他选项)readelf -a objfile但我们有时候需要在程序中来分析某个ELF文件(比如当前进程)的符号表,进行处理。
14.1 概述 现代操作系统引入了线程的概念。线程是CPU执行的最小单元,相对于进程而言,它具有轻捷、高效、开销小等优点。 14.2 线程和经典进程的比较 线程和经典进程的主要区别如下。
11.1 .out文件 本版UNIX的可执行文件是.out格式,如果你在UNIX下用gcc编译程序,它默认会生成一个名为“a.out”的可执行文件。
本源代码经宁希波帮助整理,去除了''和'&'符号,在此表示诚挚的谢意!源码中除/usr/personal目录外,均由Bell Labs(贝尔实验室)开发。
本系统中的输入输出设备都是字符设备,它们包括:KL-11/DL-11A——电传串行接口、PC-11——纸带打孔机和LP-11——行打印机。其中KL-11用于连接终端(terminal),作为用户键盘输入和显示输出的交互接口。
6.4 PDP 11/40的中断类型 系统中的中断主要有下面几种。 6.4.1 电传终端接口输入中断 电传终端接口用于链接PDP 11/40的总线和主要的输入、输出终端,当时该终端是电传打字机,这也是UNIX中用tty(teletypewriter)表示进程所使用的终端类型的原因,事实上电传接口还可以连接彩色显示器(CRT)等。
Normal 0 false false false MicrosoftInternetExplorer4 /* Style Definitions */ table.
文件: SIP & IMS Initial.rar 大小: ...