CN104461953A - 通过虚拟串口进行liunx日志管理的方法和系统 - Google Patents
通过虚拟串口进行liunx日志管理的方法和系统 Download PDFInfo
- Publication number
- CN104461953A CN104461953A CN201410845562.6A CN201410845562A CN104461953A CN 104461953 A CN104461953 A CN 104461953A CN 201410845562 A CN201410845562 A CN 201410845562A CN 104461953 A CN104461953 A CN 104461953A
- Authority
- CN
- China
- Prior art keywords
- kernel
- log
- serial port
- virtual serial
- log information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及计算机技术领域,具体涉及通过虚拟串口进行liunx日志管理的方法和系统。本发明的一种通过虚拟串口进行liunx日志管理的方法,主要包括设置一个日志信息获取单元,该日志信息获取单元与虚拟串口单元连接,从该虚拟串口单元获取日志信息并对该日志信息进行管理,打开虚拟串口单元,通过LINUX自带的TIOCCONS系统调用重定向应用日志到虚拟串口单元,自此,应用程序的调试信息便被写入到虚拟串口的环形缓冲区,所述日志信息获取单元从虚拟串口单元的环形缓冲区中获取日志信息,从内核日志缓冲区中获取内核日志,并对该日志信息进行管理,进行进一步的存储转发处理。本发明通用性强,操作简单,完全解放了物理串口,日志信息获取完整彻底,不需要修改内核的框架,不污染linux内核。
Description
技术领域
本发明涉及计算机技术领域,具体涉及通过虚拟串口进行liunx日志管理的方法和系统。
背景技术
在嵌入式LINUX系统中,调试信息(日志)是分析排查问题的关键输入,而设备的调试信息大都通过物理串口来输出,进行实时的采集和调试,但是这有几个问题,1是嵌入式设备串口资源有限,一旦被用做调试信息输出,该串口就无法同时再接外设,作为普通串口使用(可以进行复用,但是不能同时使用);2是调试信息是实时直接输出到串口的,无法进行信息回查;3是程序发布时,的程序是需要关闭控制台日志输出的,防止软件信息的泄露以及被非法操控。
发明内容
解决上述技术问题,本发明提供了通过虚拟串口进行liunx日志管理的方法和系统,能够实现既解放了串口,又保证日志的获取。
为了达到上述目的,本发明所采用的技术方案是,一种通过虚拟串口进行liunx日志管理的方法,包括以下步骤:
步骤1:配置系统内核启动参数,关闭系统日志输出对物理串口的占用,
步骤2:在系统内核空间创建一虚拟串口单元,所述虚拟串口单元对外具备普通串口特性,所述虚拟串口单元内部具有一环形缓冲区,
步骤3:设置一个日志信息获取单元,该日志信息获取单元与虚拟串口单元连接,从该虚拟串口单元获取日志信息并对该日志信息进行管理,打开虚拟串口单元,通过LINUX自带的TIOCCONS系统调用重定向应用日志到虚拟串口单元,自此,应用程序的调试信息便被写入到虚拟串口的环形缓冲区,所述日志信息获取单元从虚拟串口单元的环形缓冲区中获取日志信息,从内核日志缓冲区中获取内核日志,并对该日志信息进行管理,进行进一步的存储转发处理,
步骤4:启动应用程序,应用程序在运行过程中把日志信息通过应用日志输出接口输出到内核中,
步骤5:调用应用日志输出接口,接收应用程序输出的日志信息,传递日志信息到内核中,
步骤6:调用应用日志输出控制与重定向接口,应用日志输出控制与重定向接口将经由应用日志输出接口输出的日志数据重定向到虚拟串口单元,
步骤7:运行内核程序,内核程序在运行过程中通过内核日志输出接口输出内核日志,
步骤8:调用内核日志输出接口,接收内核程序输出的日志信息,传递内核日志到内核日志缓冲区,
步骤9:加载内核日志缓冲区,缓存内核日志,供日志信息获取单元获取内核日志。
本发明还提供了通过虚拟串口进行liunx日志管理系统,包括设置在内核空间的内核程序,内核日志输出接口,内核日志缓冲区,应用日志输出控制与重定向接口和虚拟串口单元,以及设置在应用空间的应用日志输出接口、应用进程和日志信息获取单元,
所述内核程序用于通过内核日志输出接口输出内核程序运行时的日志,
所述内核日志输出接口用于提供内核日志信息的输出通道,内核日志信息通过该通道输出内核日志到内核日志缓冲区,
所述内核日志缓冲区用于保存内核通过内核日志输出接口(printk)输出的日志信息,
所述应用日志输出控制与重定向接口用于重定向应用日志的输出目的地,把输出到其它地方的日志信息重定向到虚拟串口单元,
所述虚拟串口单元用于管理应用日志内核缓冲区即环形缓冲区,实现应用日志信息流的写入和读取控制;提供从内核空间到用户空间数据交互的通道,具体的说提供日志获取单元从内核日志缓冲区中读取日志的系统调用通道,
所述应用日志输出接口用于将应用程序日志传送至内核,具体的说传送至虚拟串口单元管理的环形缓冲区中,
所述应用进程用于执行实际应用的用户应用程序,即输出日志信息的程序。
所述日志信息获取单元用于从内核中分别获取应用日志和内核日志,并把两者合并存储在日志文件中。所述日志信息获取单元从内核中分别获取应用日志和内核日志,并把两者合并存储在日志文件中的步骤包括:按照普通串口的操作模式打开并初始化虚拟串口设备,调用TIOCCONS切换日志信息到虚拟串口,此后应用通过printf接口输出的日志信息便被写入到虚拟串口设备管理的缓冲区中了,启动对内核日志和应用日志的获取和转存。
本发明通过采用上述技术方案,与现有技术相比,具有如下优点:通用性强,操作简单,完全解放了物理串口,日志信息获取完整彻底,不需要修改内核的框架,不污染linux内核。
附图说明
图1是本发明的实施例的结构图。
图2是本发明实施例中日志信息获取单元的流程图。
具体实施方式
现结合附图和具体实施方式对本发明进一步说明。
作为一个具体的实施例,如图1所示,本发明的一种通过虚拟串口进行liunx日志管理的方法,包括以下步骤:
步骤1:配置系统内核启动参数,关闭系统日志输出对物理串口的占用,具体系统配置方式如下所示,setenv bootargs mem=128M root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),3M(kernel),13M(rootfs),
步骤2:在系统内核空间创建一虚拟串口单元,所述虚拟串口单元对外具备普通串口特性,所述虚拟串口单元内部具有一环形缓冲区,
步骤3:设置一个日志信息获取单元,该日志信息获取单元与虚拟串口单元连接,从该虚拟串口单元获取日志信息并对该日志信息进行管理,打开虚拟串口单元,通过LINUX自带的TIOCCONS系统调用重定向应用日志到虚拟串口单元,自此,应用程序的调试信息便被写入到虚拟串口的环形缓冲区,所述日志信息获取单元从虚拟串口单元的环形缓冲区中获取日志信息,从内核日志缓冲区中获取内核日志,并对该日志信息进行管理,进行进一步的存储转发处理,
步骤4:启动应用应用程序,应用程序在运行过程中把日志信息通过应用日志输出接口输出到内核中,
步骤5:调用应用日志输出接口,接收应用程序输出的日志信息,传递日志信息到内核中,
步骤6:调用应用日志输出控制与重定向接口,应用日志输出控制与重定向接口将经由应用日志输出接口输出的日志数据重定向到虚拟串口单元,
步骤7:运行内核程序,内核程序在运行过程中通过内核日志输出接口输出内核日志,
步骤8:调用内核日志输出接口,接收内核程序输出的日志信息,传递内核日志到内核日志缓冲区,
步骤9:加载内核日志缓冲区,缓存内核日志,供日志信息获取单元获取内核日志。
本发明还提供了通过虚拟串口进行liunx日志管理系统,包括设置在内核空间的内核程序,内核日志输出接口,内核日志缓冲区,应用日志输出控制与重定向接口和虚拟串口单元,以及设置在应用空间的应用日志输出接口、应用进程和日志信息获取单元,
所述内核程序用于通过内核日志输出接口输出内核程序运行时的日志,
所述内核日志输出接口用于提供内核日志信息的输出通道,内核日志信息通过该通道输出内核日志到内核日志缓冲区,
所述内核日志缓冲区用于保存内核通过内核日志输出接口(printk)输出的日志信息,
所述应用日志输出控制与重定向接口用于重定向应用日志的输出目的地,把输出到其它地方的日志信息重定向到虚拟串口,
所述虚拟串口单元用于管理应用日志内核缓冲区即环形缓冲区,实现应用日志信息流的写入和读取控制;提供从内核空间到用户空间数据交互的通道,具体的说提供日志获取单元从内核日志缓冲区中读取日志的系统调用通道,
所述应用日志输出接口用于将应用程序日志传送至内核,具体的说传送至虚拟串口单元管理的环形缓冲区中,
所述应用进程用于执行实际应用的用户应用程序,即输出日志信息的程序。
所述日志信息获取单元用于从内核中分别获取应用日志和内核日志,并把两者合并存储在日志文件中。
进一步的,所述日志信息获取单元从内核中分别获取应用日志和内核日志,并把两者合并存储在日志文件中的步骤包括:按照普通串口的操作模式打开并初始化虚拟串口设备,调用TIOCCONS切换日志信息到虚拟串口,此后应用通过printf接口输出的日志信息便被写入到虚拟串口设备管理的缓冲区中了,启动对内核日志和应用日志的获取和转存。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (4)
1.一种通过虚拟串口进行liunx日志管理的方法,其特征在于:包括以下步骤:
步骤1:配置系统内核启动参数,关闭系统日志输出对物理串口的占用,
步骤2:在系统内核空间创建一虚拟串口单元,所述虚拟串口单元对外具备普通串口特性,所述虚拟串口单元内部具有一环形缓冲区,
步骤3:设置一个日志信息获取单元,该日志信息获取单元与虚拟串口单元连接,从该虚拟串口单元获取日志信息并对该日志信息进行管理,
步骤4:启动应用程序,应用程序在运行过程中把日志信息通过应用日志输出接口输出到内核中,
步骤5:调用应用日志输出接口,接收应用程序输出的日志信息,传递日志信息到内核中,
步骤6:调用应用日志输出控制与重定向接口,应用日志输出控制与重定向接口将经由应用日志输出接口输出的日志数据重定向到虚拟串口单元,
步骤7:运行内核程序,内核程序在运行过程中通过内核日志输出接口输出内核日志,
步骤8:调用内核日志输出接口,接收内核程序输出的日志信息,传递内核日志到内核日志缓冲区,
步骤9:加载内核日志缓冲区,缓存内核日志,供日志信息获取单元获取内核日志。
2.根据权利要求1所述的一种通过虚拟串口进行liunx日志管理的方法,其特征在于:所述步骤3具体包括:打开虚拟串口单元,通过LINUX自带的TIOCCONS系统调用重定向应用日志到虚拟串口单元,自此,应用程序的调试信息便被写入到虚拟串口的环形缓冲区,所述日志信息获取单元从虚拟串口单元的环形缓冲区中获取日志信息,从内核日志缓冲区中获取内核日志,并对该日志信息进行管理,进行进一步的存储转发处理。
3.通过虚拟串口进行liunx日志管理系统,其特征在于:包括设置在内核空间的内核程序,内核日志输出接口,内核日志缓冲区,应用日志输出控制与重定向接口和虚拟串口单元,以及设置在应用空间的应用日志输出接口、应用进程和日志信息获取单元,
所述内核程序用于通过内核日志输出接口输出内核程序运行时的日志,
所述内核日志输出接口用于提供内核日志信息的输出通道,内核日志信息通过该通道输出内核日志到内核日志缓冲区,
所述内核日志缓冲区用于保存内核通过内核日志输出接口(printk)输出的日志信息,
所述应用日志输出控制与重定向接口用于重定向应用日志的输出目的地,把输出到其它地方的日志信息重定向到虚拟串口单元,
所述虚拟串口单元用于管理应用日志内核缓冲区即环形缓冲区,实现应用日志信息流的写入和读取控制;提供从内核空间到用户空间数据交互的通道,具体的说提供日志获取单元从内核日志缓冲区中读取日志的系统调用通道,
所述应用日志输出接口用于将应用程序日志传送至内核,具体的说传送至虚拟串口单元管理的环形缓冲区中,
所述应用进程用于执行实际应用的用户应用程序,即输出日志信息的程序,
所述日志信息获取单元用于从内核中分别获取应用日志和内核日志,并把两者合并存储在日志文件中。
4.根据权利要求3所述的通过虚拟串口进行liunx日志管理系统,其特征在于:所述日志信息获取单元从内核中分别获取应用日志和内核日志,并把两者合并存储在日志文件中的步骤包括:按照普通串口的操作模式打开并初始化虚拟串口设备,调用TIOCCONS切换日志信息到虚拟串口,此后应用通过printf接口输出的日志信息便被写入到虚拟串口设备管理的缓冲区中了,启动对内核日志和应用日志的获取和转存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410845562.6A CN104461953A (zh) | 2014-12-31 | 2014-12-31 | 通过虚拟串口进行liunx日志管理的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410845562.6A CN104461953A (zh) | 2014-12-31 | 2014-12-31 | 通过虚拟串口进行liunx日志管理的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104461953A true CN104461953A (zh) | 2015-03-25 |
Family
ID=52908036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410845562.6A Pending CN104461953A (zh) | 2014-12-31 | 2014-12-31 | 通过虚拟串口进行liunx日志管理的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461953A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824669A (zh) * | 2016-03-16 | 2016-08-03 | 广东欧珀移动通信有限公司 | 调试日志获取方法、装置及终端设备 |
CN106598803A (zh) * | 2016-04-29 | 2017-04-26 | 福建先创通信有限公司 | 一种可远程监测主机系统运行的方法 |
CN108363667A (zh) * | 2018-02-27 | 2018-08-03 | 广州视源电子科技股份有限公司 | 一种日志信息抓取设备 |
CN110764962A (zh) * | 2018-07-26 | 2020-02-07 | 武汉海康存储技术有限公司 | 日志处理方法和装置 |
CN111857731A (zh) * | 2020-07-31 | 2020-10-30 | 广州锦行网络科技有限公司 | 一种基于linux平台的流量保存方法 |
CN113608790A (zh) * | 2021-07-14 | 2021-11-05 | 深圳市科陆电子科技股份有限公司 | 基于Linux系统的串口设备自适配管理方法、系统及存储介质 |
CN115080355A (zh) * | 2022-07-20 | 2022-09-20 | 北京未来智安科技有限公司 | 一种监控日志的生成方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126072A1 (en) * | 2006-09-14 | 2008-05-29 | Hutchison David J | Serial port virtualization for embedded applications |
CN101216800A (zh) * | 2008-01-02 | 2008-07-09 | 中兴通讯股份有限公司 | 一种linux日志的管理装置及方法 |
CN202617147U (zh) * | 2012-03-15 | 2012-12-19 | 苏州朗昇通信科技有限公司 | 一种手机及平板电脑的测试系统 |
CN103064792A (zh) * | 2012-12-26 | 2013-04-24 | 北京创毅讯联科技股份有限公司 | 数据写入方法及装置 |
CN104244320A (zh) * | 2014-09-01 | 2014-12-24 | 上海大唐移动通信设备有限公司 | 一种自动路测系统中的日志上传方法及装置 |
-
2014
- 2014-12-31 CN CN201410845562.6A patent/CN104461953A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126072A1 (en) * | 2006-09-14 | 2008-05-29 | Hutchison David J | Serial port virtualization for embedded applications |
CN101216800A (zh) * | 2008-01-02 | 2008-07-09 | 中兴通讯股份有限公司 | 一种linux日志的管理装置及方法 |
CN202617147U (zh) * | 2012-03-15 | 2012-12-19 | 苏州朗昇通信科技有限公司 | 一种手机及平板电脑的测试系统 |
CN103064792A (zh) * | 2012-12-26 | 2013-04-24 | 北京创毅讯联科技股份有限公司 | 数据写入方法及装置 |
CN104244320A (zh) * | 2014-09-01 | 2014-12-24 | 上海大唐移动通信设备有限公司 | 一种自动路测系统中的日志上传方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824669A (zh) * | 2016-03-16 | 2016-08-03 | 广东欧珀移动通信有限公司 | 调试日志获取方法、装置及终端设备 |
CN106598803A (zh) * | 2016-04-29 | 2017-04-26 | 福建先创通信有限公司 | 一种可远程监测主机系统运行的方法 |
CN108363667A (zh) * | 2018-02-27 | 2018-08-03 | 广州视源电子科技股份有限公司 | 一种日志信息抓取设备 |
CN110764962A (zh) * | 2018-07-26 | 2020-02-07 | 武汉海康存储技术有限公司 | 日志处理方法和装置 |
CN110764962B (zh) * | 2018-07-26 | 2024-02-20 | 杭州海康存储科技有限公司 | 日志处理方法和装置 |
CN111857731A (zh) * | 2020-07-31 | 2020-10-30 | 广州锦行网络科技有限公司 | 一种基于linux平台的流量保存方法 |
CN113608790A (zh) * | 2021-07-14 | 2021-11-05 | 深圳市科陆电子科技股份有限公司 | 基于Linux系统的串口设备自适配管理方法、系统及存储介质 |
CN115080355A (zh) * | 2022-07-20 | 2022-09-20 | 北京未来智安科技有限公司 | 一种监控日志的生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461953A (zh) | 通过虚拟串口进行liunx日志管理的方法和系统 | |
KR101519845B1 (ko) | 안티디버깅 방법 | |
TWI533213B (zh) | 儲存和恢復應用程式運行時間狀態 | |
CN102073462B (zh) | 虚拟存储迁移方法、系统和虚拟机监控器 | |
US10203975B2 (en) | Virtual machine template management | |
JP5245539B2 (ja) | 仮想マシンの入出力エミュレーション機構 | |
US20160299773A1 (en) | Live migration of virtual machines from/to host computers with graphics virtualization | |
US20220091890A1 (en) | Identifying memory devices for swapping virtual machine memory pages | |
US9563569B2 (en) | Memory transformation in virtual machine live migration | |
US8782365B1 (en) | Systems and methods of processing data associated with rapid snapshot and restore of guest operating system states | |
CN104407829A (zh) | 一种图像镜像显示方法及其装置 | |
CN113448690B (zh) | 监测方法及装置 | |
CN104780068B (zh) | 一种机房迁移的网络切换方法、装置及系统 | |
CN104063284A (zh) | 运行应用程序的方法和装置 | |
US8650160B1 (en) | Systems and methods for restoring multi-tier applications | |
CN103218228B (zh) | 一种安卓设备内置硬盘实现ntfs文件系统的方法及装置 | |
US9619477B1 (en) | Systems and methods for accelerating backup operations | |
CN105512063A (zh) | 一种数据传输的方法和系统 | |
CN102968366B (zh) | 一种蓝光播放器日志本地存储方法及装置 | |
CN101840391A (zh) | 一种电子支付系统双处理器子系统间通信及其调用方法 | |
CN105630526B (zh) | 脚本的加载控制方法及装置 | |
EP2530590A1 (en) | Object pipeline-based virtual infrastructure management | |
CN106383802B (zh) | 基于飞腾平台的lpc接口访问装置及方法、笔记本电脑 | |
CN101727348A (zh) | 一种可疑代码分析方法及装置 | |
CN104765637A (zh) | 一种在监护仪上安全运行桌面应用程序的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150325 |
|
WD01 | Invention patent application deemed withdrawn after publication |