摘要: 参考资料 Linux内核完全注释.pdf 网上相关资料! setup程序的主要作用是利用rom bios的中断来读取机器系统参数,并将这些数据保存在0x90000! 开始的位置(覆盖掉了bootsect程序所在的位置),所取得的参数被内核的相关程序使用。注意在bootsect! 中已经将该模块和system、模块加载到内存中。! 然后setup程序将system模块从地址0x10000-0x8fff(当时认为内核的最大值)整块移动到内存的绝对地址! 0x00000处。接下来加载中断描述符表寄存器idtr和全局描述符表gdtr,开启a20地址线,重新设置两个! 中断控制芯片,将硬件终端号重新设置 阅读全文
posted @ 2010-01-19 08:36 qiang.xu 阅读(2085) 评论(0) 推荐(0) 编辑
摘要: 呵呵,终于将linux 0.11 下面的boot文件夹下的三个文件读完,下面是相关注释,没有汇编基础的人也是可以读的。废话少说,下面就是linux的源码了。参考资料 Linux内核完全注释.pdf 网上相关资料!时间 : 2010-1-14!工作 : 阅读linux 0.11 源码中的bootsect.s!总体linux启动过程如下:!!当PC得电源打开之后,80x86结构的CPU将自动进入实时模式,并且从0xFFFF0开始自动执行程序代码,这个地址通常是!ROM-BIOS的地址。PC机的BIOS将执行系统的检测,并且在物理地址的0处开始初始化中断向量。此后,它将可启动设备的第一!扇区(512 阅读全文
posted @ 2010-01-19 08:29 qiang.xu 阅读(3205) 评论(0) 推荐(2) 编辑
摘要: 计算机中的存储器分为:主存和辅存。其中需要指明的是主存是可以被处理器直接访问的,而辅存是不能被处理器直接访问的。主存的容量一般相对于辅存而言是较小的,所以在现代的计算机体系中,通常使用的是耳机存储模式。利用辅存的大容量来提供较大的存储空间,存储准备运行的程序和数据,当需要时,在将其载入主存中。计算机中的存储管理都是由操作系统来实现的。但是需要说明的是操作系统在实现存储管理时需要硬件的支持。比如说:用户程序使用的都是逻辑地址,而处理器在执行程序时需要使用的是绝对的地址来实现寻址的操作。于是操作系统大众存储管理模块就必须配合计算机中的硬件俩实现将逻辑地址向绝对地址的转换。1程序的重定位在多道程序设 阅读全文
posted @ 2010-01-17 09:53 qiang.xu 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 经过验证可以实现,先将实现代码贴出,以备以后使用。本文默认你的java开发环境已经安装成功,并且对于java语言和c++语言有过了解。编写测试用类:Demo.java代码如下:public class Demo{public static int COUNT = 8;private String msg;private int[] counts;public Demo (){this ("default constructor");}public Demo (String msg){this.msg = msg;this.counts = null;}public Stri 阅读全文
posted @ 2010-01-12 11:32 qiang.xu 阅读(7194) 评论(0) 推荐(0) 编辑
摘要: 刚从网上看到c和java混编的文章,就亟不可待的尝试了一下。呵呵,效果还是很好的。下面将自己成果粘贴出来(转载于http://www.zxbc.cn/html/20070518/19986.html)。实验之后可以通过。1java中调用c语言首先编写Main.javapublic class Main {public native static int getStrNum(byte str[], int strLen);} 在命令行中,使用如下命令编译:javacMain.java 下面的命令将生成Main.h头文件javahMain 打开vs2008, 新建工程MakeDll(win32 c 阅读全文
posted @ 2010-01-12 10:46 qiang.xu 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 在gcc的编译器上使用bool值的话需要使用包含头文件<stdbool.h>如果直接使用编译器会报错。查看<stdbool.h>可以看到其实bool值只是一个define得常量true 1false 0 阅读全文
posted @ 2010-01-01 16:07 qiang.xu 阅读(2499) 评论(0) 推荐(0) 编辑
摘要: 在 ubunut的系统中直接使用如下的命令即可实现:sudo apt-get install linux-source即可实现安装ubunut源码的需求。 阅读全文
posted @ 2009-12-31 22:01 qiang.xu 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 1、NFS服务器端与客户端的安装:sudo apt-get install nfs-kernel-server nfs-common portmap2、配置portmap两种方法任选一种就可以:sudo emacs /etc/default/portmap去掉 -i 127.0.0.13、配置挂载目录和权限vim /etc/exports在该配置文件下加入:/home/nfsboot *(rw,sync)解释一下:4、更新exports文件sudo exportfs -r5、重启NFS服务sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务6、进 阅读全文
posted @ 2009-12-28 19:20 qiang.xu 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 经过千辛万苦的配置,终于在ubuntu上将tftp服务配置好,现将配置过程记录如下:1 安装#大部分网上说明将此处略去sudo apt-get install tftp tftpd openbsd-inetd#先安装这些,没有测试不安装的后果#如果按照下面的安装方法未能实现tftp服务,那么请安装下面的软件sudo apt-get install tftpd-hpa tftp-hpa2在根目录下建立目录 tftpbootcd /sudo mkdir /tftpboot3改变文件夹的属性sudo chmod 777tftpboot4修改配置文件修改文件/etc/inetd.confsudo vi 阅读全文
posted @ 2009-12-28 18:42 qiang.xu 阅读(344) 评论(0) 推荐(0) 编辑
摘要: At first you have to open a terminal/bash and then enter:file /path/file.bin for example file /home/user/file.bin (file is the command)Now you should see a sentence including the word “executable” and not “non-executable, not executable,… or something complet 阅读全文
posted @ 2009-12-26 18:50 qiang.xu 阅读(1278) 评论(0) 推荐(0) 编辑
摘要: 直接在X环境下停掉GDM服务: sudo update-rc.d -f gdm remove 重新启动(进入文字命令行模式): sudo reboot -n 如果想在命令行模式直接进入X环境的话,则需输入: startx 如果想改回开机启动回到X环境的话,则需开启GDM服务即可: sudo update-rc.d gdm defaults 阅读全文
posted @ 2009-12-26 13:31 qiang.xu 阅读(420) 评论(0) 推荐(0) 编辑
摘要: //////////////////////////////////////////////////////////////////////////// TUPLE COMPLETE CORRECT///////////////////////////////////////////////////////////////////////////************************************************************************** TypeOperator Definition****************** 阅读全文
posted @ 2009-12-23 21:47 qiang.xu 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 一个很不错的c#实现的图片特效,相应源程序如下:FASTBitmap.csusing System;using System.Collections.Generic;using System.Text;using System.Drawing;using System.Drawing.Imaging;namespace WaveEffects{ public unsafe class FastBitmap { public struct PixelData { public byte blue; public byte green; public byte red; public byte a 阅读全文
posted @ 2009-12-23 21:42 qiang.xu 阅读(1507) 评论(2) 推荐(0) 编辑
摘要: went to "Project | Game Properties | Configuration Properties | C/C++ | Code Generation | Runtime Library"and set Multi-threaded Debug (/MTd)did build generated error messages...then reset"Project | Game Properties | Configuration Properties | C/C++ | Code Generation | Runtime Library 阅读全文
posted @ 2009-12-22 13:22 qiang.xu 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 1操作系统的启动和操作系统的引导程序的编写1.linux0.01中的引导汇编程序的解释当PC机打开电源后,80x86结构自动的进入实施模式。--------------------------------------------------------------------------------------------所谓的实时模式是指的cpu启动时候的模式,这时候就相当于一个速度超快的8086.此时不能够实现多线程,不能够实现权限分级,还不能访问地址在20位以上的内存地址。与实施模式相对应的是保护模式,保护模式是指的是在操作接管cpu之后,会使cpu进入的状态。此时可以发挥cpu的所有的 阅读全文
posted @ 2009-12-19 12:03 qiang.xu 阅读(859) 评论(0) 推荐(0) 编辑