CN102999353A - 创建设备节点的方法及装置 - Google Patents
创建设备节点的方法及装置 Download PDFInfo
- Publication number
- CN102999353A CN102999353A CN2012104596471A CN201210459647A CN102999353A CN 102999353 A CN102999353 A CN 102999353A CN 2012104596471 A CN2012104596471 A CN 2012104596471A CN 201210459647 A CN201210459647 A CN 201210459647A CN 102999353 A CN102999353 A CN 102999353A
- Authority
- CN
- China
- Prior art keywords
- node
- device node
- drives
- listed files
- file
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种创建设备节点的方法及装置,所述方法包括下述步骤:在设备文件存储器中以文本文件形式存储设备驱动文件列表;判断设备文件存储器中是否存有与待加载的设备驱动相对应的设备节点,;若有,将存储于设备文件存储器中、与待加载的设备驱动相对应的设备节点拷贝至内存中;若无,根据列表内容加载设备驱动,获取设备节点号,然后根据设备节点号和列表内容新创建设备节点,并将创建的设备节点存储到设备文件存储器中。利用本发明,可以实现快速、动态的设备节点创建。
Description
技术领域
本发明涉及嵌入式系统应用技术领域,具体地说,是涉及一种创建设备节点的方法及装置。
背景技术
嵌入式系统、如Linux系统里的设备驱动都是以设备节点(设备文件)的形式存在,以便于应用层的用户与底层的内核进行交互。linux对于设备驱动的加载方式有两种:一种方式是将设备驱动直接静态编译到内核中去,在系统启动的时候就会自动加载设备驱动和创建设备节点;另一种方式是设备驱动以模块的方式独立于内核存在,可以在内核启动后动态地加载驱动和创建设备节点,以及动态地卸载设备驱动和删除设备节点。
其中,第一种方式的优点是使用简单,加载驱动快,设备节点一旦创建完成,在设备驱动未重新编辑的情况下不需要再次创建,进而使得系统启动快。缺点是不灵活,增减设备驱动需要重新编译内核,而内核对于系统来说是相对稳定的,不宜频繁变动;而且这种方式对于即插即用的设备而言无法满足要求,因为这种设备的节点是需要动态创建的。还有,这种方式随着驱动的增多,内核的体积也会不断变大,这也是嵌入式系统不希望看到的。因此,现有嵌入式系统设计中一般将系统基本的、通用的驱动采用第一种方式来加载,而对于有个性的驱动采用第二种方式来加载。
但是,第二种方式虽然存在着使用灵活、可以动态地进行加载的优点,减小了内核的体积,节省了系统的内存。但其缺点也极为明显:使用麻烦,每次系统启动时均需要从外部加载驱动,造成系统启动较慢。而且,每次开机均需要重新创建设备节点,创建设备节点占用了较多的开机启动时间,导致系统启动更加缓慢。这一点在机顶盒、手机等使用嵌入式linux系统的电子产品中表现尤为突出,因为这些电子产品功能越来越多,需要的个性化设备驱动越来越多,因而在加载设备驱动和创建设备节点所花时间越来越多,而系统启动时间(开机时间)又是这类产品的一个非常重要的技术指标,因此,极容易制约产品性能的提升。
发明内容
本发明针对现有技术中设备节点创建存在的上述问题而提供了一种创建设备节点的方法和装置,实现了快速、动态的设备节点的创建。
为实现上述发明目的,本发明提供的方法采用下述技术方案予以实现:
一种创建设备节点的方法,所述方法包括下述步骤:
a、在设备文件存储器中以文本文件形式存储包括有设备驱动名称、设备节点名称和相关参数的设备驱动文件列表;
b、判断设备文件存储器中是否存有与待加载的设备驱动相对应的设备节点,若有,执行下述步骤c,若无,执行下述步骤d和e;
c、将存储于设备文件存储器中、与待加载的设备驱动相对应的设备节点拷贝至内存中;
d、读取设备驱动文件列表,根据列表内容加载设备驱动,获取设备节点号;
e、根据设备驱动文件列表内容和设备节点号创建与加载的设备驱动相对应的设备节点,并将创建的设备节点存储到设备文件存储器中。
如上所述的方法,在所述步骤b中,根据下述步骤判断设备文件存储器中是否存有与待加载的设备驱动相对应的设备节点:
b01、查找设备文件存储器中的设备节点存储目录中是否存在设备节点;
b02、在存在设备节点时,读取设备文件存储器中存储的、该设备节点创建时对应的设备驱动文件列表的编辑时间T1;
b03、获取待加载的设备驱动对应的设备驱动文件列表的编辑时间T2;
b04、在T1与T2相同时,判定设备文件存储器中存有与待加载的设备驱动相对应的设备节点,在两者不同时,判定设备文件存储器中存储的设备节点与加载的设备驱动不对应。
如上所述的方法,为避免资源冲突而导致系统启动异常,在设备文件存储器中的设备节点存储目录中存在设备节点、且设备节点与待加载的设备驱动不对应时,先删除所有设备节点,然后再执行所述步骤d和e。
如上所述的方法,为便于循环使用,在所述步骤e之后还包括下述步骤:
f、在设备文件存储器中存储该设备节点创建时所对应的设备驱动文件列表的编辑时间。
如上所述的方法,为避免重复创建设备节点、进一步提高创建速度,在所述步骤e中,根据下述子步骤创建设备节点:
e01、从设备驱动文件列表中获取待创建的设备节点的设备节点名称;
e02、获取加载该设备节点对应的设备驱动后系统所分配的设备节点号;
e03、判断内存中是否存在相同名称的设备节点,在不存在时,执行步骤e05,在存在时,执行步骤e04;
e04、判断内存中相同名称的设备节点的设备节点号与待创建的设备节点的设备节点号是否相同,若不同,执行步骤e05,若相同,放弃设备节点的创建;
e05、根据设备节点名称和设备节点号创建设备节点。
如上所述的方法,所述设备节点号包括有主设备号和从设备号,所述步骤e04中,内存中相同名称的设备节点的主设备号和从设备号与待创建的设备节点的主设备号和从设备号均相同时,判定两个设备节点的设备节点号相同,放弃设备节点的创建。
如上所述的方法,所述设备文件存储器尤指flash存储器。
为实现前述发明目的,本发明提供的装置采用下述技术方案来实现:
一种创建设备节点的装置,该装置包括有设备文件存储器和设备节点创建模块,设备节点存储器包括:
设备驱动文件列表存储单元,以文本文件形式存储包括有设备驱动名称、设备节点名称和相关参数的设备驱动文件列表;
设备节点存储单元,用来存储系统内核创建的设备节点;
设备节点创建模块包括:
设备驱动文件列表读取单元,用来从设备文件存储器中读取设备驱动文件列表;
设备节点判定单元,用于判定设备文件存储器中存储的设备节点是否与待加载的设备驱动相对应;
设备节点加载单元,与设备节点判定单元相连接,根据判定结果从设备文件存储器中加载设备节点至系统内存中;
设备驱动加载单元,用于加载设备驱动;以及
设备节点创建单元,与设备节点判定单元及设备驱动文件列表读取单元相连接,用于创建与加载的设备驱动相对应的设备节点。
如上所述的方法,所述设备文件存储器中还包括有列表编辑时间存储单元,用于存储外置存储设备中所存储的设备节点创建时对应的设备驱动文件列表的编辑时间T1;
所述设备节点创建模块还包括有:
列表编辑时间获取单元,用于获取加载的设备驱动对应的设备驱动文件列表的编辑时间T2及列表编辑时间存储单元中存储的T1;
编辑时间比较单元,与列表编辑时间获取单元及设备节点判定单元相连接,用于比较T1和T2是否相同,并将比较结果输出至所述设备节点判定单元。
如上所述的方法,其特征在于,所述设备节点创建模块还包括:
设备节点输出单元,用于将创建的设备节点写入至所述设备文件存储器的设备节点存储单元;以及
设备节点重复判定单元,用于判定系统内存中是否存在与待创建的设备节点重复的节点。
与现有技术相比,本发明的优点和积极效果是:本发明将设备驱动文件列表以文本文件形式存储在设备文件存储器上,通过读取列表实现设备节点的动态创建,使得设备驱动的管理更加简便、高效;在创建设备节点时采用创建一次后存储在设备文件存储器中、以后使用时直接从设备文件存储器中拷贝至内存中的拷贝方法,有效缩短了创建设备节点所消耗的时间,提高了系统开机启动速度。
结合附图阅读本发明的具体实施方式后,本发明的其他特点和优点将变得更加清楚。
附图说明
图1是本发明创建设备节点的装置一个实施例的结构示意图;
图2是本发明创建设备节点的方法一个实施例的主流程图;
图3是图2实施例中判断是否需要重建设备节点的子流程图;
图4是图2实施例中创建设备节点的子流程图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案作进一步详细的说明。
请参考图1,该图1所示为本发明创建设备节点的装置一个实施例的结构示意图。
如图1所示,该实施例的装置包括有设备节点创建模块11和设备文件存储器12,其中,设备文件存储器12是独立于内存的存储设备,如flash存储器。
设备文件存储器12包括有设备驱动文件列表存储单元121、列表编辑时间存储单元122及设备节点存储单元123。其中,设备驱动文件列表存储单元121以文本文件形式存储设备驱动文件列表,该列表中包括有设备驱动名称、设备节点名称和创建节点所需的相关参数等信息。列表编辑时间存储单元122用来存储设备文件存储器12中所存储的设备节点创建时对应的设备驱动文件列表的编辑时间T1,利用该编辑时间可以判断设备节点是否需要重新创建,具体请参考下面方法的描述。而设备节点存储单元123用来存储设备节点创建模块11创建的设备节点,该设备节点以备份形式存储在设备文件存储器12中,供设备节点创建模块11拷贝,可以显著提高系统启动速度,具体原理及实现过程请参考下面方法流程的描述。
设备节点创建模块11包括的单元部分及各单元的功能和相互连接关系如下所述:
设备驱动加载单元111,与设备驱动文件列表读取单元112相连接,用来根据设备驱动文件列表中的设备驱动名称动态加载设备驱动至设备节点创建模块11中。
设备驱动文件列表读取单元112,用来设备文件存储器12的设备驱动文件列表存储单元121中读取设备驱动文件列表至设备节点创建模块11中,以便进行设备驱动的动态加载及设备节点的动态创建。
列表编辑时间获取单元113,一方面用来从外置存储设备12的列表编辑时间存储单元122中获取设备文件存储器12中所存储的设备节点创建时对应的设备驱动文件列表的编辑时间T1,另一方面用来获取要加载的设备驱动对应的设备驱动文件列表的编辑时间T2。
编辑时间比较单元114,与列表编辑时间获取单元113相连接,用于比较T1和T2是否相同,并输出比较结果。
设置上述列表编辑时间获取单元113和编辑时间比较单元114的目的是利用列表编辑时间来判断是否需要重新创建设备节点,具体原理及使用方法请参考下面方法流程的描述。
设备节点判定单元115,与编辑时间比较单元114和设备驱动文件列表读取单元112相连接,根据编辑时间比较单元114的输出结果及设备驱动文件列表中的信息判断设备文件存储器12中存储的设备节点是否与待加载的设备驱动相对应。在判定相对应时,将控制与其连接的设备节点加载单元119从设备文件存储器12的设备节点存储单元123中加载设备节点到设备节点创建模块11中;在判定设备文件存储器12中存储的设备节点与待加载的设备驱动不相对应时,将控制与其连接的设备节点创建单元116重新创建与加载的设备驱动相对应的设备节点。
对于设备节点创建单元116来说,其在创建设备节点时,将根据设备驱动文件列表读取单元112读取的文件列表及设备节点重复判定单元117的判定结果来工作,以创建出正确的设备节点。具体创建过程请参考下述方法的流程描述。
设备节点创建单元116还连接有设备节点输出单元118,在设备节点创建单元116新创建了设备节点之后,将通过设备节点输出单元118将设备节点写入至设备文件存储器12的设备节点存储单元123中,实现设备节点的备份,以供后续拷贝使用。
上述装置更具体的工作原理和过程请参考下面方法的描述。
请参考图2至图4所示出的本发明创建设备节点的方法实施例,其中,图2是该实施例的主流程图,图3是判断是否需要重建设备节点的子流程图,而图4是创建设备节点的子流程图。
首先,简要说明该实施例的技术背景:对于一个嵌入式系统,如Linux系统来说,将系统中基本的、通用的设备驱动静态编译到系统内核中,在系统启动时会自动在内核中加载设备驱动和创建相应的设备节点。而对于大部分个性化的设备驱动,将其以模块形式独立于内核而存储,在使用是进行动态地加载,相应的,动态创建设备驱动对应的设备节点。该实施例所要讲述的设备驱动加载是指对独立于内核而以模块形式存在的设备驱动的动态加载,相应的,设备节点的创建时指对这部分设备驱动而进行的动态创建。
而且,该实施例的基本思想简要描述如下:将与设备驱动加载及设备节点创建有关的设备驱动名称、设备节点名称及相关参数以文本文件形式组织成设备驱动文件列表,将该列表预先存储在一个独立于内存的设备文件存储器中,优选存储在嵌入式系统的flash存储器中。然后,将采取一定的技术手段、如根据flash上的标记来判断设备节点是否在上次启动时被创建过,如果创建过,系统将自动拷贝flash上已经存储的设备节点。如果没有创建,将自动读取列表文件,依次创建出所有的设备节点,同时将设备节点保存到flash上作为备份。由于拷贝节点花的时间相比创建所有节点所需时间可以忽略不计,而且因为创建节点比较耗时,因而此种方法可以显著提高系统启动时间。采用该方法之后,只有系统启动的第一次,设备节点自动创建一次,在设备驱动文件列表不发生更新的情况下,以后每次系统启动就只需拷贝设备节点即可,因而既实现了设备节点创建的动态过程,又能够保证系统的启动速度。
而且,将设备驱动和设备节点信息以文本文件的形式存储,不仅结构简单明了,读取方便,且便于手动进行添加、删除等编辑,便于管理和使用。
该实施例创建设备节点的主流程如图2所示,该实施例以flash作为设备文件存储器,且在执行该主流程时,预先在flash中以文本文件形式存储了包括有设备驱动名称、设备节点名称和相关参数的设备驱动文件列表。具体过程如下:
步骤201:流程开始。
步骤202:判断设备节点是否需要重建。若需要,执行步骤203至209;若不需要,执行步骤210至212。
判断方法和过程可参考图3及下面对图3的描述。
步骤203:在需要重建设备节点时,首先删除flash上已备份存储的所有设备节点。
如果设备驱动文件列表进行了更新,则有可能需要重建设备节点。而在创建设备节点时,需要将所有的设备节点均重新创建,这是因为每次创建设备节点时,系统所分配的设备节点号极有可能不同,如果仅部分重新创建、部分保持不变,可能发生资源冲突而导致系统无法正常启动。因此,在需要重建设备节点时,首先将flash上已存储的所有设备节点全部删除。当然,如果是第一次创建,不会存在设备节点,则无须执行该删除操作。
步骤204:读取设备文件列表,循环获取每个设备驱动的设备驱动名称、设备节点名称和相关参数。
该过程是将flash存储器中的设备文件列表读取到内存中,以便进行快速的处理。
步骤205:根据列表中的设备驱动名称加载设备驱动,以获取系统分配的设备节点号。
步骤206:创建与加载的设备驱动相对应的设备节点。
设备节点的具体创建过程请参考图4及下面对图4的描述。
步骤207:判断全部节点是否均创建完成。若是,执行步骤208;若否,转至步骤204,继续获取下一个设备驱动信息,完成设备节点的创建。
步骤208:在所有设备节点均创建完成后,将所创建的设备节点拷贝到flash上备份存储,以供下次系统启动时直接调用。
步骤209:在flash上存储设备节点创建时所对应的列表编辑时间。然后,转至步骤213。
该实施例为了方便判断设备节点是否需要重建,采用了根据列表是否被编辑来确定的技术手段。在设备文件列表中设置有列表编辑时间标签,该时间标签的时间与列表被编辑的时间保持同步。每次重新创建完设备节点之后,均读取该编辑时间,并将该时间存储到flash中。
步骤210:在判定不需要重新创建设备节点时,读取设备文件列表,循环获取每个设备驱动的设备驱动名称、设备节点名称和相关参数。
该过程是将flash存储器中的设备文件列表读取到内存中,以便进行快速的处理。
步骤211:根据列表中的设备驱动名称加载设备驱动。
对于设备节点创建来说,如果不需要重建设备节点,该步骤不是必需的步骤,因为不需要通过加载设备驱动来获取设备节点号。但作为一个完整流程来说,设备节点的拷贝是在加载完设备驱动之后执行的,所以,该实施例将加载设备驱动作为创建设备节点的一个步骤来描述。
步骤212:将flash中与加载的设备驱动相对应的设备节点拷贝到内核中。然后,转至步骤213。
在每次系统启动时,设备驱动均需要重新加载。而对于耗时较长的设备节点创建来说,由于在flash中备份有设备节点,在根据一定手段判定设备节点未发生变化、不需要重新创建时,则直接将flash中已存储的设备节点拷贝到内核中即可。由于设备节点的拷贝过程比创建过程速度快,因此,大大节省了系统启动的时间。
步骤213:主流程结束。
对于判断设备节点是否需要重建、也即判断flash中是否存储有与待加载的设备驱动相对应的设备节点,是保证系统正常启动、提高系统启动速度的关键,该实施例采用图3的流程来判断,具体如下:
步骤301:创建软连接,使内存的设备节点目录指向flash上的设备节点存储目录。因而,内存可以访问flash的设备节点存储目录,并对其中的内容进行处理。
步骤302:判断设备节点存储目录中是否有设备节点。若有,执行步骤303;如果没有,转至步骤307。
步骤303:在目录中存有设备节点时,读取flash中该设备节点创建时对应的设备驱动文件列表的编辑时间T1。
如前所述,在flash中备份设备节点时,会存储该设备节点创建时所对应的设备驱动文件列表的编辑时间,该时间记为T1,该步骤将读取该时间。
步骤304:获取加载的设备驱动对应的设备驱动文件列表的编辑时间T2。
如果设备驱动进行了更新,会对相应的设备驱动文件列表进行编辑,然后再烧写到flash中,该过程一般是在产品升级时发生。而且,在设备驱动文件列表被编辑时,将记录列表被编辑的时间,该时间记为T2。
步骤305:判断T1与T2是否相同。若是,执行步骤306;若否,转至步骤307。
步骤306:在T1和T2相同时,判定不需要重建设备节点,在图2主流程中将执行步骤210。
如果T1与T2相同,说明现有的设备节点相对于现有的设备驱动文件列表来说是最新的,也即在创建设备节点之后,设备驱动文件列表未重新编辑。因而,此时的设备节点与设备驱动是一致的,为避免新创建节点耗费较长的时间,不需要重新创建设备节点。
步骤307:设备节点存储目录中不存在设备节点,或者如果T1与T2不同,判定需要重建设备节点,在图2主流程中将执行步骤203。
其中,如果T1与T2不相同,说明设备驱动文件列表被编辑过,且还未根据编辑之后的设备驱动文件列表建立设备节点,也即现有的设备节点相对于现有的设备驱动文件列表来说不是最新的,为保证设备驱动与设备节点的一致,需要重新创建设备节点。由于重新创建设备节点仅需要在设备驱动文件列表被编辑过之后的第一次系统启动过程中创建,在列表不改变的情况下,后期的启动过程不需要再创建,因而也会大大降低系统的整体启动时间。
上述图3仅说明了采用编辑时间作为判断是否需要重建设备节点的一种实现方式,但不局限于此,还可以根据实际需求采用其他方式来判断。
图2主流程中创建设备节点的步骤206具体可以采用图4示出的创建子流程来实现,具体过程如下:
步骤401:从设备驱动文件列表中获取待创建的设备节点的设备节点名称。
创建设备节点将以设备节点名称作为入口参数,因此,首先获取设备节点名称。
步骤402:获取加载该设备节点对应的设备驱动后系统分配的设备节点号。
系统在加载设备驱动之后,会自动为该设备驱动分配一个设备节点号,该节点号将与节点名称一起,作为一个设备节点的标识。
步骤403:判断系统内核中是否存在同名称的设备节点。若是,执行步骤404;若否,转至步骤407。
为避免系统中设备节点的重复创建,设置该步骤进行判断。在该实例中,将根据设备节点名称及设备节点号逐一进行判断。
步骤404:如果内核中存在同名称的设备节点,则再判断同名称的设备节点的主设备号是否相同。若相同,执行405;若不同,转至步骤407。
设备节点号一般包括主设备号和从设备号,该实施例将逐一进行判断。
步骤405:在同名称的设备节点的主设备号相同时,判断这两个设备节点的从设备号是否相同。若相同,执行步骤406;如果不相同,则执行步骤407。
步骤406:在同名称的设备节点的主设备号和从设备号均相同时,说明要创建的设备节点与已存在的同名称设备节点相同,则放弃设备节点的创建,使用已存在的设备节点。
上述判断过程的执行速度要比创建一个设备节点的速度快,所以,如果判断相同,不再重新创建一个节点,又能够提高节点创建速度和效率。
步骤407:如果内核中不存在同名称的设备节点、或同名称的设备节点的主设备号或从设备号不同,则判定内核中不存在相同的设备节点,则根据设备驱动文件列表中的设备节点名称、相关参数及系统分配的设备节点号来创建设备节点。
需要说明的是,在该步骤407中,如果存在同名称、但不同节点号的设备节点,为避免混乱,先删除已存在的同名称设备节点,再根据设备节点名称和设备节点号创建新的设备节点。
以上实施例仅用以说明本发明的技术方案,而非对其进行限制;尽管参照前述实施例对本发明进行了详细的说明,对于本领域的普通技术人员来说,依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明所要求保护的技术方案的精神和范围。
Claims (10)
1.一种创建设备节点的方法,其特征在于,所述方法包括下述步骤:
a、在设备文件存储器中以文本文件形式存储包括有设备驱动名称、设备节点名称和相关参数的设备驱动文件列表;
b、判断设备文件存储器中是否存有与待加载的设备驱动相对应的设备节点,若有,执行下述步骤c,若无,执行下述步骤d和e;
c、将存储于设备文件存储器中、与待加载的设备驱动相对应的设备节点拷贝至内存中;
d、读取设备驱动文件列表,根据列表内容加载设备驱动,获取设备节点号;
e、根据设备驱动文件列表内容和设备节点号创建与加载的设备驱动相对应的设备节点,并将创建的设备节点存储到设备文件存储器中。
2.根据权利要求2所述的方法,其特征在于,在所述步骤b中,根据下述步骤判断设备文件存储器中是否存有与待加载的设备驱动相对应的设备节点:
b01、查找设备文件存储器中的设备节点存储目录中是否存在设备节点;
b02、在存在设备节点时,读取设备文件存储器中存储的、该设备节点创建时对应的设备驱动文件列表的编辑时间T1;
b03、获取待加载的设备驱动对应的设备驱动文件列表的编辑时间T2;
b04、在T1与T2相同时,判定设备文件存储器中存有与待加载的设备驱动相对应的设备节点,在两者不同时,判定设备文件存储器中存储的设备节点与加载的设备驱动不对应。
3.根据权利要求2所述的方法,其特征在于,在设备文件存储器中的设备节点存储目录中存在设备节点、且设备节点与待加载的设备驱动不对应时,先删除所有设备节点,然后再执行所述步骤d和e。
4.根据权利要求3所述的方法,其特征在于,在所述步骤e之后还包括下述步骤:
f、在设备文件存储器中存储该设备节点创建时所对应的设备驱动文件列表的编辑时间。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在所述步骤e中,根据下述子步骤创建设备节点:
e01、从设备驱动文件列表中获取待创建的设备节点的设备节点名称;
e02、获取加载该设备节点对应的设备驱动后系统所分配的设备节点号;
e03、判断内存中是否存在相同名称的设备节点,在不存在时,执行步骤e05,在存在时,执行步骤e04;
e04、判断内存中相同名称的设备节点的设备节点号与待创建的设备节点的设备节点号是否相同,若不同,执行步骤e05,若相同,放弃设备节点的创建;
e05、根据设备节点名称和设备节点号创建设备节点。
6.根据权利要求5所述的方法,其特征在于,所述设备节点号包括有主设备号和从设备号,所述步骤e04中,内存中相同名称的设备节点的主设备号和从设备号与待创建的设备节点的主设备号和从设备号均相同时,判定两个设备节点的设备节点号相同,放弃设备节点的创建。
7.根据权利要求1所述的方法,其特征在于,所述设备文件存储器为flash存储器。
8.一种创建设备节点的装置,其特征在于,该装置包括有设备文件存储器和设备节点创建模块,设备节点存储器包括:
设备驱动文件列表存储单元,以文本文件形式存储包括有设备驱动名称、设备节点名称和相关参数的设备驱动文件列表;
设备节点存储单元,用来存储系统内核创建的设备节点;
设备节点创建模块包括:
设备驱动文件列表读取单元,用来从设备文件存储器中读取设备驱动文件列表;
设备节点判定单元,用于判定设备文件存储器中存储的设备节点是否与待加载的设备驱动相对应;
设备节点加载单元,与设备节点判定单元相连接,根据判定结果从设备文件存储器中加载设备节点至系统内存中;
设备驱动加载单元,用于加载设备驱动;以及
设备节点创建单元,与设备节点判定单元及设备驱动文件列表读取单元相连接,用于创建与加载的设备驱动相对应的设备节点。
9.根据权利要求8所述的方法,其特征在于,所述设备文件存储器中还包括有列表编辑时间存储单元,用于存储外置存储设备中所存储的设备节点创建时对应的设备驱动文件列表的编辑时间T1;
所述设备节点创建模块还包括有:
列表编辑时间获取单元,用于获取加载的设备驱动对应的设备驱动文件列表的编辑时间T2及列表编辑时间存储单元中存储的T1;
编辑时间比较单元,与列表编辑时间获取单元及设备节点判定单元相连接,用于比较T1和T2是否相同,并将比较结果输出至所述设备节点判定单元。
10.根据权利要求8或9所述的方法,其特征在于,所述设备节点创建模块还包括:
设备节点输出单元,用于将创建的设备节点写入至所述设备文件存储器的设备节点存储单元;以及
设备节点重复判定单元,用于判定系统内存中是否存在与待创建的设备节点重复的节点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610090164.7A CN105573809B (zh) | 2012-11-15 | 2012-11-15 | 创建设备节点的方法及装置 |
CN201210459647.1A CN102999353B (zh) | 2012-11-15 | 2012-11-15 | 创建设备节点的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210459647.1A CN102999353B (zh) | 2012-11-15 | 2012-11-15 | 创建设备节点的方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610090164.7A Division CN105573809B (zh) | 2012-11-15 | 2012-11-15 | 创建设备节点的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102999353A true CN102999353A (zh) | 2013-03-27 |
CN102999353B CN102999353B (zh) | 2016-02-03 |
Family
ID=47927958
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210459647.1A Active CN102999353B (zh) | 2012-11-15 | 2012-11-15 | 创建设备节点的方法及装置 |
CN201610090164.7A Active CN105573809B (zh) | 2012-11-15 | 2012-11-15 | 创建设备节点的方法及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610090164.7A Active CN105573809B (zh) | 2012-11-15 | 2012-11-15 | 创建设备节点的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN102999353B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105657464A (zh) * | 2016-01-28 | 2016-06-08 | 四川长虹电器股份有限公司 | 一种usb重复节点的屏蔽方法 |
CN107015807A (zh) * | 2017-04-06 | 2017-08-04 | 青岛海信宽带多媒体技术有限公司 | 一种设备驱动管理方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148229B (zh) * | 2020-10-12 | 2024-01-30 | 北京计算机技术及应用研究所 | 一种飞腾服务器平台下的加速非易失性内存读写效率的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555401A (en) * | 1992-08-26 | 1996-09-10 | Sun Microsystems, Inc. | Self configuring device system |
CN1512335A (zh) * | 2002-12-31 | 2004-07-14 | 北京科泰世纪科技有限公司 | 基于构件的操作系统动态设备驱动的方法 |
CN102682088A (zh) * | 2012-04-23 | 2012-09-19 | Tcl集团股份有限公司 | 一种存储设备的挂载方法、系统及电视 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100825720B1 (ko) * | 2005-12-08 | 2008-04-29 | 한국전자통신연구원 | 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버 |
CN101520756A (zh) * | 2009-04-07 | 2009-09-02 | 深圳华为通信技术有限公司 | 设备驱动方法、装置及通信系统 |
-
2012
- 2012-11-15 CN CN201210459647.1A patent/CN102999353B/zh active Active
- 2012-11-15 CN CN201610090164.7A patent/CN105573809B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555401A (en) * | 1992-08-26 | 1996-09-10 | Sun Microsystems, Inc. | Self configuring device system |
CN1512335A (zh) * | 2002-12-31 | 2004-07-14 | 北京科泰世纪科技有限公司 | 基于构件的操作系统动态设备驱动的方法 |
CN102682088A (zh) * | 2012-04-23 | 2012-09-19 | Tcl集团股份有限公司 | 一种存储设备的挂载方法、系统及电视 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105657464A (zh) * | 2016-01-28 | 2016-06-08 | 四川长虹电器股份有限公司 | 一种usb重复节点的屏蔽方法 |
CN105657464B (zh) * | 2016-01-28 | 2018-12-07 | 四川长虹电器股份有限公司 | 一种usb重复节点的屏蔽方法 |
CN107015807A (zh) * | 2017-04-06 | 2017-08-04 | 青岛海信宽带多媒体技术有限公司 | 一种设备驱动管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105573809B (zh) | 2019-05-24 |
CN102999353B (zh) | 2016-02-03 |
CN105573809A (zh) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102629206B (zh) | 一种嵌入式系统软件升级方法及系统 | |
CN105183517A (zh) | 在recovery模式下挂载外部存储设备的方法、装置及电子装置 | |
CN103902399B (zh) | 软件系统修复处理方法及装置 | |
US8589647B2 (en) | Apparatus and method for synchronizing a snapshot image | |
CN107870769A (zh) | 操作系统的安装方法及装置 | |
CN106095439A (zh) | 一种信息处理方法及电子设备 | |
CN101814020A (zh) | 一种基于嵌入式的程序快速执行方法及系统 | |
CN105138430A (zh) | 一种嵌入式操作系统备份与恢复的方法及装置 | |
CN108604207B (zh) | 用于独立于硬件的存储器存储的系统及方法 | |
CN104731622A (zh) | 一种应用程序的加载方法、装置和移动终端 | |
CN102999353A (zh) | 创建设备节点的方法及装置 | |
CN103902336A (zh) | 操作系统启动控制的方法及装置 | |
CN104021022A (zh) | 一种分区调整方法及电子设备 | |
CN108255526B (zh) | 一种系统启动及运行的方法、装置 | |
CN103488586A (zh) | 信息处理设备和方法以及程序 | |
CN105573796A (zh) | 用于fpga的功能切换的方法及装置 | |
KR100994723B1 (ko) | 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체 | |
CN103019773A (zh) | 系统升级掉电保护方法、系统及移动终端 | |
CN105511904A (zh) | 一种自动更新快捷窗口的方法及装置 | |
CN116382713A (zh) | 构建应用镜像的方法、系统、设备和存储介质 | |
CN115757213A (zh) | 芯片电路、处理器的启动方法及服务器 | |
CN112148203B (zh) | 存储器管理方法、装置、电子设备及存储介质 | |
KR100617755B1 (ko) | Nand 플래시 메모리를 구비한 이동 통신 단말의 부팅방법 및 장치 | |
CN100401255C (zh) | 计算机平台嵌入式操作系统切换处理方法及系统 | |
CN106844261A (zh) | 在恢复模式下实现热插拔的方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |