本申请提供一种微内核操作系统的调试信息的输出方法、装置及存储介质。本申请的技术方案中,位于微内核操作系统中用户空间的Console进程可以接收位于用户空间和/或内核空间中多个功能模块的第一调试信息,Console进程基于第一调试信息确定第二调试信息,Console进程通过UART的驱动模块向UART发送第二调试信息实现调试信息的输出,基于调试信息可以帮助开发人员更准确地掌握微内核操作系统的运行状况,进而协助开发人员提升微内核操作系统的性能。作系统的性能。作系统的性能。
【技术实现步骤摘要】
微内核操作系统的调试信息的输出方法、装置及存储介质
[0001]本申请涉及计算机
,尤其涉及一种微内核操作系统的调试信息的输出方法、装置及存储介质。
技术介绍
[0002]微内核操作系统的核心理念是内核只提供最基础的机制,并将大部分内核的其他功能从内核移动到用户空间的服务进程中,并且每个服务进程相互独立,因此一个服务进程中产生的错误不会影响到其他进程。因为上述优势,微内核操作系统被广泛应用于航空、医疗设备、车载系统等高度依赖于安全与可靠性的领域中。
[0003]为了提升微内核操作系统的性能,需要对微内核操作系统进行调试,并获知微内核操作系统的调试信息。因此,如何获取微内核操作系统的调试信息成为亟待解决的技术问题。
技术实现思路
[0004]本申请提供一种微内核操作系统的调试信息的输出方法、装置及存储介质,可以帮助开发人员更准确地掌握微内核操作系统的运行状况。
[0005]第一方面,本申请提供一种微内核操作系统的调试信息的输出方法,该方法包括:所述微内核操作系统的用户空间中的第一进程从所述微内核操作系统中M个功能模块中每个功能模块接收所述每个功能模块的第一调试信息,M为正整数,所述第一进程为通用异步收发传输器UART的驱动模块的运行进程;所述第一进程向所述UART发送所述每个功能模块的第二调试信息,所述第二调试信息包括所述每个功能模块的第一调试信息。
[0006]该方法中,通过微内核操作系统中的第一进程接收来自M个功能模块中每个功能模块的第一调试信息,第一进程接收第一调试信息后向所述UART发送每个功能模块的第二调试信息。因为微内核操作系统中的第一进程和各个功能模块均为相互独立的进程,第一进程和各个功能模块仅在各自的地址空间运行,彼此之间互不影响,这样可以提升第一进程和各个功能模块的稳定性。
[0007]在一种可能的实施方式中,所述M个功能模块包括:所述用户空间中的用户应用进程中的功能模块和/或所述微内核操作系统中的微内核模块。
[0008]在一种可能的实施方式中,所述用户应用进程中的功能模块包括:用户空间上层模块和/或用户空间核心功能模块。
[0009]该实现方式中,因为这些功能模块来自于用户空间和/或内核空间,用户空间和/或内核空间均可以输出调试信息,开发人员基于调试信息可以更全面地体现系统整体的运行状态。
[0010]在一种可能的实施方式中,所述第一进程从所述每个功能模块接收所述每个功能模块的第一调试信息之后,所述方法还包括:所述第一进程根据第一调试信息确定第二调试信息,将所述第二调试信息存储至环形缓冲区;相应地,所述第一进程向所述UART发送所
述每个功能模块的第二调试信息,包括:所述第一进程向所述UART发送所述环形缓冲区中存储的所述第二调试信息。
[0011]该实现方式中,环形缓冲区是一种先进先出机制的循环缓冲区,将第二调试信息存储在环形缓冲区中,可以确保各个第二调试信息内容不会穿插存储发生错乱,这样可以提升调试信息输出的准确性。
[0012]在一种可能的实施方式中,所述第一进程中包含M+1个线程,所述M+1个线程中M个线程与所述M个功能模块一一对应;相应地,所述第一进程从所述每个功能模块接收所述每个功能模块的第一调试信息,包括:所述M个线程中每个线程从所述每个线程对应的功能模块接收所述对应的功能模块的第一调试信息;所述第一进程向所述UART发送所述环形缓冲区中存储的所述第二调试信息,包括:所述M+1个线程中除所述M个线程外的线程向所述UART发送所述环形缓冲区中存储的所述第二调试信息。
[0013]该实现方式中,第一进程通过M+1个线程中包含的M个线程接收来自M个功能模块的第一调试信息,可以提高第一调试信息的输出效率;此外,第一进程中包含的所述M+1个线程中除所述M个线程外的线程与接收第一调试信息的M个线程可以不是相同的线程,这样可以提高传输效率。
[0014]在一种可能的实施方式中,所述微内核操作系统的微内核模块中还包含所述UART的驱动模块;相应地,所述方法还包括:通过所述微内核模块中的所述UART的驱动模块向所述UART发送所述微内核模块的调试信息。
[0015]该实现方式中,微内核模块中包含所述UART的驱动模块,当微内核模块启动时,微内核模块的调试信息可以通过微内核模块中的UART的驱动模块进行输出;若用户空间的第一进程崩溃时,可以通过微内核模块中的UART的驱动模块将用户空间中其他进程的调试信息和微内核模块的调试信息进行输出,这样可以提高调试信息的输出稳定性和安全性。
[0016]在一种可能的实施方式中,所述第二调试信息还包括所述第一调试信息的输出时刻。
[0017]该实现方式中,所述第二调试信息还包括所述第一调试信息的输出时刻,这样可以使得所述UATR能够输出第一调试信息的输出时刻信息,从而使得调试人员可以获知在操作系统启动后调试信息的输出时刻,进而提升程序调试的准确度。
[0018]第二方面,本申请提供一种微内核操作系统的调试信息的输出装置,该装置包括用于实现第一方面中的方法的各个功能模块。其中,每个功能模块可以通过软件和/或硬件方式实现。
[0019]作为示例,该装置可以包括:接收模块,用于所述微内核操作系统的用户空间中的第一进程从所述微内核操作系统中M个功能模块中每个功能模块接收所述每个功能模块的第一调试信息,M为正整数,所述第一进程为通用异步收发传输器UART的驱动模块的运行进程;
[0020]发送模块,用于所述第一进程向所述UART发送所述每个功能模块的第二调试信息,所述第二调试信息包括所述每个功能模块的第一调试信息。
[0021]在一种可能的实施方式中,所述M个功能模块包括:所述用户空间中的用户应用进程中的功能模块,和/或,所述微内核操作系统中的微内核模块。
[0022]在一种可能的实施方式中,所述用户应用进程中的功能模块包括:用户空间上层
模块和/或用户空间核心功能模块。
[0023]在一种可能的实施方式中,所述发送模块具体用于:所述第一进程根据第一调试信息确定第二调试信息,将所述第二调试信息存储至环形缓冲区;所述第一进程向所述UART发送所述环形缓冲区中存储的所述第二调试信息。
[0024]在一种可能的实施方式中,所述第一进程中包含M+1个线程,所述M+1个线程中M个线程与所述M个功能模块一一对应。
[0025]在一种可能的实施方式中,所述接收模块具体用于:所述M个线程中每个线程从所述每个线程对应的功能模块接收所述对应的功能模块的第一调试信息。
[0026]在一种可能的实施方式中,所述发送模块具体用于:所述M+1个线程中除所述M个线程外的线程向所述UART发送所述环形缓冲区中存储的所述第二调试信息。
[0027]在一种可能的实施方式中,所述微内核操作系统的微内核模块中还包含所述UART的驱动模块。
[0028]在一种可能的实施方式中,所述发送模块具体用于:通过所述微内核模块本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种微内核操作系统的调试信息的输出方法,其特征在于,包括:所述微内核操作系统的用户空间中的第一进程从所述微内核操作系统中M个功能模块中每个功能模块接收所述每个功能模块的第一调试信息,M为正整数,所述第一进程为通用异步收发传输器UART的驱动模块的运行进程;所述第一进程向所述UART发送所述每个功能模块的第二调试信息,所述第二调试信息包括所述每个功能模块的第一调试信息。2.根据权利要求1所述的方法,其特征在于,所述M个功能模块包括:所述用户空间中的用户应用进程中的功能模块,和/或,所述微内核操作系统中的微内核模块。3.根据权利要求2所述的方法,其特征在于,所述用户应用进程中的功能模块包括:用户空间上层模块和/或用户空间核心功能模块。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一进程从所述每个功能模块接收所述每个功能模块的第一调试信息之后,所述方法还包括:所述第一进程根据第一调试信息确定第二调试信息,将所述第二调试信息存储至环形缓冲区;相应地,所述第一进程向所述UART发送所述每个功能模块的第二调试信息,包括:所述第一进程向所述UART发送所述环形缓冲区中存储的所述第二调试信息。5.根据权利要求4所述的方法,其特征在于,所述第一进程中包含M+1个线程,所述M+1个线程中M个线程与所述M个功能模块一一对应;相应地,所述第一进程从所述每个功能模块接收所述每个功能模块的第一调试信息,包括:所述M个线程中每个线程从所述每个线程对应的功能模块接收所述对应的功能模块的第一调试信息;所述第一进程向所...
【专利技术属性】
技术研发人员:宁胜坤,傅嘉凌,陈凌君,胡志刚,
申请(专利权)人:斑马网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。