Archive for the ‘Linux&Minix’ Category

搞过内核开发的人都知道,内核调试是个脑力活,也是个体力活,因为底层的内核开发和应用程序开发有着较大的差别。应用程序的开发在操作系统之上,有许多优 秀的IDE供我们选择,从而能够非常方便进行调试;而内核级的开发则不一样,操作系统的内核调试器除完成一般的调试功能外,还必须工作在内核中。在 Linux中,内核调试方法有多种,可以在内核中插入printk()函数来调试分析,可以使用/proc文件系统对内核进行分析,也可以使用kgdb进 行内核源代码级的调试。本文将介绍如何使用VirtualBox 3.0.12 + RHEL 5 + KGDB的方式调试Linux内核(在一台主机运行RHEL 5,用VirtualBox 3.0.12虚拟两个RHEL 5代替两台机器,并在两台虚拟机上配置KGDB来进行内核的调试)。
kgdb提供了一种使用gdb调试Linux内核的机制。使用kgdb调试内核需要准备两台机器,一台作为开发机(用来远程查看内核信息并调试内核),另一台作为目标机(跑有要调试的内核), 并通过串口将它们连接起来。在2.6.26以前的Linux内核中使用kgdb需要打上补丁,而在2.6.26及以后的内核里已经加入了对kgdb的支 持。当kgdb内核调试环境搭好后,目标机上运行的是打了kgdb补丁的Linux内核,而开发机上运行gdb,gdb通过串口与要调试的内核进行通信, 对目标机上的内核进行控制,从而实现远程对内核的调试。
首先从http://www.virtualbox.org下 载for RHEL5的VirtualBox,目前的最新版本是VirtualBox 3.0.12。装上VirtualBox后,就可以虚拟出两个RHEL 5虚拟机来代替两台机器了。当然我们也可以使用VirtualBox的clone功能,如果第一台虚拟机的文件名为rhel1.vdi,可使用命令VBoxManage clonevdi rhel1.vdi rhel2.vdi命令迅速克隆出另一台虚拟机。我们将一台虚拟机用作目标机,另一台用作开发机。
我 们可以利用主机的命名管道来完成两台虚拟机间的通信。一台虚拟机在主机中创建命名管道并将其串口与管道相连,另外一台虚拟机也将自己的串口连接到主机的命 名管道上,这样就实现了两个虚拟机串口的连接。两台虚拟机都使用自己的COM1端口,主机的命名管道同为/tmp/vbox,在配置时由一台虚拟机创建, 另一台则不创建。我们可使用以下的方式来测试两虚拟机的串口是否连接成功:
(1)首先启动创建管道的虚拟机,再启动另一台虚拟机,然后使用命令stty ispeed 115200 ospeed 115200 -F /dev/ttyS0将各自COM1端口的输入输出波特率都设为115200。
(2)在其中一台虚拟机v1终 ... (全文...)



  Xenoprof是HP公司针对OProfile工具开发的一个接口,它使得OProfile能够适用于基于Xen的虚拟环境,从而能够对内核、应用程序等的性能信息进行监控,在官网http://xenoprof.sourceforge.net/上有详细的介绍。之前我在《OpenSolaris, Fedora and Xen 之 Fedora 10上Xen 3.3.1的安装与配置》一文中写了关于Xen 3.3.1的安装过程,本文我将介绍如何在RHEL 5上安装Xenoprof。
  安装好Xen后,进入Dom0,如果你还未安装Xenoprof,键入opcontrol --reset命令,会有以下错误信息,而正常情况下是没有任何提示信息的。
  [root@v6 oprofile-0.9.3]# opcontrol --reset
  FATAL: Module oprofile not found.
  FATAL: Module oprofile not found.
  Kernel doesn't support oprofile
  具体安装过程如下:
  1. 从http://oprofile.sourceforge.net/上下载oprofile-0.9.3(虽然目前的最新版是0.9.5,但目前Xenoprof只支持到oprofile 0.9.3);
  2. 从Xenoprof官方网站http://xenoprof.sourceforge.net/上下载oprofile-0.9.3-xen-r2.patch
  3. tar xzvf oprofile-0.9.3.tar.gz解压oprofile,并将oprofile-0.9.3-xen.r2.patch复制进oprofile-0.9.3文件夹,然后执行patch -p1 <  oprofile-0.9.3-xen-r2.patch 打补丁;
   4. 执行./configure --with-kernel-support命令进行编译前的配置(可能提示没有liberty library,需要yum install binutils-devel,同时需要gcc-c++编译器,可通过挂载CentOS或RHEL镜像进行安装);
  5. 配置好以后,/make/make install即可完成OProfile的安装(打过补丁的OProfile);
  6. 接下来就是对Xen的重新编译了,具体编译过程在《OpenSolaris, Fedora and Xen 之 Fedora 10上Xen 3.3.1的安装与配置》 一文里作了详细介绍,在这里就不再赘述。不过在编译前,需要修改一下配置文件,进入Xen源代码目录使用命令make linux-2.6-xen-config CONFIGMODE=menuconfig,进入图形界面后需要将instrumentation support中的OProfile选中(一共两个选项,选择第一个选项以及第一个选项下的子选项即可),保存并退出,然 ... (全文...)



本文介绍的是在Fedora 10下如何为Firefox安装64位的Flash Player plugin。

首先去官网下载64位的Flash Player插件,下载地址:http://labs.adobe.com/downloads/flashplayer10.html

两条命令搞定:

tar xzvf libflashplayer-10.0.32.18.linux-x86_64.so.tar.gz

sudo mv libflashplayer.so /usr/lib64/mozilla/plugins

然后重启Firefox即可。



近年来随着计算机硬件的高速发展,虚拟化技术已经成为计算机业的焦点之一。虚拟化技术从实现途径上来说,由两种典型的派别:泛虚拟化(para-virtualization)和完全虚拟化(HVM)。前者通过修改客户操作系统来配合虚拟化的环境,从而达到较高的性能,但也付出了兼容性和维护性方面的限制,而Xen就是泛虚拟化技术的杰出代表;而完全虚拟化技术常常需要得到处理器级别的硬件支持(如Intel VTAMD-V处理器),或者通过对客户机执行代码进行动态二进制代码转换,然后可以无需修改的直接运行一个已有的操作系统,使得虚拟化技术的应用更加容易。完全虚拟化的代表产品有VMware, VirtualPC, QEMU等。

即使你研究的不是虚拟化,体验一下Xen这个目前世界上最流行的虚拟机管理器(VMM)并感受其巨大的魅力也是值得的。本文主要介绍如何在Fedora 10下使用源码安装Xen 3.3.1

首先准备好两个源代码包:xen-3.3.1.tar.gzlinux-2.6.18-xen.hg.gz,可从http://xen.org上下载。

使用tar xzvf xen3.3.1.tar.gz命令解压xen.3.3.1.tar.gzFedora 10系统目录(可以为任一目录,我将其解压在/usr/local(全文...)



OpenSolaris 2008.11是OpenSolaris项目的第二个正式版本。与OpenSolaris 2008.05版本相比,它包含了改进的网络自动管理模块(NWAM)和软件包管理模块,使用了最新版本的GNOME 2.24作为用户桌面,更是集成了大量新增加的硬件驱动程序。我的Thinkpad T61声卡在2008.05里不能识别,但在2008.11里得到了很好地支持。在移动硬盘里装上OpenSolaris 2008.11,然后在OpenSolaris里装上最新的VirtualBox 2.1,再在VB上安装Windows XP SP3,只要带上自己的移动硬盘,就能在任何一台电脑上使用配置好的OpenSolaris和Windows,这是一件多么惬意的事情。而每天在OpenSolaris上跑Windows、Linux也成了我的一种习惯。

对于Linux的爱好者来说,如何在OpenSolaris下玩转Linux呢?Unix-Center为我们提供了一个很好的学习和实践平台,只要使用SSH我们就能连接到任何一台高配置的Unix/Linux服务器,包括Solaris 10, FreeBSD, Federo, Ubuntu, 等等。默认Unix-Center为每个注册用户提供了50M的空间,用户可以通过在UC上的积分来换取更大的使用空间。当然你也可以在OpenSolaris上通过VirtualBox安装Ubuntu、openSUSE等主流的Linux操作系统,并能得到很好的用户体验。但是,如果你想从头学习Linux,并希望学习Linux的基本操作及内核编译等知识,推荐使用世界上最小的Linux发行版:ttylinux。

ttylinux的确是小得可以,整个ISO 安装文件大小仅 3.7 MB,而提供的 Tarball 包更是只有 1.7 MB(不含内核,需要自己添加),源代码包则为 50 KB。不过“麻雀虽小,五脏俱全”,看看 ttylinux 为我们提供了什么?

1.命令行界面,当然图形化界面是没有的了,或许你可以自己进行扩展。

2.上网功能,可以通过 modem 或 ISDN 上网,然后用文本模式的 Web 浏览器查看网页。

3.SSH 客户端和服务端程序。

4.如果你需要一个文本编辑器,系统已经安装了 vi。

5.parman软件包管理器,可以使用wget下载其它有用的软件,并使用parman命令进行安装。

下面将介绍如何在VirtualBox下安装并配置ttylinux。

第1步:创建一个Linux的虚拟机。

  我的配置如下,仅供参考:

  1.虚拟机类型是linux 2.6;

  2.设备及参数:

  -----1).Memory 256M(其实16M就可以了)

  -----2).Hard Disk 512MB(动态)

  -----3).声卡选择Solar ... (全文...)






 进程在操作系统中是一个非常重要的概念,应用程序被加载到内存后叫进程,也就是一个程序的一次动态执行。每个进程对应一道特定的程序,程序是静态的,而进程是动态的,进程描述程序的执行过程并且可以作为共享资源的基本单位。要想理解操作系统的各种机制原理,有必要对进程概念有深入透彻的理解。 本文重点介绍了Minix、Linux2.6及Solaris10的进程模型,并对三种操作系统的进程模型进行了比较。

1 操作系统原理中的进程模型

1.1进程的概念

进程的定义很多,本文将进程描叙为一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。进程具有动态性、独立性、并发性和结构化等特征。动态性是指进程具有动态的地址空间,地址空间的大小和内容都是动态变化的。地址空间的内容包括代码(指令执行和处理器状态的改变)、 ... (全文...)



装上最华丽的Linux操作系统openSUSE 11.0了,目前我的笔记本是Windows XPOpenSolarisUbuntuopenSUSE共存的局面。

openSUSE 11.0截图

华丽的openSUSE 11.0桌面

一直想体验传说中的openSUSE 11.0,之前曾在OpenSolaris里使用VirtualBox安装过,但效果并不理想,特别是分辨率等效果不能达到最佳状态,而且在响应速度上也不能让人满意。过去曾经因为安装Ubuntu不能覆盖OpenSolarisGrub而导致整个硬盘的分区表被破坏,而电脑上已经装上了OpenSolaris,为了不丢失硬盘数据,我一直特别谨慎,没有再安装其他系统。昨天猛然发现OpenSolaris里竟然没有(全文...)