reactos:reactos操作系统实现(30)

对无效页面次访问称为“缺页”对于这类都会导致中断处理MmAccessFault那么什么样情况才叫做无效页面呢?主要有下面几种情况:  l         所有访问页面不存内存里而是磁盘里  l         访问页面在后备列表里  l         访问页面没有提交写操作  l         从用户态访问核心态页面  l         对只读页面产生写操作  l  ... [阅读全文]

reactos:reactos操作系统实现(29)

内存大小好像永远追不上人们需求以前以为512K就很大了到现在内存已经是4G8G内存了但还是不能满足人们需求目前系统都是多进程运行每个进程都需要占用4G内存那么10个进程就占用相当可观内存了这时就需要把进程不经常使用内存数据切换到硬盘里需要时再换回来如果个进程内存已经换到硬盘上而这个进程又想访问那些在硬盘内存数据时就会产生个缺页中断这个中断是CPU产生并且进入操作系统中断门处理里那么ReactOS是... [阅读全文]

reactos:reactos操作系统实现(28)

在内存管理里绝大部份内存都是分页内存分页内存就是把内存分成4K页大小内存块这些内存块不但可以在物理内存里也可以切换时保存到硬盘里这些内存管理里是通过下面代码进行如下:#001  VOID#002  INIT_FUNCTION#003  NTAPI#004  MmInitializePagedPool(VOID)#005  {#006       /*#007        * We are sti... [阅读全文]

reactos:reactos操作系统实现(27)

下面接着来分析EiAllocatePool这个要传入使用者内存类型、内存大小、内存标记和者地址#001   PVOID NTAPI#002  EiAllocatePool(POOL_TYPE PoolType,#003                 ULONG NumberOfBytes,#004                 ULONG Tag,#005                 PV... [阅读全文]

reactos:reactos操作系统实现(26)

在ReactOS内存管理里有块内存区是非分页内存也就是这块内存始终保持在系统物理内存里面不会换到磁盘上那为什么需要这样做呢?全部使用分页内存不是更简单更方便吗?肯定不行IA86内存管理就决定它不能这样做了当CPU缺页中断时就需要操作系统把分页内存换到磁盘上再把加载数据从磁盘读取回来如果操作系统使用内存都是分页内存那么操作系统就没有办法运行了所需要运行代码都在磁盘上在内核驱动也是有这样要求驱动在执行... [阅读全文]

reactos:reactos操作系统实现(25)

在操作系统里有时候需要从保护模式转换为实模式来BIOS些功能因此在硬件抽象层里就需要提供这样支持这个代码如下:#001  BOOLEAN#002  NTAPI#003  HalpBiosDisplayRe(VOID)#004  {#005      ULONG Flags = 0;#006   保存CPU所有状态寄存器然后关闭中断#007      /* Disable errupts */#00... [阅读全文]

reactos:reactos操作系统实现(24)

在很早电脑里就带有个小喇叭可以发出区别频率声音主要用来判断系统是否有问题使用比如BIOS检查硬有问题时就会发出区别声音提醒用户是那里出问题了在操作系统里也经常使用这个小喇叭来提醒用户是什么问题比如输入非法按键时就响声在早期 5笔输入法时输入字不对就会用这个小喇叭提醒让忘打操作人员回到屏幕上选择所需要字那么这个小喇叭驱动是如何样进行呢?这里就来研究这个问题在ReactOSHAL层代码如下:#001 ... [阅读全文]

reactos:reactos操作系统实现(22)

从Boot.S文件里化系统基本组件后就跳到空闲处理就成为个空闲处理线程其实也是个管理系统任务下面就来分析KiIdleLoop代码如下:#001  .globl @KiIdleLoop@0#002  .func @KiIdleLoop@0, @KiIdleLoop@0#003  @KiIdleLoop@0:#004   获取KPCR指针地址这样就可以方便访问KPCR里成员#005      /* S... [阅读全文]

reactos:reactos操作系统实现(21)

化NLS代码表#124      /* Initialize the NLS Tables */#125      RtlInitNlsTables((PVOID)((ULONG_PTR)ExpNlsTableBase +#126                               ExpAnsiCodePageDataOff),#127                       (PV... [阅读全文]

reactos:reactos操作系统实现(20)

下面来了解内核执行体处理它是在化内核线程后运行代码如下:#001   /* Setup the Idle Thread */#002      KeInitializeThread(InitProcess,#003                         InitThread,#004                         NULL,#005                   ... [阅读全文]

reactos:reactos操作系统实现(19)

由于CPU是多种多样具备能力也是不样并且区别厂家都会创新区别功能下面就来了解CPU特征识别如下:/* Get the processor features for the CPU */    FeatureBits = KiGetFeatureBits;  这里是通过KiGetFeatureBits来获取CPU特征位它代码如下:#001  ULONG#002  NTAPI#003  KiGetFe... [阅读全文]

reactos:reactos操作系统实现(18)

在X86体系架构里整数运算和浮点运算是分开算术逻辑单元 (Arithmetic Logic Unit, ALU)是中央处理器(CPU)执行单元是所有中央处理器核心组成部分由"和门" 和"或门"构成算术逻辑单元主要功能是进行 2进制算术运算如加减乘(不包括整数除法)基本上在所有现代CPU体系结构中 2进制都以 2补数形式来表示浮点运算器(floating po unit缩写FPU)是执行浮点运算结构... [阅读全文]

reactos:reactos操作系统实现(17)

从上面分析可以看到主要KiInitializeKernel来化内核这个传送参数和KiSetupStackAndInitializeKernel参数是样如下:#001  VOID#002  NTAPI#003  KiInitializeKernel(IN PKPROCESS InitProcess,#004                     IN PKTHREAD InitThread,#00... [阅读全文]

apachelucene:使用 Apache Lucene 搜索文本

介绍  Lucene 是个开源、高度可扩展搜索引擎库可以从 Apache Software Foundation 获取您可以将 Lucene 用于商业和开源应用Lucene 强大 API 主要关注文本索引和搜索它可以用于为各种应用构建搜索功能比如电子邮件客户端、邮件列表、Web 搜索、数据库搜索等等Wikipedia、TheServerSide、jGuru 和 LinkedIn 等网站WebSit... [阅读全文]

sockaddrin:sockaddr和sockaddr_in

  struct  sockaddr {  unsigned   sa_family; /* address family, AF_xxx */  char sa_data[14];  /* address */  };  sa_family是地址家族是“AF_xxx”形式常设为“AF_INET”代表Internet(TCP/IP)地址族  sa_... [阅读全文]

流量联盟作弊:网站WebSite联盟是如何防止作弊的?

1、 IP防止作弊   般计费方式是按照24小时内唯IP可以将每个IP记入数据库当下个访问IP和数据库已存在IP相同时则不计费现在上网般是动态IP作弊者通过拨号器上下线来实现改变IP地址你可以通过C段IP来辨别如大量出现218.175.11.x这种相同C段IP号则可能作弊可以通过IP加密提交然后由接收端进行解密记录入库可以杜绝采用模拟提交数据作弊方式   2、 COOKIES防止作弊   当你访问... [阅读全文]

程序员代码量:程序员需知的 5种静态代码审查

静态分析概念已经提出多年而在过去几年里利用该工具评估和诊断代码技术已日趋成熟几乎每种语言都存在相应软件Software审查工具这些审查可以在多个领域如循环编码风格设计复制代码命名风格性能等领域中隔离出不良代码而在每个层级中又存在另套完整审查可供员使用  这里要提醒大家员可能会因审查报告过多漏洞而感到厌烦笔者曾经看到过个有20万行应用用现在标准来衡量这当然不算多此外还运行了200+审查该报告列出了3... [阅读全文]

websphere6.1安装:使用 RESTful 方式实现 WebSphere Process Server 6.1 业务模块

开始的前  IBM® WebSphere Process Server 提供了些区别接口来访问业务模块比如基于 HTTP 或 JMS Web 服务和服务组件架构(SCA)绑定为了帮助您利用自己业务模块本教程将介绍种将 REST 协议应用于模块接口思路方法  目标  为支持 RESTful 请求 WebSphere Process Server 业务模块创建个 HTTP 接口  为举例场景... [阅读全文]

ruby数据库:ruby way的连接数据库

这边都只是个大概具体要自己去看文档了.   1 连接SQLite: require sqlite  db = SQLite::Database.("library.db")  db.execute("select title,author from books") do |row|   p row  end  db.close   2连接mysql: require mysql  m = Mysq... [阅读全文]

therubyway:ruby way的高级数据存取

经常我们需要以种更透明方式来存储和得到数据.Marshal模块提供了简单对象持久化,PStore 库建立在这项技术的上dbm 库使用像hash样并永久存贮在磁盘上.   1简单Marshaling   经常我们需要创建个对象然后为了以后使用保存它.ruby对这种对象持久化(或者说是Marshaling)提供了基本支持.Marshal 模块能够使员序列化和反序列化个ruby对象. # .gif' /... [阅读全文]

therubyway:ruby way的Io的 2

1 检测文件是否存在及其大小   FileTest exist?思路方法可以检测个文件是否存在: flag = FileTest::exist?("LochNessMonster") flag = FileTest::exists?("UFO") # exists? is a synonym for exist?  如果我们想要知道文件是否有内容可以使用File::Statzero? 思路方法: ... [阅读全文]

therubyway:ruby way的IO的一

1 打开和关闭个文件   类思路方法File. 打开个文件并将它例子化为个File对象他第个参数是文件名.   可选第 2个参数叫做 mode (这个也是从c得来).他意思是怎样打开个文件(读写或者其他).默认是r(也就是读). file1 = File.("one")    # Open for reading  file2 = File.("two", "w") # Open for writ... [阅读全文]

类的实例变量:ruby中的类变量和类例子变量

首先在ruby1.8中类变量是所有子类和父类共享可以看下面代码:  IntelligentLe   @@home_planet = nil    def self.home_planet   @@home_planet  end  def self.home_planet=(x)   @@home_planet = x  end  #... end  Terran  IntelligentLe  ... [阅读全文]

rssatom:ruby way的处理RSS和Atom

1 rss 标准库   RSS 是基于xml因此你能简单将它作为个xml来进行解析.可是事实上他有个更高级别专有解析器来解析他.此外RSS标准也很混乱   他有很多不便就是标准版本不兼容,RSS有0.9, 1.0, 和2.0版本.RSS版本就像制造热狗就是些除非你定要知道,否则你不想要知道细节.   ruby有个标准RSS库它包含0.9,1.0和2.0版本标准.区别版本的间尽可能做到了无缝处理.如... [阅读全文]

therubyway:ruby way的使用REXML解析xml

REXML 是个完全用ruby写processor ,他有多种api其中两个经典api是通过DOM-like 和SAX-like 来进行区分第种是将整个文件读进内存然后存储为个分层形式(也就是棵树了).而第 2种是"parse as you go",当你文件很大并且内存受到限制时候比较适合用这种   看下面book.xml:   引用library shelf="Recent Acquisitio... [阅读全文]

therubyway:ruby way的动态特性的 2

1 得到所定义实体列表   ruby反射api能够使我们在运行时检测类和对象因此我们下面将会介绍Module, Class, 和Object中定义些思路方法   Module模块有个constants 思路方法它将会返回系统中所有常量名包括类名和模块名nesting 思路方法则是返回当前点上嵌套模块列表.   Ruby代码 list = Math.constants  # ["E", "PI"] ... [阅读全文]

therubyway:ruby way的动态特性的一

1 动态evaluate代码   全局思路方法eval 编译并且执行段包含ruby代码片断串这是个很power机制它允许你建造在运行时   执行代码看下面例子:   Ruby代码 parameters = {}  ARGF.each do |line|  name, expr = line.split(/\s*=\s*/, 2)  parameters[name] = eval expr end ... [阅读全文]

therubyway:ruby way的高级OOP特性的 2

1 把代码像对象样存储   当你想要以对象形式存储块代码时候ruby给了你几种思路方法下面我们会介绍Proc 对象, Method 对象和 UnboundMethod 对象.   内置Proc 类包装ruby block到个对象.Proc对象像个blocks是个闭包而且保存了它定义时上下文:   Ruby代码 myproc = Proc. { |a| puts "Param is #{a}" } ... [阅读全文]

therubyway:ruby way的高级OOP特性的一

1 发送条消息给个对象   当你个思路方法时你也就是发送了条消息给个对象在ruby中我们能够在运行时决定那个思路方法被send 思路方法就是做这个他接受个symbol为参数.   举个简单例子假设我们要写个排序我们想要使用区别域作为比较key虽然我们这时可以用block可是如果使用send话我们能有个更优美写法:   Java代码  Person  attr_reader :name, :age,... [阅读全文]

therubyway:ruby way的OOP的 2

1 理解allocate   在些特殊环境中你可能需要不它构造器(也就是initialize)来创建个对象也就是说你想要创建个空对象.例如假设你有个对象它状态完全由它存取思路方法所确定因此如果你不是真想要个另外状态话思路方法是没必要.此时我们能allocate思路方法.   Ruby代码  Person  attr_accessor :name, :age, :phone   def initia... [阅读全文]
<< < 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 > >> 共1605条 分54页