linux 0.11 内核学习 asm.s,机器难免出故障。
/*
* linux/kernel/asm.s
*
* (C) 1991 Linus Torvalds
*/
/*
* asm.s contains the low-level code for most hardware faults.
* page_exception is handled by the mm, so that isn't here. This
* file also handles (hopefully) fpu-exceptions due to TS-bit, as
* the fpu must be properly saved/resored. This hasn't been tested.
*/
/*
* asm.asm处理的主要是和硬件相关的故障。注意的是页异常是有mm模块
* 来实现管理的,所以在这里不需要处理。此外此程序来处理fpu的异常。
*
*/
/*
* 全局函数的定义,主要是引用的是traps.c文件中的函数声明。
* 下面的代码主要是对intel的保留中断int0 -- int16的处理。
*/
.globl _divide_error,_debug,_nmi,_int3,_overflow,_bounds,_invalid_op
.globl _double_fault,_coprocessor_segment_overrun
.globl _invalid_TSS,_segment_not_present,_stack_segment
.globl _general_protection,_coprocessor_error,_irq13,_reserved
# 一下的中断都是Intel得保留中断的处理程序。
#------------------------------------------------------------------------
# int0 -- 被0除所引发的中断。下面的$_do_divide_error是c函数编译之后
# 对应的模块的名称。
_divide_error:
pushl $_do_divide_error # 首先将函数入口地址压入堆栈。
no_error_code: # 标号相当于函数被下面程序调用。
xchgl %eax,(%esp) # xchgl指令的作用是交换寄存器。
# 在此的含义是将函数的地址存在
# eax中,将eax原来内容入栈。
pushl %ebx # 寄存器入栈
pushl %ecx
pushl %edx
pushl %edi
pushl %esi
pushl %ebp
push %ds
push %es
push %fs
####################################################
# 将出错码和中断返回地址入栈作为函数调用_do_divide_error
# 的参数。
pushl $0 # "error code",出错码0入栈
lea 44(%esp),%edx # 取得中断返回地址
pushl %edx # 中断返回地址入栈
#####################################################
# 下面的代码重新设置寄存器。ds和es指向的是内核代码段
# fs指向的是用户数据段。
movl $0x10,%edx
mov %dx,%ds
mov %dx,%es
mov %dx,%fs
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
进程篇
查看某进程端口号
netstat -anp | grep 80
lsof -i :port
例: 注意":"后,紧跟端口号,没有空格
#lsof -i :443
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
java 2731 root 35u IPv6 7778 TCP *:https (LI ......
每次装系统少不了要安装VMware Tools,现列出安装步骤,就当做个笔记吧:)
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
ls
cd /tmp
rpm -Uhv /mnt/cdrom/VMwareTools--xxxxxxxxx.rpm
vmware-config-tools.pl
就ok了。 ......
ulimit主要查看linux系统下对系资源分配的限制情况,查看全部使用ulimit -a (all)
ulimit 参数说明
选项 [options] 含义 例子
-H 设置硬资源限制,一旦设置不能增加。 ulimit – Hs 64;限制硬资源,线程栈大小为 64K。
-S 设置软资源限制,设置后可以增加,但是不能 ......