throbber
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
`
`USU(l6374353Bl
`
`(12) Ulllted States Patent
`Scttsu ct al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,374,353 B1
`Apr. 16, 2002
`
`(S4)
`
`lNl*'()RMA'[‘l()N l’R()CI*ZSSIN(} Al’PARA'['US
`METHOD ()1? [;()()1‘[NG INFQRMATION
`PROCESSING APPARATUS ATA HIGH
`SPEED
`
`5,355,498 A
`25,918,048 A *
`:\,93_l3,-$31 A *
`(:__t):>2_.?”.='8 A *
`
`1{I,*1.994 Provino el al.
`(331999 Mealcy ct al.
`8,.’1‘JU‘) Manley et al.
`4;‘2t]UtJ
`Ilagyclal.
`
`‘H3.-“'2
`'1-'l3x2
`?13f2
`
`(75)
`
`Inventors: Atsushi Settsu; Noriyuki Balm; Naotn
`sugah an 01 Tokyo (JP)
`(73) Astzigncc: Mitsubishi Dcnki Kahusliiki Kaislm,
`Tokyo (JP)
`
`(* ) Noticc:
`
`Subject to any disclaimcr, the term of this
`patent is cxlcnclcd or adjusted under 35
`U.S.C. 15403) by U (lays.
`
`(21) APPL N0-5 "9:’2l51:255
`(32) Wed:
`M3,._35 1999
`
`(3U)
`
`Forcign Application Priority Data
`
`(JP)
`
`Lian lo,l998
`(51)
`Int. CL?
`(52) U.S. Cl.
`(58) Field of Search
`
`.__.“”."”._”.”“._“.__.“._” l(LUo595?
`G06F 9E4-15
`713r2
`713:2
`
`(55)
`
`References Cited
`_
`U.S. l’A'l1-NI‘ [)0(TUME.N’l‘S
`
`OTHER PUBLICATIONS
`M. M. Mckusick at al. Maruzen Co. Ltd, Jun. 30, 1991 pp.
`413433‘
`
`* cited by cxaniincr
`
`Primary I;'xmm'ner Thomas M. Hccklcr
`
`(57)
`
`A[lS'l'RAC'I‘
`
`A method ofbooling up an ii'1i'ormalion prcicessing apparatus
`is provided. An operating system is divided into a mini
`operating system (OS) module having :1 function of hoot-
`strap and an OS main body module having functions other
`than the function of bootstrap. The mini 05 i‘l'l0v’.lLll{.‘. can be
`localcd in a bool block Of a bot“ device’ Yvhcrcas the ()8
`main hotly module car1l)e located in a lili: system oflht: boot
`device. A flrrnwarc or 1-‘IW code module stored in a ROM
`1_0«'{<1‘% lh¢_mini 05 m_0d1I1<= into mt=r_n0ry \~_'h_=n homing up Ihc
`l1'il0l'I"I'lal1('I[1 processing apparatus. 111:: mini OS I'l'l0dUlC then
`loads the OS main body module into memory and then
`initializes the OS main body module.
`
`5_.3t'l?_,4‘.}? A
`
`4,-‘I994 Feigenbauni at al.
`
`12 Claims, 26 Drawing Sheets
`
`F/W
`CODE
`MODULE
`
`MEMORY
`
`BOOT BLOCK
`
`
`
`1
`
`APPLE 1006
`
`APPLE 1006
`
`1
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 1 of 26
`
`US 6,374,353 B1
`
`FIG.1
`
`1
`
`2
`
`BOOT BLOCK
`
`MINI OS
`MODULE
`
`6
`
`WW
`CODE
`MODULE
`
`MEMORY
`
`7
`
`5
`
`
`
`
`
`
`OS MAIN
`BODY
`MODULE
`
`FIG.2
`
`MINI KERNEL MODULE
`
`2
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 2 of 26
`
`US 6,374,353 B1
`
`FIG.3
`
`OS MAIN BODY MODULE
`
`KERNEL MODULE
`
`DEVICE DRIVER MODULE
`
`FIG.4
`
`MINI OS MODULE
`
`OS LOADING AND INITLALIZATION
`PROCESSING MODULE
`
` LINK OS MAIN BODY
`
`MODULE WITH MINI
`OS MODULE
`
`
`
`ST113
`
`WITIALIZE OS MAIN
`BODY MODULE
`
`ST1 14
`1
`
`START init PROCESS
`
`FINISH
`
`GENERATE THREAD FOR
`OS LOADING AND
`INITIALIZATION
`PROCESSING MODULE
`
`3
`
`

`
`..lHefl3.PcwU
`
`Apr. 16, 2002
`
`Sheet 3 of 26
`
`US 6,374,353 B1
`
`
`
`MUOJQ.H.OOm_
`
`WUE
`
`Empmwmmam
`
`
`
`MADQOEozammuomm
`
`
`
`mimeSmemwm
`
`
`
`HZmEm_O<Z¢.Emmmuomm
`
`MADQOE
`
`
`
`MADDOEhzm2mo<z<2
`
`
`
`wmozmz202200
`
`
`
`,..zm2mo<z<2mofimmz
`
`MADQOE
`
`
`
`.Em2mo<z<E1_<zo_m
`
`M23902
`
`
`
`mqsoozozammuomm
`
`
`
`WMOSEEq<:b:>
`
`
`
`
`
`WADDOEmmfimomo_>ma
`
`m
`m
`HH
`
`S
`
`o
`
`N.
`
`H
`N
`
`NN
`
`3.
`
`222we
`
`wnom
`
`wmozmz
`
`mango:
`
`mmou
`
`BE
`
`4
`
`
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 4 of 26
`
`US 6,374,353 B1
`
`FIG.6
`
`MINT 05 MODULE
`
`
`
`10
`
`30
`
`31
`
`
`
`
`
`PROCESSING MODULE
`
`FIG.7
`
`MINI OS MODULE
`
`INITLALIZE MINI
`KERNEL MODULE
`
`ST121
`
`.
`
`INITIALIZE BOOT DEVI CE
`DRIVER MODULE
`
`5T123
`
`GENERATE THREAD FOR US
`LOAD PROCESSING MODULE
`
`ST123
`
`START THE. THREAD
`
`ST124
`
`5
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 5 of 26
`
`US 6,374,353 B1
`
`FIG.8
`OS LOAD PROCESSING
`MODULE
`
`OS INITIALIZATION
`PROCESSING MODULE
`
`LINK EACH OF 08 FUNCTIONAL
`MODULES LOADED WITH MINI
`OS MODULE
`
`FUNCTIONAL MODULE
`
`INITIALIZE TI-IE OS
`
`LOAD EACH OF
`OS FUNCTIONAL MODULES
`INCLUDED IN OS MAIN BODY
`
`GENERATE THREAD FOR
`OS INITIALIZATION
`PROCESSING MODULE
`
`LOADING
`ALL OS FUNCTIONAL
`MODULES IS
`COMPLETED
`
`ST135
`
`FIG.9
`
`
`
`THREAD SYNCHRONIZATION MODULE
`
`OS INITIALIZATION
`PROCESSING MODULE
`
`
`
`
`
`MINI OS MODULE
`
`MINI KERNEL MODULE
`
`BOOT DEVICE DRIVER MODULE
`
`OS LOAD PROCESSING MODULE
`
`6
`
`

`
`U.S. Patent
`
`Apr. 16, 2002
`
`Sheet 6 of 26
`
`US 6,374,353 B1
`
`FIG.10
`
`MINI OS MODULE
`
`START
`
`INITIALIZE MINI
`KERNEL MODULE
`
`ST15 1
`
`INITIALIZE BOOT DEVICE
`DRIVER MODULE
`
`ST152
`
`GENERATE THREAD FOR OS
`LOAD PROCESSING MODULE
`
`ST153
`
`START THE THREAD
`
`ST15 4
`
`GENERATE THREADFOR
`OS INITIALIZATION
`PROCESSING MODULE
`
`ST-155
`
`START THE THREAD
`
`ST156
`
`FINISH
`
`7
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 7 of 26
`
`US 6,374,353 B1
`
`FIG. 1 1
`
`OS LOAD PROCESSING MODULE
`
`OS INITIALIZATION
`PROCESSING MODULE
`
` LOAD EACH OF OS FUNCTIONAL
`
`MODULES INCLUDED IN
`OS MAIN BODY
`
`
`
`
`
`WAIT FOR REQUEST BY WAY OF
`THREAD SYNCHRONIZATION
`MODULE
`
`
`
`
`
`
`
`
`
`MAKE REQUEST OF OS
`%IoI‘u‘I‘L§-»:Z?c§?:"1§‘~‘:11§v1?f-3:‘fiEz‘°,ixS:II"o‘1‘~:
`OF EACH OF OSFUNCFIONAL
`MODULES LOADED BY WAY OF
`THREAD SYNCI-IRONIZATION
`MODULE
`
`
`
`
`
`
`
`
`
`
`
`Ia”S§5‘fE%HL%iS§5‘x§”a¥H"3¢‘E€‘1L
`03 MODULE
`
`ST173
`
`INITIALIZE TI-[E OS
`FUNCTIONAL MODULE
`
`
`LOADING
`ALL OS FUNCTIONAL
`
`MODULES IS
`COMPLETED
`
`
`
`START init PROCESS
`
`8
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 3 of 26
`
`US 6,374,353 B1
`
`
`
`MUO.._m.HOOm
`
`2S
`
`OE
`
`mu_>mn
`
`.HOO.m
`
`Emhmrmmam
`
`
`
`WADQOEozammoofi
`
`
`
`3440zmemrm
`
`
`
`.H.ZmEmO<Z.<Emmmoomm
`
`mango:
`
`
`
`MADQOE.HZmEm0<Z<E
`
`
`
`wmozmzZOEEOU
`
`
`
`..,zm2mm<z<Emofimmz
`
`m.._DQO2
`
`
`
`,~zm2mo<z<213295
`
`WADQOE
`
`
`
`WADQOEozammuomm
`
`
`
`wmozmz.._<D.Hm_>
`
`
`
`
`
`mango:aminomoczmm
`
`S
`
`E
`
`3
`
`on
`
`Hm
`
`mm
`
`3
`
`Z532mo
`
`woom
`
`wmozmz
`
`WADQOE
`
`MQOU
`
`BE
`
`9
`
`
`
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 9 of 26
`
`US 6,374,353 B1
`
`FIG. 13
`
`PROCESSING MODULE
`
`OS I1\UTIALIZATION
`
`FIG. 14
`
`OS LOADING AND DECOMPRESSION
`PROCESSING MODULE
`
`MODULES INCLUDED IN
`OS MAIN BODY
`
`ST181
`
`
`
`
`
`START THE THREAD
`
`
`
`ST184
`
`
`
`ST185
`
`ALL OS FUNCTIONAL
`MODULES IS
`COMPLETED
`9
`
` LOADING
`START init PROCESS ST186
`
`
`YES
`
`10
`
` LOAD EACH OF OS FUNCTIONAL
`
`
` ST182
`
`
`DECOMPRESS EACH OF 03
`FUNCTIONAL MODULES LOADED
`
`GENERATE ‘THREAD FOR OS
`INITIALIZATION PROCESSING MODULE
`
`ST183
`
`
`
`10
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 10 of 26
`
`US 6,374,353 B1
`
`FIG.15
`
`OS DECOMPRESSION
`
`OS LOAD PROCESSING MODULE
`
`OS DECOMPRESSION
`PROCESSING MODULE
`
`DECOMPRESS EACH OF OS
`FUNCTIONAL MODULES
`LOADED
`
`PROCESSING MODULE
` LOADING
`
` LOAD EACH OF OS FUNCTIONAL
`
`
`
`MODULES INCLUDED IN
`OS MAIN BODY
`
` GENERATE THREAD FOR
`03 DECOMPRESSION
`PROCESSING MODULE
`
`
`
`
`
`GENERATE THREAD FOR
`OS INITIALIZ.ATION
`PROCESSING MODULE
`
`ALL OS FUNCTIONAL
`MODULES IS
`
`COMPLETED
`
`
`ST195
`
`. YES
`
`START init PROCESS
`
`
`
`
`
`11
`
`11
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 11 of 26
`
`US 6,374,353 B1
`
`E
`
`ZOHEZEWD
`
`ZOE.DZDm.
`
`MAE
`
`
`
`MADQOEZOH.H<UHwEm<
`
`Ememwmmam
`
`
`
`NADQOEwzammuomm
`
`
`
`m.._1_<UEmemwm
`
`
`
`.:,_m2mo<z<2mmmoomm
`
`MADDOE
`
`
`
`WADQOE._.zmEmo<z<2
`
`
`
`VMOSEEZOEEOU
`
`
`
`ezm2mo<zS2mwfimmz
`
`WADQOE
`
`
`
`ezmEmo<z<2q<zo_m
`
`MADQOE
`
`
`
`MJDQOEozammoomm
`
`
`
`WMOEME1_<P5=>
`
`
`
`
`
`WHDQOEmmimmmu_>mm
`
`2BD
`
`on
`
`Hm
`
`an
`
`3
`
`E
`
`Z732mo
`
`Eom
`
`FMOEME
`
`12
`
`HADQOE
`
`WQOU
`
`12
`
`
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Apr. 16, 2002
`
`Sheet 12 of 26
`
`US 6,374,353 B1
`
`FIG.18
`
`APPLICATION MODULE
`MESSA GE
`
`SYSTEM CALLS
`PROCESSING
`
`PROCESS
`MANAGEMENT
`
`MANAGEMENT
`
`FIG.19
`
`MINI KERNEL MODULE
`
`
`
`
`
`BOOT DEVICE DRIVER MODULE
`
`AP EXECUTION AND OS LOAD
`PROCESSING MODULE
`
`OS INITL-’-XLIZATION
`PROCESSING MODULE
`
`13
`
`10
`
`72
`
`
`
`
`31
`
`13
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 13 of 26
`
`US 6,374,353 B1
`
`FIG.20
`AP EXECUTION AND
`Os LOAD PROCESSING MODULE
`
`START
`
`LOAD APPLICATION MODULE
`
`STZII
`
`ANALYZE FUNCTION DEFINITION FILE
`
`51712
`
`LOAD EACH OF OS FUNCTIONAL MODULES
`INCLUDED IN OS MAIN BODY AND LISTED
`IN FUNCTION DEFINITION FILE
`
`GENERATE THREAD FOR OS INITIALIZATION
`PROCESSING MODULE
`
`ST213
`
`31214
`
`
`
`ST215
`
`
`
`ST216
`
`LOADING ALL
`OS FUNCTIONAL MODULES
`
`LISTED IN FUNCTION DEFINITION
`
`FILE IS COMPLETED
`
`
`YES
`START APPLICATION MODULE
`
`SE17
`
`
`
`LOAD EACH OFREMAINING Os FUNCTIONAL
`MODULES INCLUDED IN OS MAIN BODY
`
`GENERATE THREAD FOR OS INITIALIZATION
`PROCESSING MODULE
`
`
`LOADING
`ALL REMAINING OS FUNCTIONAL
`MODULES IS?COMPLETED
`
`ST221
`
`
`
`
`YES
`
`START init PROCESS
`
`ST222
`
`FINISH
`
`14
`
`ST313
`
`ST219
`
`ST220
`
`14
`
`

`
`U.S. Patent
`
`Apr. 16, 2002
`
`Sheet 14 of 26
`
`US 6,374,353 B1
`
`F/W
`CODE
`MODULE
`
`MODULE
`
`MINI OS
`
`FIG.21
`
`2
`
`4
`
`BOOT
`BLOCK
`
`MEMORY
`
`FIG.22
`
`MINI OS MODULE
`
`CODE
`PORTION
`----- —-NflNIKERNELMODULE——---——----
`DATA
`PORTION
`
`CODE
`PORTION
`- - -BOOT DEVICE DRIVER MODULE ——————— — —
`DATA
`PORTION
`
`PORTION
`
`_ OS LOADING AND INITIALIZATION
`PROCESSING MODULE
`
`CODE
`P ORTION
`
`15
`
`15
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 15 of 26
`
`US 6,374,353 B1
`
`MINI OS MODULE
`
`FIG. 23
`OS LOADING AND INITIALIZATION
`PROCESSING MODULE
`
`ST241
`
`LOAD OS MAIN BODY MODULE
`
`ST242
`
`
`
`INITIALIZE OS MAIN BODY
`MODULE
`
`ST244
`
`START init PROCESS
`
`GENERATE THREAD FOR OS
`LOADING AND INTILALIZATION
`PROCESSING MODULE
`
`LINK OS MAIN BODY MODULE
`WITH MINI OS MODULE
`
`ST243
`
`
`
`
`
`
`
`
`CODE
`R 0
`———— — -MINI KERNEL MODULE — - - — —P—O— -13- 15
`
`DATA
`
`PORTION
`
`
`
`
`
`CODE
`PORTION
`— —BOOT DEVICE DRIVER MODULE- — - - - - - - - -
`DATA
`P ORTION
`
`10
`
`
`
`
`
`
`
`
`os LOADING AND [NITIALIZATION
`"PROCESSING MODULE
`
`11
`
`coma
`
`PORTION
`
`DATA
`
`PORTION
`
` 80
`
`ADDRESS RESOLVE TABLE
`
`16
`
`16
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 16 of 26
`
`US 6,374,353 B1
`
`ST25 1
`
`ST252
`
`ST25 3
`
`ST25 4
`
`ST255
`
`STZS6
`
`
`
`
`
`
`
`
`FIG.25
`OS LOADING AND INT1"IALIZATION
`PROCESSING MODULE
`
`
`
`LOAD OS MAIN BODY MODULE
`
`LINK OS MAIN BODY MODULE
`WITH MINI OS MODULE
`
`[NITIALIZE OS MAIN BODY MODULE
`
`START init PROCESS
`
`LOAD CODE PORTION OF
`MINI OS MODULE
`
`UPDATE ADDRESS RESOLVE TABLE
`
`
`
`
`
`
`
`FIG.26
`
`08 MAIN BODY MODULE
`
`8
`
`91
`
`'--._
`--_______~LOADINGFLAG
`
`
`DEVICE DRIVER
`
`VIRTUAL MEMORY
`
`SIGNAL
`MANAGEMENT
`
`MESSAGE
`MANAGEMENT
`
`COMMON MEMORY
`MANAGEMENT
`
`PROCESS MANAGEMENT
`
`SYSTEM CALLS PROCESSING
`
`17
`
`17
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 17 of 26
`
`US 6,374,353 B1
`
`FIG.27
`
`
`
`MINI KERNEL MODULE
`
`BOOT DEVICE DRIVER MODULE
`
`OS LOAD PROCESSING MODULE
`
`10
`
`30
`
`31
`
`
`
`OS INITIALIZATION PROCESSING MODULE
`
`
`
`FIG.28
`
`MINI OS MODULE
`
`
`
`INITIALIZE MINI
`KERNEL MODULE
`
`ST261
`
`
`
` ST263
`
`
`INITIALIZE BOOT DEVICE
`DRIVER MODULE
`
`ST262
`
`GENERATE THREAD FOR OS
`LOAD PROCESSING MODULE
`
`START THE THREAD
`
`ST264
`
`
`
`18
`
`18
`
`

`
`U.S. Patent
`
`Apr. 16, 2002
`
`Sheet 18 of 26
`
`US 6,374,353 B1
`
`FIG.29
`
`OS LOAD PROCESSING MODULE
`
`START
`
`LOAD ONE BLOCK OF Os MAIN
`BODY MODULE INTO MEMORY
`
`ST271
`
`ST272
`
`
`
`A BIT OF LOADING
`FLA? IS 1
`
`YES
`
`ST273
`
`Sm‘
`
`ST275
`
`
`
`GENERATE THREAD FOR
`OS IN1TLALIZA'I"ION
`PROCESSING MODULE
`
`LOADING
`
`OS MAIN BODY MODULE
`
`IS COMELETED
`
`
`
`
`YES
`
`START init PROCESS
`
`SE76
`
`FINISH
`
`19
`
`19
`
`

`
`US. Patent
`
`Apr. 16,2002
`
`Sheet 19 of 26
`
`US 6,374,353 B1
`
`FIG.30
`
`OS {NITTALIZATTON
`PROCESSING MODULE
`
`ST281
`
`ST283
`
`ST282
`
`FIG.31
`
`OS MAIN BODY MODULE
`
`LOADING FLAG
`
`
`U : NEGLECT
`OTHERWISE : ADDRESSES OF
`LINK PROCESSING FUNCTION
`AND INITIALIZATION
`PROCESSING FUNCTION
`
`20
`
`20
`
`

`
`U.S. Patent
`
`Apr. 16, 2002
`
`Sheet 20 of 26
`
`US 6,374,353 B1
`
`FIG.32
`
`OS LOAD PROCESSING MODULE
`
`LOAD ONE BLOCK OF OS MAIN
`BODY MODULE INTO MEMORY
`
`STZ91
`
`ST292
`
`
`
`
`
`GENERATE THREAD FOR
`OS INITIALIZATION
`PROCESSING MODULE
`
`ST293
`
`ST294
`
`
`
`LOADING
`OS MAIN BODY MODULE
`IS COMI:LETED
`
`YES
`
`
`
`START init PROCESS
`
`ST296
`
`
`
`
`
`
`
`LOADING
`FLAG IS OTI?-IER THAN 0
`
`21
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 21 of 26
`
`US 6,374,353 B1
`
`FIG.33
`
`OS INITIALIZATION
`PROCESSING MODULE
`
`CALL LINK PROCESSING FUNCTION
`SPECIFIED BY LOADING FLAG
`
` ST301
` ST302
`
`CALL INITIALIZATION PROCESSING
`%IRIgT’ION SPECIFIED BY LOADING
`
`105
`
`OS
`PROGRAM
`FILE
`
`22
`
`22
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 22 of 26
`
`US 6,374,353 B1
`
`FIG.35
`OS PROGRAM FILE
`
`
`ADDRESS SPECIFYING
`
`
`
`MEMORY LOCATION
`
`OF CODE AREA
`
`
`
`
`
`
`MEMORY LOCATION
`OF DATA AREA
`
`SIZE OF DATA AREA
`
`ADDRESS SPECIPYING
`LOCATION OF DATA
`AREA RELATIVE TO OS
`PROGRAM FILE ORIGIN
`
`ADDRESS SPECIFYING
`LOCATION OF SYMBOL
`INFORMATION AREA
`
`
`RELATIVE TO OS
`
`
`PROGRAM FILE ORIGIN
`
`
`
`
`HEADER
`
`CODE PORTION OF
`MINI OS MODULE
`
`CODE PORTION OF OS
`MAIN BODY MODULE
`
`
`
`SIZE OF CODE AREA
`
`I ADDRESS SPECIFYING
`
`LOCATION OF CODE
`AREA RELATIVE TO OS
`
`
`
`109 WONOF
`Mm 03 MODULE
`
`110
`
`DATA PORTION OF OS
`MAIN BODY MODULE
`
`111
`
`
`
`
`
`106
`
`107
`
`108
`
` 109
`
`FIG.36
`
`OS PROGRAM FILE
`
`MINI OS MODULE
`
`HEADER
`
`CODE PORTION OF
`MINI OS MODULE
`
`DATA PORTION OF
`MINI OS MODULE
`
`
`
`HEADER
`
`CODE PORTION OF
`MINI OS MODULE
`
`CODE PORTION OF OS
`MAIN BODY MODULE
`
`DATA PORTION OF
`MINI OS MODULE
`
`OS MAIN BODY MODULE
`
`106
`
`107
`
`
`
`108
`
`
`
`114
`
`108
`
`110
`
`
`
`03
`CODE PORTION OF 08
`DIVIDING
`PROGRAM MAIN BODY MODULE
`
`
`
`DATA PORTION OF OS
`MAIN BODY MODULE
`
`
`
`112
`
`23
`
`DATA PORTION OF OS
`MAIN BODY MODULE
`
`111
`
`
`
`SYMB OL
`INFORMATION
`AREA
`
`
`
`
`
`110
`
`23
`
`

`
`U.S. Patent
`
`Apr. 16, 2002
`
`Sheet 23 of 26
`
`US 6,374,353 B1
`
`FIG.37
`
`OS DIVIDING PROGRAM
`
`START
`
`EXTRACT CODE PORTION
`OF MINI OS MODULE
`
`ST311
`
`EXTRACT DATA PORTION
`OF MINI OS MODULE
`
`ST312
`
`CREATE HEADER OF
`MINI OS MODULE
`
`ST313
`
`EXTRACT CODE PORTION
`OF OS MAIN BODY MODULE
`
`ST314
`
`EXTRACT DATA PORTION
`OF OS MAIN BODY MODULE
`
`ST315
`
`CREATE HEADER OF
`OS MAIN BODY MODULE
`
`ST3 15
`
`FINISH
`
`24
`
`24
`
`

`
`US. Patent
`
`Apr. 16,2002
`
`Sheet 24 of 26
`
`US 6,374,353 B1
`
`
`
`muoqm.HOOm
`
`MADQOE
`
`MO5:;
`
`MADQOEmoH752no
`
`ZOVHMOAmeow
`
`m.Smo2
`
`MQOU
`
`>23
`
`mo_>mn
`
`HOOE
`
`ma
`
`manna:moH234EU
`
`
`
`zofimom<.H<Q
`
`25
`
`25
`
`
`
`

`
`U.S. Patent
`
`Apr. 16,2002
`
`Sheet 25 of 26
`
`US 6,374,353 B1
`
`FIG.39
`
`MINI OS MODULE
`
`OS LOADING AND INITIALIZATION
`PROCESSING MODULE
`
`GENERATE THREAD FOR
`OS LOADING AND
`INITIALIZATION MODULE
`
`26
`
`26
`
`

`
`US. Patent
`
`Apr. 16,2002
`
`Sheet 26 of 26
`
`US 6,374,353 B1
`
`murpmm
`
`BOOM.
`
`
`
`MUOAm_HOOm_
`
`MADQOE
`
`mo:/:2
`
`Z322mo
`
`PQOM
`
`MADQOE
`
`mango:moH232no
`
`
`
`zofimomNQOU
`
`nomozofimomWQOU
`
`WADDOEwnomZ22
`
`
`
`moZOEMOA<.H<D
`
`MADDOEmo:52
`
`
`
`MOmozozaom<,H.<Q
`
`
`
`MADQOEwmom7:<E
`
`27
`
`27
`
`
`
`
`
`
`

`
`US 6,374,353 B1
`
`1
`INFORMATION l"ROCESSING APPARATUS
`MISTI-IOI} OF BOOTING INl'*‘0RMA'l‘lON
`PROCESSING APPARATUS AT A HIGH
`SPEED
`
`BACKGROUND O1’ 'l'I-IE. INVI:iN'I'ION
`
`1. Field of the Invention
`
`'Ihe present invention relates to an information processing
`apparatus capable of reducing the time required for booting
`itself when it is powered on, and a method of booting an
`information processing apparatus at a high speed.
`2. Description of the Prior Art
`In accordance with a prior art method of booting an
`information processing apparatus, a firmware or FEW code
`stored in a programmable read only memory (ROM) loads
`a bootstrap code, called boot, into memory, as shown in for
`example "Booting up System", Chapter 13, pp.4l3—-433 in
`“The Design and Implementation of the UNIX 4.3l3SD”,
`translated by Akira Nakamura et al., Maruzen, Jun. 30, "I991 .
`The boot progam then loads an operating system or OS
`stored in a file system into memory. The OS is then started
`and goes through initialization. After that,
`the OS starts
`execution of a lirst process or program, called init, to be
`executed first after the OS goes through initialization. Appli-
`cations can then run on the OS.
`
`Since the prior art method of booting an information
`processing apparatus comprises the steps of the FIW code
`loading the bootstrap code stored in a boot block of a boot
`device into memory, the FEW code starting execution of the
`bootstrap code, the bootstrap code loading the OS stored in
`the file system of the boot device into memory, and the
`bootstrap code starting execution of the OS, much time is
`required to start execution of the OS. Further, another
`problem with the prior art method is that since the OS cannot
`start execution of applications to be started automatically
`when the information processing apparatus is booted up
`until the OS finishes going through initialization perfectly,
`much time is required to start execution of such applications
`when booting up the information processing apparatus.
`
`SUMMARY OF THE INVENTION
`
`ID
`
`15
`
`~
`
`30
`
`35
`
`40
`
`45
`
`50
`
`invention is made to overcome the above
`The present
`problems. It is therefore an object of the present invention to
`provide an information processing apparatus and a method
`capable of reducing the time required for booting up itself
`when it is powered on, and also reducing the time required
`to start execution of applications to be started automatically
`when the information processing apparatus is booted up.
`In accordance with an aspect of the present
`invention,
`there is provided an information processing apparatus com-
`prising: a boot device divided into a boot block in which a
`mini operating system (05) module having a function
`required for bootstrap processing is located and a file system _
`in which an operating system (US) main body module
`having functions other than the function of bootstrap; and a
`read-only memory or R()M in which a [irrnware or WW
`code module is located for loading the mini 08 module
`located in the boot block into a memory and for starting
`execution of the mini OS module instead of a bootstrap code
`when booting up the information processing apparatus, the
`mini 08 module loading the 08 main body module from the
`file system of the boot device into the memory, and the mini
`08 module being linked to the 08 main body module.
`In accordance with another aspect of the present
`invention,
`there is provided a method of booting up an
`
`60
`
`65
`
`2
`information processing apparatus comprising a boot device
`and a memory by loading an operating system into the
`memory, comprising the steps of: dividing the operating
`system into a mini operating system (OS) module having a
`function required for bootstrap processing and an operating
`system (OS) main body module having functions other than
`the function of bootstrap, the mini OS module including a
`mini kernel module that
`is a basic part of the operating
`system, a boot device driver module for performing inputf
`output (U0) operations on the boot device, and an OS
`loading and initialization processing module for loading the
`08 main body module into the memory and for initializing
`the OS main body module; locating the mini OS module in
`a boot block of the boot device; locating the OS main body
`module in a file system of the boot device; a firmware or
`FIW code module being stored in a ROM and loading the
`mini OS module located in the boot block into the memory
`when booting up the information processing apparatus; the
`mini OS module initializing the mini kernel module and the
`boot device driver module; the mini OS module generating
`and starting execution of a thread for the 08 leading and
`initialization processing module; and the OS loading and
`initialization processing module loading the OS main body
`module stored in the file system into the memory and then
`initializing the OS main body module.
`In accordance with a preferred embodiment of the present
`invention,
`the OS main body module is divided into a
`plurality of functional modules including a device driver
`module, which are located as separate files in the file system,
`and the OS loading and initialization processing module is
`divided into an OS loading processing module for loading
`each of the plurality of functional modules into the memory
`and an OS initialization module for initializing each of the
`plurality of functional modules loaded into the memory by
`the OS loading processing module. Further, after the mini
`OS module is loaded into the memory, the mini 08 module
`initializes the mini kernel module and the boot device driver
`module and then generates and starts execution of a thread
`for the OS loading processing module. After the thread for
`the OS loading processing module is started, the OS loading
`processing module loads each of the plurality of functional
`modules into the memory and then generates and starts
`execution of a thread for the OS initialization module every
`time it
`loads each of the plurality of functional modules.
`After the thread for the OS initialization module is started,
`the OS initialization module initializes each of the plurality
`of functional modules loaded into the memory.
`In accordance with another preferred embodiment of the
`present invention, the mini OS module includes a thread
`synchronization module for providing synchronization
`between a thread for the OS loading processing module and
`a thread for the OS initialization module using the mini
`kernel module. Further, the mini 08 module generates and
`starts execution of a thread for the OS loading processing
`module and a thread for the OS initialization module after
`the mini 05 module initializes the mini kernel module and
`the boot device driver module. After those threads are
`
`started, the OS initialization module brings itself into a state
`in which it
`is waiting for a request for initialization of a
`functional module through the thread synchronization mod-
`ule. Every time the OS loading processing module loads
`each of the plurality of functional modules into the memory,
`the OS loading processing module makes a request ofthe OS
`initialization modttle for initialization ofeach of the plurality
`of functional modules through the thread synchronization
`module. The OS initialization module initializes each of the
`plurality of functional modules loaded into the memory
`
`28
`
`28
`
`

`
`US 6,374,353 B1
`
`I0
`
`15
`
`30
`
`3
`every time the OS initialization module receives a request
`for initialization of each of the plurality of functional
`modules loaded into the memory from the OS loading
`processing module, and then waits for another request for
`initialization.
`In accordance with another preferred embodiment of the
`present invention, the plurality of functional modules, into
`which the OS main body module is divided, are stored as
`compressed files in the file system and the loading and
`initialization processing module of the mini OS module is
`divided into an OS loading and decompression processing
`module and an OS initialization module. Further, the mini
`OS module generates and starts execution of a thread for the
`OS loading and decompression processing module after the
`mini OS module initializes the mini kernel module and the
`boot device driver module. After the thread for the OS
`loading and decompression processing module is started, the
`OS loading and decompression processing module loads
`each of the plurality of functional modules into the memory
`and deoompresses the loaded functional module, and then .
`generates and starts execution of a thread for
`the OS
`initialization module. After the thread for the OS initializa-
`tion module is exccutcd, the OS initialization module ini-
`tializes each of the plurality of functional modules loaded
`into the memory and decompressed.
`In accordance with another preferred embodiment of the
`present invention, the OS loading and decompression pro-
`cessing module is divided into an OS loading processing
`module and an OS decompression processing module.
`Further, the mini OS module generates and starts execution
`of a thread for the OS loading processing module after the
`mini OS module initializes the mini kernel module and the
`boot device driver module. After the thread for the OS
`loading processing module is started, the OS loading pro-
`cessing module loads each of the plurality of compressed
`functional modules into the memory, and then generates and
`starts execution of a thread for the OS decompression
`processing module. After the thread for the OS decompres-
`sion processing module is started, the OS decompression
`processing module decompresses each of the plurality of
`compressed functional module loaded into the memory and
`then generates and starts execution of a thread for the OS
`initialization module. And, after the thread for the OS
`initialization module is started, the OS initialization module
`initializes each of the functional modules loaded into the
`memory and decompressed by the OS decompression pro-
`cessing module.
`In accordance with another preferred embodiment of the
`present invention, the OS loading processing module of the
`mini OS module is an application (AP) execution and OS
`loading processing module for starting execution of at least
`a predetermined application module which is located in the
`file system and which can automatically be started and run
`on the operating system when booting up the information
`processing apparatus, and for loading each of the plurality of _
`functional modules into the memory. Further, the predetcrw
`mined application module includes a function definition lile
`in which some functional modules required for the applica-
`tion module to run on the operating system are listed. After
`the mini 08 module is loaded into the memory, the mini 08
`module initializes the mini kernel module and the boot
`device driver module and then generates and starts execution
`of a thread for theAP execution and OS loading processing
`module. After the thread for the AP execution and OS
`loading processing module is started, the AP execution and
`OS loading processing module loads the application nodule
`from the file system into the memory and further loads some
`
`35
`
`40
`
`45
`
`50
`
`60
`
`65
`
`4
`functional modules required for the application module into
`the memory according to the function delinition file included
`in the application module, and then generates and starts
`execution of a thread for the OS initialization module. After
`the thread for the OS initialization module is started, the OS
`initialization module then initializes each of the some func-
`tional modules loaded into the memory. And, after the
`initialization of all of the some functional modules is
`completed, the application execution and OS loading pro-
`cessing module further loads the remainder of all functional
`modules included in the OS main body module into the
`memory and initializes the remainder using the OS initial-
`ization processing module while starting execution of the
`application module as a process.
`In accordance with another preferred embodiment of the
`present invention, the OS loading and initialization process-
`ing module of the mini OS module is divided into an OS
`loading processing module and an OS initialization module,
`the OS main body module is divided into a plurality of
`blocks of arbitrary record size, each of which includes a
`loading flag consisting of a plurality of hits respectively
`corresponding to the plurality of functional modules
`included in the OS main body module. Further, the loading
`flag ofone of the plurality of blocks including the end of any
`one of the plurality of functional modules has a correspond-
`ing bit set
`to a predetermined value. After the mini OS
`module is loaded into the memory,
`the mini OS module
`initializes the mini kernel module and the boot device driver
`module and then generates and starts execution of a thread
`for the OS loading processing module. After the thread for
`the OS loading processing module is started, the loading
`processing module loads each of the plurality of blocks of
`the OS main body module into the memory, and refers to the
`loading flag every time it loads each of the plurality of
`blocks into the memory. Only if a bit of the loading llag is
`set
`to a predetermined value, the OS loading processing
`module generates and starts execution ofa thread for the OS
`initialization module. And, after the thread for the OS
`initialization module is started, the OS initialization module
`initializes a corresponding one of the plurality of functional
`modules loaded into the memory.
`In accordance with another preferred embodiment of the
`present invention, the OS loading and initialization process-
`ing module is divided into an OS loading processing module
`and an OS initialization module, and the OS main body
`module is divided into a plurality of blocks of arbitrary
`record size, each of which includes a loading llag. Further,
`the loading flag of one of the plurality of blocks including
`the end of any one of the plurality of functional modules has
`the address of a linkage processing function of linking the
`one functional module with the mini OS module and the
`address of an initialization processing function of initializing
`the one functional module. After the mini 08 module is
`loaded into the memory, the mini OS module initializes the
`mini kernel module and the boot device driver module and
`then generates and starts execution of a thread for the OS
`loading processing module. After the thread for the OS
`loading processing module is started, the loading processing
`module loads each of the plurality of blocks of the OS main
`body module into the memory, and refers to the loading flag
`every time it loads each of the plurality of blocks into the
`memory. Only ifthc loading flag has a value other than zero,
`the OS loading processing module generates and starts
`execution of a thread for the OS initialization module. And,
`after the thread for the OS initialization module is started,
`the OS initialization module calls a
`linkage processing
`function and an initialization processing function according
`to the value of the loading flag.
`
`29
`
`29
`
`

`
`US 6,374,353 B1
`
`5
`In accordance with another preferred embodiment of the
`present invention, the method further comprises the steps of,
`in order to generate the mini OS module and the OS main
`body module, combining an object
`file of the mini OS
`module and an object file of the OS main body module into
`an operating system file by using a linkage editor or linker,
`and dividing the operating system file into the mini OS
`module and the OS main body module according to link
`information.
`
`6
`FIG. 4 is a flow chart showing operations of the mini 05
`module of the information processing apparatus according to
`the tirst embodiment of the present invention;
`FIG. 5 is a block diagram showing the structure of an
`information processing apparatus according to a second
`embodiment of the present invention;
`FIG. 6 is a diagram showing the structure of a mini 08
`module of the information processing apparatus according to
`the second embodiment of the present invention;
`FIG. 7 is a llow chart showing operations of the mini 05
`module of the information processing apparatus according to
`the second embodiment of the present invention;
`FIG. 8 is a flow chart showing operations of an OS load
`processing module and an OS initialization processing mod-
`ule of the information processing apparatus according to the
`second embodiment of the present invention;
`FIG. 9 is a diagram showing the stnicture of a mini OS
`module of an information processing apparatus according to
`a third embodiment of the present invention;
`FIG. 10 is a How chart showing operations of the mini 03
`module of the information processing apparatus according to
`the third embodiment of the present invention;
`FIG. 11 is a flow chart showing operations of an OS load
`processing module and an OS initialization processing mod-
`ule of the information processing apparatus according to the
`third embodiment of the present invention;
`FIG. 12 is a block diagram showing the structure of an
`information processing apparatus according to a fourth
`embodiment of the present invention;
`FIG. 13 is a diagram showing the structure of a mini OS
`module of the information processing apparatus according to
`the fourth embodiment of the present invention;
`FIG. 14 is a flow chart showing operations of an OS
`loading and decompression processing module of the infor-
`mation processing apparatus according to the fourth embodi-
`ment of the present invention;
`FIG. 15 is a diagram showing the structure of a mini OS
`module of an information processing apparatus according to
`a fifth embodiment of the present invention;
`FIG. 16 is a flow chart showing operations of an OS load
`processing module and an OS decompression processing
`module of the information processing apparatus according to
`the fifth embodiment of the present invention;
`FIG. 17 is a block diagram showing the structure of an
`information processing apparatus according to a sixth
`embodiment of the present invention;
`FIG. 18 is a diagram showing an application module of
`the information processing apparatus according to the sixth
`embodiment of the present invention;
`FIG. 19 is a diagram showing the structure of a mini OS
`module of the information processing apparatus according to
`the sixth embodiment of the present invention;
`FIG. 20 is a flow chart showing operations of an appli-
`cation execution and 08 load processing module of the
`information processing apparatus according to the sixth
`embodiment of the present invention;
`FIG. 21 is a block diagram showing the structure of an
`information processing apparatus according to a seventh
`embodiment of the present invention;
`FIG. 22 is a diagram showing the structure of a mini OS
`module of the information processing apparatus according to
`the seventh embodiment of the present invention;
`FIG. 23 is a flow chart showing operations of the mini 08
`module and an OS loading and initialization processing
`
`In accordance with another aspect of the present
`invention,
`there is provided a method of booting up an
`information processing apparat

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket