上海倍适智能科技有限公司
多灵智能指纹锁

当前位置:

智能家居网

智能锁百科

程序密码锁

程序密码锁

浏览次数:26次
  • 怎样分析单片机程序

    分析单片机程序是为编写程序做准备,包括对硬件电路和软件功能的分析,提出了实用的分析方法,并总结出分析程序的一般步骤和应注意的问题。

    设计单片机程序不是从零开始,而是先对已有的相关程序进行阅读分析。分析程序是设计、修改、优化、维护的重要步骤。因此,掌握单片机程序的分析方法是非常必要的。

    1详细阅读设备使用说明书

    可投产(使用)的单片机系统都附有使用说明书(手册),它介绍了该产品的(工作原理)技术指标、使用步骤、操作方法和注意事项,同时还有系统的有关状态、显示、报警等信息。这为阅读程序、划分模块分析功能提供了极大的帮助。若有该系统,应对其反复操作,熟悉使用步骤和操作方法。操作时应全面详细,确保程序和外围电路的每一部分都执行过。

    2了解单片机芯片型号及功能阅读全文>>

  • 单片机编程常见问答

    1.C语言和汇编语言在开发单片机时各有哪些优缺点?答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。

    C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。

    对于目前普遍使用的RISC架构的8bitMCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,我们还是建议采用汇编语言比较好。

    如果对单片机C语言有兴趣,HOLTEK的单片机就有提供C编译器,可以到HOLTEK的网站免费下载使用。阅读全文>>

  • 单片机应用编程技巧

    1.C语言和汇编语言在开发单片机时各有哪些优缺点?

    答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。

    C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。

    对于目前普遍使用的RISC架构的8bitMCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,我们还是建议采用汇编语言比较好。阅读全文>>

  • 微信小程序今日正式上线(含上手指南),张小龙发朋友圈向乔布斯致敬

    导语:微信小程序于今日凌晨正式上线,随后张小龙在朋友圈发出一条写着“2007.1.9”的状态,同时配有iPhone一代的新品发布图。

    雷锋网消息,微信小程序于今日凌晨正式上线。

    张小龙随后在朋友圈发出一条写着“2007.1.9”的状态,同时配有iPhone一代的新品发布图。

    2007年1月9日,乔布斯在旧金山莫斯科尼会展中心发布了苹果首款iPhone,而在十年后的1月9日,微信小程序正式上线。张小龙以这样的形式,向乔布斯致敬。

            小程序在哪儿?阅读全文>>

  • 天防基于RFID 技术的电子密码锁的研究及实现

    1.引言

    随着信息技术的发展,人们安全意识的增强,电子锁技术得到了迅猛的发展。电子锁系统早已超越了单纯的门道及钥匙管理,并已经逐渐发展成为一套完整的出入管理系统。电子锁系统的发展经历了单一密码键盘电子锁系统、IC卡电子锁系统、非接触式IC卡电子锁系统,到现在最新的生物识别系统。其中,非接触式IC卡电子锁系统由于其技术成熟、价格低廉、使用方便等优越的性能,已经得到了广泛的应用。本文在对RS485;和TCP/IP通讯协议研究的基础上,提出了一种基于射频识别技术的非接触式IC卡电子密码锁系统。

    2.系统结构

    系统采用分层次分布式集中控制方案,将所有电子密码锁组成一个分布式网络。整个系统包括管理中心服务器、用户楼栋PC、电子密码锁三层结构。管理中心服务器是整个电子密码锁系统的管理和控制中心,同时运行有电子密码锁管理系统程序和数据库。数据库采用支持网络通讯的数据库结构,方便功能的扩展。为了达到对所有电子密码锁进行统一安全管理的目的,用户通过使用非接触式IC卡并输入密码来打开电子密码锁,并将用户的IC卡信息、*时间等存入数据库。管理员通过电子密码锁管理系统程序可以清晰的查询到每个电子密码锁的使用状态、进出记录等。阅读全文>>

  • 公司新闻

    每把锁300000次开锁测试,使用寿命比同行多三年!海尔斯特源于欧洲品牌,采用美国进口芯片,德国设计理念,中国深圳制造,产品体系包括指纹锁,指纹密码锁,酒店感应锁,桑拿柜锁,密码锁,遥控锁。指纹锁十大品牌,指纹锁厂家直销18681519680"/>
  • 关于我们企业简介企业文化品牌故事联系我们
  • 产品中心指纹锁酒店锁桑拿锁密码锁新闻动态公司新闻行业新闻
  • 工程案例指纹锁批发酒店锁批发桑拿锁批发桑拿锁案例酒店锁案例
  • 服务支持经销网络售后服务常见问题客户反馈下载中心公司新闻行业新闻12016-01-28【指纹锁,指纹密码锁,指纹防盗锁,指纹锁厂家,指纹锁品牌,指纹锁十大品牌,指纹锁加盟,指纹锁代理】"><海尔斯特企业日记--2016.01.27>【指纹锁,指纹密码锁,指纹防盗锁,指纹锁厂家,指纹锁品牌,指纹锁十大品牌,指纹锁加盟,指纹锁代理】

    【指纹锁,指纹密码锁,指纹防盗锁,指纹锁厂家,指纹锁品牌,指纹锁十大品牌,指纹锁加盟,指纹锁代理】​深圳每10个使用智能锁的家庭就有5个在用海尔斯特的产品。【指纹锁,指纹密码锁,指纹防盗锁,指纹锁厂家,指纹锁品牌,指纹锁十大品牌,指纹锁加盟,指纹锁代理】​

    22016-01-28【指纹锁,指纹密码锁,指纹防盗锁,指纹锁厂家,指纹锁品牌,指纹锁十大品牌,指纹锁加盟,指纹锁代理】"><海尔斯特企业日记--2016.01.23>【指纹锁,指纹密码锁,指纹防盗锁,指纹锁厂家,指纹锁品牌,指纹锁十大品牌,指纹锁加盟,指纹锁代理】

    <海尔斯特企业日记--2016.01.23>【指纹锁,指纹密码锁,指纹防盗锁,指纹锁厂家,指纹锁品牌,指纹锁十大品牌,指纹锁加盟,指纹锁代理】​最后还是那句话:深圳每10个使用智能锁的家庭,就有5个在用海尔斯特的产品。海尔斯特指纹锁,你值得拥有!【指纹锁,指纹密码锁,指纹防盗锁,指纹锁厂家,指纹锁品牌,指纹锁十大品牌,指纹锁加盟,指纹锁代理】​

    32016-01-28【指纹锁,指纹密码锁,指纹防盗锁,指纹锁厂家,指纹锁品牌,指纹锁十大品牌,指纹锁加盟,指纹锁代理】忙并快乐着

    ​海尔斯特指纹锁,你值得拥有!【指纹锁价格,指纹防盗锁价格】指纹锁,指纹密码锁,指纹防盗锁,指纹锁厂家,指纹锁品牌,指纹锁十大品牌,指纹锁加盟,指纹锁代理【指纹锁价格,指纹防盗锁价格】

    42016-01-28【指纹锁,指纹密码锁,指纹防盗锁,指纹锁厂家,指纹锁品牌,指纹锁十大品牌,指纹锁加盟,指纹锁代理】周末即将来袭

    ​寒潮即将来袭!海尔斯特指纹锁,你值得拥有!【指纹锁价格,指纹防盗锁价格】指纹锁,指纹密码锁,指纹防盗锁,指纹锁厂家,指纹锁品牌,指纹锁十大品牌,指纹锁加盟,指纹锁代理【指纹锁价格,指纹防盗锁价格】阅读全文>>

  • plc学习心得体会

        plc学习要注意什么?

    1.编程方法简单易学梯形图是使用得最多的PLC的编程语言,其电路符号和表达方式与继电器电路原理图相似,梯形图语言形象直观,易学易懂,熟悉继电器电路图的电气技术人员只需花几天时间就可以熟悉梯形图语言,并用来编制用户程序。梯形图语言实际上是一种面向用户的高级语言,PLC在执行梯形图程序时,将它“翻译”成汇编语言后再去执行。2.功能强,性能价格比高一台小型PLC内有成百上千个可供用户使用的编程元件,有很强的功能,可以实现非常复杂的控制功能。与相同功能的继电器系统相比,具有很高的性能价格比。西门子plc可以通过通信联网,实现分散控制,集中管理。3.硬件配套齐全,用户使用方便,适应性强PLC产品已经标准化、系列化、模块化,配备有品种齐全的各种硬件装置供用户选用,威纶MT8100ie用户能灵活方便地进行系统配置,组成不同功能、不同规模的系统。信捷PLC的安装接线也很方便,一般用接线端子连接外部接线。PLC带负载能力,可以直接驱动一般的电磁阀和中小型交流接触器。硬件配置确定后,通过修改用户程序,就可以方便快速地适应工艺条件的变化。4.可靠性高,抗干扰能力强传统的CPU226CN继电器控制系统中使用了大量的中间继电器、时间继电器。由于触点接触不良,容易出现故障。信捷PLC用软件代替大量的中间继电器和时间继电器,仅剩下与输入和输出有关的少量硬件元件,接线可减少到继电器控制系统的十分之一到百分之一,因触点接触不良造成的故障大为减少。PLC使用了一系列硬件和软件抗干扰措施,具有很强的抗干扰能力,平均无故障时间达到数万小时以上,可以直接用于有强烈干扰的工业生产现场,PLC大用户公认为最可靠的工业控制设备之一。5.系统的设计、安装、调试工作量少PLC用软件功能取代了继电器控制系统中大量的中间继电器、时间继电器、计数器等器件,使控制柜的设计、安装、接线工作量大大减少。PLC的梯形图程序可以用顺序控制设计法来设计。这种编程方法很有规律,很容易掌握。对于复杂的控制系统,如果掌握了正确的设计方法,设计梯形图的时间比设计继电器系统电路图的时间要少得多。可以在实验室模拟调试PLC的用户程序,输入信号用小开关来模拟,可通过PLC发光二极管观察输出信号的状态。完成了系统的安装和接线后,在现场的统调过程中发现的问题一般通过修改程序就可以解决,系统的调试时间比继电器系统少得多。

    plc的使用大同小异,其实要做工程,首先要了解被控对象,然后才能确定控制策略,画出功能框图,最后才是程序编制调试。同时还要熟悉电气线路,绘制电气回路及接线图。以上这些是工程成功的基础。我觉得如果有以上的基础,随便哪种PLC只要有编程手册,最终都能编出程序,无非在程序组织上熟练程度不同。还有就是一定要自己做一两个工程而不是仅仅搞设备的维护,做工程是唯一快速提高自己水平的途径。如果以上都不具备,那就找个好老师,有无人指点差别巨大,我半路出家又是自学,深知其中的甘苦,原与大家共同进步。

    PLC的工作过程其实也就是跟照明灯差不多一样的工作原理,只是PLC通过内部的一系列的系统程序开带动外负载而已,PLC输入信号必须通过采样才能接收、然后再到执行程序、最后才输出!它是这么一个工作原理,PLC吸收信号通过诊断键入的命令是否有误、然后才能进入采样、进入采样再到程序执行、最后就是输出处理,扫描阶段:将输入现场信号扫描到输入映像寄存器,将输出映像寄存器去驱动外负载!以上就是整个工作过程、所以呢学习plc编程也不难,只要去了解所运用的指令与各指令的作用、加上熟悉梯形图就能学会,就是说学习PLC编程就必须知道以上的那些基础,虽然书本上一大堆的文字与一些PLC的构成加上一些内部系统程序介绍与讲解,其实那些都不是重点、它紧紧只是为了让我们去全面的熟悉PLC,至于学习编程的那一部分就有点难度了,最基本的学习工具不说要拥有PLC,那起码也要有一台电脑,没有电脑基本完成不了这个学习,熟悉指令的运用与作用是必须懂的,最好的就是有人指点,要是有人指点学会PLC编程不成问题,不过要先自己去学习过,遇到不懂的才去问,要是自己没有认真去学习就问别人,那肯定学不会!什么样的心态就有什么样的过程、结果是从过程中取决出来的,我们不一定要上了大学拥有高学历高文化也能学会,心态会给你一切的!所以千万不要对我说你学历多高、有多聪明什么的,其实我压根就没把你放在眼里!也不要说自己小学都没毕业学不会这东西、自己笨什么之类的!其实只要有理解能力和看懂文字就能做到了,而且世界上没有笨的人、只有不愿动脑、不肯努力的人!铁柱都能磨成针、这点小事情算什么?PLC的工作原理以及相关的一些基本内容在这个学习过程中很重要、以我个人的学习经验得出的一个结论,下一个程序的学习就是解图与了解熟悉它的指令作用与运用,据书本的介绍与讲解、其实PLC内部电路的工作原理跟硬件的工作原理差不多,PLC内部有计数器CNT和许多软继电器或继电器软触点软接线,驱动一个负载是由一些感应器或一些开关给信号PLC、然后PLC通过接收了外部硬电路给入的信号经过每个阶段的程序一步一步的接受、最后再到输出!固定化的程序就不说了,那些都是制造厂家采用ROM存储不变程序的!关于后备电池一般采用锂电池作为后备电池,寿命5年至十年,若经常带负载一般2至5年!关于PLC的I/O点数容量分为三种:小型机256点以下,中型机256至1024点之间,大型机1024点以上,提供给用户的可用资源通常用K字KW、K字节BK、或K位来表示,其中1K=1024,也有的PLC直接用所能存放的程序量表示,在一些PLC中存放的程序的地址单位为步,每一步占用两个字节,一条指令一般为一步,功能复杂的基本指令及功能指令往往有若干步、I/O点数是指外部I/O端子的数量,它决定了PLC可控制的输入开关信号和输出开关信号的总体数量!现场的输入信号通过光偶合器到输入数据寄存器,再通过数据总线送给CPU,PLC的输入单元通常有三种类型:直流12至24V输入,交流100至120V或200至240V输入,交直流12至24V输入,外部输入开关通过输入端子与PLC相连接!输出电路的负载电源由外部提供,电源电压大小应根据输出器件类型与负载要求来确定,允许输出电流在0点5至2安,额定值与负载性质有关,电源部件将交流电源转换成提供PLC的中央处理器、存储器等电子电路工作所需要的直流电源,使PLC能正常工作,它的好坏直接影响PLC的功能和可靠性!PLC一般使用220伏交流电源或24伏直流电原,内部的开关电源为各模块提供DC5V、正负12V、24V等直流电源!驱动PLC负载的电源一般由用户提供!PLC是顺序地执行其内部存储的程序来完成某一工作任务的、程序的输入装置称为编程器!智能接口模块是一个独立的计算机系统,从模块组成结构上看、它有自己的CPU、系统程序、存储器以及接口电路等,它与PLC的CPU通过系统总线相连接,进行数据交换,并在CPU模块的协调下独立地进行工作!工作过程:PLC控制任务的完成是在硬件的支持下,通过执行反映控制要求的用户程序来实现的!PLC确定了工作任务,装入了专用程序成为一种专用机,它采用循环扫描的工作方式,系统工作任务管理及用户程序的执行通过循环扫描的方式来完成!巡回扫描的工作机制:初始化,PLC上电后首先进行系统初始化,清除内部继电器区、复位定时器等!通信服务与自诊断阶段,在此阶段、PLC中的CPU完成一些与编程器或其他外部设备的通信,完成数据的接收和发送任务、响应编程器键入的命令、更新编程器显示内容、更新时钟和特殊寄存器内容工作,程序语法一旦出错或异常,CPU能跟据错误类型和程序内容产生提示信息,甚至停止扫描或强制为STOP状态!执行用户程序扫描阶段:此阶段包括输入采样、程序执行、输出处理3个阶段!数据I/O扫描阶段:此阶段将输入现场信号扫描输入映像寄存器,将输出映像寄存器的结果去驱动生产现场!PLC的工作过程:在正常情况下,一个用户程序扫描周期由3个阶段组成:输入采样阶段、程序执行阶段、输出处理阶段,PLC的核心模块CPU不能直接与外部接线端子联系,送到PLC端子上的输入信号、然后经过电平转换、光电隔离、滤波处理等一系列电路进入缓冲器等待采样,没有CPU采样允许,外界信号是不能进入内存的,在PLC的存储器中有一个专门存放I/O信号状态的区域,称为输入映像寄存器和输出映像寄存器!PLC梯形图中别的编程元件也有对应的映像存储区,它们称为元件映像寄存器!在输入处理阶段,PLC现场全部输入设备如按钮、速度继电器等的接通/断开状态读入输入映像寄存器,外接输入设备的触点接通时,对应的输入映像寄存器为1,梯形图中对应的输入继电器的动合触点接通,动断触点断开。外接的输入触点电路断开时,对应的输入映像寄存器为0,梯形图中对应的输入继电器的动合触点断开,动断触点接通!值得注意的是,只有在采样时刻,输入映像寄存器中的内容才与输入信号一致,而其他时间范围内输入信号的变化是不会影响输入映像寄存器中的内容的,输入信号变化了的状态只能在下一个扫描周期的输入处理阶段被读入!因此,如果输入是脉冲信号、则该脉冲信号的换度必须大于一个扫描周期、才能保证在任何情况下该输入均能被读入!程序执行阶段:PLC的用户程序由若干条指令组成,指令在存储器中按步序号顺序排列,根据PLC梯形图程序扫描原则,按先左后右、先上后下的原则逐句扫描执行用户程序,直至用户程序结束之处!但遇到程序跳转指令,则根据跳转条件是否满足来决定程序的跳转地址!(http://www.diangon.com/版权所有)PLC执行指令程序时,要读入输入映像寄存器的状态ON或OFF,既1或0和元件映像寄存器中有关编程元件的状态ON或OFF,既1或0,CPU按程序给定的要求进行逻辑运算和算术运算,运算结果存入相应的元件映像寄存器,把将要向外输出的信号存入输出映像寄存器,并由输出锁存器保存!输出处理阶段:在输出处理阶段,CPU将输出映像寄存器的状态ON或OFF,既1或0传送到输出锁存器,梯形图中某一输出继电器的线圈得电时,对应的输出映像寄存器为1状态!信号经输出模块隔离和功率放大后,继电器型输出模块中对应的硬件继电器的线圈得电,其动合触点闭合,使外部负载通电工作!一次动作后等待下一次扫描周期到来才会被刷新、这样才能进行二次动作,称为集中输出方式!输入映像区、输出映像区集中在一起就是一般所称的I/O映像区,映像区的大小随系统I/O信号的多少,既I/O点数而定!I/O映像区的设置,使计算机执行用户程序所需信号状态及执行结果都与I/O映像区发生联系,只有计算机扫描执行到I/O服务过程时,CPU才从实际的输入点读入有关信号状态,存放于输入映像区,并暂时存放在输出映像区内的运行结果传送至实际输出点!阅读全文>>

  • Linux 2.6内核的精彩世界

    Linux2.6内核精彩世界

    JosephPraneichLinux内核2.6版的开发已经接近尾声,2.6测试版发布已经二个月了,正式版预计明年年初发布。作为一个主要发布版本,2.6相对于2.4有很大的改动;它引入了许多新的特性,同样也去除很多过时的特性。它在哪些方面有大的改动?它对Linux的开发人员以及其他层面的Linux用户可能有什么样的影响?阅读本文,您将得到答案。--译者尽管我们第一次启动Linux2.4似乎只是昨天的事,时间已经流走,内核开发团队的2.6版内核开发工作已经接近完成了。本文将试图描述2.6内核中的许多新特性(侧重i386平台的Linux)。和封闭源码的软件的预发布不一样的是,这里所描述的所有特性当前都是2.5版内核开发树中可用的(其中一些的bug少一些,另一些bug多一些)。(按照Linux的传统,偶数版本的内核是稳定的,奇数版本的只是开发用的)。也就是说,这里所描述的一些特性在实际的2.6版本中仍可能被去除或标志为"experimental"(试验性)。然而内核当前处于特性冻结(feature-freeze)时期,最终的发行版本应该不大可能过于偏离这里的描述。同时也应该清楚这里描述的一些"新"特性在第一次出现在2.6系列内核后,可能被向后移植到了官方的或者发行版供应商的2.4版内核之中。或许使得这篇文章更为晦涩的是,即将到来的内核的版本号至今仍未确定。最可能使用的版本号是2.6,但是一些人提议版本号可以使用3.0,因为这个版本中包含了NUMA以及无MMU系统的支持。为论述方便,本文将一直使用2.6作为即将到来的内核的版本号。您正在阅读的是本文档(《Linux2.6内核的精彩世界》)非正式版的第一版,完稿于2003年7月13日,基于2.5.75开发版内核。随着Linux内核最后工作的完成,这份文档将发布其他非正式版,但是这份文档的正式版直到2.6的最后发布才宣告完成。由于本文是非正式版的第一版,其中可能有错误或者疏漏;如果您发现了它们,请告诉我,我将很高兴地去修正它们。到目前为止的故事...Linux内核始于1991年由LinusTorvalds为他的386开发的一个类Minix的操作系统。Linus初始曾想命名为这个系统为Freax,但很幸运的是最后他最后没有那样做。Linux1.0的官方版发行于1994年3月,包含了386的官方支持,仅支持单cpu系统。Linux1.2发行于1995年3月,它是第一个包含多平台(Alpha,Sparc,Mips等)支持的官方版本。Linux2.0发行于1996年6月,包含很多新的平台支持,但是最重要的是,它是第一个支持SMP(对称多处理器)体系的内核版本。Linux2.2在1999年1月到来,它带来了SMP系统上性能的极大提升,同时支持更多的硬件。最后,Linux2.4于2001年1月发布,它进一步地提升了SMP系统的扩展性,同时它也集成了很多用于支持桌面系统的特性:USB,PC卡(PCMCIA)的支持,内置的即插即用,等等。Linux2.6不仅包含了这些特性,同时也是一个无论对相当大的系统还是相当小的系统(PDA等)的支持都有很大提升的"大跨越"。多种平台支持能够支持相当广泛的硬件和平台,是采用Linux作为内核的操作系统(比如GNU操作系统,系统和环境常常是和Linux一块分发。Linux一般不被认为是独立的操作系统,只是操作系统的内核。)的优势之一。Linux自1.2版就开始包含对新的处理器类型和特性的支持,最新的Linux2.6内核发布版本也不例外。这种趋势不会直接影响到Linux在Intel平台下的使用,同时使得Linux能在尽可能大的范围内被使用,这一点非常重要。小规模-嵌入式系统中的LinuxLinux2.6扩展多平台支持的一个主要途径就是把uClinux的大部并入了主流内核(mainstreamkernel)。uCLinux(可以发音为"you-see-Linux",但更正确的拼写,首字母应该式希腊字母"mu")是将Linux应用在微控制器平台的项目。很多年来,这个Linux分支为许多嵌入式芯片提供了支持,把它更多的集成到主流内核中是一件非常有意义的事。不像通常的Linux移植版本,这里描述的嵌入式移植版由于硬件限制和通常的Linux相比,不具有所有类似的特性。主要的区别在于:这些移植版是针对于没有内存管理单元(MMU)的处理器的(Intel的CPU从386开始就有MMU了)。缺少MMU的支持,运行真正的多任务系统时,任务之间没有内存保护机制(因此任何程序都可以使得其他程序崩溃),一些有关进程派生的系统调用也无法实现。正是因为没有内存保护机制(或者说,没有任何安全性可言),它们不适用于多用户系统。在对嵌入式处理器支持上,Linux2.6有四个主要的新进步。首先是对Motorola的新型嵌入式m68k系列处理器移植。这些被命名为Dragonball或是ColdFire的处理器可以在Motorola,Lineo,Arcturus或是其他厂商生产的系统或是评估板上找到。大多数Linux用户应该对这些处理器相当熟悉,因为从Palm1000到最新的PalmIII,他们一直是PalmPilots的心脏。不幸的是,对早期没有MMU的m68k处理器(比如早期苹果机上使用的68000系列)还没有支持。最新支持的嵌入式平台还包括日立(Hitachi)的H8/300系列(不包含H8S,但可能会尽快地集成进来)以及NECv850处理器。无论怎么强调Linux2.6旨在支持无MMU系统的主要体系结构变化,都不为过分。所有Linux的前期版本,不论直接或是间接,都起源于Linus最初在Intel80386上的工作,局限性是固有的。沿着这个方向(对无MMU系统的支持),将来也许会有更多的其他早期的硬件被支持(事实上,已经有关于此目的的项目启动)。但是,不像为现代的以及仍在生产中的嵌入式处理器的提供支持,对早期的硬件的支持被更多地认为是基于某种爱好,并且对于最终用户而言很可能是无用的(因此在今后的Linux的官方发布版本也许不会将其包含在内)。最新的Linux版本包含了对Axis通信公司的ETAXCRIS("CodeReducedInstructionSet")处理器的支持(更确切地说,支持ETRAX100LX及更新的产品),它从技术的角度而言不是uCLinux合并的一部分(因为它包含MMU单元)。实际上对这款处理器的支持在2.4开发周期就已经有了,但它在2.4.0以后才被引入,所以现在应该提到它。它是主要用于网络设备的嵌入式处理器。与此相关的ETRAX100,是得到uClinux支持的无MMU处理器,但是在主流的Linux内核中相关支持却没有集成进来。Opteron支持-消费级的64位Linux另一个在2.4.x开发环节就已经并入但这里仍然值得提及的是对AMDOpteron芯片(基于AMD64体系结构)的支持。Opteron向后与Intel-clone的处理器兼容,并且,甚至可能得到微软的支持。是它还是Intel的Itanium家族的某一成员成为64位消费级产品的事实标准现在还很难下定论。尽管2.4系列内核的后期版本已经可以在该芯片上运行,但作为产品应用仍受到了很大限制。对高端用户来说,最严重的问题是,每个应用程序的RAM的使用都被限制在512MB以内。另一方面,新内核对在该平台上运行x86(32位)的程序的支持得到了改进。子体系结构(Subarchitecture)支持Linux2.6除了对许多新的处理器体系结构外,还包含了一个称为子体系结构(Subarchitecture)的新概念。以前,Linux通常假设处理器和其他硬件是配套的。也就是说,i386系列处理器只会在PC/AT服务器上使用。这条针对i386的假设在Linux2.4中就被打破,因为i386的额外支持使其可以在SGI的视频工作站(VisualWorkstation)中使用。(事实上,在其他非i386体系结构上,这个假设早被打破了。比如,m68k很早就支持Amiga,Michintosh等平台。)Linux2.6对于此最大的变化就是,让这个特性以及概念成为标准,以便所有的体系结构都可以用相似而健全的方法来处理,以便更清晰地划分模块。标准的确立使得i386可以运用于两个新的平台。第一个是NCR的Voyager体系。这是一个对称多处理器(SMP)系统(在Intel的MP规范标准确定之前就已经开发出来了),它支持多达32个486-686的处理器配置。实际采取这种体系结构的产品处理器的配置数目要相对少一些,而且目前并不是所有的型号都得到了Linux的支持(最早的就不支持)。第二种得到最新支持的体系结构是更为广泛使用的由NEC开发的PC-9800平台,它曾是日本市场占统治地位的PC平台,一直到最近几年。最初的PC-9800装载的是8086处理器,最终发展到奔腾级处理器和SMP支持。(当然,Linux对它的支持局限在386以上。)尽管在美国它完全不为人所知,微软的Windows95之前的版本曾移植到这个平台上。该平台由于生产商对标准PC的偏爱,生产已经中止。Linux对差异细微的硬件类型支持的形式化,使得操作系统能更容易的移植到其他平台上,比如移植到专为存储设计的硬件或者是使用在工业领域的主流处理器。需要澄清的是,子体系结构也不是任何时候都管用的,它能够发挥作用是因为这些可移植的系统非常底层构件(比如IRQ路由)有或多或少的不同。比起在X-box上运行Linux的差别来说,驱动程序等相对小的差别还不足以把它们从传统的i386系统中分开。Linux对X-box的支持,就不是子体系结构的问题。大规模-非一致存储访问体系结构(NUMA)和大型机除了以上所提及的新硬件类型的支持之外,新的Linux内核发行版也包含了对大型服务器(一些运行i386处理器,也有些运行其他处理器)更多的支持。对Linux来说,这样的特性是新近加入的,还有许多优化工作需要完成。这是一个Linux发展相当迅速的领域,我们能够预计在不久的将来,Linux将成为此领域的有力竞争者。在此方面最大的改变就是Linux对NUMA服务器的最新支持。NUMA(非一致存储访问)在多进程世界里是超越SMP以及提升多处理器系统效率的一个进步。SMP系统的设计上有着许多和对应单处理器系统类似的局限性。其中最大的设计局限之一就是系统中只有唯一的一块内存区,所有的处理器对它都平等地对它进行访问。在多处理器系统里,这样会在同一条内存总线上的多处理器之间引起相当高的竞争,导致性能瓶颈。NUMA服务器,通过引入了以下的理念解决了这个问题:对于某个特定的处理器,一些内存比其他一些的更为接近(close)。可以这样简单地设想(同时技术上也不会有严重错误),你的系统有许多包含了处理器、内存以及其他元件(比如I/O扩展卡)。系统中有很多这样的卡,它们可以相互通讯;显而易见,相对其他卡上的内存,每块卡上的处理器能更快的访问本地内存(自己的卡上内存)。从许多角度上看,NUMA体系结构就是一个紧密耦合的集群特例。为了给NUMA主机提供良好的支持,Linux十分必要在许多方面进行调整,以使新模型更具效率。首先,建立了一个内部拓扑API,以使内核知道处理器和内存以及其他IO设备间的相互关系。有了内部拓扑API的支持,Linux的进程调度器可以理解这些关系,并且会尝试优化任务以达到最佳的本地资源使用。此外,许多NUMA主机在各个节点(nodes)的线性内存区域之间存在空洞(holes)。新内核已经能够合理的处理这种不连续情况。内核还有许多其他使得Linux可以支持高端(high-end)主机的变化,这也是内核发展的一个明确方向。再过一年,我们可以期待Linux在高端机型上效率以及其他方面的进步。深入Linux除了横向支持越来越多的硬件,Linux2.6还在已支持的平台上根据硬件的性能提升进行了改进。这些针对特定CPU的优化包括:Transmeta的Crusoe系列,Intel’sPentium4Xeon、Pentium3-M、Pentium4-M和AMD移动处理器。新版本Linux还解决了某些Athlon处理器自身的bug导致的问题。Linux2.6还解决了在某些多于16个处理器的系统启动时偶尔会挂起的问题,尽管这个bug不会影响大多数用户的正常使用。超线程在Linux2.6中不算新鲜,内核在2.4.17发布中就已经开始包含对IntelP4处理器的超线程(Hyperthreading)的支持(在这里提及它,一是因为它并没有包含在2.4最初的发布中,二是自那以后内核又有了很大的改变)。超线程使得单个的处理器可以伪装成操作系统看来二个或更多的多个处理器。最令人激动的是,Linux是第一个把超线程特性引入市场的操作系统,尽管早在一年前Intel就发布了兼容的处理器。有传闻说,微软在对支持超线程的CPU按一个CPU还是按两个CPU收取授权费(license)的问题上拿不定主意。Linux的开放模型(以及没有基于cpu的授权)使得Linux操作系统第一个支持这个新特性。显然,一个处理器就算扮作两个处理器工作,它还是一个处理器,性能并不能因此增加很多。2.5中调度器和其他一些部分在有了新的优化,使得处理器的超线程可以真正的发挥作用。如果是在2.4下加入超线程支持,结果就不一定了,有时性能还会下降。容量--可扩展性的进展除了对NUMA的支持,Linux2.6在处于食物链顶端的Intel服务器方面,也有一些变动。最重要的就是对Intel的物理地址扩展(PAE)的完全支持,使得较新的32位的x86系统可以访问高达64GB的内存,但仅仅限于页面映射模式。另外,通过加强对高级可编程中断控制器(APIC)的支持,多处理器系统之上的IRQ均衡(balancing)大大提升。在许多其他方面,内部限制在可能的地方都有所放松。Linux系统上用户和用户组的数目从65000越升到了超过40亿(实际就是16位到32位的变化)。这使得Linux在之前可能超越限制的大型文件和认证服务器上更加实用。类似的,进程标识号(PID)的数目也从32000升到10亿。这个改变,与其他PID子系统优化一起,将提高在十分繁忙或是长期工作的系统上的应用程序的启动性能。尽管同时打开的文件最大数目并没有增加,但是Linux2.6不会再要求你预先设定限制值;限制值会随着系统的运行自动调整。最后,Linux2.6包含了改进的64位的块设备支持(当然块设备本身应当支持64位模式),即使是在i386这样的32位平台。这样一来,文件系统的存储上限可达2TB。内核互动性以及响应性Linux2.6中一个受关注的焦点就是使得系统对于桌面用户以及其他一些需要对事件进行高度人为控制的应用具有更具响应性(responsitive)。这其中各个不同的目标系统具有很不同的挑战,但内核中包含了很多改变,使得它们同时受益。2.6中一个必须理解的主要内部改变是现在内核自身是可抢占的。在所有之前的Linux版本中,当系统运行内核的相关事务时,它不能被打断(在多处理器系统中,基于各cpu的角度这也是成立的)。Linux2.6中,内核现在允许自身在执行任务时被打断,这样用户任务可以继续运行即使内核正在做一些复杂的事情。(为了避免明显这可能带来的竞争情况,内核中含有一些具有锁的代码段,运行于这样的代码段的时候,内核不能被打断。)这个改变的主要好处是系统的可交互性(比如,对于桌面用户)大大提升,系统对于用户输入这样的事件感觉起来快多了。其他使得Linux成为一个更加具有响应性系统的改变是并入对新的"futexes"("FastUser-SpaceMutexes")的支持,这项支持发挥作用需要用户程序的支持(使用futex实现互斥)。Futexes是一种序列化(serialize)事件使得它们不会相互冲突的机制。与传统的多数的线程库锁支持的mutex操作不同,这是部分基于内核的(partiallykernelbased),同时它也支持设置优先级使得高优先级的应用或线程优先获得竞争的资源。通过使用一个程序去指定一个等待的任务比其他的更重要,它带来了可能是一个应用的时序--关键区域更佳的响应性。Linux的I/O子系统也经历的很大的修改,使得它在各种工作负荷下都更具响应性。这个变化包括I/O调度子系统--决定何时、哪一进程去读一个设备的内核代码的完全重写。重写的I/O层现在可以更好地保证没有进程过长时间地停留在I/O等待上,同时不排斥以前的优化工作使得读等请求以最有效的次序操作硬件的优化工作。尽管实时操作系统(RTOS)的开发者可以从这些改变中受益,Linux2.6将不会成为一个实时内核。然而,这些以及其他相关的背景工作使得将Linux转变为RTOS成为可能。为用户或开发者提供这样的支持的外部patch(尚未合并到官方的内核版本)已经出现了。模块子系统-设备驱动程序在Linux2.6的开发历程中,模块子系统是另一有重大改进的部分。许多代码被重写,以提高稳定性,并使系统更加透明。除了这些明显的表层的变化之外,还有更多背后的内核如何看待以及使用模块的改变。首先,Linux2.6中内核驱动程序最显而易见的(虽然并没有太大作用)的变化是文件扩展名改变了。".ko"(kernelobject,内核目标文件)取代了".o"(这是一目标文件的常见扩展名,通常在程序编译期间,链接生成可执行应用程序之前创建)。与其说这使得模块并不是真正的中间文件这一点更为清楚,还不如说这仅仅是一个装饰性(cosmetic)的改动。完完全全实质性的改进在于消除存在于很多内核版本中的竞态的多方面工作。问题的关键在于,如果卸载发生在模块检查并确认没有其它的设备正在使用它之后,使用一个正在被卸载的模块来启动设备是有可能的。新的内核模块代码应使得这一条件更难被触发。更进一步,现在简单地完全禁止模块卸载也是有可能的。更加透明是新的模块子系统另一特性。在此之前,几乎所有的Linux版本中,模块是足够智能的,它们可以通过扫描总线寻找它识别(recognized)的设备ID号,检测到它所能够支持的设备(比如PCI,ISAPnP以及PC卡)。Linux2.6标准化了这种支持,使之对内核来说外部化,外部程序以及模块加载器判断一个特定的模块可以支持哪些设备将更为容易。这将允许各种硬件管理程序(比如Redhat的kudzu)对硬件作出智能化的判断,即使他们本身对自己所处理的硬件设备并不熟悉。如果你的知识超越了当前版本的驱动程序,你可以(通过新的sys文件系统中的一个接口)强制一个驱动程序工作于某一特定的设备,即使驱动程序并不知道自己可以支持该设备。其他改进除了上述的许多改变之外,还有很多其他可以提升系统性能的普遍性的改变。这其中包括更多的去除了"BigkernelLock"(早期Linux用于支持SMP系统时所采用的非细粒度锁),以及针对文件系统预读、回写和小文件操作的优化等。Linux2.6还解决了一个更为深刻的稳定性问题:内核将不会分配多于系统中RAM(加swap)数量的内存。此前,Linux在一些即使系统内存耗尽的情况下,仍然允许malloc操作分配内存成功。过量分配(overcommitment)逻辑得到修改,使得这种情况现在不再可能出现。(当然,如果你耗尽了系统的RAM,即使没有超越最大可用数量--你需要担心更更严重的问题。)Linux总是一个开放标准的支持者。内核内部的大改变之一就是Linux的线程框架被重写,以使NPTL(NativePOSIXThreadLibrary)可以运行于其上。对于运行负荷繁重的线程应用的PentiumPro以及更先进的处理器而言,这是一个主要的性能提升;它也是企业级应用中的很多高端系统一直以来所期待的。(实际上,RedHat已经将它向后移植到了Linux2.4,从RedHat9.0中开始包含)线程框架的改变包含LInux线程空间中的许多新的概念,包括线程组、线程各自的本地存储区、POSIX风格信号以及其他改变。主要的缺点之一是依赖于老式的Linux-isms而没有遵循POSIX标准的应用程序(比如SunJava)将不能运行在支持新式线程的系统之上。鉴于使用新的线程模型利远大于弊,很明显,新的内核发布不久,最为重要的那些应用都将会支持这个改变。最后,2.6可以支持编译时关闭内核对存储交换(swap)的支持,尽管对于绝大多数Linux之上的应用而言,没有直接的益处。这使得Linux可以在相对小的内存足迹(footprint)内运行,对于不大可能使用交换设备的嵌入式系统可能也是有益的。统一设备模型作为操作系统中的一个相对独立的组件,设备模型对于那些被设计运行于用于多种硬件之上的操作系统而言是至关重要的。简单地说,设备模型是内核中的基础设施,用于检测和决定系统中所有可选模块的资源使用。所有的操作系统(包括各版本的Linux)都固有一些设备的概念。老版本的Linux(2.2或更早)仅使用一种直接的方法操作设备。系统为不同种类的硬件总线提供驱动程序,各式各样的设备驱动程序知道如何探测它们所支持的设备总线以寻找对应的硬件设备。这种系统非常分散,各种各样的总线提供许多互不兼容的API,用于处理各种不同的操作。Linux2.4通过使用一组通用接口将PCI,PC卡以及ISAPnP整合到一个单一的设备结构中,完成了构建统一设备模型的第一步。Linux2.6更进一步地推进了这方面的努力,力求在整个系统的范围内,内核以一种新的统一的视角看待它所依赖的硬件。内核对象抽象新设备模型基础的核心是一个所有底层设备类型都需使用的新的面向对象的接口。这个内核设备对象结构(称为"kobject")包含用于引用计数和操作子设备的所有接口。底层设备(例如系统总线)利用这一公共接口层,向内核以及用户空间提供统一的系统视图。现在,所有这些都被放在了中心位置,这使得Linux可以使用这些信息作许多有用的事。在内核中完整地保存这些新的信息,使得Linux可以更好的支持那些需要有深入的硬件知识的系统。一个明显的例子就是电源管理。近几年新出现的电源管理标准是ACPI。ACPI,即高级电源配置管理界面,最早是在Linux2.4中有支持。不同于APM(高级电源管理),拥有这种接口的系统在改变电源状态时需要分别通知每一个兼容的设备。新的内核系统允许子系统跟踪需要进行电源状态转换的设备。另一个例子是支持热插拔的总线。机器启动后依然可以添加设备的能力在现在看来显得很普通,但Linux直到2.2版本才提供相关支持。到了Linux2.4,这种支持得到进一步的加强,范围也扩大到可热插拔的PCI、PC卡、USB以及Firewire设备。通过从根本上消除热插拔设备和传统设备的差异,新内核的集中化设备系统扩展了这一支持。当你启动计算机的时候,设备检测例程将"插入"系统中的设备。无论在系统启动时,或是启动以后,系统发现系统中的某个设备时,都会相应创建一个相同的内核对象,这就使得处理可插拔设备的底层结构简单化了。sys文件系统最明显的用户可见的改变可能是新的sysfs文件系统的出现,它集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统(安装在/sys目录)是核心看到的设备树的一个直观反映。核心通过紧密合作的核心对象(kernelobject)子系统来建立这个信息:当一个核心对象被创建的时候,对应的文件和目录也被创建。(必要的话,也有可能一个核心对象被创建的时候并不在sysfs文件系统中有记录。)既然每个设备(或者说内核对象)在sysfs中都有唯一对应的目录结构,那么下一步可以把设备的属性(设备名,电源模式,中断处理等)信息输出到这个目录树中以供系统管理员读写。相应的,很多跟设备相关的/proc/sys的用法已经或者将要移到/sys目录下。核心硬件支持随着Linux的这些年的发展并逐步进入主流行列,从内核所支持的设备类型来看,每一次的内核发布,都像是一次跳跃:支持新兴的技术(2.4的USB),支持古老一些的传统技术(2.2的MCA)。发展到Linux2.6,不被Linux支持的设备已经相当少了。PC机上的主流硬件没被支持的很少。正是由于这个原因,多数(显然不是所有)关于硬件支持方面的改进(包括上面所说的设备模型)围绕对已有支持的加强。内部设备总线位于系统底层的总线几乎与处理器同样重要;这些总线就像胶合剂,将系统的各个部件连到一起。在PC世界中,这些总线一直是不可或缺的,无论是老的ISA(在最初的IBMPC机中可以找到)总线,还是现在的外部串口以及无线(wireless)总线。一旦新的总线及设备变成流行的消费产品,Linux总是能以很快的速度去适应它;而对于不很流行的设备,情况则差很多。一个能说明这一情况的例子就是ISA总线的PnP(即插即用)特性,Linux直到2.4版本才支持ISA总线的即插即用扩展,比其他流行的商业操作系统要晚很多(在内核支持ISAPnP之前,你或许可以勉强使用一些用户态的实用程序使它工作)。Linux2.6对这个子系统做了一个重要的改进,使它更完善、更好地集成于新的设备模型之中。新特性包括完整的PnPBIOS支持、设备名称数据库以及一些其他的使系统更加健壮的特性。这些改进的结果,是使得Linux成为一个真正意义上的即插即用操作系统,并且可以被设置成就像那些兼容机的BIOS达到的那样。ISA时代ISA-PnP的两个可选的替代方案是MCA(微通道体系)和EISA(扩展ISA),尽管它们不那么流行。在Linux2.6的开发周期中,这两个子系统都做了一些改进以支持新的设备模型。此外,通过引入设备名称数据库,EISA与其他子系统一起获得了更进一步的标准化。除了刚才提到的几个重要特性,Linux对硬件总线的支持也做了许多其它值得关注的改变。PCI总线是所有总线中最流行也是最重要的总线,Linux2.6极大地提升了对它的支持,包括改进的热插拔和电源管理支持。新版本同样也支持包含多个AGP总线(即加速图形端口――基于PCI协议的一种独立高速总线)的系统,如高端图形工作站。就对PC硬件的支持而言,Linux紧紧跟随着硬件市场的潮流。除了这些实际的设备总线,Linux2.6也增加了一个概念上的Legacy总线。这种总线对每种体系结构都是专有的,这些体系结构包含所有你可能想到的设备。例如,在一台PC机上,可能会有板上(on-board)的串口、并口、以及PS/2端口,这些设备实际存在着,但不被系统中的任何一个实际总线所枚举(enumerated)。在其他的一些平台上,这种Legacy支持可能包含更复杂的事情(如查询固件)。但一般来说,这只是一层包装,使得设备驱动程序在新的驱动模型视图下能以标准的方式操作这些设备。外部总线虽然早先的设备标准成熟并鲜有新的特性增加,但USB是一个例外。USB的支持在最近的内核开发周期中有了许多改进,其中最为显著的是新内核将支持USB2.0设备。USB2.0是一种新的标准,支持设备带宽高达480Mbps(当前的USB只有12Mbps)。支持此标准的设备通常被称作高速USB设备,它们正逐步占领市场。另外一个新的相关标准叫做USBOn-the-Go(或称作USBOTG),它是USB协议中一个点到点的变种,用以直连设备;Linux2.6尚未支持它(2.6的补丁是可以支持的)。除了设备支持外,多数USB设备的枚举方式都作了修正,使得Linux能访问现今许多同类型设备的所有实例(instance)。这一点对于大型打印机或存储设备来说相当有益(虽然后者可能更倾向于使用专用存储总线)。很明显,这一领域的技术最近几年成长显著,Linux对相关设备的支持也是紧跟市场的步伐。无线设备过去的几年,无线技术在公众应用中真正起飞了。看起来,在不远的将来,线缆(非电源)将成为历史。无线设备既包括网络设备(目前最常见的无线设备),也包括更通用的设备,比如PDA。在无线网络空间中,设备可以大致分为长距(如基于业余无线设备的AX.25)和短距(通常是802.11,但一些旧式协议也存在)。从很早的时候(v1.2)起,对这两者的支持就成为Linux的一个特征。在2.6的开发中,它们又都得到了更新。这里最大的改动是,用于支持各种板卡、协议的短距子系统的主要组件合并为一个单一的"无线"子系统以及API。通过提供一组能工作于所有支持的设备的用户空间工具来实现不同的设备统一处理。这种方式解决了原先的不同设备不同处理所带来的很多小的兼容性问题。除了这种标准化之外,Linux2.6版内核还有很多全局性的改进,包括当状态发生改变(比如一个处于"漫游"状态的设备)时更好的通知能力,以及对旨在更好地处理无线设备中周期性的延迟波动的一个TCP相关的改动。由于人们对2.4版内核中无线支持的期望,上述的很多特性已经包含在2.4版内核中了。在无线设备空间,有着类似的主要改进。IrDA(以InfraredDataAssociatesgroup命名的红外线协议)部分自上一主要发布以来有一些改进,比如电源管理、集成进了新的内核驱动模型。真正的改进还在于提供了对蓝牙设备的支持。蓝牙是一种新的无线协议,它设计为短距,功耗很低,也没有IrDA中的"视线"的限制。作为一种协议,蓝牙被设计为"到处可用"。它已被应用于多种设备,如PDA,移动电话,打印机,以及更为怪异(bizarre)的设备如车载设备。协议本身由两种不同的数据连接类型组成:用于有损音频应用的SCO(SynchronousConnectionOriented,面向同步连接);以及可以支持重传等更为强壮的连接L2CAP(LogicalLinkControlandAdaptationProtocal,逻辑连接控制和适配协议)。L2CAP还进一步的支持各种子协议,包括用于点对点网络的RFCOMM以及用于类以太网的BNEP。Linux对采用蓝牙技术的设备的支持在不断提升,我们可以相信,当足够多的采用蓝牙技术的设备被使用时,这种支持将会非常成熟。值得一提的是,对蓝牙最初的支持已经集成到了2.4系列内核后几个版本中。块设备支持存储总线在2.6的开发中,IDE/ATA、SCSI等存储总线也都得到了主要的更新。最主要的改变集中于被重写(再一次被重写)的IDE子系统,解决了许多可扩展性问题以及其他限制。比如,现在IDECD/RW设备可以直接通过IDE磁盘驱动程序进行写操作,这种实现方法比过去的方法要简洁的多。(在以前,需要再使用一个特别的SCSI模拟的驱动程序。这样显得很混乱,而且实现起来有困难。)现在,遇到一个不能识别的控制器时,IDE层可以查询机器的BIOS信息,从而获取时序操作所需数据或其他数据。SCSI部分有不少散布于系统中的小的改进,使之能支持更多的设备,同时提升了可扩展性。一个针对旧式系统的特别改进是,现在的Linux能够支持SCSI-2多通道设备(这种设备在单个设备上有多于2个的LUN)。另一个重要的改进则是现在Linux能够默像MSWindows那样检测介质的变动,以更好地兼容那些并不完全遵照标准规范的设备。既然这些技术历经时间的考验稳定下来,那么Linux也提供对它们的支持。Linux现在也包含对新一些的机器的EDD(EnhancedDiskDevice)BIOS进行直接访问的支持,这样便可以获得服务器中的磁盘设备视图。EDDBIOS包含所有连接到系统的、BIOS识别的存储总线(包括IDE以及SCSI)的信息。除了获得连接设备的配置以及其他信息之外,它还有另外几个优点。比如,这种新的接口使Linux能够知道系统是从哪一个磁盘设备上启动的。这在新一些的系统上非常有用,因为这样的系统中到底是从哪一个设备启动的常常不明显。智能安装程序也可以考虑使用这些信息,比如在决定把GRUB(一种Linux启动装载器)安装在哪里时。所有这些改动之外,这里需要再次强调的是,所有的总线设备类型(硬件、无线和存储)都集成到了Linux新的设备模型子系统中。一些改动仅仅是"装饰性"的,另一些则包含了非常显著的改动(比如,甚至是如何检测设备的逻辑都需要修改)。文件系统Linux(或其他一些系统)下块设备的最常见用法是在块设备上面建立一个文件系统。相对Linux2.4而言,Linux2.6对于文件系统的支持在很多方面都有大的改进。关键的变化包括对扩展属性(extendedattributes)以及POSIX标准的访问控制(accesscontrols)的支持。EXT2/EXT3文件系统作为多数Linux系统缺省安装的文件系统,是在2.6中改进最大的一个。最主要的变化是对扩展属性的支持,也即给指定的文件在文件系统中嵌入一些元数据(metadata)。一些扩展属性被系统使用,只能由root用户进行读写。很多其他操作系统,如Windows和MacOS系统已经大量地使用了这种扩展属性。不幸的是,UNIX系的操作系统一般都还没有很好地支持扩展属性,很多用户级的程序(比如tar)需要进行更新才能保存和转储这些扩展属性信息。这是Linux成长的又一方面;Linux对扩展属性的支持正在成熟。新的扩展属性子系统的第一个用途就是实现POSIX访问控制链表。POSIX访问控制是标准UNIX权限控制的超集,支持更细粒度的访问控制。必要的话(比如从NFS输出文件的时候),这些访问控制可以被映射到标准的user/group权限控制上。除了以上,EXT3还有其他一些小的变化。文件系统日志提交(commit)的时间能够进行调整得更加适合于笔记本电脑(处于省电模式时,可能会加速驱动器);缺省的加载选项可以保存在文件系统自身之中(这样不用每次加载时都输入加载选项);可以标记一个目录为"indexed"以加速在这个目录中的文件查找。Linux对文件系统层还进行了大量的改进以兼容PC机的主流操作系统。首先,Linux2.6支持Windows的逻辑卷管理器(即动态磁盘DynamicDisks)。这个是WindowsXP及后续版本中新的分区表机制,能够很方便的支持多分区系统中的分区大小的调整以及新分区的创建。(当然,Linux系统不一定会马上使用这一机制)其次,Linux2.6对NTFS文件系统的支持也进行了重写,现在能以读/写模式安装一个NTFS卷。写支持仍处于试验阶段,在逐步改进;最终的内核发布版中可能含有也可能不含有写支持这一部分。最后,Linux对FAT12(很老的系统或软盘上使用的DOS文件系统)的支持中消除了使用一些MP3播放器时所遇到的bug。跟踪PC领域的其他一些技术将一直是Linux核心向前发展的一个重要环节。文件系统部分在与其他操作系统的兼容性方面也有改进。对HPFS文件系统(OS/2和其他系统中使用)的扩展属性的支持有了改进。OS/2风格的扩展属性被分离到另一个的名字空间中。XFS文件系统也得到了更新,以达到与IRIX操作系统的磁盘级(on-disk)兼容。此外,Linux文件系统中还有很多分散的变化。配额(quota)管理进行了重写以便系统可以支持更多的用户;用户可以标记目录为同步,从而所有变化(增加文件等)都是原子的(这一点对于邮件系统和基于目录的数据库系统尤为重要,而且在磁盘故障的恢复方面也更好一些);透明压缩功能(仅Linux支持的扩展)被加到ISO9660文件系统(CD-ROM中使用)中。最后,一个新的基于内存的文件系统(hugetlbfs)被创建;创建该文件系统旨在更好地支持基于共享内存的数据库。输入输出设备在任何计算机系统的更"外部"的一层是输入输出设备,包括像键盘、鼠标、声卡、显卡等显而易见的东西,还包括像游戏操纵杆以及辅助设备等不那么常见的东西。在2.6的开发周期里,许多Linux的用户端子系统得到了扩展,但大部分常见设备都已经非常成熟了。Linux2.6中对这些设备的改进多半衍生于内核对外部总线支持的改进,比如蓝牙无线键盘以及其它类似设备。尽管如此,Linux在好几个领域都有更大的改进。人机接口设备Linux2.6中一个主要的内部改动是人机接口层的大量重写。人机接口层是一个Linux系统中用户体验的中心,包括视频输出、鼠标、键盘等。内核的新版本中,这一层的重写以及模块化工作超出了以前的任何一个版本。使用新内核构建一个不包含对显示器等的支持的完全"headless"的Linux系统是可能的。嵌入式系统开发人员或许会是这一模块化工作的主要受益者,可以制造出只能通过网络或串行线管理的设备;另一方面,对普通用户也是有好处的,因为许多关于设备及体系结构的内在假设被模块化了。比方说,之前总是假定如果你拥有一台PC,那么你一定需要对标准AT(i8042)键盘控制器的支持。在Linux的新版本中移除了这一要求,因而可以在不那么遵照传统的系统中抛开不必要的代码。Linux对显示器输出处理的支持也有不少改进,但大部分只在配置使用内核内部的帧缓冲控制台子系统时才有用。(多数基于Intel体系的Linux机器并不采用这种方式配置,但其他大部分体系结构却采用。)在我看来,最大的亮点在于启动图标(如果你从来没有见过,那我告诉你那是一只可爱的企鹅)现在支持24bpp的分辨率。这是一个方面,其它的面向控制台的新特性包括可以重设大小、旋转等(对PDA及其它类似设备),还有为更多的硬件提供了硬件加速支持。最后,Linux现在对VESA监视器的显示能力信息的查询提供了内核支持,虽然XFree86和大部分发布版本的安装系统都在用户空间提供了这种支持。除这些比较大的改进之外,Linux2.6在人机交互方面还有一系列小的改进。比方说,现在支持触摸屏了。另外,鼠标及键盘驱动程序也得到了更新和标准化,现在不管底层的硬件或协议是什么,系统都只导出一个单一的设备节点(比如/dev/input/mouse)。一些怪异的鼠标(比如有多个滚轮的)现在也得到了支持。PC键盘的键值映射得到了更新,以遵循Windows的"标准"来支持扩展键。对游戏控制杆的支持也得到了提升,这不仅仅得益于许多新的驱动程序(包括XBox游戏控制盘的驱动),还归功于引入了一些新的特性,如力量反馈(force-feedback)。最后(但绝不是最不重要的),新版本内核提供了对TiemanVoyager的盲人用TTY设备的支持,以使盲人用户更好地使用Linux。(这个特性是如此的重要,以至于被向后移植到了Linux2.4。)顺便提一下,Linux修改了"系统请求"接口以更好地支持那些没有本地键盘的系统。系统请求接口("sysrq")是系统管理员在本地控制台做一些高级工作的方法,比如获取调试信息、强制系统重启、重新挂载文件系统为只读等等。因为Linux2.6现在支持一个完全"headless"的系统,所以现在也可以通过/proc文件系统触发这些事件。(当然,如果你的系统已经挂起而你又要强制它做一些事情,这一特性也帮不上你什么忙。)音频对于桌面用户而言,Linux2.6中最为期望的新特性之一是以ALSA(AdvancedLinuxSoundArchitecture)取代过时的声音系统。旧式的声音系统OSS(OpenSoundSystem)很早的时候起便为Linux提供音频支持,但是它有许多体系结构上的缺陷。新系统首要的改进在于它从设计之初开始便是完全线程安全的,且能很好的工作于SMP系统。这修正了过去的许多驱动程序在"桌面即意味着单CPU"这一教条的例外情况下不能正常工作的问题。更为重要的是,此驱动程序从一开始便采用模块化设计(Linux旧版本的用户应该还记得,在Linux2.2时代,模块被解构以适应声音系统),这使得系统能更好地支持多块声卡,包括不同类型的声卡。无论系统内部是多么完美,如果没有一些令人惊讶的新特性,系统对于用户来说仍没有任何改进。事实上,新的声音系统有许多这样的新特性。其中最为重要的是提供了对许多新硬件(包括USB音频及MIDI设备)的支持,支持全杜比录音及回放、无缝混音、支持声音合成设备等等。无论你是一个音响发烧友或只是喜欢播放MP3的人,Linux提升的声音支持都将是大受欢迎的一个进步。多媒体现今单纯的音频支持似乎远远不够,用户想要的是对真正新奇的硬件的支持,比如网络摄像机,广播及电视适配器,数字视频录制器等。Linux在2.6版本中对以上三者的支持都有所提升。Linux对广播卡的支持(通常是通过用户空间实现历经了好几个开发周期,而对电视调谐器和视频摄像机的支持只是在最近的1、2个主要版本中才有。此系统通常称为V4L(Vedio4Linux译者注:"4"for"for"),在新版本的内核开发中得到了重大更新,包括API的清理工作以及对设备更多功能的支持。新的API与旧版本不兼容,支持它的应用程序需要随内核的升级而升级。作为一个全新的领域,Linux2.6首次包含对DVB(DigitalVideoBroadcasting,数字视频广播)硬件的支持。这种硬件常见于机顶盒,它可以使得Linux服务器通过适当的软件变为一台tivo(类似机顶盒的设备)。软件方面的改进Linux的改进并不只关注于硬件及其它基础设施。没有支撑软件(如文件系统及网络协议),硬件支持将毫无意义(justsomuchadeadwood)。网络先进的网络支持一直是Linux的主要财富之一。Linux作为一种操作系统,已经可以支持世界上大多数主流网络协议,包括TCP/IP(v4和v6)、AppleTalk、IPX等。(就"等"而言,唯一较为普遍的是微软老的、复杂的NETBIOS/NetBEUI协议。)像许多其它子系统一样,网络硬件针对Linux2.6的改变是在幕后进行的,显得并不那么直接。这包括旨在利用Linux的设备模型底层的改进和许多设备驱动程序的升级。例如,Linux2.6提供一个独立的MII(媒体独立接口,或是IEEE802.3u)子系统,它被许多网络设备驱动程序使用。新的子系统替换了原先系统中各自运行的多个实例,消除了原先系统中多个驱动程序使用重复代码、采用类似的方法处理设备的MII支持的情况。其他改变还包括对ISDN的改进等。在软件方面,Linux的一个重要改进是提供了对IPsec协议的支持。IPsec,或者称之为安全IP,是在网络协议层为IPv4和IPv6提供加密支持的一组协议。由于安全是在协议层提供的,对应用层是透明的。它与SSL协议及其他tunneling/security协议很相似,但是位于一个低地多的层面。当前内核支持的加密算法包括SHA("安全散列算法")、DES("数据加密标准")等。在协议方面,Linux还加强了对多播网络的支持。网络多播使得由一点发出的数据包可以被多台计算机接收(传统的点对点网络每次只能有两方通信)。这一功能主要被即时通讯系统(如Tibco)以及音频/视频会议软件使用。Linux2.6现在支持若干新的SSM协议(定源多播),包括MLDv2(multicastlistnerdiscovery多播侦听发现)协议以及IGMPv3(Internet组管理协议)协议。这些都是标准协议,被多数高端网络硬件提供商所支持,如思科。Linux2.6也提供了一个分离的LLC栈。LLC,即逻辑链路控制协议(IEEE802.2),是一个底层协议,在若干个常用的高层网络协议之下使用,如Microsoft的NetBeui,IPX,以及AppleTalk。作为修改的一部分,IPX,AppleTalk,以及令牌环驱动程序都已被重写,以利用这个新的公用子系统。此外,一个外部源(anoutsidesource)整合了可以工作的NetBEUI协议栈,它是否要被加到的标准内核中还有待研究。除了以上这些,还有其他一些小的改变。IPv6做了一些主要的改进,使其可以运行在令牌环网络中。Linux的NAT/Masquerading支持也得到了扩展,从更好地处理需要多个连接的协议(H.323,PPTP等)。在Linux的路由器前端,对配置VLAN的支持也已经成熟,不再是"试验性的"的了。网络文件系统Linux对网络文件系统的支持构建在Linux健壮的网络协议支持之上,它也同样健壮。安装或者输出(export)一个网络文件系统,是需要内核直接参与的为数不多的几个上层网络相关操作之一。(另外比较明显的还有对于网络块设备的支持,在2.6中没有特别大的改变,并且也只是在类似文件系统操作的特定应用中使用。)所有其他的网络相关操作都可以被放到用户空间去,而不需要核心开发人员去考虑。在Linux和类UNIX世界中,最普遍的网络文件系统是一个名为NetworkFileSystem的文件系统,简称NFS。NFS是一个复杂的文件共享协议,跟UNIX特别是SunSolaris有相当深厚的渊源。可以使用TCP或UDP作为NFS的主要传输协议,但也需要其他一些子协议,这些协议又各自运行在RPC(远程过程调用)协议之上。这其中包括独立的用于认证的mount协议以及用于文件锁的NLM(networklockmanager)。(通常的实现版本同时也跟其他一些基于RPC的协议紧密地结合在一起,比如用于身份验证的NIS-网络信息服务--用于认证。NIS在Linux机器上没有得到广泛应用,主要因为它缺乏安全性。)可能正是因为NFS协议如此的复杂性,才没有被作为"Internet协议"广泛接受。Linux2.6中,NFS文件系统得到了很大的更新和改进。最大的改进就是实验性地支持新的并且还没有被广泛接受的NFSv4协议(以前的linux版本支持NFS2和NFS3两种协议)在客户端和服务器端的实现。新的版本有更强、更安全的身份认证(采用加密技术),支持更智能化的锁管理,支持伪文件系统等。Linux还没有实现所有NFS4的新特征,但是目前的版本已经比较稳定并且能够支持一些产品级的应用。并且,基于Linux的NFS服务端的实现已得到改进,从而具有了更好的扩展性,更好的完整性(支持UDP还支持TCP),更健壮(文件系统在输出文件的时候能够进行调整以维持它们自有的一些特征),更简便的管理(通过新的nfsd文件系统,而不再是系统调用)。还有其他方面的一些改进,比如分离lockd和nfsd,支持零拷贝传输等。NFS客户端也因为底层RPC协议在缓存机制、UDP连接控制以及其他在TCP协议上的改进而受益。Linux支持NFS共享卷作为根文件系统的功能也因为核心对TCP协议上的NFS的改进而改进。除了改进对UNIX风格的网络文件系统的支持,Linux2.6对于Windows类型的网络文件系统的支持也进行了改进。Windows服务器(也包括OS/2和其他一些操作系统)的标准共享文件系统是遵循SMB(servermessageblock)协议的,Linux核心在SMB协议的客户端对该协议的很多版本都已经有了非常优秀的支持。然而,Windows2000将SMB协议的一个超集的升级版标准化了,即熟知的CIFS("commoninternetfilesystem")。CIFS修改的主要目的是简化与精炼SMB协议中一些比较混乱的部分。(注:协议之前的定义很松散,甚至会出现Win95/98/ME版与WinNT/Win2k版不兼容的情况。)CIFS达到了修改的目的,并且增加了UNICODE支持,改善了文件锁,支持硬链接,彻底消除了对NetBIOS的依赖,并给Windows用户增加了一些新的特征。既然Linux用户不打算始终呆在被遗忘的角落(译者注:CIFS是Windows系统提出的标准,之前仅在Windows系统之上有实现),Linux2.6核心对本地安装CIFS文件系统的部分彻底进行了重写。Linux2.6现在也支持SMB和CIFS的扩展--SMB-UNIX,该扩展使得Linux可以访问SMB服务器(比如Samba)上的可能存在的非Windows的文件类型(比如设备节点和符号链接)。尽管现在已经不常见到,但是Linux还是没有完全忘记NovellNetWare用户。Linux2.6最多允许256个Linux客户端安装同一个使用NCP(NetWareCoreProtocol)文件系统驱动的NetWare卷。Linux2.6也加入了相对新的一些分布式网络文件系统(即在一个逻辑卷上的文件可以分布在多个节点中)的支持。除了Linux2.4中引入的CODA文件系统,Linux现在也包含对另两个分布式文件系统:AFS和InterMezzo的支持。AFS,即theAndrewfilesystem(如此命名是因为它最初是CMU开发的),特性非常有限,目前只支持读操作。另一个新支持的文件系统InterMezzo(也是CMU开发的)也在Linux2.6中得到支持;它具有一些更为先进的特性,如:无连接操作(工作在客户端的缓存中),适合要求高可用性的应用,在那些应用环境中,需要保证存储区永远可用。同时它也支持保持数据在多个计算机之间(比如笔记本电脑、PDA和桌面电脑)同步的应用。很多对这些新的文件系统提供支持的项目都是在Linux平台上实现的,这也使得Linux能够走在对这些新特性支持的最前面。其他特性安全性Linux2.6的另一个没有引起足够注意的大的变化是跟安全相关的变化。甚至本质上,整个基于核心的安全体系(在类UNIX操作系统中的超级用户权限)已经被划分成一些可以被替换的安全模块。(不过目前提供的安全模式只有缺省的一个,权当一个向我们展示如何自定义安全模块的例子。)作为这个变化的一部分,核心所有的部分都被更新以具有更细粒度的用户访问控制,而不是象以前的"超级用户"系统。虽然几乎所有的Linux系统中将仍然存在一个具有完全访问权限的root用户,但上述的改变使得类Linux系统可以不再必须如此。另一个安全相关的变化是一些二进制模块(比如硬件厂商提供的驱动程序)不能再重载系统调用,也不能看到以及修改系统调用表。这极大地限制了非开放源码的模块在核心中的访问,同时也修补了GPL版权协议在这方面的一些可能存在的漏洞。最后一个跟安全相关的变化就是新的核心能够使用硬件随机数生成器(一些新的处理器中提供),而不是依靠随机的硬件熵值变化。虚拟LinuxLinux2.6一个很有趣的特点是自包含了一个"用户态(user-mode)"的体系结构。它本质上是一种移植--将Linux移植到它自身(正如移植到不同的硬件体系那样),从而允许一个完全虚拟的Linux-on-Linux运行环境。新的Linux实例像普通应用程序一样运行。在这个新的Linux内部,你可以配置伪网络、文件系统或者其他一些设备,整个过程通过专用的驱动程序与宿主Linux进行安全交互。这被证明不仅是在开发方面(进行分析、统计等),而且在安全分析和密罐(honeypots)技术中都是非常有用的。当然大多数用户还不需要这样的支持,它只是被当作了一个可以运行在你的机器上的很酷的特性而已。(给你的朋友留下深刻的印象!)笔记本电脑除了上面提到的一些通用的支持(比如APM和ACPI的改进,以及对无线支持的改进等),Linux还有两个很难分类的与笔记本电脑用户相关的特征。第一个是新核心支持的软停机磁盘存储(sofware-suspend-to-disk译者注:保存内存镜像到磁盘,之后停机--类似halt,再次开机时内核从磁盘获取保存的内存镜像并恢复运行;软停机功能不需要APM、ACPI等硬件支持)。另一个是对现代移动处理器的可根据用户是否在使用机器从而作出cpu运行速度(以及相应的电源需求)自动调节的支持。向后兼容尽管Linux2.6是大的内核升级,但是对用户层应用的影响几乎是不存在的。主要的例外是线程,一些能够在2.4或2.2上运行的多线程程序将不能在2.6上运行。当然,一些底层的应用如模块工具将肯定不能工作。另外,/proc目录和/dev目录下的一些文件和格式也发生了变化,如果上层应用对此有依赖,也可能不能继续工作。(当更多的内容被移动到/sys虚拟文件系统中的时候,情况尤其如此。在/dev目录中,向后兼容的设备名很容易就能推出来。)除了提到的这些明显的变化,还有很多小的变化可能会对一些应用环境产生影响。首先,非常陈旧的(linux2.0或更早)交换分区需要重新格式化才能在2.6中使用。(由于交换分区并不包含永久数据,这对用户来说不会是问题。)由于多数抑制Apache,Zeus等http服务器接近内核速度的的性能瓶颈已经被解决,之前的允许核心直接提供网页服务的kHTTPd守护进程也被去除。对诸如陈旧硬盘的OnTrack和EzDriveDOS磁盘管理器以及相应的DOS兼容性的支持也被去除。从软盘上含有核心的启动扇区进行启动的支持也被去除,取而代之的是SysLinux。最后,soundmodem功能也被去除了,但是用户空间的版本维护地更好,并且更加实用。写在最后这篇文档主要出自BitKeeperchangelogs的长时间的阅读,对源代码的"赏玩"(lookingatandplayingwith),对邮件列表的阅读,以及很多很多为完成本文所进行的Google和Lycos或这或那的搜索。尽管如此,文中可能有遗漏或者理解有误的地方。我也尽量地小心地不过分使用那些被合并入内核的项目网页,因为它们相对官方的内核版本支持要"大大超前"。如果您发现这篇文档中的任何错误,或者希望email给我询问我的情况,您可以email给jpranevich@kniggit.net。具有更多技术背景的人可能只需要一个公告列表,DaveJones编写了另一份出色的2.6开发进展的总括:http:/www.codemonkey.org.uk/post-halloween-2.5.txt。他的工作与本文的任何相似之处纯属巧合,因为我们都始于源代码,并且都侧重于x86体系。阅读全文>>

  • 计算机房软件门禁管理的研究与实现

    核心提示:1=SimSun法有效地管理机房。软件门禁的工作原理为首先在服务器上安装软件数据库系统和网络监控系统,在每台微机上安装启动软件。用户进门刷卡,验证身份,然后软件控制用户登录工作站系统。被管理的

    1=SimSun法有效地管理机房。

    软件门禁的工作原理为首先在服务器上安装软件数据库系统和网络监控系统,在每台微机上安装启动软件。用户进门刷卡,验证身份,然后软件控制用户登录工作站系统。被管理的微机在开启时提上机人输入卡号和密码,微机接到输入的信息后将其上传至服务器数据库核对,同时检查该上机用户在数据库中是否已刷卡,核对无误后将允许启动的指令传至微机并开始计时,微机接到启动命令后进入正常启动程序。上机用户5机时到服务器上刷卡登记,服务器结账并给工作站自动加锁。

    由于其控制核心技术为软件控制,必须在安全性方面采取相应的防范措施。下面提出易出现的问并针对这些问提出解决方法及其实现。这里以,3为后台数据库,以,1;3肪356.0为开发工具来介绍其代码实现。

    1上机用户绕过管理系统绕过管理系统是指某些上机用户企破坏或躲避管理程序,达到该用户不受控制这目的。现为终止客户端程序,禁止客户端程序启动等,有的甚至做个程序模拟下机指令通知服务器结账但不关闭微机等等。

    目前,计算机房基本上都采用了硬盘保护卡还原卡等硬保护措施,般不必担心客户端管理程序被删除,也不必担心会取消客户端程序的自动启动功能。为避免上机用户绕过管理系统,首先,在关闭程序对话框中必须隐藏客户端程序。其次,在设计客户端程序时,要具有旦客户端程序被中止运行或强制中止便自动关机的功能。这样可避免某些人通过某些途径关闭客户端程序,使本台微机脱离服务器监管。第,加强对客户端程序的监管。可以采取些辅助程序来加强客户端管理程序的安全性,如可编制某监控程序每隔定时间来检测客户端管理程序是否正在运行,如果没有运行,说明客户端管理程序已经异常,该监控程序则自动将本工作站锁定或自动关机,使非法使用者不能使用该机,当然该监控程序也必须加强自身隐蔽性。第,要防止有人利用做个程序模拟下机指令来通知服务器结账但不关闭微机。但是这种可能性较小,只要本系统源程序没有外泄,般情况下是做不到的。总之,只要客户端管理程序受到攻击,便锁死工作站或自动关机,从而达到防范目的。以下介绍些关键技术的实现。

    1.1客户端程序自动启动的实现客户端程序要随计算机启动而自动运行,不能在开始菜单的启动中添加客户端程序的快捷方式,这样上机用户能非常容易通过按住3正1键而绕过。只能通过修改注册的方法来设置其启动。其关键代码如下ConstHKEYCURRENTUSER=H80000001Const户端程序设定成听05启动时自动执行的程序。其理注册的1函数。

    1.2在关闭程序对话框中隐藏程序名上机用户登录之后,为避免用户通过使用此1和01组合键终止客户端程序的运行,应关闭程序对话框将客户端程序隐藏,其关键代码如下00655为,1函数。

    1.3客户端计算机加锁在没有获取上机许可之前,客户端计算机必须加锁,即程序运行后,锁定整个屏幕,任何功能键鼠标都不起作用,直到输入正确密码为止。

    这些代码将鼠标定位于点,避免因移动鼠标而使锁定屏幕失去焦点。除此之外要将功能键以和,巳乙键禁用,以防关闭程序。

    和仙16界10为,1函数。

    设置本窗口始终在最上层0,0,0,0,FLAGS其中56005为1函数。当客户端程序启动,这些代码将客户端程序始终显在所有窗口的最上层,实现锁住计算机的目的。

    2数据库安全因其计费集中在个数据库,旦数据库系统紊乱或硬盘损坏,则所有用户的账务信息可能全部丢失或损坏,其损失是致命的。

    解决该问,可以加强数据库备份功能数据曰志功能,这样能够实现较高的安全级别。

    3瓶颈问由于机房入口处安放了刷卡器,系统通过用户的出入刷卡判断用户的上机资格和结账,极易在机房入口处形成瓶颈。

    要解决瓶颈问,用户可以在上机时从工作站上登记而不从服务机上刷卡登记,只要上机用户的卡仍然有剩余机时,则在工作站中输入卡号和密码后,向服务器发出登记信息,服务器经验证之后,再返回工作站解锁信息,然后工作站解锁并开始计时。下机时只要执行关闭计算机命令则发送下机信息给服务器,通知服务器终止计时。这样绝大部分上下机工作可在工作站中完成,避免在服务器处产生瓶颈。从工作站上登录tcpClient是Winsock控件,是将卡号和密码传至服务器进行验证同样服务器端利用Wins0ck控件,接收卡号和密码,如果是合法用户,则发出解锁信息。

    4网络环境依赖问因为机时管理设备管理和用户管理等都集中在服务器中完成,所以工作站依赖于网络畅通这环境。各工作站都是通过服务器进行管理的,如果某台工作站的网络连接出了故障,则无法解锁,本机就不可以使用。

    所以客户端管理程序还应该有超级用户管理功能,能够建立修改超级用户名和密码。旦出现前面所述情况,可以通过使用超级用户来解锁,从而登录并使用本机。

    体位置从仙,库中取出超级用户密码进行密码解密,密码可以用不同的加密规则。

    如果是超级用户,且密码正确,则自动解锁,恢复功能键,取消对鼠标的限制,同时将客户端程序隐藏。

    所以旦网络出了问,也可以使用本台计算机。

    以上软件门禁方案的代码在赣南师范学院院级课出。整个软件系统在机房的实践过程中,实现了各个既定目标,具有灵活性系统性安全性以及经济性等特点,具有较高的实用价值。经专家的严格审核,该课12002年7月结。

    总之,软件门禁的设计只要紧密结合机房管理实践,不断发展完善,在现有机房基础上,是完全能够开发出高效安全实用的机房管理系统的。

    宋永香。网络环境下的高校文献检索课。晋学刊,212930.

    刘汝强。高校文检课改革势在必行了。书馆工作与研究,2000,42628.

    杨琼。对文献检索课教材建设的现状分析及思考幻。湖南财经高等专科学校学报,2,47677.

    本刊加入中文科技期刊数据库的声明由于本刊在国内各高等院校中日益扩大的影响,同时本刊所刊载的论文水平日益受到注目,国家科技部西南信息中心于2002年12月致函本刊,愿意将本刊收入中文科技期刊数据库。本刊于2003年1月15日正式签署了中文科技期刊数据库期刊原文的收录协议。

    中文科技期刊数据库是1989年经科技部批准创办的国内第个大型综合性文献数据库。目前,该库已成为国内数据容量最大和利用率最高的数据库之,北京大学书馆等权威机构也将该库作为中国核心期刊评价的重要依据。

    番禺职业技术学院学报编辑部20033J

    阅读全文>>

  • 一种利用HPI接口实现DSP应用程序远程更新的方法

    引言

    随着智能电网的建设、实施和物联网的普及应用,越来越多的终端设备通过网络实现远程的数据采集,这些数据终端数量众多,分布范围广。当这些终端设备中的MCU应用软件发现BUG,或需要对MCU应用软件进行升级则是一件非常麻烦、艰巨的任务。如果能够通过网络或串行接口实现MCU应用程序的远程下载,将会带来方便。本文介绍一种DSP应用程序的远程下载技术

    1TMS320VC5402及其HPI接口简介

    TMS320VC5402是TI公司为实现低功耗、高性能实时信号处理的定点16位DSP,它采用改进型哈佛结构,具有很高的运行速度,非常适合在信号处理方面的应用,如滤波、频谱分析等场合。其突出的优点已经使它在通信、语音、仪器仪表、电力测控终端等领域得到广泛应用。

    TMS320VC5402的应用程序在其内部的RAM中运行,因此,在上电时需要利用HPI接口将程序传送到内部RAM中,TMS320VC5402的HPI是增强型8位主机接口。HPI即主机接口,它实际上是一个8位的并行接口,可以和任何一个外部的8位并行接口连接,在大多数情况下这个外部的8位并行口可以是其他MCU的8位I/O口。对于TMS320VC5402来说,这个MCU就是“主机”以下简称为主MCU。当TMS320VC5402与主机传送数据时,HPI能自动将传送来的8位数据组合成为16位数据,并传送到TMS320VC5402内部指定地址的RAM单元中,代码传送完毕后,主MCU再传送DSP应用程序的入口地址。传送结束后TMS320VC5402即可从指定的地址开始执行应用程序。阅读全文>>

想了解更多有关“程序密码锁”的信息,用“智能搜”搜一搜:http://s.znjj.tv

嫌搜索太麻烦?10秒留言获取专家指导!

400-888-6371

  • *您的真实姓名

  • *填写手机号,便于我们联系您

  • *选择代理省份

  • 便于查收电子邮件

    • 我有意向加盟,请与我联系。
    • 我想了解产品信息,请给我发资料。
    • 加盟费多少,有什么支持?
    • 请问哪里有样板间,我想实地考察。
加盟友情提示

机会总是留给有准备的人,主动留 言获取财富机会!把握商机、抢占 商机,要想找到好项目,请多留言, 多咨询。留言是零风险、零成本, 最快找到好厂家的第一步。

温馨提示(*号为必填项) 请尽量完整填写左侧信息,详细描 述您对该项目的疑问或要求。厂家 会在24小时内给您进行电话回访, 解答。


  • 友情链接
  • 热搜百科
  • 热搜产品
  • 今日品牌
  • 热搜

智家招商网客服中心竭诚为您服务

全国免费服务热线:400-888-6371

扫一扫:关注我们

官方客服电话:0371-55283600官方客服电话

官方客服QQ:2248064978官方客服QQ

商务合作-王经理:1302-7711-883(手机/微信) QQ:3368977018点击这里给我发消息

商务合作-盛经理:1779-7768-073(手机/微信) QQ:2918327756点击这里给我发消息

加盟咨询-王经理:1868-2372-768(手机/微信) 官方客服电话

运营推广-赵经理:1853-7161-881(手机/微信) QQ:2658975605点击这里给我发消息

企业申诉-谷经理:1853-8584-410(手机/微信) QQ:3278332827点击这里给我发消息

软文投稿-白经理 QQ/微信:3539318400点击这里给我发消息

信息纠查-朱经理 QQ/微信:2716759193点击这里给我发消息

社群推广-吴经理 QQ:2683589643点击这里给我发消息

特别提示:多留言、多打电话、多咨询、实地考察,可降低投资风险。
为了让智能家居加盟经销商更好的学习、交流、研讨、创业、创新和发展,智家招商网搭建了QQ交流平台,希望广大用户诚信合作,财富共享。

中国智能锁交流总群:576299836中国智能锁交流总群

中国智能锁网:578034045中国智能锁网

智能锁加盟网用户总群:642626107智能锁加盟网用户总群

智能锁厂家交流群:5435899智能锁厂家交流群

智能锁产品交流群:210684446智能锁产品交流群

智能锁行业交流群:548924536智能锁行业交流群

智能锁品牌交流群:281692519智能锁品牌交流群

智能锁加盟交流群:583484093智能锁加盟交流群

智能锁购买安装交流群:586490415智能锁购买安装交流群

帮助中心 |广告服务 |关于我们|联系我们|版权信息|网站使用协议|友情链接 |网站地图

中华人民共和国电信与信息服务业务经营许可证: 豫ICP备15030198号-5郑州智能家网络科技有限公司版权所有 © 2006-2023 智能锁加盟网【http:www.znjj.tv/znsuo/】是智家招商网旗下的智能锁网站,本站专业提供: 智能锁加盟智能锁产品智能锁厂家智能锁品牌智能锁资讯等其他品牌智能锁产品及信息在线展示平台。

简单一步获取财富机遇,抢占商机!关闭

姓名:

手机: