摘要: RTI主要分为LRC和RTI两大部分,总体的逻辑结构分为五部分:LRC请求消息队列、RTI请求消息队列、RTI处理行为队列、LRC行为回调队列、LRC和RTI网络连接。为了更好的理解每一个组件的工作过程,这里通过联邦成员注册同步点请求在NPU_RTI系统中的消息流进行说明,示范消息在系统中的流向和响应。Step1:LRC处理用户请求通过分析LRC处理用户的请求过程,理解在联邦运行中, RTI大使在调用registerFederationSynchronizationPoint时的消息处理过程。当RTIAmbassador接收到联邦成员的请求,根据请求类型,该请求被转换为某个类型的消息对象实例。 阅读全文
posted @ 2012-10-23 23:12 微笑风 阅读(530) 评论(0) 推荐(0) 编辑
摘要: NPU-RTI软件设计由RTI执行进程(RtiExec)、联邦执行进程(FedExec)和RTI库(libRTI)三部分组成。如下图所示,每一联邦成员将链接libRTI库。 RtiExec是一个全局进程,其主要作用是与FedExec进行通信,引导成员加入正确的联邦执行,完成消息交换。每一个FedExe进程管理一个联邦成员加入和退出联邦,并辅助加入的成员实现数据交换、时间推进和其它联邦管理功能。libRTI是一个C++库,为成员开发者提供了HLA接口规范所定义的服务。成员通过调用libRTI库实现的HLA服务与RtiExec、FedExec以及其它成员通信。目前实现的NPU-RTI采用TC... 阅读全文
posted @ 2012-10-22 21:14 微笑风 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 进程0是一个特殊的进程,它是所有其它进程的祖先进程,所有其它的进程都是fork通过系统调用,复制进程0或者其后代进程产生的。但是进程0却不是通过fork调用产生的。进程0的代码就是内核system模块的代码,所以可以认为系统一启动进程0就开始运行。但是此时并不是真正的进程0,应为此时gdt中还没有设置tss和ldt描述符,直到sched_init()中才设置了tss和ldt并且把tss加载到tr寄存器,所以在此时应该算是进入真正的进程0,之前可以认为是进程0的初始化设置,可以说进程0是手动设置的。step1、手工设置进程控制块、页目录和页表 进程控制块是直接手工设置好的,在sched.c第1. 阅读全文
posted @ 2012-09-16 09:08 微笑风 阅读(1225) 评论(0) 推荐(0) 编辑
摘要: Linux0.11版源代码中,main.c在代码中的位置十分重要,完成系统的初始化,并启动进程。涉及到进程、内存管理、文件管理等等。尽管这部分代码看起来十分简单,但是分析起来,难度很大。 目前基本完成该部分代码的分析,但内容比较多,此处仅记录该文件的基本分析注释,相关部分的分析整理后再发布。/* * linux/init/main.c * * (C) 1991 Linus Torvalds */#define __LIBRARY__#include <unistd.h>#include <time.h>/* * we need this inline - forking 阅读全文
posted @ 2012-09-09 09:18 微笑风 阅读(1046) 评论(0) 推荐(0) 编辑
摘要: Linux0.11版源代码分析第三篇,head.s源码注释分析。/* * linux/boot/head.s * * (C) 1991 Linus Torvalds *//* * head.s contains the 32-bit startup code. * * NOTE!!! Startup happens at absolute address 0x00000000, which is also where * the page directory will exist. The startup code will be overwritten by * the page d... 阅读全文
posted @ 2012-09-01 15:24 微笑风 阅读(437) 评论(0) 推荐(0) 编辑
摘要: Linux0.11版源码分析第二篇,setup.s注释分析。!! setup.s (C) 1991 Linus Torvalds!! setup.s is responsible for getting the system data from the BIOS,! and putting them into the appropriate places in system memory.! both setup.s and system has been loaded by the bootblock.!! This code asks the bios for memory/disk/o. 阅读全文
posted @ 2012-09-01 14:26 微笑风 阅读(510) 评论(0) 推荐(0) 编辑
摘要: 近日阅读赵炯博士的《Linux内核完全注释》一文,完全沉醉於linux内核代码中,忽然有了系统学习Linux代码的想法。查阅了网上的大量资料,决定听从前辈的建议,在工作之余,每天抽出两个小时,从低版本开始看起,一步一步追随先贤的步伐,阅读linux代码,学习Linux内核的设计理念。 因为是刚刚开始学习,尤其前面boot相关方面,因为汇编语言很多知识都已经忘记,很多分析都借鉴了赵炯博士的《Linux内核完全注释》一文中的内容,这里对赵博士表示深深地感谢。 废话少说,下面就是学赵博士的风格,对bootsect.s文件中代码的注释。!! SYS_SIZE is the number of ... 阅读全文
posted @ 2012-08-26 11:04 微笑风 阅读(1150) 评论(0) 推荐(0) 编辑