Ubuntu WebQQ 小记(转)

1:编辑 /etc/apt/sources.list 文件,并加入下列两行:
## PPA for Ubuntu Mozilla Daily Build Team
deb http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu jaunty main

2:保存,然后依次执行下列命令安装即可:
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install prism prism-google-docs
好,Prism 安装完成了,在 应用程序/Internet/Prism 菜单中找到它,然后添加 WebQQ 。

3:根据提示分别填写
URL: http://web.qq.com
Name: WebQQ
复选框都选后点击OK

原文链接:http://d1.it168.com/show/26132.html

发表在 tools | 发表评论

bochs 调试 linux-kernel 0.11 问题集锦(持续更新)

1:市面上流传的一些bochsdbg(需重编译bochs源代码)调试方面的资料,多为老版本上调试,这个在新版本(当前版本为bochs2.4.2)上做了一些改变
比如:
info r
dump_cpu
现在分别改为:r|reg|regs|registerssreg
具体可通过help命令查看。

 

发表在 oldlinux | 发表评论

关于保护模式的一点感想

都说保护模式是个坎,在断断续续对于他的学习后,做一个总结,一方面为之前的学习重新巩固,另一方面为以后再学习提供模板,更多的是希望能得到大家的指正,以至于不会对保护模式的理解偏差过远!

计算机有3种模式(80386(含)后):实模式保护模式虚拟8086模式

我觉得这3种模式,实际上就是3种技术,这3种技术是通过硬件(intel)来实现的,对于刚开始接触保护模式概念的时候,可以对硬件层面上的略过不考虑。我们只要知道只要我们这样做,就可以达到要求等等,等以后深入了,也可深究。

有个故事:8086祖爷爷,原始社会敌人(应用程序等)比较少,只用实模式就能对付了。时代不断演进,敌人也在慢慢强大,当然祖爷爷的后代也慢慢变异。到80386这一代,自身条件也够了,敌人又来有理剥削了,用实模式已经满足不了,80386也不是等闲之辈啊,某天突然就开创了保护模式的武功,之后便能屈能申了。但对于祖爷爷那辈的敌人呢,你跟他语言不通,还得用祖爷爷那套,所以就练了虚拟8086啊。

在保护模式的学习过程中,有一些难点,其中感觉最多的就是里面”段”字太多了,刚开始以为所有的段都应该对应起来,其实现在回想一下,他们是属于不同范畴的东西。
比如分段机制,系统段,全局段,局部段,门描述符(无“段”字),代码段,段寄存器。《自》solrex版,oldlinux,google上面的资料应该能满足大家的要求了。

下面为几个关键点帮助我去理解保护模式:

1:
在实模式中段寄存器存放的内容为段值,再加上偏移地址就获得物理地址了
在保护模式中,段寄存器存在的内容为段选择子13位,剩下3位中1位一个全局/局部选择位,另2位为特权级,用于跟段描述符中的特权级比较,看是否越界。

2:
有全局描述符表寄存器,局部描述符表寄存器,中断描述符表寄存器,控制寄存器。
描述符是用来描述段的。那么描述符所在的段又是谁来描述的呢?他不能自己描述自己,所以他的描述是在全局描述符表寄存器里的。同样局部,终端等也一样。

学习保护模式,我觉得有《自己动手写OS》solrex版《自》于渊版《protmode.chm》李彦昌版oldlinux 赵炯版就可以了。

读书贵在用心,这里只是抛砖引玉,努力以后能有更深层次的体会与大家分享。再次希望大家能不吝指教!

发表在 oldlinux | Tagged , | 2条评论

ubuntu安装后网络设置 ip静态设置

每每ubuntu不能上网的时候就特别发怵。麻烦网友很多次了,不好意思再后者脸皮去问人,自己在网上找了一些资料来看,回过头来发现还是很简单的。在此记录一下,防止以后忘记。

window跟ubuntu的上网原理都是一样的。回想一下windows上需要设置哪些才能上网:IP,子网掩码,网关,DNS。 ubuntu也是一样的,只不过ubunut上变成了以命令的形式来设置这些。

网上的一些教程多用VIM,NANO命令。实际上VIM在刚装操作系统的时候,这些都还没有安装,而NANO,VI等也因为命令比较晦涩难懂,不好使用。因此我们直接创建文件然后编辑文件。

创建文件interfaces(ip等设置)和resolv.conf(dns设置).内容分别如下:

interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.13
gateway 192.168.1.1
netmask 255.255.255.0

resolv.conf:

nameserver 202.101.172.35(//注释:浙江dns)
nameserver 192.168.1.1(//注释:网关)
nameserver 192.168.1.11(//注释:ip)
nameserver 202.101.172.36(//注释:浙江dns)

先后执行命令:

sudo cp interfaces  /etc/network/interfaces

sudo cp resolv.conf  /etc/resolv.conf

这样就分别在对应的文件夹下面生成了必要的文件。
执行命令:

sudo /etc/init.d/networking restart

提示”* Reconfiguring network interfaces… [OK]”

应该就可以上网了。打开firefox测试。

发表在 ubuntu FAQ | 发表评论

bochs ubuntu入门

本文参考文挡:

http://hankjin.blog.163.com/blog/static/33731937201001902924834/

http://dev.firnow.com/course/6_system/linux/Linuxjs/20090303/156915.html

http://ubuntuforums.org/showthread.php?t=293350&page=2

http://cax.bloghi.com/2006/08/03/makefile-am-makefile-in-makefilea-a-a-e-a-c.html

说用bochs调试操作系统效果很好,所以也想看看到底是怎么回事.安装编译过程中碰到一些问题,所以记录下来,希望对自己和别人都有所帮助.
使用的操作系统为ubuntu10.04.
1:
安装步骤:
sudo apt-get install build-essential
sudo apt-get install bochs vgabios bochs-x bochsbios bochs-doc

直接通过sudo apt-get install命令安装(具体操作见下)的只是bochs执行程序,而不包含调试功能.所以若想调试操作系統或其他镜像文件,需要重新编译bochs安装包.
安装完成后通过bochs -q -f ‘bochsrc.bxrc’执行.img文件
通过bochsdbg -q -f ‘bochsrc.bxrc’调试.img文件,bochsdbg需要重新编译bochs安装包生成

2:
a: sudo apt-get source bochs //获取最新的安装包到当前目录.
我获取到的是bochs-2.4.2.  //网上一些实例为bochs-2.3.7

b: cd bochs-2.4.2

查看是否有Makefile文件,我的安装包里没有,只有Makefile.in文件,因此若直接用make,则需生成Makefile文件.
c: ./configure –enable-debugger –enable-disasm –prefix=/usr //生成Makefile,将调试功能包含.
./configure的时候,可能会出现错误.最后一行提示“Error: x windows is selected, but can’t find x windows libraries. “的错误.
通过 sudo apt-get build-dep bochs解决.重新执行c步轴

d: make //生成bochs
make的时候可能会提示docbook方面的错误,通过
sudo apt-get build-dep docbook 解决.

e: sudo cp bochs /usr/bin/bochsdbg //此时可通过bochsdbg -q -f ‘bochsrc.bxrc’来调试.img文件了

3:bochsrc.bxrc文件,bochs环境搭建碰到的问题请看

http://dev.firnow.com/course/6_system/linux/Linuxjs/20090303/156915.html,我觉得讲的很好,可以参靠!

怕原文链接访问不了,故摘抄重要部分如下:
bochs -q -f ‘bochsrc.bxrc’
果然,出现如下错误:

========================================================================
Bochs x86 Emulator 2.3.7
Build from CVS snapshot, on June 3, 2008
========================================================================
00000000000i[     ] LTDL_LIBRARY_PATH not set. using compile time default ‘/usr/lib/bochs/plugins’
00000000000i[     ] BXSHARE not set. using compile time default ‘/usr/share/bochs’
00000000000i[     ] reading configuration from bochsrc.bxrc
00000000000e[     ] bochsrc.bxrc:190: unknown parameter for parport1 ignored.
00000000000p[     ] >>PANIC<< bochsrc.bxrc:281: directive ‘floppy_command_delay’ not understood
00000000000e[CTRL ] notify called, but no bxevent_callback function is registered
00000000000i[CTRL ] quit_sim called with exit code 1
这个文档毕竟是别人的,别人根据自己的机器调试的。所以这个只是指引我们前进的路灯而已,接下来就是开始改了。普通的bochsrc:
romimage: file=$BXSHARE/BIOS-bochs-latest, address=0xf0000
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
但是在Ubuntu下压根就没有VGABIOS-lgpl-latest
例如:
/usr/share/bochs$ ls
BIOS-bochs-latest BIOS-bochs-legacy BIOS-qemu-latest keymaps
后来我才发现,从终端下安装bochs时它把VGA专门作为了一个程序安装在了/usr/share/vgabios/中了。 /usr/share/bochs$ ls /usr/share/vgabios/
vgabios.bin vgabios.cirrus.bin vgabios.cirrus.debug.bin vgabios.debug.bin
根据出错信息
BXSHARE not set. using compile time default ‘/usr/share/bochs’,这是我的出发点,文件中有这么一行:
romimage: file=$BXSHARE\BIOS-bochs-latest, address=0xf0000
不知大家发现什么问题没有,这是个细节:$BXSHARE后跟的是“\”,我的环境是ubuntu,linux环境中需要的是“/”  所以替换为:
romimage: file=/usr/share/bochs/BIOS-bochs-latest, address=0xf0000
同理,将文档中还有一处“$BXSHARE”:
vgaromimage: file=$BXSHARE\vgabios/VGABIOS-elpin-2.40   将这行替换为:
vgaromimage: file=/usr/share/vgabios/vgabios.bin
其中一行出错信息为:00000000000p[     ] >>PANIC<< bochsrc.bxrc:281: directive ‘floppy_command_delay’ not understood
,当然了google是强大的。在bochsrc.bxrc文档中,将这行注释掉,再试试。得,又出错了:
========================================================================
Event type: PANIC
Device: [MEM0 ]
Message: ROM: System BIOS must end at 0xfffff

A PANIC has occurred.  Do you want to:
cont       – continue execution
alwayscont – continue execution, and don’t ask again.
This affects only PANIC events from device [MEM0 ]
die        – stop execution now
abort      – dump core
debug      – hand control to gdb
Choose one of the actions above: [die]
其中一行出错信息为:
Message: ROM: System BIOS must end at 0xfffff
这又是一个出发点,查google:
因为不同的版本会有不同的值
bochsrc_sample.txt说明如下:
#=======================================================================
# ROMIMAGE:
# The ROM BIOS controls what the PC does when it first powers on.
# Normally, you can use a precompiled BIOS in the source or binary
# distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
# starting at address 0xf0000, and it is exactly 64k long. Another option
# is 128k BIOS which is loaded at address 0xe0000.
# You can also use the environment variable $BXSHARE to specify the
# location of the BIOS.
# The usage of external large BIOS images (up to 512k) at memory top is
# now supported, but we still recommend to use the BIOS distributed with
# Bochs. Now the start address can be calculated from image size.
#=======================================================================
romimage: file=/usr/local/share/bochs/BIOS-bochs-latest
所以最省心的方法是去掉address=0xf0000

OK,环境搭建完成。

发表在 tools | 发表评论

ubuntu svn 安装使用简介 千呼万唤始出来

折腾了两天,终于将svn的基本功能弄好了,很久以前就想用svn,很诧异为什么到现在才真正用上.

目标用戶:linux上程序开发人员 入门
版本: ubuntu10.04(其他版本步骤应该也差不多) 命令行版subversion

一.什么是subversion?
Subversion 是一款开放源代码的版本控制系统。使用Subversion,您可以重新加载源代码和文档的历史版本。Subversion 管理了源代码在各个时期的版本。一个文件树被集中放置在文件仓库中。这个文件仓库很像是一个传统的文件服务器,只不过它能够记住文件和目录的每一次变化。

二.渉及范围:
安装命令行版svn,并通过远程和本地两个实例加以实践

三.安装:
ubuntu 安装比较简单: sudo apt-get install subversion
安装完毕后通过 svn –version查看版本

四.创建SVN仓库
1.添加用戶组:(这里没有很好的理解,不过不影响使用,在以后的使用中加深理解)
sudo addgroup subversion
sudo usermod -G subversion -a yourusername
2.cat /etc/group | grep subversion
subversion:x:1001:yourusername
查看是否已添加正确,然后重起电脑
3.创建仓库目录并修改权限
sudo mkdir /home/yourusername/svn
cd /home/yourusername/svn
sudo mkdir myprojectsvn
sudo chown -R root:subversion myprojectsvn
sudo svnadmin create /home/yourusername/svn/myprojectsvn
sudo chmod -R g+rws myprojectsvn
这样,仓库就建好了.
首先(a)需要将本地代码import到svn中, 再从svn中checkout(简称co)到副本中才能使用.或者(b)远程checkout svn服务器,直接将源代码checkout到本地(需要有权限),我们接下来介绍的实例都是以本地代码为主.

范例1:
1:将源代码import进svn
svn import /home/yourusername/myproject/ file:///home/yourusername/svn/myprojectsvn/ -m “initial improt”
2:将svn源代码checkout进副本
svn checkout file:///home/yourusername/svn/myprojectsvn/
此时会在当前目录生成生成副本.紧接着我们就可以对副本进行操作了
3:查看myprojectsvn内容
ls -a myprojectsvn/
通过上面命令查看目录内容同我们import到svn中内容是否有不同
4:cd myprojectsvn
~/myprojectsvn#:
vim README.txt
输入内容:this is my first time to use svn.
ESC->wq->保存输入内容到README.txt.
svn add README.txt.
將文件添加到svn中.
5:驱动到任意目录执行
svn checkout file:///home/yourusername/svn/myprojectsvn/
查看该目录下myprojectsvn是否有新添加的README.txt文件

范例2:
远程svn codeblocks.
codeblocks为开源软件.
如果有权限,我们可以直接将代码从服务器checkout到本地,然后修改后再上传.
svn checkout svn://svn.berlios.de/codeblocks/trunk
这样操作,我们会被提示需要权限.
顾而我们直接
svn svn://svn.berlios.de/codeblocks/trunk
将源代码下载到本地,但此时不能直接修改后上传.
查看目录,是否将trunk目录下载到本地了

在自己学习的过程中,也看了很多别人写的文章.大部分所作的实范都是针对自己的特定环鏡.所以希望读者在参考的过程中能先思考一下为什么.这样不仅能学习,而且还可以扩展.

本文仅仅提供最简单的入门指导.因为版本控制器在程序员的生活中扮演中十分重要的角色,在今后的使用中如果有必要我会提供更加全面的东西,希望对大见能有所帮助.
Email:runcoderzhcn@gmail.com

参考资料:

http://wiki.ubuntu.org.cn/SubVersion

http://blog.chinaunix.net/u/26710/showart_390670.html

http://www.codeblocks.org/downloads/7

发表在 tools | 发表评论

开篇谈

一直梦想着有自己的地盘,自己耕种,呵呵,有点理想主义

也希望在学习的路上留下种种回忆.工作两年多,留下的却不多,或许这就是根本原因之所在!

感想很多,很杂!

总之,今天又一次启程了!

发表在 随想 | 发表评论