gcc 编译选项 ---------------------------------------------------------------------------
支持宏展开 -gdwarf-2 -g3
产生map文件gcc -o test test.c -Wl,-Map,test.map
配置cvs ---------------------------------------------------------------------------
首先让cvs跑起来
chkconfig --list
chkconfig cvs on
server xinetd restart
netstat -l | grep pserver
然后添加用户
groupadd cvs
useradd -g cvs -G cvs cvsroot
修改/etc/xinetd.d/cvs
cvs -d /home/cvsroot init
useradd yz
passwd yz
cp /etc/shadow /home/cvsroot/passwd
vi passwd
userdel yz
setenforce 0
CVSROOT=:pserver:yz@192.168.20.86:/home/cvsroot
cvs login
cvs import -m "test" test V_0_0 start
安装apache ---------------------------------------------------------------------------
用system-config-package选择万维网服务器即可
然后service httpd start启动apache(可chkconfig httpd on默认启动)
然后访问127.0.0.1即可得到测试页,然后按照测试页指导添加内容.
使apache能执行cgi程序 -----------------------------------------------------------------
只需要注意cgi程序的输出要包括http部分头信息
需要注意给cgi程序以执行权限
以python 为例:
print "Content-Type: binary"
print # end of header
print "hello"
若要在别的目录下(cgi-bin外)执行cgi,需要修改httpd.conf文件
给/var/www/html/文件夹增加ExecCGI Options
去掉AddHandler cgi-script .cgi的注释
关于中断和异常 (20071024)----------------------------------------------------------------------
实际上中断和异常都是由硬件提供支持的!能够产生中断和异常的种类随硬件的不同而不同!硬件检测到中断(异常可示为一类中断)后,由硬件决定如何处理,通常像MIPS这种RISC这种架构的CPU,处理办法就是直接跳转到一个特定的入口地址,然后由该出口地址跳转到特定的中断处理程序(isr).此部分的代码一般由汇编完成.譬如说,cpu需要跳转到0xa0000200,则在文件vectors.S中定义一个函数__default_interrupt_vsr,然后将这个函数的地址放到0xa0000200,而在这个函数中进行一些必要的硬件设置与保护,然后跳转到特定的ISR,这里的ISR可以是系统默认的,也可以是用户自己注册的,通常的实现可以是定义一个中断向量表,譬如hal_interrupt_handlers,hal_interrupt_handlers是一个数组,数组的数目就是系统支持的中断源的数目,用户注册中断实际上就是在这个数组特定的位置填入特定的中断服务程序(isr),由__default_interrupt_vsr在特定的时候进行调用.这样下来,系统在检测到中断后就会跳转到0xa0000200执行__default_interrupt_vsr,进行必要的硬件设置和检测后就能判断出中断源,然后根据中断源决定接下来该调用的中断处理程序,这样整个过程就连接起来了.
异常的大致过程与上相似,只是细节上的不同.
linux平台下的信号机制(signal)非常适合用来模拟硬件中断机制,这对自己在linux上模拟一个操作系统或者需要用到中断的普通应用程序特别有用!譬如最常见的时钟中断,在linux平台下可以通过setitimer在系统中注册一个定时器,时间到后linux系统会向应用程序发送SIGALRM信号,这样只要应用程序中注册有相应的SIGALRM处理函数,那么此函数就会被调用(不是应用程序通常的函数调用),这就相当于硬件环境中中断服务程序(isr)被调用一样(也不是通常的函数调用)
异常也是中断的一种,所以也可由此法模拟,只不过捕捉的信号是SIGILL,SIGSEGV等异常信号.
支持宏展开 -gdwarf-2 -g3
产生map文件gcc -o test test.c -Wl,-Map,test.map
配置cvs ---------------------------------------------------------------------------
首先让cvs跑起来
chkconfig --list
chkconfig cvs on
server xinetd restart
netstat -l | grep pserver
然后添加用户
groupadd cvs
useradd -g cvs -G cvs cvsroot
修改/etc/xinetd.d/cvs
cvs -d /home/cvsroot init
useradd yz
passwd yz
cp /etc/shadow /home/cvsroot/passwd
vi passwd
userdel yz
setenforce 0
CVSROOT=:pserver:yz@192.168.20.86:/home/cvsroot
cvs login
cvs import -m "test" test V_0_0 start
安装apache ---------------------------------------------------------------------------
用system-config-package选择万维网服务器即可
然后service httpd start启动apache(可chkconfig httpd on默认启动)
然后访问127.0.0.1即可得到测试页,然后按照测试页指导添加内容.
使apache能执行cgi程序 -----------------------------------------------------------------
只需要注意cgi程序的输出要包括http部分头信息
需要注意给cgi程序以执行权限
以python 为例:
print "Content-Type: binary"
print # end of header
print "hello"
若要在别的目录下(cgi-bin外)执行cgi,需要修改httpd.conf文件
给/var/www/html/文件夹增加ExecCGI Options
去掉AddHandler cgi-script .cgi的注释
关于中断和异常 (20071024)----------------------------------------------------------------------
实际上中断和异常都是由硬件提供支持的!能够产生中断和异常的种类随硬件的不同而不同!硬件检测到中断(异常可示为一类中断)后,由硬件决定如何处理,通常像MIPS这种RISC这种架构的CPU,处理办法就是直接跳转到一个特定的入口地址,然后由该出口地址跳转到特定的中断处理程序(isr).此部分的代码一般由汇编完成.譬如说,cpu需要跳转到0xa0000200,则在文件vectors.S中定义一个函数__default_interrupt_vsr,然后将这个函数的地址放到0xa0000200,而在这个函数中进行一些必要的硬件设置与保护,然后跳转到特定的ISR,这里的ISR可以是系统默认的,也可以是用户自己注册的,通常的实现可以是定义一个中断向量表,譬如hal_interrupt_handlers,hal_interrupt_handlers是一个数组,数组的数目就是系统支持的中断源的数目,用户注册中断实际上就是在这个数组特定的位置填入特定的中断服务程序(isr),由__default_interrupt_vsr在特定的时候进行调用.这样下来,系统在检测到中断后就会跳转到0xa0000200执行__default_interrupt_vsr,进行必要的硬件设置和检测后就能判断出中断源,然后根据中断源决定接下来该调用的中断处理程序,这样整个过程就连接起来了.
异常的大致过程与上相似,只是细节上的不同.
linux平台下的信号机制(signal)非常适合用来模拟硬件中断机制,这对自己在linux上模拟一个操作系统或者需要用到中断的普通应用程序特别有用!譬如最常见的时钟中断,在linux平台下可以通过setitimer在系统中注册一个定时器,时间到后linux系统会向应用程序发送SIGALRM信号,这样只要应用程序中注册有相应的SIGALRM处理函数,那么此函数就会被调用(不是应用程序通常的函数调用),这就相当于硬件环境中中断服务程序(isr)被调用一样(也不是通常的函数调用)
异常也是中断的一种,所以也可由此法模拟,只不过捕捉的信号是SIGILL,SIGSEGV等异常信号.