- 博客(35)
- 资源 (2)
- 收藏
- 关注
原创 关闭主机beep
<br />1.如果是台式机的话,可以直接将speaker线拔掉,比较容易找,一般如下图<br />笔记本就没办法了<br />2.对于windows操作系统,可以将speaker的驱动停用, 打开设备管理--显示隐藏设备--“非即插即用驱动程序”--“beep”--属性--禁用<br />3.对于Linux操作系统,同windows的原理一样,将驱动卸载,可以使用如下的命令<br />sudo modprobe -r pcspkr或者编辑/etc/modprobe.d/blacklist,加入blackl
2010-08-31 09:12:00 412
原创 linux gnome桌面root自动登录
<br />修改/etc/X11/prefdm就可以,虽然这种方法我不是很推荐,但是目前我只知道这种方法可以,网上说的那种用gdmsetup<br />命令然后其中有个自动登录的选项,这种方法貌似对root不管用,修改之后的prefdm如下<br />#!/bin/sh<br /><br />PATH=/sbin:/usr/sbin:/bin:/usr/bin<br /><br /># shut down any graphical boot that might exist<br />if [
2010-08-29 21:55:00 1146
原创 字符串的ascii到字符的转换
<br /><br /> //函数:字符串的ascii到字符的转换<br /> //输入:1.需要转换的字符串 类型:string<br /> // 2.字符串中的分割符 类型:string<br /> //输出:转换后的字符串<br /> //例如 ascii2string("492&#","$#")将返回"12"<br /> private static string ascii2string(string inp
2010-08-27 09:44:00 246
原创 C# string转换为数字
<br />比如说将字符串"98"转化为数字类型的98,使用以下的代码<br />int num=0;<br />int.TryParse("98",out num);<br /> <br /> <br />备注:int.Parse("98")也可以,但是可能会抛出异常,加上一个try catach会好一点
2010-08-27 09:38:00 368
原创 linux绕过认证,自动登录console
网上找了挺多资料的,发现无非都是两个操作,一个是在/etc/login.defs里面将NO_PASSWORD_CONSOLE tty1:tty2:tty3:tty4:tty5:tty6注释掉,然后在/etc/inittab根据自己的gettty类型使用不同的命令来实现自动登录.但是不知道我是不是我的版本原因,我在/etc/login.defs找不到NO_PASSWORD_CONSOLE这一句,我的使用的linux是centos 5.4版本,内核是2.6.x,最后我尝试自己加这句命令,但是我后来发现其实这一步
2010-08-19 10:56:00 378
转载 Linux进程-进程的创建
<br />今天学习了Linux的进程创建的基本原理,是基于0.11版本核心的。下面对其作一下简单的总结。<br />一、Linux进程在内存中的相关资源<br /> 很容易理解,Linux进程的创建过程就是内存中进程相关资源产生的过程,那么Linux进程在内存中有哪些相关资源呢?<br /> 1)task数组中的一项:一个指针指向进程的task_struct<br /> 2)一页内存:task_struct(Linux进程控制块)和内核态堆栈<br /> 3)页表:线型地址到物理地址的映射
2010-08-17 16:30:00 454
转载 我理解的逻辑地址、线性地址、物理地址和虚拟地址
<br /><br />本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。 一、概念 物理地址(physical address) 用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。 ——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式
2010-08-17 15:26:00 188
原创 Linux命令行中如何输入EOF
<br />在命令行直接输入Ctrl+d就行了,可以用如下代码测试<br />#include<stdio.h>int main(){int c;int i=0;while((c=getchar())!=EOF){if(c=='/n'){ i++;}printf("%d",i);}
2010-08-17 13:26:00 1265
原创 Linux,shell中的特殊字符
<br /><br />原文出处:http://qlj.sh.cn/none/20080221/linux-shell-especial-char/<br />shell中除使用普通字符外,还可以使用一些具有特殊含义和功能的特殊字符。在使用它们时应注意其特殊的含义和作用范围。下面分别对这些特殊字符加以介绍。<br /><br /> 1. 通配符<br /> 通配符用于模式匹配,如文件名匹配、路经名搜索、字符串查找等。常用的通配符有*、?和括在方括号[ ]中的字符序列。用户可以在作为命令参数的文件名中包含这
2010-08-17 10:25:00 258
原创 内核中关于进程(任务)的一些调度函数(1)
<br />在1.1版本中,内核调度主要是/kernel/sched.c文件<br />1 show_task函数,主要用来显示任务的pid,state和内核堆栈空闲字节数<br /><br />void show_task(int nr,struct task_struct * p)<br />{<br />int i,j = 4096-sizeof(struct task_struct);//4096这个数字的来源在于在intel保护模式下面,每页的大小是2^12,也就是4096<br /> <br /
2010-08-15 21:23:00 331
原创 任务(也可以理解为进程)数据结构
<br /> 注意:内核版本1.1struct task_struct {<br />long state; // 任务的运行状态(-1不可运行,0可运行(就绪),>0已停止)。<br />long counter; // 任务运行时间计数(递减)(滴答数),运行时间片。<br />long priority; // 优先数。任务开始运行时counter=priority,越大运行越长。<br />long signa
2010-08-15 19:58:00 183
转载 Linxu进程信号
SIGHUP 终止进程 终端线路挂断SIGINT 终止进程 中断进程SIGQUIT 建立CORE文件终止进程,并且生成core文件SIGILL 建立CORE文件 非法指令SIGTRAP 建立CORE文件 跟踪自陷SIGBUS 建立CORE文件 总线错误SIGSEGV 建立CORE文件 段非法错误SIGFPE 建立CORE文件 浮点异常SIGIOT 建立CORE文件 执行I/O自陷SIGKILL 终止进程 杀死进程SIGPIPE 终止进程 向一个没有读进程的管道写数据SIGALARM 终止进程 计时器到时SI
2010-08-14 18:44:00 281
原创 Linux 1.1的出错编号个人注释
<br /><br />#ifndef _ERRNO_H<br />#define _ERRNO_H<br /> <br />/*<br /> * ok, as I hadn't got any other source of information about<br /> * possible error numbers, I was forced to use the same numbers<br /> * as minix.<br /> * Hopefully these are posix or
2010-08-14 15:22:00 221
转载 Linux0.11中的head.s代码分析
<br />本文转载自:http://aoqingy.spaces.live.com/blog/cns!153C2D72AF27EB1C!153.entry?ppud=4&wa=wsignin1.0&sa=513325281head.s程序被编译后,会被连接成system模块的最前面位置,它被setup.s加载到内存绝对地址0处开始的地方,并执行。此时Linux内核已经完全在保护模式下运行。head.s的主要功能包括:<br />1. 设置内核堆栈;<br />2. 设置中断描述符表idt;<br />3.
2010-08-13 23:39:00 418
原创 虎彩二面
<br />其实我很没想到自己能够进入虎彩的二面,因为觉得自己的一面很差,不过进就进了,总比没有好,东莞虎彩位于陈村,自己早上风尘仆仆的7点多开始坐车,10点半才到虎彩的总部,刚到陈村我就感觉很不舒服,觉得就是一个小村庄,不太想在这里呆,尤其是要在这里工作几年,心里就有了不太想在这里工作的想法.不过既然来了就试试看吧<br />首先是登记一下一些基本信息,然后招聘部的徐先生又跟我交谈了一下,这个比较简单,因为它不是技术人员,无非就问问我自己有什么优点之类的.不过我从他的口中似乎得知,似乎我面试的职位平时就是
2010-08-12 17:10:00 290
转载 中断描述符表
<br /><br />3.1.4中断描述符表<br />在实地址模式中,CPU把内存中从0开始的1K字节作为一个中断向量表。表中的每个表项占四个字节,由两个字节的段地址和两个字节的偏移量组成,这样构成的地址便是相应中断处理程序的入口地址。但是,在保护模式下,由四字节的表项构成的中断向量表显然满足不了要求。这是因为,除了两个字节的段描述符,偏移量必用四字节来表示;‚要有反映模式切换的信息。因此,在保护模式下,中断向量表中的表项由8个字节组成,如图3.2所示,中断向量表也改叫做中断描述符表IDT(Inter
2010-08-10 17:23:00 405
原创 Intel CPU的内存地址定位(保护模式)
在Intel的机构中(忽略模式)中,内存的地址被表示成基地址+偏移地址,基地址,保存在段寄存器当中,叫选择器(selector),段寄存器CS,SS,DS,ES,FS,GS分别对应于不同的段,比如代码段,数据段,栈,代码段表明当前段中的数据是可执行的代码,EIP始终指向下一条要执行的指令的偏移地址.一些指令可以更改这个地址在实模式中,选择器指向的是20位中的高16位地址,而在保护模式下,selector指向的是表中的索引,成为描述符,描述符不仅拥有32位地址,还有指向的地址的一些属性,如下图如果分页单元没有
2010-08-10 16:34:00 553
原创 intel的分页单元(保护模式)
注:这篇文章翻译自Intel的manual,Intel Overview Of the Protected Mode.pdf,中的Paging Unit部分.Intel架构中分页机制的引入使Intel增强了他的虚拟内存管理,并且支持了多线程,多任务.使用intel的CPU并不一定要使用他的分页机制.1.分页机制的是怎么工作的当开启了CR0寄存器的PG位的时候分页机制就开启了,如果PG位开启的话,段生成的地址将会通过分页单元,分页单元最终生成实际地址,如果PG位没有开启的话,段寄存器最终生成的地址也就是最终的
2010-08-10 15:03:00 608
原创 trap_init函数
<br />对于Linux的trap,我一直认为他跟windows操作系统的钩子差不多,主要用来处理硬件异常处理中断向量<br />他的源代码如下<br /><br />void trap_init(void)<br />{<br />int i;<br /> <br />set_trap_gate(0,÷_error);<br />set_trap_gate(1,&debug);<br />set_trap_gate(2,&nmi);<br />set_system_gate(3,&int3)
2010-08-10 12:04:00 1029
原创 trap_init函数
<br />对于Linux的trap,我一直认为他跟windows操作系统的钩子差不多,主要用来处理硬件异常处理中断向量<br />他的源代码如下<br /><br />void trap_init(void)<br />{<br />int i;<br /> <br />set_trap_gate(0,÷_error);<br />set_trap_gate(1,&debug);<br />set_trap_gate(2,&nmi);<br />set_system_gate(3,&int3)
2010-08-10 12:04:00 376
原创 mem_init函数
<br />从main.c中的main函数读取下来,在上一篇已经读到了<br /><br />#ifdef RAMDISK<br />main_memory_start += rd_init(main_memory_start, RAMDISK*1024);<br />#endif<br />这一个函数已经专门写了一篇文章,那么接下去呢?<br />mem_init(main_memory_start,memory_end);<br />查看其源代码,如下<br /><br />void mem_init(
2010-08-10 11:43:00 1773 1
原创 linux虚拟盘初始化rd_init
<br />主要看函数<br /><br />/*<br /> * Returns amount of memory which needs to be reserved.<br /> */<br />long rd_init(long mem_start, int length)<br />{<br />inti;<br />char*cp;<br /> <br />blk_dev[MAJOR_NR].request_fn = DEVICE_REQUEST;<br />rd_start = (char *
2010-08-10 11:26:00 484
原创 四方精创笔试
<br />风尘仆仆从广州到深圳,参加了四方精创的笔试,早上7点多从租的地方出发,晚上8点多才回到软件园,一个字,累,第一次去深圳,对深圳印象还不错.<br />因为第一次去深圳,时间安排有点不知所措,中午12点多就到了四方精创公司了,比他们要求的时间整整提前了将近两个小时,前台的MM让我先到会议室等等,我等了将近20多分钟,她突然说让我先笔试,反正也没事干,就先笔试吧<br />本来逻辑题是最后做的,只是我最后才知道的,都是一些小题目,总共25到,中文,大概就是题目出现什么论点或者论据,下面那个支持或者反
2010-08-09 20:55:00 3778 4
原创 ramdisk初始化(虚拟盘)1
在前一篇文章从main.c程序中已经执行到了虚拟盘的初始化也就是#ifdef RAMDISKmain_memory_start += rd_init(main_memory_start, RAMDISK*1024);#endif那么虚拟盘的初始化代码是怎么样的呢?可以看虚拟盘的初始化代码如下/* * Returns amount of memory which needs to be reserved. */long rd_init(long mem_start, int length){
2010-08-08 13:06:00 476
原创 1
当电脑加电之后,先进入BIOS,执行BIOS程序之后进入MBR,然后开始引导操作系统,这一过程有一些特定的地址,比如说加电之后执行0XFFFF0的地址,而这个地址一般就是BIOS地址,当然这仅仅只是一个简单的描述过程,如果想知道详细一点的,可以网上找相应的资料,赵炯博士的一些书籍跟文章都有这一方面的,大家可以找出来看看,进入操作系统之后,Linux只要先执行三个用汇编写的程序,分别在boot文件夹下,分别是bootset.s,head.s,还有setup.s对于这三个我不想写介绍,只是简单扼要的说下他们的主
2010-08-08 02:13:00 295
原创 AT&T汇编格式
因为在linux的内核中,很多跟底层硬件接触的都使用汇编语言,但是Linux不仅使用一种汇编语言,除了Intel的汇编语言之外,还是用AT&T的汇编语言,因此可以说这两个是一个基础,Intel的汇编相信很多学计算机的人都学习过,但是AT&T的就不一定了,个人认为他们的思想都是一样的,只不过是语法不同,初级学习可以看如下的文章(文章转自http://blog.chinaunix.net/u1/59572/showart_1148334.html)一、AT&T 格式Linux 汇编语法格式 在 AT&T 汇编
2010-08-07 23:56:00 396
原创 7月底到8月初的遭遇
<br />这段时间真是饱受煎熬,感觉一下子跌到人生的低谷,本来已经定下来的一份好工作突然一下子没了,还没想好怎么跟家里人交代,跟我的老师最近也关系有点僵,好不容易才把自己的工资要到,感觉寄人篱下的苦衷,下定决心离开老师,于是开始找工作.<br /> 但是自己刚刚毕业,到现在才一个月,好多好公司都已经不招人了,于是上一下招聘网投了好多简历,最后都石沉大海,杳无音讯,最后在一位师兄的内部推荐下面试了百度运维,但是面试却没通过,提到的都是一些基础知识,但是自己的知识好多都已经还给老师了,真是对不住
2010-08-04 17:19:00 199
原创 window xp window xp host,redhat linux 9 guest上网.txthost,redhat linux 9 guest上网
在vmware的网络连接的时候不要选默认的桥接,当然如果选择桥接以后也还可以配置回来,本人采取的方法是host-only,当然这种方法是在参考网上的资料后实践成功的。安装完之后将网卡设置为手动配置静态ip,一般默认网关为192.168.0.1,子网掩码为255.255.255.0,dns就要自己查找自己的网断了,这样配置的话本人是可以成功的。配置ip可以使用linux提供的图形化界面,也可以使用命
2008-11-10 22:50:00 433
转载 linux 开机自启动设置 inittab 详解[转帖]
inittab详解linux下的/etc/inittab中的英文解释: This file describes how the INIT process should set up the system in a certain run-level.The inittab file describes which processes are started at bootup
2008-11-10 17:51:00 597
原创 window xp下用架设iis服务器
一个月前用apache和php构建了服务器,用php建网站,php经常与mysql数据库一起工作。 但是最近帮学院老师建留学生网站的时候老师却跟我说,学校的服务器装得数据库是sql server,最好用asp,当然,php当然也可以连接sql server,不过需要下载相应模块,比较麻烦,干脆就不用php建了,虽然以前没有接触过asp,但是由于有php以及c++,vb,javasc
2008-01-15 03:24:00 1495
原创 window xp下用apache2.2+php5.0+mysql5.0架设服务器的方法
废话不多说,直接进入正题 (1)首先是apache2.2的安装 我用的版本是apache2.2.4版本,双击msi类型的安装文件直接安装就行了,安装的时候最好把默认的安装路径改改,改成一个比较短一点的路径,比如我就直接用"C:/apache"; 然后再开始菜单的所有程序里面启动apache就行了,不过这里会经常与到一个问题,apache启动的时候不能有程序占用
2008-01-06 19:29:00 647
原创 辗转相除法两个数的最大公约数的原理及代码
对于两个数,我们要求是正整数,我们一般用辗转相除法两个数的最大公约数,下面我来仔细讲讲辗转相除法两个数的最大公约数的原理. 我们假设这两个数分别是X,Y,他们最大的公约数为M,则有X=a*M,Y=b*M(a,b是互质的数),很明显,我们的目的就是要把M的系数降到一,为此我们进行X%Y运算,实际上X%Y=(a%b)*M,由于a%b小于b,所以M的系数将会减小,接着我们进行Y%((a%b)*
2007-12-29 23:55:00 1518 1
原创 8皇后问题的回溯实现
8皇后问题的回溯实现其是非常简单,代码其实非常少,不过对于菜鸟来说要理解 他还是有一定的困难的,当然我这里也并不特殊考虑菜鸟了,如果阅读的时候碰到困难直接给我留言,我会回复的。首先,对棋盘的初始化,我直接用一个二维数组来实现并在main函数中进行初始化代码如下int a[8][8];//以下在main函数中进行初始化for(int i=0;i8;i++) for(int j=
2007-12-25 21:46:00 252
原创 U盘防autorun病毒高招
U盘给我们带来了很大方便地同时也给病毒提供了一个很好的传播渠道,很多人,尤其是像我这样的学生,经常在宿舍里把文件搞好,拿去打印店打印,但是回来总是发现U盘已经中毒了,我的U盘功能比较大,可以直接在上面删除文件,有病毒我直接在上面删除,但是总是不可避免疏忽直接插进电脑.............. 我对U盘病毒深恶痛绝啊,当然现在有很多U盘病毒专杀工具,入USBKiller等等,但
2007-12-22 17:00:00 551
原创 8数码难题的实现
8数码难题是一个很有趣的问题,之前研究了很久,终于把8数码难题完美解决,对于程序中的问题解决如下:(1)8数码的压缩,可用一个int型数据表示,int型前8位数为从左到右从上到下排列,第9位数的值为空格的位置)例如123456871表示"; 0 1 23 4 56 7 8 其中0表示空格(2)关于8数码的移动,左右移动很简单,可用如下函数int mov_left(i
2007-12-21 11:17:00 1422 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人