CN102053831B - 一种Linux操作***的定制方法及*** - Google Patents
一种Linux操作***的定制方法及*** Download PDFInfo
- Publication number
- CN102053831B CN102053831B CN 201010595846 CN201010595846A CN102053831B CN 102053831 B CN102053831 B CN 102053831B CN 201010595846 CN201010595846 CN 201010595846 CN 201010595846 A CN201010595846 A CN 201010595846A CN 102053831 B CN102053831 B CN 102053831B
- Authority
- CN
- China
- Prior art keywords
- module
- linux
- configuration
- suse
- source code
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000008569 process Effects 0.000 claims abstract description 23
- 239000007858 starting material Substances 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 18
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000011161 development Methods 0.000 abstract description 2
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 230000008901 benefit Effects 0.000 description 6
- 239000004615 ingredient Substances 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 239000012467 final product Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种Linux操作***的定制方法及***,以降低定制Linux操作***的难度,其中该方法包括:将Linux操作***划分为内核部分、初始***部分、基础OS部分和附加OS部分;在宿主***中存储待构建的Linux操作***的目标源码和目标脚本;将上述四个部分的编译过程写入到目标脚本中;在Linux操作***的定制过程中,根据用户需求配置附加OS部分以及内核部分的选项,配置动态配置文件,执行目标脚本。本发明提供了一种简单、高效、智能并且有利于维护的Linux操作***的定制技术,不需要管理者在发布定制的操作***时花费大量时间和精力,特别适用于针对Linux操作***开发的需要频繁发布***的应用。
Description
技术领域
本发明涉及Linux操作***,尤其涉及一种Linux操作***的定制方法及***。
背景技术
在进行Linux操作***定制时,一般采用的是LFS(Linux From Scratch,一切从源码开始定制linux***)方式。它提供了一种***定制的思想:一切从源代码开始。最终的***由源码编译而成,管理员可以指定在哪里安装,什么时候安装,为什么安装以及怎样安装每一个程序。管理员也可以控制***的所有特征:目录布局、脚本设置、安全设置以及工具管理等等。LFS的好处就是管理员可以掌控整个***。
LFS需要一个宿主***来挂载LFS分区,在分区上构建一个临时的编译***,然后才能编译LFS***。
但是,现有的LFS定制过程比较复杂,定制周期比较长,需要手动输入各源码的编译命令,对初学者有一定的困难,而且维护起来比较困难,特别是在企业中需要频繁地定制***或者增加/删除功能模块时,对管理成本和维护成本要求都是很高。
发明内容
本发明所要解决的技术问题是需要提供一种Linux操作***的定制技术,以降低定制Linux操作***的难度。
为了解决上述技术问题,本发明首先提供了一种Linux操作***的定制方法,包括:
将Linux操作***划分为内核部分、初始***部分、基础操作***OS部分和附加操作***OS部分;
在宿主***中存储待构建的所述Linux操作***的目标源码和目标脚本;
将上述四个部分的编译过程写入到所述目标脚本中;
在所述Linux操作***的定制过程中,根据用户需求配置所述附加OS部分以及所述内核部分的选项,配置动态配置文件,执行所述目标脚本;
其中:
所述内核部分为配置选项确定后就不需要再重新编译的部分;
所述初始***部分为所述Linux操作***启动时在内存中模拟的一个根文件***,与所述内核部分捆绑在一起;
所述基础OS部分包含工具程序、实际根文件***所包含的目录布局、已经确定就不会修改的固定配置、库文件以及模块文件;
所述附加OS部分包含后期可能需要修改的非稳配置及工具程序。
优选地,所述基础OS部分包含基础子目录和新建子目录,其中所述基础子目录用于保存初始rpm包,所述新建子目录用于保存新增加的rpm包。
优选地,所述基础OS部分进一步包含自定义的可执行脚本和/或文件。
优选地,将所述四个部分的编译过程写入到所述目标脚本中的步骤,包括:
对于所述内核部分,保存一份Linux操作***源码、一份内核选项配置文件以及为Linux源码打补丁的目录;
对于所述初始***部分,保存一份原始初始***文件,以及需要在初始***启动时加载的模块的源码;
对于所述基础OS部分,保存所述Linux操作***中常用工具的rpm包文件及其动态配置文件、所述Linux操作***的目录布局。
优选地,该方法进一步包括:
往所述构建***添加通用模块时,将所述通用模块添加到所述基础OS部分,并将所述通用模块的源码的文件名添加到动态配置;
往所述构建***添加用户自定义模块时,将所述自定义模块添加到所述附加OS部分,将所述自定义模块的源码编译过程作为自定义函数或自定义脚本添加到所述目标脚本中,将所述自定义模块的源码的文件名添加到动态配置。
为了解决上述技术问题,本发明还提供了一种Linux操作***的定制***,包括划分模块、存储模块、写入模块以及配置模块,其中:
所述划分模块,用于将Linux操作***划分为内核部分、初始***部分、基础操作***OS部分和附加操作***OS部分;
所述存储模块,用于在宿主***中存储待构建的所述Linux操作***的目标源码和目标脚本;
所述写入模块,用于将上述四个部分的编译过程写入到所述目标脚本中;
所述配置模块,用于在所述Linux操作***的定制过程中,根据用户需求配置所述附加OS部分以及所述内核部分的选项,配置动态配置文件,执行所述目标脚本;
其中:
所述内核部分为配置选项确定后就不需要再重新编译的部分;
所述初始***部分为所述Linux操作***启动时在内存中模拟的一个根文件***,与所述内核部分捆绑在一起;
所述基础OS部分包含工具程序、所述实际根文件***所包含的目录布局、已经确定就不会修改的固定配置、库文件以及模块文件;
所述附加OS部分包含后期可能需要修改的非稳配置及工具程序。
优选地,所述划分模块划分的所述基础OS部分包含基础子目录和新建子目录,其中所述基础子目录用于保存初始rpm包,所述新建子目录用于保存新增加的rpm包。
优选地,所述划分模块划分的所述基础OS部分进一步包含自定义的可执行脚本和/或文件。
优选地,对于所述内核部分,所述写入模块用于保存一份Linux操作***源码、一份内核选项配置文件以及为Linux源码打补丁的目录;对于所述初始***部分,所述写入模块用于保存一份原始初始***文件,以及需要在初始***启动时加载的模块的源码;对于所述基础OS部分,所述写入模块用于保存所述Linux操作***中常用工具的rpm包文件及其动态配置文件、所述Linux操作***的目录布局。
优选地,所述配置模块进一步用于往所述构建***添加通用模块时,将所述通用模块添加到所述基础OS部分,并将所述通用模块的源码的文件名添加到动态配置;所述配置模块进一步用于往所述构建***添加用户自定义模块时,将所述自定义模块添加到所述附加OS部分,将所述自定义模块的源码编译过程作为自定义函数或自定义脚本添加到所述目标脚本中,将所述自定义模块的源码的文件名添加到动态配置。
与现有技术相比,本发明提供了一种简单、高效、智能并且有利于维护的Linux操作***的定制技术,不需要管理者在发布定制的操作***时花费大量时间和精力,特别适用于针对Linux操作***开发的需要频繁发布***的应用。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明实施例的Linux操作***的定制方法的流程示意图;
图2是本实施例定制流程的参考示意图;
图3是本发明实施例的Linux操作***的定制***的组成示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
实施例一、一种Linux操作***的定制方法
图1是本实施例的流程示意图,图2是本实施例定制流程的参考示意图。如图1所示,本实施例主要包括如下步骤:
步骤S110,将Linux操作***划分为四个组成部分,分别为内核(kernel)部分,初始***(initrd.gz)部分,基础操作***(Operating System,OS)部分和附加OS部分。
本步骤中,在将Linux操作***划分为上述四个部分时,遵循如下规则:
(1)尽可能使得划分后得到的部分最少;
(2)各部分内有很强的关联性;
(3)尽量减少编译程序和工具时的步骤;
(4)尽量有利于功能的添加和删除;
(5)尽量能很好地完成一键式脚本(以下也称目标脚本)的编写;
(6)尽量能选择性地构建某些功能。
将上述的内核(kernel)作为一个单独的部分,是因为内核编译时会占用大量的时间,而且一旦内核配置选项确定后,就不需要再重新编译。
上述的初始***(Initrd.gz)可以存储在一初始RAM磁盘中,做为在构建后的Linux操作***启动时,真正的根文件***还不可用之前,在内存中模拟的一个根文件***,与内核捆绑在一起,作为内核引导过程的一部分进行加载。
上述基础OS包含若干工具程序(如vim,gcc,openssh等),实际根文件***所包含的目录布局(如/proc,/root,/home等),若干一经确定就不会修改的固定配置(如php.ini,httpd.conf,passwd等一经确定就不会修改的配置),以及若干库(lib)文件,模块(module)文件等等,还可以包含若干自定义的可执行脚本和/或文件等;其中,工具程序一般采用rpm包的形式存在,区别于源码的最大好处是方便安装,不需要每个工具写一个构建的脚本函数,可以通过动态配置读取需安装的rpm包文件。
上述附加OS包含非稳配置(即并不稳定的,后续开发或者维护过程中需要经常修改的配置)以及工具程序等,该非稳配置包括在开发过程和后期维护时可能需要经常修改源码、更新文件,以及不确定是否在每个***中都会需要的模块等。
步骤S120,通过上述划分后,在宿主***中建立一个目录来存放构建***的目标源码和一键式脚本(也即目标脚本,暂命名为os_build目录):一键式脚本放在一个子目录中,四个组成部分的源码、配置文件、rpm包文件等都存放在各自的目录中,这样方便查看和维护各子部分。
通过上述的***划分后,将Linux操作***划分为4个内部联系极其紧密,外部基本无太大联系的部分。
步骤S130,将前述四个组成部分的编译过程写入到一键式脚本中。
本步骤具体的写入规则如下:
kernel部分,kernel子目录将保存一份Linux操作***源码,一份内核选项配置文件,以及保留为Linux源码打补丁(patch)的目录。
相应的,一键式脚本中实现的功能就是拷贝内核源码到临时编译目录,将配置好的内核配置文件拷贝到临时源码目录中,通过读取内核patch动态配置文件来给内核打patch,然后编译内核和模块,编译完成后,将内核拷贝到生成目录中,将模块安装到指定的临时目录,等待基础OS部分来集成到基础OS中。
initrd.gz部分,initrd.gz子目录将保存一份原始initrd.gz文件,以及一些需要在initrd.gz启动时加载的模块的源码,如一些驱动模块等。
编译功能的实现流程为:读取配置来获取需要编译的驱动模块,解压挂载initrd.gz文件,将驱动模块和一些可执行脚本加入到initrd中,然后卸载压缩为initrd.gz文件,拷贝到生成目录中。
基础OS部分:基础OS部分将保存待构建的Linux操作***中常用工具的rpm包文件及其动态配置文件、待构建的Linux操作***的目录布局以及相关工具的配置文件(一些不采用默认的配置,而采用经过修改后的配置)等。
rpm包存放包含两个子目录,一个是基础(base)子目录,一个是新建(new)子目录,base子目录保存最初的初始rpm包,如果是新增加的rpm包,则保存在new子目录下(也即new子目录保存新增加的rpm包),这样存放的好处就是若只安装新增加的rpm包,则只需要安装new子目录下的rpm包,因为rpm包安装也会花费大量的时间。
编译功能的实现流程为:先通过配置来获取构建***的目录布局,创建各目录,再判断编译的rpm包类型,若是全编译,则读取base子目录下的动态配置,全安装该动态配置中的rpm包;若不是则只安装new目录中的rpm包,base中的rpm包文件采用上一次安装的结果来实现安装,然后删除rpm包中安装的一些man文件,以及一些不常用的工具等,减少***的大小;当然,若***盘大小不是太拮据,也可以不执行这步,然后将相关工具的配置文件安装到相应的目录中,然后将kernel部分编译的***模块拷贝到相应的lib和modules目录下,建立链接等,最后将整个目录打包存放到生成目录中。
附加OS部分:通过以上三个部分的编译安装后,***是可以正常运行起来的;而这一部分存在的意义是实现构建的***的差异性。
上述三部分保证了一个基础的***,而这一部分将添加自己所需要定制的功能和个性化的模块;该目录下存放的是自己开发的程序,或者脚本,或者一些很特殊的工具,以及这些工具的配置文件目录等。
编译功能的实现流程为:判断各模块源码包更改情况以及新的源码包添加,然后获取到管理员所需要添加功能的配置,与之对比出一个所需要编译的模块的动态配置文件,依据该动态配置文件调用相应的编译函数来实现各模块的编译,安装到相应的临时目录中,然后拷贝相应的模块配置文件到临时目录,所有模块编译完后,将临时目录整过打包并拷贝到生成目录中。
以上内容就是一键式脚本的基础实现流程,以及四个组成部分各自的目录里所保存的文件。
步骤S140,完成一键式脚本后,在以后的定制操作***过程中,根据用户需求配置附加OS部分,配置内核选项,配置rpm动态配置文件,然后执行该一键式脚本来完成整个***定制过程,方便简洁高效。
若是在构建***搭建之后需要添加某个通用模块,比如需要添加一个通用rpm包文件,则只需要将其添加到基础OS部分的base子目录或者new子目录中,然后将rpm包文件名称(对应于通用模块的文件名)添加到动态配置中即可;若是要在构建***搭建之后添加一个用户自己实现的某个自定义模块(如快照等),则添加该自定义模块的源码到附加OS部分的子目录中,然后将该自定义模块的源码编译过程作为一个自定义函数或自定义脚本添加到目标脚本中,再将该自定义模块的源码的文件名写入到动态配置中,下次编译时即可单独编译该模块。因此,对于新增加模块,无论是已有的模块还是用户自定义模块,均有着很好的扩展性。
完成一键式脚本后,对各大部分进行编译。该编译可以全编译,也可以只编译某一个部分中的某一个模块,具体如下:
kernel编译:因为kernel编译需要耗费大量的时间,所以在确定了内核配置选项以及编译了一次内核后,再发布***就不需要再次编译内核了。
在本发明的实例中,kernel编译的命令为:
#build kernel。
initrd.gz编译:因为initrd.gz是实际根文件***挂载之前的一个临时初始根文件***,因此在确定initrd.gz中需要确定加载的模块和执行的操作后,initrd.gz也只需要编译一次。
在本发明的实例中,initrd.gz的编译命令为:
#build initrd.gz。
基础OS编译:因为基础OS中包含了***所需的大量工具、脚本、库以及模块等,所以在编译时也会耗费大量的时间,但是这些也是很稳定,不会轻易修改的,故一般也只编译一次即可,且主要的工具采用的是rpm包安装,而不采用源码(因为源码包安装太多的工具时会比较繁琐)。
在本发明的实例中,基础OS编译命令为:
#build baseos<new|all>。
附加OS编译:在一个***中,需要经常更改的程序和工具一般会比较少,因此在此时会将每个程序的编译脚本写为一个函数,在进行编译时会先在脚本中判断出哪些程序做出了改动,然后生成一个动态的编译模块文件,再由编译脚本根据这些模块来调用各自的编译函数,这样就可以在只修改了一个程序的时候,只编译这一个程序,而不用去编译其它的程序;也可以在所有程序都更改后,再去编译所有的程序。
在本发明的实例中,附加OS编译命令为:
#build extra<all|模块1|模块2|模块3|模块......>。
通过读取动态配置文件,调用命令接口来完成需要的模块编译。
也可以一键式编译,即执行以下脚本:
#build all
来实现全编译前述四个组成部分中需要编译的部分。
在操作***安装与启动的过程中,编译后的kernel和initrd.gz都以各自的形式存在,而基础OS部分和附加OS部分则以压缩包的形式存在。通过livecd灌装的形式完成***的安装。
在操作***的启动流程中,进入grub后加载内核,当操作***启动进入到initrd.gz时,会加载各个需要在主***启动前加载的驱动,以及挂载包含各模块的磁盘分区,然后将各压缩包解压到内存中,再进入实际根文件***,即完成一次操作***的启动。
实施例二、一种Linux操作***的定制***
结合前述的实施例一,如图3所示的本实施例主要包括划分模块310、存储模块320、写入模块330以及配置模块340,其中:
划分模块310,用于将Linux操作***划分为内核部分、初始***部分、基础操作***(OS)部分和附加OS部分;
存储模块320,用于在宿主***中存储构建***的目标源码和目标脚本;
写入模块330,与划分模块310及存储模块320相连,用于将上述四个部分的编译过程写入到目标脚本中;
配置模块340,与写入模块330相连,用于在Linux操作***的定制过程中,根据用户需求配置附加OS部分以及内核部分的选项,配置动态配置文件,执行目标脚本;
其中:
内核部分为配置选项确定后就不需要再重新编译的部分;
初始***部分为所述Linux操作***启动时在内存中模拟的一个根文件***,与内核部分捆绑在一起;
基础OS部分包含工具程序、实际根文件***所包含的目录布局、已经确定就不会修改的固定配置、库文件以及模块文件;
附加OS部分包含后期可能需要修改的非稳配置以及工具程序等。
上述划分模块310划分的基础OS部分包含基础子目录和新建子目录,其中基础子目录用于保存初始rpm包,新建子目录用于保存新增加的rpm包。
上述划分模块310划分的基础OS部分进一步包含自定义的可执行脚本和/或文件。
对于内核部分,写入模块330用于保存一份Linux操作***源码、一份内核选项配置文件以及为Linux源码打补丁的目录;
对于初始***部分,写入模块330用于保存一份原始初始***文件,以及需要在初始***启动时加载的模块的源码;
对于基础OS部分,写入模块330用于保存所述Linux操作***中常用工具的rpm包文件及其动态配置文件、所述Linux操作***的目录布局。
上述配置模块340进一步用于往构建***添加通用模块时,将通用模块添加到基础OS部分,并将通用模块的源码的文件名添加到动态配置;
上述配置模块340进一步用于往构建***添加用户自定义模块时,将自定义模块添加到附加OS部分,将自定义模块的源码编译过程作为自定义函数或自定义脚本添加到目标脚本中,将自定义模块的源码的文件名添加到动态配置。
由本发明的实施例可见,本发明的技术方案继承了LFS对整个操作***良好掌控的优点,在一个稳定的宿主***中利用一键式脚本,通过动态配置,选择性地编译某些模块和功能,将不需要每次都重新编译的功能在***定制时不进行编译,只引用上一次的编译结果,这样在每一次定制操作***的过程中,尽可能少地编译模块和程序,充分减少了操作***的发布周期。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种Linux操作***的定制方法,其特征在于,包括:
将Linux操作***划分为内核部分、初始***部分、基础操作***OS部分和附加操作***OS部分;
在宿主***中存储待构建的所述Linux操作***的目标源码和目标脚本;
将上述四个部分的编译过程写入到所述目标脚本中;
在所述Linux操作***的定制过程中,根据用户需求配置所述附加OS部分以及所述内核部分的选项,配置动态配置文件,执行所述目标脚本;
其中:
所述内核部分为配置选项确定后就不需要再重新编译的部分;
所述初始***部分为所述Linux操作***启动时在内存中模拟的一个根文件***,与所述内核部分捆绑在一起;
所述基础OS部分包含工具程序、实际根文件***所包含的目录布局、已经确定就不会修改的固定配置、库文件以及模块文件;
所述附加OS部分包含后期可能需要修改的非稳配置及工具程序。
2.根据权利要求1所述的方法,其特征在于:
所述基础OS部分包含基础子目录和新建子目录,其中所述基础子目录用于保存初始rpm包,所述新建子目录用于保存新增加的rpm包。
3.根据权利要求1或2所述的方法,其特征在于:
所述基础OS部分进一步包含自定义的可执行脚本和/或文件。
4.根据权利要求1所述的方法,其特征在于,将所述四个部分的编译过程写入到所述目标脚本中的步骤,包括:
对于所述内核部分,保存一份Linux操作***源码、一份内核选项配置文件以及为Linux源码打补丁的目录;
对于所述初始***部分,保存一份原始初始***文件,以及需要在初始***启动时加载的模块的源码;
对于所述基础OS部分,保存所述Linux操作***中常用工具的rpm包文件及其动态配置文件、所述Linux操作***的目录布局。
5.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
往所述构建***添加通用模块时,将所述通用模块添加到所述基础OS部分,并将所述通用模块的源码的文件名添加到动态配置;
往所述构建***添加用户自定义模块时,将所述自定义模块添加到所述附加OS部分,将所述自定义模块的源码编译过程作为自定义函数或自定义脚本添加到所述目标脚本中,将所述自定义模块的源码的文件名添加到所述动态配置。
6.一种Linux操作***的定制***,其特征在于,包括划分模块、存储模块、写入模块以及配置模块,其中:
所述划分模块,用于将Linux操作***划分为内核部分、初始***部分、基础操作***OS部分和附加操作***OS部分;
所述存储模块,用于在宿主***中存储待构建的所述Linux操作***的目标源码和目标脚本;
所述写入模块,用于将上述四个部分的编译过程写入到所述目标脚本中;
所述配置模块,用于在所述Linux操作***的定制过程中,根据用户需求配置所述附加OS部分以及所述内核部分的选项,配置动态配置文件,执行所述目标脚本;
其中:
所述内核部分为配置选项确定后就不需要再重新编译的部分;
所述初始***部分为所述Linux操作***启动时在内存中模拟的一个根文件***,与所述内核部分捆绑在一起;
所述基础OS部分包含工具程序、实际根文件***所包含的目录布局、已经确定就不会修改的固定配置、库文件以及模块文件;
所述附加OS部分包含后期可能需要修改的非稳配置及工具程序。
7.根据权利要求6所述的***,其特征在于:
所述划分模块划分的所述基础OS部分包含基础子目录和新建子目录,其中所述基础子目录用于保存初始rpm包,所述新建子目录用于保存新增加的rpm包。
8.根据权利要求6或7所述的***,其特征在于:
所述划分模块划分的所述基础OS部分进一步包含自定义的可执行脚本和/或文件。
9.根据权利要求6所述的***,其特征在于:
对于所述内核部分,所述写入模块用于保存一份Linux操作***源码、一份内核选项配置文件以及为Linux源码打补丁的目录;
对于所述初始***部分,所述写入模块用于保存一份原始初始***文件,以及需要在初始***启动时加载的模块的源码;
对于所述基础OS部分,所述写入模块用于保存所述Linux操作***中常用工具的rpm包文件及其动态配置文件、所述Linux操作***的目录布局。
10.根据权利要求6所述的***,其特征在于:
所述配置模块进一步用于往所述构建***添加通用模块时,将所述通用模块添加到所述基础OS部分,并将所述通用模块的源码的文件名添加到动态配置;
所述配置模块进一步用于往所述构建***添加用户自定义模块时,将所述自定义模块添加到所述附加OS部分,将所述自定义模块的源码编译过程作为自定义函数或自定义脚本添加到所述目标脚本中,将所述自定义模块的源码的文件名添加到所述动态配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010595846 CN102053831B (zh) | 2010-12-10 | 2010-12-10 | 一种Linux操作***的定制方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010595846 CN102053831B (zh) | 2010-12-10 | 2010-12-10 | 一种Linux操作***的定制方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102053831A CN102053831A (zh) | 2011-05-11 |
CN102053831B true CN102053831B (zh) | 2013-06-19 |
Family
ID=43958188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010595846 Active CN102053831B (zh) | 2010-12-10 | 2010-12-10 | 一种Linux操作***的定制方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102053831B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186378A (zh) * | 2011-12-31 | 2013-07-03 | 鼎捷软件股份有限公司 | 配置方法及配置*** |
CN103309706B (zh) * | 2013-05-24 | 2016-12-28 | 中标软件有限公司 | 基于Linux操作***的内存文件***制备方法及单元 |
CN103577225B (zh) * | 2013-10-22 | 2016-11-23 | 北京奇虎科技有限公司 | 一种软件安装方法和装置 |
CN103645888B (zh) * | 2013-10-25 | 2017-02-08 | 普华基础软件股份有限公司 | 一种自动构建操作***的***及方法 |
CN103795616A (zh) * | 2013-12-13 | 2014-05-14 | 中山大学深圳研究院 | 一种基于android的数字家庭智能网关的定制方法及*** |
CN104199674A (zh) * | 2014-09-23 | 2014-12-10 | 浪潮电子信息产业股份有限公司 | 一种基于软件复用的嵌入式操作***的定制方法 |
CN105630549A (zh) * | 2015-12-23 | 2016-06-01 | 浪潮集团有限公司 | 一种快速安装os的方法 |
CN106919432A (zh) * | 2015-12-28 | 2017-07-04 | 航天信息股份有限公司 | Linux操作***的定制方法 |
CN105930230A (zh) * | 2016-04-18 | 2016-09-07 | 乐视控股(北京)有限公司 | 多层镜像的管理方法 |
CN108614701B (zh) * | 2016-12-26 | 2021-08-24 | 中移(苏州)软件技术有限公司 | 一种Linux操作***定制方法及装置 |
CN108021368B (zh) * | 2017-12-11 | 2021-09-07 | 北京奇虎科技有限公司 | 表征操作***内核的方法、装置及终端设备 |
CN108040275B (zh) * | 2017-12-29 | 2020-08-21 | 福州福大海矽微电子有限公司 | 一种遥控器操作网页浏览器的方法及终端 |
CN108776608A (zh) * | 2018-06-19 | 2018-11-09 | 郑州云海信息技术有限公司 | 一种logo图片的切换方法、装置、设备及存储介质 |
CN111880781A (zh) * | 2020-07-29 | 2020-11-03 | 北京浪潮数据技术有限公司 | 一种rpm安装包的生成方法、装置、设备及存储介质 |
CN112527336B (zh) * | 2020-12-24 | 2024-03-12 | 深圳市科力锐科技有限公司 | 操作***软件安装方法、装置、设备及存储介质 |
CN113127077B (zh) * | 2021-03-29 | 2023-01-31 | 中科信安(深圳)信息技术有限公司 | 一种基于服务器的微内核操作***部署方法及操作*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008027922A2 (en) * | 2006-08-29 | 2008-03-06 | Adobe Systems Incorporated | Software installation using template executables |
CN101606145A (zh) * | 2007-02-05 | 2009-12-16 | 微软公司 | 为计算机***定制操作*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8793683B2 (en) * | 2008-08-28 | 2014-07-29 | Red Hat, Inc. | Importing software distributions in a software provisioning environment |
-
2010
- 2010-12-10 CN CN 201010595846 patent/CN102053831B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008027922A2 (en) * | 2006-08-29 | 2008-03-06 | Adobe Systems Incorporated | Software installation using template executables |
CN101606145A (zh) * | 2007-02-05 | 2009-12-16 | 微软公司 | 为计算机***定制操作*** |
Non-Patent Citations (2)
Title |
---|
Linux操作***的定制和精简;罗奕;《计算机时代》;20050531(第5期);38-39 * |
罗奕.Linux操作***的定制和精简.《计算机时代》.2005,(第5期),38-39. |
Also Published As
Publication number | Publication date |
---|---|
CN102053831A (zh) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102053831B (zh) | 一种Linux操作***的定制方法及*** | |
US11442746B2 (en) | Dynamically loaded plugin architecture | |
EP1530127B1 (en) | Resource manifest for providing language-neutral and language-specific resource location services | |
US8185889B2 (en) | Methods and systems for porting software packages from one format to another | |
US9891939B2 (en) | Application compatibility with library operating systems | |
US7669201B2 (en) | System and method for common file installation | |
CN102023881B (zh) | 一种软件升级方法、装置及嵌入式设备 | |
CN102567051B (zh) | 一种制备龙芯平台图形化安装***的方法及装置 | |
CN108595186B (zh) | 一种飞腾平台上基于完全函数的多版本软件管理方法 | |
CN103324474B (zh) | 基于Linux操作***跨体系构造ISO的方法及模块 | |
CN102508669A (zh) | 一种程序代码自动生成方法 | |
WO2018090529A1 (zh) | 一种镜像包制作、应用运行方法及*** | |
CN102880498A (zh) | 在安卓***的装置上虚拟sd卡的方法 | |
Courtès | Functional package management with guix | |
CN108268299A (zh) | 一种基于OpenStack云平台的Docker共享存储解决方法 | |
CN101916197A (zh) | 一种控制***自启动程序的实现方法 | |
CN113238819A (zh) | 一种适用于U-Boot的驱动文件动态加载方法及*** | |
CN104572140A (zh) | 一种操作***移植的方法、装置及*** | |
CN102902554B (zh) | 一种龙芯平台的linux操作***安装方法 | |
CN100504787C (zh) | 一种软件安装的虚拟执行方法及*** | |
CN115291885A (zh) | 一种实现制作多cpu架构基于开源容器标准容器运行方法 | |
CN110032362A (zh) | 一种unity和安卓频繁通讯技术 | |
CN107153554B (zh) | 信息处理装置和库管理方法 | |
Gerzo | Introduction to NanoBSD | |
CN118245073A (zh) | 一种面向多RISC-V平台的统一Linux操作***镜像设计方法及装置 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201112 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Patentee after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 100085 Beijing, Haidian District on the road to information on the ground floor, building 2-1, No. 1, C Patentee before: Inspur (Beijing) Electronic Information Industry Co.,Ltd. |
|
TR01 | Transfer of patent right |