CN1942859A - Operating systems - Google Patents

Operating systems Download PDF

Info

Publication number
CN1942859A
CN1942859A CNA2004800354072A CN200480035407A CN1942859A CN 1942859 A CN1942859 A CN 1942859A CN A2004800354072 A CNA2004800354072 A CN A2004800354072A CN 200480035407 A CN200480035407 A CN 200480035407A CN 1942859 A CN1942859 A CN 1942859A
Authority
CN
China
Prior art keywords
operating system
kernel
nanokernel
auxiliary
virtual
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
Application number
CNA2004800354072A
Other languages
Chinese (zh)
Inventor
埃里克·莱斯库埃
弗拉迪米尔·格鲁齐德夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jaluna SA
Original Assignee
Jaluna SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jaluna SA filed Critical Jaluna SA
Publication of CN1942859A publication Critical patent/CN1942859A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A method of enabling multiple different operating systems to run concurrently on the same RISC computer, comprising selecting a first operating system to have a relatively high priority (the realtime operating system, such as C5); selecting at least one secondary operating system to have a relatively lower priority (the general purpose operating system, such as Linux); providing a common program (a hardware resource dispatcher similar to a nanokernel) arranged to switch between said operating systems under predetermined conditions; and providing modifications to said first and second operating systems to allow them to be controlled by said common program.

Description

Operating system
Technical field
The present invention relates to operating system.More specifically, the present invention relates to be used for system, the method and computer program of a plurality of operating systems of parallel running.
Background technology
For some computer program, in the time period that limits or the step in limiting executive routine constantly be vital.These programs be exemplified as the control program that is used to operate mobile phone or is used to operate private branch exchange (PBX) or cellular base stations.Usually, described program externally in the particular moment after the incident or the special time mode with unanimity this incident or state variation are responded.This is called as " in real time " operation.
Yet for many other programs, it is unimportant to carry out the used time of described program.This is applicable to prevailing computer program, comprises electronic chart program, word processor, pay sheet software package (payroll package) and consolidated return or routine analyzer.On the other hand, although used definite time of these programs is unimportant, as a rule, the user prefers carrying out more quickly under possible situation.
Application program and computing machine carry out alternately, and these application programs are moved on computers by operating system.By using the application programming interface (API) of operating system, can write application program in the mode of portable (portable), so that it can be carried out having on the various computing machine of different hardware resource.In addition, the general-purpose operating system such as Linux or Windows provides multitasking; In other words, they allow a plurality of programs of parallel work-flow.For this reason, they provide scheduling; In other words, they are shared computer resource between distinct program, distributes the time according to dispatching algorithm to each program.Such operating system is used very widely, but they can not move real-time application usually, so they are not suitable for many controls or communication task.
Therefore, developed real time operating system for these tasks; One is exemplified as ChorusOS (being also referred to as Chorus) and derivant thereof.As Open Source Code Software, can obtain ChorusOS from http://www.experimentalstuff.com/Technologies/ChorusOS/index.ht ml, and obtain Jaluna from http://www.jaluna.com/.
At " the ChorusOS Features and Architecture Overview " FrancoisArmand that obtains from http://www.jaluna.com/developer/papers/COSDESPERF.pdf, Sun Technical Report, in August calendar year 2001, among the 222p this is described.
These operating systems also can be used to move the program of other type.Yet the user expects to operate to " original " program that the general-purpose operating system (for example, Windows or Linux) is write understandably, and needn't rewrite to move on real time operating system them.
Can provide " dual boot " system that makes the user can move an operating system or another operating system, but expectation can move " original " program in the operation real-time program as a rule.For example, communication network infrastructure, third generation mobile and other senior phone and senior electric trip equipment may need real-time application (for example, game graph show) and non real-time application (game download) both.
In US 5903752 and US 5721922, attempt by in the Interrupt Process environment of non-real time operating system (for example Windows), the real-time multi-task kernel being set, with in non-real time operating system in conjunction with real time environment.
Widely used a kind of method is " emulation ".Usually, write emulator program to move under real time operating system, this emulator program is interpreted as each bar instruction of general-purpose operating system written program, and carries out the instruction of corresponding series under real time operating system.Yet, because an instruction always is replaced by many instructions, so the emulation meeting brings than HD to computing machine and causes slower performance.Based on virtual machine (for example, Java is provided TMVirtual machine) method can cause similar problem.Virtual machine is implemented is exemplified as EP 1059582, US 5499379 and US 4764864.
In US 5995745 (Yodaiken), another similar technique has been described.Yodaiken has described following system, and in this system, multiple task real-time operation system moves the general-purpose operating system as one of its task, and seizes (pre-empt) this general-purpose operating system as required and carry out real-time task.
Other method is to move real time operating system as the module of the general-purpose operating system, as at for example EP 0360135 and document " Merging real-time processing and UNIX V ", (Gosch), ELECTRONICS, September nineteen ninety, described in the p62.The hardware interrupts relevant with the general-purpose operating system in this case, optionally shield hardware interrupts, so that should do not seized this real time operating system.
Other method is the method for the ADEOS (Adaptive Domain Envirmonment for OperatingSystem (the self-adaptation territory environment of operating system)) that describes in the white paper at http://opersys.com/ftp/pub/Adeos/adeos.pdf place.
ADEOS also provides nanokernel, is used to move a plurality of operating systems, although it seems only to be implemented by Linux.The suggestion purposes of ADEOS is to allow ADEOS to RTAI (RealtimeApplication Interface for Linux (the real-time application interface of Linux)) assigned interrupt, referring to:
http://www.aero.polimi.it/~rtai/applications/。
EP 1054332 has described following system, in this system, and " switch unit " (it not being described in sufficient detail) operation real-time oss general-purpose operating system of unifying in order to understand fully.Hardware interrupts is handled (in certain embodiments by the common interrupt processor, hardware interrupts is handled by real time operating system), this common interrupt processor generates the software interruption of lower priority level then, and this software interruption is handled by the routine in the auxiliary operation system.
Summary of the invention
The purpose of this invention is to provide a kind of improved system, method and computer program, when a plurality of operating systems are to design for different purposes, also can move these a plurality of operating systems simultaneously even be used for.Particularly, the present invention be intended to make in these operating systems an operating system (for example, real time operating system) can under the situation that does not have interference, carry out, and the computed surplus resources of another operating system (for example, the general-purpose operating system) is carried out as far as possible well.
Therefore, in one aspect, the invention provides a kind of system, wherein carried out revising a little and providing the common program of dispatching to a plurality of operating systems between them, an operating system in these operating systems (" master " or " key " operating system) is preferential with respect to another operating system (" assisting " or " non-key " operating system).Preferably, the present invention is to this key operation system priority allocation hardware, and refusal can with the visit of one or more auxiliary operation system of the visit interference of this key operation system.Preferably, even this auxiliary operation system request visit, the present invention also uses this key operation system driver to visit shared resource.Yet this key operation system will never be as this auxiliary operation system of " RUN " in US 5995745; Therewith other system of operation is all ignored by each system, and only with agency (broker) common program (corresponding with the nanokernel of prior art) of the visit of the driver of this key operation system is communicated.
Preferably, auxiliary operation system is modified to and makes them can not shield interruption, and their Interrupt Service Routine is revised as makes them produce the message of interrupting to expression to respond.This common program is handled all hardware anomalies by sending hardware anomalies the Interrupt Service Routine of master operating system to, and under the situation of hardware interrupts at one of auxiliary operation system, generates interrupt message or notice.When this common program is dispatched auxiliary operation system next time, transmit this message or notice to it, and this common program is called its Interrupt Service Routine so that this interruption is served.
Therefore, auxiliary operation system can not be seized the master operating system auxiliary operation system of higher importance (or be generally) by any way under the situation of produce interrupting, this is because all interruption are all handled by master operating system at first, and only master operating system finish carry out and auxiliary operation system dispatched after just with these interrupt notification to auxiliary operation system as the destination of these interruptions.
Postponed the processing of these interruptions like this, till in master operating system, mission critical not occurring.Yet when these interrupted finally coming into force, the routine of auxiliary operation system can be operated according to the mode that does not have basically to change, thereby performance (except postponing) is as auxiliary operation system is desired.
Others, embodiment and preferred feature and corresponding advantage will be understood according to the following description book, claim and accompanying drawing.
Description of drawings
Only embodiments of the invention are described below with reference to accompanying drawings in the mode of example, in the accompanying drawing:
Fig. 1 is the block diagram that expression can be carried out each unit of computer system of the present invention;
Fig. 2 a is the view of expression software arrangements of the prior art; And
Fig. 2 b is the respective view of expression according to software arrangements of the present invention;
Fig. 3 is the computing machine that the is expressed as Fig. 1 process flow diagram in each stage when creating the software of Fig. 2 b;
Fig. 4 represents the ingredient of hardware resource allocator (dispatcher) of the part of pie graph 2b;
Fig. 5 is illustrated in the program of using in guiding and the initialization sequence;
Fig. 6 is illustrated in the system memory map of using in guiding and the initialization process;
Fig. 7 represents from the transition of master operating system to auxiliary operation system;
Fig. 8 represents from the transition of auxiliary operation system to master operating system;
Fig. 9 a represents according to the communication between the application program of moving on the different operating system of the present invention;
Fig. 9 b represents according to the communication between the application program of moving on the different operating system on the various computing machine of the present invention;
Figure 10 represents the example of main virtual address space, auxiliary virtual address space and nanokernel virtual address space;
How in time Figure 11 represents switchable memory context (memory context);
Figure 12 represents the contextual viewable portion of nanokernel; And
Figure 13 represents to carry out flow process and how to use the nanokernel storehouse to make it possible to carry out Interrupt Process and main kernel reenters (re-entrance).
Embodiment
Introduce
System hardware
The computer system 100 that can use native system comprises: CPU (central processing unit) (CPU) 102, and for example can be from the Pentium 4 of Intel Corporation acquisition TMCPU or the PowerPC CPU (both having been realized embodiment) that can obtain from Motorola, this CPU (central processing unit) 102 is connected with ROM (read-only memory) (ROM) chip 106 by system bus 104 (comprising control, data and address bus); One group or more groups of (bank) random-access memory (ram) chips 108; Disk controller device 110 (for example, IDE or scsi controller, it is connected with floppy disk, hard disk drive and such as the additional removable media drive of DVD driver); One or more input/output end port 112 (for example, one or more USB port controller, and/or be used for the parallel port controller that is connected with printer etc.); Be used for carrying out the expansion bus 114 (for example, pci bus) that bus is connected with outside or inner peripheral hardware; And other System on Chip/SoC 116 (for example, figure or sound device).Such computing machine be exemplified as computing machine (PC) and workstation.Yet, also disclose here and applied the present invention to other computing equipment, for example embedded computer in large scale computer, the control system and PDA (some in the omissible in this case shown device, for example disk drive controller).
The management of software
With reference to Fig. 2 a, in use, the computing machine of Fig. 1 100 operation resident programs, these resident programs comprise: operating system nucleus 202 (it provides to other device shown in Figure 1 can be by the output routine of CPU visit); Operating system user interface or presentation layer 204 (for example X Windows); Middleware layer 206 (providing network software and agreement, for example the TCP/IP stack); And application program 208a, 208b, it moves by calling the API routine that constitutes operating system nucleus 202.
This operating system nucleus has a plurality of tasks, particularly:
Scheduling (that is, between the different application of moving, sharing CPU and related resource);
Memory management (that is, and to each Task Distribution storer, and under the situation of needs, data in swapping memory and the disk drive and program);
File system is provided;
Visit to equipment (passing through driver usually) is provided;
Interrupt Process;
Application program provides application programming interface, so that can be carried out with system resource and user alternately.
For Unix, kernel can be so-called " single kernel ", and device driver constitutes the part of this kernel itself in this case.Alternatively, for Chorus, kernel can be " micro-kernel ", and device driver is independent of kernel in this case.
Then in use, when starting computing machine 100, be stored in the bootstrap routine accesses disk controller 110 among the ROM 106, partly read the RAM 108 with the file processing of the part of the permanent storage from dish with operating system, the remainder with operating system is loaded in the zone of RAM 108 then.Operating system reads Any Application by disk controller 110 from disk drive then, is each application assigned space in RAM 108, and with each application storage in the storage space that it distributed.
In the operating period of application program, the scheduler program of operating system part is divided CPU according to scheduling strategy between different application use is so that each application program is shared the time of processor.Application program that this scheduler program part also is of little use by " swapping out " or data (that is, and with them from RAM 108 removals with Free up Memory, and they are stored on the dish) come the use of diode-capacitor storage resource.
At last, from the routine of application call formation application programming interface (API), with the function of execution such as input and output, and the interrupt handling program of operating system responds interruption and incident.
The general introduction of the principle of preferred embodiment
In a preferred embodiment, each operating system 201,202 that will use on computing machine 100 is rewritten a little, and create new lower-level program 400 and (be referred to herein as " hardware resource allocator ", and be called as " nanokernel " sometimes, although it is not the kernel of operating system).Hardware resource allocator 400 is specific for the particular type of CPU 102, and this is to carry out alternately because of it and processor.Owing to will become apparent, the version 2 01,202 of modified operating system also is the operating system for hardware specific.
Hardware resource allocator 400 itself is not an operating system.It does not carry out alternately with application program, and has very limited function.It neither virtual machine; In order to cooperate, it needs the retouching operation system, although it has left most processing for operating system itself, these operating systems are moved their code on processor.
Basic function below hardware resource allocator 400 is carried out:
Load and start in a plurality of operating systems each;
Be each allocate memory in these operating systems and other system resource;
(that is, divide CPU time between them, and manage the switching between them) dispatched in operation to different operating system;
Provide carrying out " virtual equipment " (making equipment " virtual ") of dereference by those system equipments of operation systems share;
Between these operating systems, provide communication link, so that application program can move, to communicate each other on different operating system.
This embodiment does not treat these operating systems equably.But with a selection in these operating systems as " key " operating system (this will be described real time operating system), and another or each other operating system is considered as " non-key " or " assisting " operating system (this will be described or each general-purpose operating system, for example Linux).
When design hardware resource allocator, it is provided with to free system resources (promptly, equipment and storer) data structure (for example table) of tabulating, so that system equipment as much as possible can static be distributed in these operating systems one or another uniquely.
For example, can distribute the parallel printer port statically to the general-purpose operating system 202 that frequent operation need produce the application program of printer output.On the other hand, can for good and all distribute ISDN digital line adapter port to communicate to real time operating system 201.In the case of any possible, this static allocation of equipment means that each operating system can use its existing driver to visit the equipment of static allocation and need not to call the hardware resource allocator.Therefore, not loss aspect the execution speed of these equipment of visit (if will there be this loss in these equipment when being used as virtual machine or emulator).
Under the situation of necessary shared system equipment, the hardware resource allocator is virtual to by non-key operating system the use of these equipment being carried out, and uses the driver that offers the key operation system to conduct interviews.Similarly, in order to carry out Interrupt Process, send interruption to the key operation system break and handle routine, this routine is handled interruption (if this interruption is at key operation system) or by the hardware resource allocator its transmission is gone back to be transmitted to non-key operating system (if this interruption is at non-key operating system).
In when guiding, loaded with hardware resource allocator at first, it loads each operating system according to predefined procedure then, from the key operation system, is this auxiliary operation system or each auxiliary operation system then successively.To its required resource of key operation system assignment, and this key operation system has fixing storage space according to described table, to operate therein.Distribute its required resource and storage space to each auxiliary operation system successively from available surplus resources then.
Therefore,, distribute its oneself storage space, and by provide unique static device to distribute to these operating systems, make the resource of using by these operating systems separate as much as possible physically by being respectively these operating systems according to this embodiment; Only share essential sharing equipment.
In operation, hardware resource allocator scheduler program allows the key operation system to operate till it finishes its task, successively control is sent back then to each non-key operating system, till producing next interruption or incident.
Therefore, this embodiment allows the multiple operating system environment, the operation of wherein key operation system in fact constant (because it uses its original drivers, and first visits any interruption and event handling).Auxiliary operation system can be operated in the time effectively at remaining processor, and this is because in most of the cases they will use their own original drivers and visit a plurality of system equipments exclusively.At last, because the hardware resource allocator is only handled limited function,, thereby can save system resource so hardware resource allocator itself can be very little program.
Because the preferred embodiment only relates to the limited change to normal business operating system (they have been applicable to specific computing machine 100), thus the preferred embodiment create and safeguard aspect also be economical.In addition, owing to being limited to, the change to operating system handles for example specific file of architecture of the affairs of Interrupt Process, and be connected with the computing machine 100 of particular type and the structure can not resemble the initialization that changes continually the remainder of operating system the time, so the redaction that makes the same operation system adapt to the mode of multiple operating system carry out having seldom aspect the work or not work to do.
The detailed description of the preferred embodiment
In this embodiment, computing machine 100 is Intel 386 series processors (for example Pentium processor) and Motorola PowerPC 750 (Reduced Instruction Set Computer or " RISC ") computing machine (step 302).Key operation system 201 be C5 operating system (the real-time micro-kernel of Jaluna-1, the ChorusOS system the 5th generation the open source code version, can obtain open source code from http://www.jaluna.com free download).
In step 306, ChorusOS operating system nucleus 201 is made amendment, under the multiple operating system pattern, to operate, with the mode identical with being transplanted to new platform handle (that is, write new integrated circuit board support package so that can be by identical CPU but different system equipments on new computing machine, carry out).Guiding and initialization sequence are revised as the permission real time operating system start, rather than initiate self by the hardware resource allocator in the storage space that it distributed.The hardware search phase to initialization sequence makes amendment, and distributes to the hardware resource of other backup system to prevent the visit of key operation system.The key operation system reads the static hardware allocation table to detect its available equipment from the hardware resource allocator.
Add trap to the key operation system and call 2012, ask some action with detected state and when responding.Trap is invoked at this and is meant that making processor preserve current context (for example, the state of register) also loads new contextual calling.Therefore, under the situation of using virtual storage addressing, changed address pointer.For example, when real time operating system 201 arrives terminating points (and stopping the request processor resource), control can be sent back the hardware resource allocator, and send " free time " trap and call, to start auxiliary operation system.Many processors all have " stopping " instruction.In some cases, only supervisor level code (for example operating system rather than application program) just can comprise this " stopping " instruction.In this embodiment, system all rewrites to all operations, replaces with when being called with removal " stopping " instruction and with them and sends " free time " routine (for example, execution thread) that " free time " trap calls.
Some drivers of integrated circuit board support package help the hardware resource allocator to carry out virtual to the shared device that is used for auxiliary operation system especially.
Add additional " virtual " driver 2014, should show as the visit that provides I/O (I/O) bus for operating system by " virtual " driver 2014, make it possible to the bus write data.In fact, virtual bus driver 2014 uses storer as communication media; Some private memories of its derivation (export) (being used to import data) also import the storer (being used for output data) that (import) derived by other system.Like this, operating system 201 (or application program of moving on operating system) can transmit data to another operating system (or application program of moving) thereon, is two operating systems moving on the stand-alone machine that is connected by true I/O bus as them.
Select (step 308) for having the Linux (step 308) of kernel version 2 .4.18 auxiliary operation system 202.
In step 310, auxiliary operation system kernel 202 is revised as making it under the multiple operating system environment, to operate, this multiple operating system environment is regarded as new hardware architecture.As in step 306, guiding and initialization sequence are made amendment, allowing auxiliary operation system to start, and prevent that its visit from distributing to the hardware resource of other system (as specified in hardware resource allocator table) by the hardware resource allocator.As in step 306, add trap and call 2022, control is sent to the hardware resource allocator.
Original driver that will be used for shared system equipment replaces with and is used for handling the newer driver 2028 of having been carried out virtualized equipment (interruptable controller, I/O bus bridge, system timer and real-time clock) by the hardware resource allocator.These drivers are carried out the calling of the virtual unit handling procedure 416 of hardware resource allocator, and carry out some operation with each equipment to computing machine 100.This virtual unit handling procedure 416 of each of hardware resource allocator matches with " equity " driving routine in the key operation system, and this routine is used for directly carrying out alternately with system equipment.Therefore, will give the reciprocity driver that is used for this virtual equipment in the critical system to the relaying that calls of virtual unit handling procedure, to carry out actual device access.As in step 306, be provided for the read-write driver 2024 of virtual i/o bus, communicate by letter between operating system so that can carry out.
Interrupt Service Routine to auxiliary operation system is made amendment, so that a plurality of virtual Interrupt Service Routines 2026 to be provided, 2026 pairs of corresponding virtual interruptions of each virtual Interrupt Service Routine (for the form of being sent by the interrupt handling program 412 of hardware resource allocator of calling) respond, and actual interrupt or incident are not responded.Also the routine (comprising Interrupt Service Routine) of auxiliary operation system is revised, to remove the shielding (at least in all operations) of hardware interrupts except key operation.Like this, therefore key operation system 201 seizes auxiliary operation system 202 etc.; In other words, can interrupt by the actual interrupt of key operation system 201 the auxiliary operation system response of virtual interruption itself.This generally includes:
Shield/deshield incident (interruption of processor level);
Preservation/recovery event mask state;
Identification interrupt source (interruptable controller equipment);
Shield/deshield the interruption (interruptable controller equipment) of source class.
Add new virtual device driver 2028, be used to visit the hardware device of being shared (I/O bus bridge, system console, system timer and real-time clock).These drivers are carried out the calling of the virtual unit handling procedure 416 of hardware resource allocator, and write data or from its reading of data with each equipment to computing machine 100.
For realizing this operation, the new virtual hardware resource allocator architecture subtree (nk-i386 and the nk-ppc that are used for I-386 and PowerPC variant) that has a small amount of modified file by interpolation is revised linux kernel 207 in this embodiment.Utilize unaltered file again with original form.Keep original subtree but do not use.
In step 312, write hardware resource allocator 400.The hardware resource allocator comprises the code of the routine that is provided for following function (as shown in Figure 4):
Guiding and initialization self (402);
Storage is used for the tabulation of storage hardware resource (such as the equipment of port) and represents that each resource is by unique table (403) of distributing to the distribution catalogue of which operating system;
The key operation system (404) of hardware resource allocator allocation table has been finished in guiding and initialization;
Guiding and initialization auxiliary operation system (406);
Between operating system, switch (408);
Between operating system, dispatch (410);
Handling interrupt (use the real time operating system Interrupt Service Routine, and supply desired data) (412) to the virtual Interrupt Service Routine of auxiliary operation system;
Processing is called (414) from the trap of each operating system;
Processing is from the visit to shared device (416) of auxiliary operation system;
Processing between the operating system on the virtual i/o bus, communicate by letter (418).
In further embodiment (describing below), can also provide the system debug framework.
Operating system changeover program 408
In order to switch to another operating system from an operating system, operating system changeover program 408 is provided, current to preserve just at " context " of executive operating system (currency of state variable set, for example register value); Recover the context of being stored of another operating system; And call this another operating system and restart to carry out with the place of ending therein.Use at processor under the situation of multistage storer and virtual or indirect addressing technology, the exchange storage is for the register or the data structure of the pointer in current storage space thus.For example, operating system is operated in these spaces that limited by the context that comprises for the pointer value of these different storage space respectively.
Particularly, this changeover program provides:
When current operation system is idle, the operating system of being dispatched to the next one from the explicit switching of the current operating system of moving (for example, trap calls); And
When producing hardware interrupts, switch to the key operation system from auxiliary operation system implicit expression.
As described below, these switchings can be called or generation when actual or virtual interruptions at trap.
Scheduler program 410
Scheduler program 410 distributes the part of available processes in the time to each operating system by select the next auxiliary operation system (if having more than one auxiliary operation system) that will switch to after withdrawing from another operating system.In this embodiment, select each operating system based on fixing priority scheduling.Here also can consider other embodiment, these embodiment allow the standard based on timesharing or the minimum percent of assurance processor time.Yet in all cases, the key operation system is only seized when being in idle condition.
In a further embodiment, the key operation system can notify scheduler program 410 clearly when it can be seized, thereby allow some the visit CPU in all auxiliary operation systems, have the task of the priority higher with execution than still in critical system, moving of task.Therefore, in one example, the Interrupt Service Routine of key operation system can not be seized, so that the key operation system can respond external event or the timing signal from real-time clock all the time, to keep true-time operation.
The processing virtualization processor is unusual
The hardware resource allocator is provided for providing the following mechanism that processor unusual (for example, CPU interrupts or coprocessor interrupts) is handled:
At first, unusual by key operation system intercepting processor;
Secondly, it is unusual to send corresponding virtual to one or more auxiliary operation system; Store this data, and when scheduler program calls this auxiliary operation system, call the corresponding virtual Interrupt Service Routine 2026 in this auxiliary operation system next time;
The 3rd, shield or deshield virtual unusual from any wait in the auxiliary operation system.What be virtualized is generally used for two different purposes unusually:
At first, to auxiliary operation system forwarding hardware device interrupt (transmitting these hardware devices unusually as asynchronous processor interrupts);
Secondly, realize that intersection is interrupted between operating system, i.e. the interruption (as transmitting these interruptions synchronously unusually) that another interruption is generated by a system.
Trap calling processor 414
The operation of trap calling processor will become clear according to following description.Its fundamental purpose is to allow scheduler program and changeover program to change to another operating system when stopping (and therefore not needing cpu resource) in first operating system.Another effect is the hardware resource allocator service of calling such as system console, with the debugging of the embodiment associated description of back in use.
Virtual equipment 416
As mentioned above, for each shared device (for example, interruptable controller, bus bridge, system timer, real-time clock), each operating system all provides the device driver to the set of grade driver that is configured for this device.This real time operating system is provided for the driver of this equipment of actual access, and other operating system provides virtual device driver.
The shared device handling procedure 416 of hardware resource allocator provides store data structure for each equipment, conducts interviews with all the peer device drivers by this device.When to be visited or when having visited this equipment, device driver uses the details of this visit to update stored in data in the corresponding data structure.The equity driver uses intersection interruption (as mentioned above) to come to send incident by signal, has just upgraded data structure to notify other peer device.
Be used to visit the above-mentioned next following processing hardware interruption of virtual abnormal mechanism of driver use of interruptable controller equipment:
Key operation system equipment driver is handled hardware interrupts, and they are assisted reciprocity driver as virtual being transmitted to unusually;
Auxiliary operation system interrupts effectively with invalid by using the above-mentioned virtual unusual shielding and the routine of deshielding to make.
If the equipment that is connected with the I/O bus is not all distributed to same operating system, then only must share I/O bus and their bridge.Therefore, when distributing equipment, give same operating system with the devices allocation that will be connected with same I/O bus as much as possible.Under the situation that needs are shared, which resource is the descriptive data of resource allocation table 404 distribution of storage representation resource on bus (address space, interrupt line and I/O port) have to represent which operating system.
The realization of embodiment
At last, in step 314, the code compile that will be used for hardware resource allocator and operating system is the radix two computer program product of distributing that offers computing machine 100.
The product that can provide according to an aspect of the present invention is the development environment product, it comprises following computer program, this computer program makes the user can select different operating system to be used, for different application programs is set up and selected to each operating system, this application program and operating system are embedded in the referable product, and are used for the binary code carried out of pilot operationp system and startup application program.This based on and be similar to the C5 development environment that can obtain from www.jaluna.com.
The operation of this embodiment during guiding and initialization
With reference to Fig. 5, following execution is according to guiding and the initialization process of this embodiment.
When beginning to power, carry out the bootstrap routine (" trampoline ") 4022 that is stored among the ROM 106, this bootstrap routine startup is used for the remainder of hardware resource allocator 400 is attached to the program 4024 of storer, and starts this program to transmit the data structure (as described below) of descriptive system reflection structure as independent variable.
The string line that the hardware resource allocator will can be used for system console carries out initialization.Then, this hardware resource allocator is followed successively by each operating system allocate memory space (operating system environment), and from key operation system start-up.Therefore the hardware resource allocator is as level two boot kernel loading procedure.
Then, each operating system nucleus is through its own initial phase, and selection and starts its initial service and application program for the exclusive resource of this operating system in all the other resources of those in resource allocation table 404.
Fig. 6 represents the example of the memory allocation of construction system reflection.When compiling hardware resource allocator and operating system, the position in the allocate memory.The set of these positions in the storer defines system image shown in Figure 6.This system image comprises: first memory block (bank) 602, and the hardware resource allocator is positioned at this memory block; Second memory block 604, real time operating system is positioned at this memory block; The 3rd memory block 606, auxiliary operation system is positioned at this memory block; And the 4th memory block 608 among this embodiment, the ram disc that comprises the root file system of auxiliary operation system (Linux) is positioned at this memory block.
This system image is stored in permanent storage (for example, be used for such as the typical real-time clock of mobile phone or PBX ROM (read-only memory)).All the other memory blocks can be used for distributing to each operating system, the environment that can load therein and run application as this operating system.
Be operating system context allocate memory
When guiding, each operating system is distributed the memory portion of replenishing subsequently, to satisfy the total big or small needs of himself constructing.In case operating system has been distributed the memory portion of replenishing, has just used the physical memory management scheme of operating system itself to manage these memory blocks.All other storeies are ignored by this operating system.
Virtual memory is distributed
For each operating system has been distributed independently virtual memory space, can be not interfering with each other or disturb to guarantee operating system with the hardware resource allocator.The user address space of each operating system (promptly, scope) and supvr's address space (promptly, scope) distributed different Memory Management Unit (MMU) context identifier (ID) respectively, this identifier makes it possible to distinguish the different virtual storage space with overlapping address.When each operating system of compiling, distribute MMU context ID (step 314 of Fig. 3) to each operating system.
This scheme has avoided refreshing translation cache when the hardware resource allocator switches between different operating system (this refreshes can the extra time of cost for translation cash, needs TLB).On the contrary, the MMU context ID by storing current operating system of operating, and the previously stored MMU context ID of two operating systems being switched of readjustment are realized the switching between the different operating system.
The distribution of input-output apparatus
As mentioned above, which equipment that distributed uniquely to each operating system of allocation table 404 expression.In addition, table 404 expression has distributed which I/O resource (direct memory access (DMA) (DMA) equipment, input/output end port, interruption etc.) exclusively to these equipment, therefore allows directly these resources of use and without any conflict.Usually, many equipment are repetitions, so can reduce potential conflict basically like this.
This distributes based on operating system structural scheme (for example, under the situation of C5, appointed equipment in device tree).According to boot sequence they are distributed to operating system in when guiding, so that the key operation system available devices in the option table 404 at first, and auxiliary operation system is received in the middle of all the other equipment the distribution to them successively.When each operating system is carried out initialization, detect the existence of these equipment and they are used its original driver and do not carry out alternately with the hardware resource allocator.
" heat " of auxiliary operation system restarts
According to present embodiment, can when continuing operation, other operating system restart auxiliary operation system (for example, because collapse).Because the independence of system resource, so the collapse of auxiliary operation system can not interfered the ongoing operation of key operation system (or other auxiliary operation system), and this auxiliary operation system restart the ongoing operation that also can not interfere key operation system (or other auxiliary operation system).
In this embodiment, the system of hardware resource allocator " is stopped " and " startup " trap calls help to stop and restarting auxiliary operation system in the key operation system.In addition, the hardware resource allocator is preserved the copy of primal system reflection in the permanent storage in hardware resource allocator allocate memory when guiding.As example, following hot restart among this embodiment is managed:
When initial start, the hardware resource allocator is preserved the copy of auxiliary operation system memory mapping.
The key operation system comprises that the software watchdog of the operation that is used for monitoring periodically auxiliary operation system (for example drives routine, by setting overtime and waiting for the incident that triggers by the reciprocity driver that in auxiliary operation system, moves, to check their continuation operation).
If the key operation system detects auxiliary operation system and is out of order or stops, then it triggers (this auxiliary operation system) to the hardware resource allocator and " stops " trap and call, and triggers (this auxiliary operation system) " startup " trap then and calls.
Then, the hardware resource allocator recovers the copy of being preserved of this auxiliary operation system reflection, and restarts this auxiliary operation system according to storer, to restart.Can find that when embodiment tested, the Linux auxiliary operation system can in seconds be restarted from lock-out state.
In others, hot restart is based on that hot restart available in the Chorus operating system carries out, for example described in the following document:
Can be from " the Fast Error Recovery in CHORUS/OS.The Hot-RestartTechnology " of http://www.jaluna.com/developer/papers/CSI-TR-96-34.pdf acquisition, Abrossimov, people such as F.Hermann.J.C.Hugly, Chorus SystemsInc.Technical Report, in August, 1996,14p.
(run-time) operation during operation
To be described in greater detail in below and install and the guiding operation of present embodiment afterwards.
Guide with initialization after, real time operating system (is for example being moved one or more application programs 207, the UDP/IP stack, UDP/IP represents universal datagram protocol/Internet protocol), and auxiliary operation system is moving a plurality of application program 208a, 208b (for example, word processor and electronic chart program).Real time operating system micro-kernel 201 and auxiliary operation system kernel 202 communicate by hardware resource allocator interface and hardware resource allocator, and this hardware resource allocator interface comprises:
The contextual data structure of expression operating system (that is, need be saved and recover), and hardware storehouse (hardwarerepository) to switch to the state variable set of this operating system;
The function set of in operating system environment, carrying out; And
The trap calling routine set of in hardware resource allocator environment, carrying out.
If operating system does not need the processor time (for example, all being in " wait " state), then hardware resource allocator 400 switches to the idle thread of key operation system, and wherein it is waited for and interrupting or incident.Therefore, can handle interrupting immediately by the service routine of key operation system, and need not at first to switch to the key operation system.
In some cases, will produce interruption or incident.For example, can receive packet, cause interrupting, so that this interruption is handled by the real time operating system of carrying out the UDP/IP stack in FPDP.Alternatively, the user can handle keyboard or mouse, causes interrupting, thereby carries out alternately with word-processing application 208 with the GUI of operation auxiliary operation system 202.Alternatively, system clock can be indicated and passed through the schedule time, and should begin to re-execute application program or should the executive operating system function.
Then, key operation system service routine is as described below serves interrupting.
Interrupt and event handling
If not in the key operation system, then hardware resource allocator interrupt handling routine 412 call operation system changeover programs 408 are to switch to the key operation system, and interrupt handling routine routine 412 is called the Interrupt Service Routine (ISR) in the key operation system 201 then.If should interrupt, then because it is from unique equipment of distributing to the key operation system or because it is from shared device and have specific predetermined value, so the ISR of key operation system takes the required action of handling interrupt at the key operation system.Then will control passback and give the hardware resource allocator not at the key operation system if should interrupt.
The key operation system is to the switching of auxiliary operation system
With reference to Fig. 7, for this example, system is carrying out the thread 702 of the application program 207a of operation in key operation system 201.
If produced interruption, then key operation system break service routine 704 carries out break in service.When stopping, control is returned any other thread of giving thread 702 and carrying out by the scheduler program of key operation system 201.When the processing finished all threads, the key operation system finishes execution, and dispatches its " free time " thread.Therefore, " free time " the trap routine in the key operation system sends " free time " trap to hardware resource allocator 400 and calls.Then, the hardware resource allocator is carried out the routine of carrying out following processing:
Have the virtual interruption that some are stored if interrupt handling routine 412 is current, then interrupt handling routine 412 is transmitted to auxiliary operation system with these virtual interruptions.
Hardware resource allocator operating system dispatcher 410 is selected pending auxiliary operation system 202.Operating system (OS) changeover program 408 is kept at current context (being generally processor MMU and status register, instruction and stack pointer) in the crucial OS context memory block 706 subsequently.OS changeover program 408 is retrieved the execution context of being stored 708 of auxiliary operation system 202 subsequently, and they are write in the relevant register.
If have virtual interruption for relevant auxiliary OS, then interrupt handling routine 412 calls the related interrupts service routine 710 that being used in the auxiliary operation system serve interrupting, and returns when finishing then and carries out the thread 712 that auxiliary operation system stops to locate.
If using the institute's program stored Counter Value in the operating system context that is recovered to make auxiliary operation system stop place's (be thread 712 places in this example) at it, the interrupt handling routine 412 current interruptions that do not have wait, the hardware resource allocator of then operating changeover program 408 restart execution.
Therefore, having carried out a certain function in key operation system 201 (serves its oneself application program or service, perhaps the interruption at another operating system is served) afterwards, determined as scheduler program 410, the hardware resource allocator will be controlled passback and give next auxiliary operation system 202.
Auxiliary operation system is to the switching of key operation system when interrupting
With reference to Fig. 8, below will be openly from the conversion process of auxiliary operation system to the key operation system.In this example, system is carrying out the thread 712 of the application program 208a of operation in key operation system 202.
When having produced hardware interrupts, the hardware resource allocator starts the OS changeover program, so that the auxiliary operation system context is kept in the context memory block 708.The hardware resource allocator switches to master operating system 201 then, from context storage area 706 value of variable that returns to form, and calls the Interrupt Service Routine 704 of master operating system 201.To after interrupting serving, the scheduler program of master operating system 201 can from ISR 704 will control passback give before any thread 704 (or pending thread) of execution.
When ISR has been carried out processing with all threads, master operating system 201 will be controlled passback and give the hardware resource allocator, this hardware resource allocator switches (state variable be kept at context storage area 706) with reference to the described mode of Fig. 7 from master operating system 201 with top, and switches to selected auxiliary operation system 201 (obtaining state variable from context storage area 708).
Communication one virtual bus 418 between operating system
In each operating system, the virtual bus routine is cooperated with the virtual bus driver.The physical bus of its emulation attended operation system is similar to the cPCI plate that is inserted in Compact PCI (cPCI) backboard.Each operating system all has the driver routine of the virtual bus bridge device that is used on this virtual bus, communicates by any desired agreement (from original data transmissions to complete IP stack) to allow operating system and application program thereof.
Hardware resource allocator virtual bus interrupts principle based on the top shared storage of having discussed and system's intersection.Particularly, virtual bus routine 418 emulation C5 buscom DDI: limit the syscom of virtual bus bridge shared device, making it possible to derives (sharing) storer and trigger the intersection interruption in other operating system at whole virtual bus.
In each auxiliary operation system, each virtual bus driver generates this virtual bus bridge in hardware resource allocator hardware storehouse when starting.Like this, the zone of its private memory of its derivation (sharing), and the method that produces interruption in its host computer system is provided.
Like this, the virtual bus driver of first operating system sends data by following processing to second operating system:
Be written in the storer of deriving, then by the reciprocity virtual bus driver of second operating system;
Trigger to intersect and interrupt to obtain data for the reciprocity bus driver in second operating system with notice.
On opposite (input) direction, the virtual bus driver has been stored in intersection in its own derivation memory area when interrupting receiving this data of expression, upstream propagate import data (with by its at application program or routine use).
With reference to Fig. 9 a, the application program 208a that communicate with the Another Application program 208b of operation on same operating system 202 can realize this operation by this operating system.The application program 207b of operation on an operating system 201 that will communicate with the Another Application program 208b in operation on the different operating system 202 can write data to virtual bus by the API that uses its operating system and carry out this operation, this operating system uses virtual bus driver routine to send these data to another operating system 202, and this another operating system sends these data to application program 208b from its virtual bus driver.
With reference to Fig. 9 b, be that wherein the required variation of the structure moved on different computing machine 100,101 of first and second operating systems is very little with this Structure Conversion; Only need to change the employed driver of operating system, so that they are used for the driver rather than the virtual bus driver of actual bus 103.Therefore, make this system more be independent of its operated hardware.
Application program can communicate by hardware resource allocator virtual bus, and this communication can internally be used by operating system nucleus, thereby they can be cooperated when being implemented in the service that distributes between a plurality of operating systems.The service that this " intelligence " distributes comprises the software watchdog that is used for (above-mentioned) system hot restart, perhaps distributed networking protocol stack.
Debugging
In a preferred embodiment, the hardware resource allocator has second operator scheme, and wherein this hardware resource allocator is as debugging proxy.
According to this embodiment, under this second pattern, the hardware resource allocator can communicate by serial communication line and the debugging software instrument of going up operation at another machine (" master " machine).
This debugging acid provides advanced figure user interface (GUI), so that the hardware resource allocator is carried out Long-distance Control.It is defined unusual to use the virtual abnormal mechanism of hardware resource allocator to intercept.The user can construct and be controlled at how the hardware resource allocator moves under the unusual situation of processor then, and display device and system state, so that can diagnostic code or other system mistake or problem.
The user can select the unusual basis of calling as the trap from operating system to the hardware resource allocator of one or more sort processor.Based on selected unusual, when the term of execution produce described or each is when unusual, operating system stops, and the hardware resource allocator is carried out trap call, then this hardware resource allocator preserve current context and make it possible to main frame on debugging acid carry out alternately.The user can be so that the current state of show state variable (for example stack pointer, program and address counter) and/or the content of selected memory block then.The user can specify in the unusual of the given type that should hold back in the specific operation system to be debugged, perhaps can specify in any operating system the unusual of the given type of whenever holding back that should occur at their.When response, only realize that an operating system or in all operations system trap calls.The user also can specify when restarting to carry out to system normally pass issue decide type ignore the unusual of given type unusually or simply.
Because the hardware resource allocator is carried out in its oneself environment, so compare with the debugging that can carry out in operating system, it can more be debugged this operating system.Importantly, as shared code between the hardware resource allocator of debugging proxy and the system of being debugged.This for example makes it possible to debugging even kernel low level code, for example exception vector or Interrupt Service Routine.
According to describe in some others of this embodiment overall (master/target) debugging architecture and the document below to be used for Chorus similar with the architecture of C5 debug system, the document is delivered " C5 1.0 Debugging Guide " by Jaluna, and it can obtain from http://www.jaluna.com/doc/c5/html/DebugGuide/book1.html.
Security Architecture
Be noted that the foregoing description has provided the solid foundation of Security Architecture.This is because user's non-security application of operation on auxiliary operation system usually, and this auxiliary operation system and specific system resource are isolated, thereby can only conduct interviews to them by hardware resource allocator (with the driver of master operating system).Therefore, security application can move on master operating system, and it for example carries out encrypt/decrypt; Make it possible to visit encrypt file; Manage, store and provide password and other visit information; The management and the login copyright material visit and duplicate.The application program of moving on auxiliary operation system can not be visited the system resource of not distributing to this operating system, and with different memory context operations (for example in operating system, the addressing different pointer of use sensing different spaces) under the situation, can not be used to intervene the application program of on main system, moving in the application program of moving on the auxiliary operation system, thereby weaken the security of its operation.
This part has described the present invention based on PowerPC (" PPC ") architecture, as the example of Reduced Instruction Set Computer (RISC).In order to understand this known architecture aspect the background, incorporate following document by reference into:
" PowerPC Microprocessor Family:The Programming Environmentsfor 32-Bit Microprocessors-Software Reference Manual " (publishing) by IBM Inc., publish numbering: G522-0290-01, revision day: 02/21/00, can download from following address: http://www.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF7785256 99600719DF2.
Below, as nanokernel (in nonrestrictive mode) hardware resource allocator is described.This part concentrates on the PPC special aspects that nanokernel is implemented, and particularly, concentrates on the nanokernel executive routine as the basis of ultra micro environment.
This part has been described and how to be used the PowerPC processor architecture to realize the nanokernel executive routine, this nanokernel executive routine can move a plurality of independently operating systems, and these operating systems can be shared CPU (central processing unit) and association's processing unit (CPU and FPU) and Memory Management Unit (MMU) concurrently between these operating systems.
This part has also been described the nanokernel executive routine, and how processing hardware is interrupted.Particularly, described and be used to intercept hardware interrupts and with its mechanism of transmitting towards master operating system and be the software interruption mechanism of auxiliary operation system setting.
Should be noted that in the document, suppose that nanokernel moves on single-processor computers, therefore here do not relate to and symmetric multi processor (smp) architecture related aspect.
General introduction
Virtual address space
For the PowerPC architecture, nanokernel is always effectively moving in (physics) address space.In other words, MMU is always invalid, and processor moves with real pattern when carrying out the nanokernel code.
In this instructions, term " memory context " expression PowerPC virtual address translation context:
16 of appointment virtual segment identifiers (VSID) set in segment register
Page table entries (PTE) set
Figure A20048003540700283
The block address of appointment conversion set in the BAT register.
Usually, the operating system of supporting user model to handle is created a plurality of memory context (each user handles), can handle the private subscribers virtual address space.This kernel is handled to switch to from a user each time and is changed memory context when another user handles.In addition, this operating system nucleus is also handled unique supvr's address space.For the PowerPC architecture, user and supvr's virtual address can be overlapping.
Supvr's address space reflection can be static state or dynamic.Frozen image is created when system initialization, and its (all or part of) available physical memory of videoing usually.This reflection also is called as one to one or kernel virtual (KV) reflection, and uses PowerPC block address change the mechanism (BAT) usually.Particularly, the KV reflection covers kernel code, data and bss part usually.Dynamically reflection is created when operation, with the kernel module of visit dynamic load or (discontinuous) storage block of dynamic assignment.
Under the nanokernel environment, distinguish three kinds of memory context: main and auxiliary helping and nanokernel.
The primary memory context is the current memory context of being used by main kernel.Should be noted that at master operating system and support under the situation of user address space, have a plurality of memory context of using by main kernel, but as described above, supvr's address space is unique.Because nanokernel also is indifferent to user's reflection, so from the angle of nanokernel, the primary memory context is unique, and it comprises static state and the dynamic management person's reflection of being created by main kernel.
The supplementary storage context is the current memory context of being used by auxiliary kernel.Equally, support under the situation of user address space to have a plurality of memory context of using by auxiliary kernel, but have only supvr's address space at auxiliary operation system.Therefore, from the angle (for given auxiliary kernel) of nanokernel, the supplementary storage context is unique, and comprises its supvr's memory context.
In fact nanokernel itself does not use memory context as defined above, and is to use effectively (physics) address space of PowerPC processor.Yet other memory context of nanokernel address space and all is different, so it can be regarded as special memory context.
The nanokernel memory context for example is mainly used in carries out the nanokernel code when auxiliary kernel is seized by interruption, trap or the anomalous event handled by nanokernel, thereby the nanokernel control desk is carried out the I/O operation.The nanokernel memory context is also as the intermediate address space, so that can switch to main execution environment from auxiliary execution environment, vice versa.Should be noted that because the PowerPC processor switches to the real execution pattern that is used for abnormality processing, thus naturally also effective method be to use the processor physical address space as the nanokernel memory context.
Figure 10 represents the example of main virtual address space and auxiliary virtual address space and nanokernel physical address space.
In this example, physical memory size is 128 megabyte.Main kernel uses zero-based directly (trivial) (KV) reflection (being similar to the C5 micro-kernel) one to one, and auxiliary kernel uses the skew that begins from 0xc0000000 (KV) reflection (being similar to linux kernel) one to one.
How in time Figure 11 represents the contextual example of switchable memory.At first, auxiliary operation system moves in the supplementary storage context.From t0 constantly, current auxiliary kernel trap to nanokernel with to nanokernel control desk output character.This trap switches to the nanokernel memory context with the current storage context.During [t0, t1], nanokernel (moving in the nanokernel memory context) prints character to the nanokernel control desk.At t1 constantly, nanokernel turns back to auxiliary kernel, and the supplementary storage context is got back in switching.At t2 constantly, in the operation auxiliary operation system, produce interruption.This interruption switches to the nanokernel memory context with the current storage context, and calls the nanokernel interrupt handling routine.For this interruption is transmitted to main kernel, nanokernel constantly switches to the primary memory context from the nanokernel memory context at t3, and calls main interrupt handling routine.During interrupt request was handled, at t4 constantly, main kernel trap was to nanokernel, with output character on the nanokernel control desk.
At t5 constantly, nanokernel calls from the putchar trap and turns back to main kernel, and this main kernel continues interrupt request to be handled till t6 constantly.At this moment, main kernel returns from interrupt handling routine, and the nanokernel switching is got back to interrupted auxiliary operation system to continue its execution.This switching starts from the primary memory context, and through middle nanokernel context, ends at the supplementary storage context constantly at t7 at last.
Nanokernel calls and seizes
Explicitly is by trap or implicitly call nanokernel by the interrupt/exception handling procedure.Under former instance, think that operating system nucleus calls nanokernel.Under latter instance, think that nanokernel seizes operating system.Importantly, emphasize what nanokernel always called by the authorization code that moves in supvr's address space.On the other hand, the nanokernel user procedures that can seize this kernel itself and under interior nuclear control, move.In fact, do not wish to allow nanokernel to seize main kernel (this also is counterintuitive), and also can not do like this, unless floating point unit is shared (as described below)-by postpone the shortcoming that saving that (lazy) floating-point shares the switching time of realization is better than seizing temporarily.
In case guided this system, then at first activate nanokernel, and this nanokernel begins to carry out main kernel and auxiliary kernel.In case finish initial phase, this nanokernel just plays passive effect.This means that the code of carrying out is driven (passing through trap) by explicit main kernel and the auxiliary kernel that calls nanokernel in nanokernel, perhaps (that is, unusual) synchronously and asynchronous (that is, the interrupting) event-driven that is generated by the outside.
In the PowerPC architecture, for the auxiliary operation system of advocating peace, being used for nanokernel, to call with the mechanism of seizing be identical.Aspect execution environment, nanokernel is owing to it separates with the operation of PowerPC real pattern and with the auxiliary kernel of advocating peace.Its use " sky " memory context (physical address space) and different supvr's storehouses.The barrier that is used to provide at some protections of kernel maloperation is provided between operating system (MMU enables) and nanokernel (MMU forbidden energy).Yet, should be noted that this protection is not absolute, this is because each kernel still moves authorization code in supvr's address space, therefore auxiliary kernel still can make the collapse of main kernel and nanokernel.
Nanokernel calls
Main kernel and auxiliary kernel use the trap call-by mechanism to call nanokernel.PowerPC sc and trap instruction are not used in avoids the program and the system call that are undertaken by nanokernel to intercept unusually.This will introduce performance cost (overhead) in frequent these abnormity processing of using by operating system nucleus.
On the contrary, currently do not implement more used exception vectors and be exclusively used in the nanokernel trap and call (avoiding using the operating system trap to call) by the PowerPC processor.These exception vectors call by the little software routines of moving in main or auxiliary kernel execution environment, and this little software routines is in the PowerPC processor and produces actual state identical when unusual, and use rfi to instruct to jump to suitable vector.These kernels are carried out suitable modification.In other words, the nanokernel call-by mechanism by emulation main or auxiliary in the software anomaly that triggers under the nuclear control expanded existing P owerPC and gathered unusually.
Following exception vector is used to the nanokernel trap and calls:
The 0x2000 free time, call the nanokernel scheduler program
0x2100 calls the nanokernel debugging proxy to stop execution
0x2200 calls nanokernel control desk IO service
0x2300 triggering system intersection is interrupted
The 0x2400 restarting systems
Wait for virtual unusual (only auxiliary) if 0x2500 exists, then processing is waited for virtual unusual
0x2600 halt system (only auxiliary)
Carrying out nanokernel by following convention and processor state calls:
Forbid conversion (switching to real pattern)
Forbid the interruption of processor level
In sprg0, preserve calling program r20
Figure A20048003540700314
In sprg1, preserve calling program r21
Figure A20048003540700315
In r20, preserve calling program msr
Storage calling program return address (pending next instruction) in r21
Storage sub-trap quantity (for the polygamma function trap) in r9
Nanokernel is seized
Nanokernel is seized operating system by intercepting PowerPC exception/interrupt vector.This PowerPC architecture does not provide any mechanism (being similar to base register) that is used for arrangement abnormalities vector address, but the homepage of the last megabyte of beginning of forcing to make exception vector be arranged in physical address space (0x00000000 of RAM) or physical address space (usually ROM 0xfff00000).Therefore, nanokernel has the real exception vector of PowerPC, and it is unusual and carry out the nanokernel handling procedure to use indirect function pointer array (exception handler table) to call this machine system service program or intercepting.When operating system was seized by nanokernel, processor state passed through the unusual automatic change (real pattern) that received.In addition, the nanokernel handling procedure can switch to another memory context and supvr's storehouse, to carry out the task in its own environment, perhaps is directly switch to another operating system.
When nanokernel only is transmitted to this machine kernel processes program unusually with this, must revise content of registers, do not make processor state lax to realize indirect call.Therefore, nanokernel adopts when calling the kernel exception handling procedure with register and uses relevant following convention (only mentioning the difference of the state of locating with unusual inlet (entry)):
R20 is saved in the temporary transient storage register of sprg0
Figure A20048003540700322
R21 is saved in the temporary transient storage register of sprg1
Figure A20048003540700323
Lr is saved in the r20 register
Make r21 be loaded with exception table index (several unusually * 4)
Figure A20048003540700325
Make lr be loaded with the address of kernel exception handling procedure
Main seizing
Only nanokernel is just seized master operating system under few situation.Usually, only intercept unusual (FPU and AltiVec are unavailable unusual) that is used to manage disabled association processing unit.Use these to share with the unit of as described in this paper back, handling between kernel unusually by nanokernel in the mode that postpones.
Auxiliary seizing
Except association handles unusually, when occurring interrupting (asynchronous exception), also seize auxiliary operation system.In this case, the nanokernel handling procedure (being installed in the auxiliary exception table) by correspondence intercepts interrupt vector.Nanokernel switches to the primary memory context then, and calls the relevant main kernel processes program (being installed in the main exception handler table) of this interruption.
The kernel context
The nanokernel data can be divided into two classes: global data and every kernel data.Global data keeps overall nanokernel state (for example, the nanokernel memory context), and every kernel data keeps and given main kernel or the relevant state of auxiliary kernel.Every kernel data is also referred to as the kernel context.
The kernel context comprises two parts: visible and hiding.Visible part is public and is used as the nanokernel interface.With the interface related other parts of nanokernel in will describe contextual this part of kernel in detail.Hidden parts is invisible for kernel, and is internally used by the nanokernel executive routine.
Nanokernel executive routine interface
This chapter describes the nanokernel executive routine interface that outputs to main kernel and auxiliary kernel.This interface is included in data structure (that is visible kernel context) and the nanokernel method of sharing between kernel and the nanokernel.
As seen kernel context
Fig. 3 represents the contextual visible part of kernel.
Should be noted that in the contextual visible part of kernel, carry out all quoting by physical address.Kernel must be the object that virtual address (according to the KV reflection) is quoted with visit with this physical address translations.The figure shows only have two kernels structure of (main kernel and auxiliary kernel).
Hdls[] field is meant the array of pointers to the kernel exception handling procedure.This array is carried out index by unusual numbering.Each inlet in this array can directly be set to original exception handler of kernel or nanokernel handling procedure, with the intercepting relevant abnormalities.Under one situation of back, the original exception handler pointer of kernel is arranged in VEX hdls[] field.
Pending VEX and enabled VEX field reflect virtual unusual current state.Should be noted that these fields hereinafter are nonsensical for the Your Majesty, because main kernel exception is not virtual by nanokernel.Virtual abnormal mechanism and auxiliary kernel execution model will be described in further detail in this article.
Boot info field is pointed to overall guidance information structure.This field is read-only.
This data structure comprises various processor information (frequency) and points to the pointer that any firmware transmits independent variable.
Cmd_line start and size parameter are pointed to the boot order row of specifying the boot time parameter.These parameters are composed to bootstrap loader or by the nanokernel environment transmit.This order line be the kernel special use and be arranged in the kernel context.Nanokernel is resolved initial (multisystem) order line, and is capable to create the kernel specific command that only comprises the parameter relevant with corresponding kernel.
RAM info field is pointed to the RAM description list.This field is read-only.The RAM description list is the global data structures of being shared by all kernels.It has described how to distribute the RAM resource between kernel.
Dev info field is pointed to the virtual unit tabulation of being extracted by nanokernel.This field is read-only for auxiliary kernel, and is read-write for main kernel.This list of devices is the overall situation and shared by all kernels.Each virtual unit in this tabulation is by being represented by nanokernel data designated structure.Usually use rule, visit this data structure by main reciprocity driver and auxiliary reciprocity driver by the nanokernel definition.Main reciprocity driver has played the effect of the server of virtual support equipment, and auxiliary reciprocity driver has played the effect of using the client of virtual unit rather than physical device.This tabulation is only created (and modification) by main kernel.Only allow auxiliary kernel to browse this tabulation.
Pending XIRQ field specifies the intersection of waiting for to interrupt.This field is not used by nanokernel itself.It is included in the context mechanism, interrupts exchange to help main kernel and auxiliary kernel to intersect.Have only a processor that is exclusively used in intersection interruption transmission unusual.Pending XIRQ field allows to intersect the quantity of interrupting and expands to 32 (one of each intersection interrupt source).The interrupt bit that intersects is set by source kernel (that is, the kernel that the transmission intersection is interrupted), and is reset by destination kernel (that is, receiving the kernel of intersection interruption).
Id field comprises unique kernel identifier.This field is read-only.To the distribution marker 0 of nanokernel own, and to main kernel distribution marker 1.Kernel identifier is specified the kernel in the nanokernel interface.For example, kernel identifier is used for mark and distributes to the resource of given kernel (for example, the storage block in the RAM description list).
The running field is pointed to the system identifier bit field of the state (move (1) or stop (0)) of specifying corresponding kernel.This bit field is read-only.Nanokernel contraposition before starting its relevant kernel is set, in case and this kernel stop just with its zero clearing.When restarting kernel, at first its running position zero clearing is set then.Any kernel can both be analyzed the running bit field to find out the reciprocity kernel that all are moving.Should be noted that the running position of always setting main kernel.
Ctx root and last field are pointed to first (nanokernel itself) and last effective kernel context respectively.Ctx size field has been specified the size of population of the kernel context mechanism that comprises hidden parts.These fields provide management kernel context required information together.
Shared memory field is pointed to the set of shared storage.It mainly is used for allocate memory by main kernel, to be stored in the data of sharing between all kernels.
The nanokernel method
Nanokernel provides two group of methods: control desk I/O operation and executive routine operation.Control desk I/O group allow kernel to/from nanokernel control desk string line transmission/reception character.This paper does not specifically mention more or less common control desk I/O method, but concentrates on the executive routine method of PowerPC architecture special use.
The CPU exception handler is installed
Kernel must call this nanokernel method with to the unusual additional treatments program of given processor, rather than the exception vector code directly is installed in the PowerPC exception vector.The unusual numbering and the physical address of kernel processes program code are transmitted as independent variable.Unusual numbering is used for the hdls[to the kernel context] the exception handler table carries out index, this hdls[] store the kernel processes program pointer in the exception handler table.
Nanokernel can use this table clause value after a while, and the minimal-overhead by other indirect call directly produces corresponding unusual to kernel.This method is used for by direct unusual (not intercepted by nanokernel) of handling of kernel.
Virtual exception handler (VEX) is installed
This method is used for to carried out virtualized unusual additional kernel exception handling procedure by nanokernel.This is with unusual corresponding virtual unusual by nanokernel intercepting and the actual PowerPC that postpones unusually, or the logic event that is produced by nanokernel.
The VEX numbering and the physical address of kernel processes program code are transmitted as independent variable.VEX numbering is used for the vexHdls[to the kernel context] virtual exception handler table carries out index, this vexHdls[] store the kernel processes program pointer in the virtual exception handler table.
Idle
Nanokernel provides must be by the idle method of kernel calls in idle cycles.This free time method notice nanokernel: this calls kernel and do not carry out any operation before next interrupts.
This free time method call causes system to switch to next ready state (ready), to move auxiliary kernel (if existence), perhaps returns from main idle method when all auxiliary kernels are all idle.This free time method does not have parameter.
Restart
Nanokernel provides can be by main kernel and auxiliary kernel calls to restart the method for restarting of auxiliary kernel.
The parameter of this method has been specified the identifier of the kernel that restarts.Nanokernel stops kernel being carried out, and recovers the kernel reflection from its copy, and finally begins the kernel execution at the primary entry point place.
Should be noted that auxiliary kernel can call by its own identifier restarts trap and guides oneself again.
Auxiliary stopping
Provide to auxiliary kernel by nanokernel and to stop trap.Auxiliary kernel calls this trap when it stops.Nanokernel makes the caller kernel be in non-operating state and switches to this kernel to avoid the nanokernel scheduler program.
Can start the kernel that is stopped once more by the above-mentioned nanokernel method that restarts.
Main execution environment
Basically, in original execution environment, carry out main kernel.Nanokernel on the PowerPC processor implements to attempt to make the influence minimum of nanokernel environment to master operating system characteristic (performance, interrupt latency, seize the stand-by period).Because master operating system is real time operating system normally, so even importantly other (assisting) operating system operation concurrently on same processor also keeps the behavior of main kernel constant.
Initialization
At first start nanokernel by bootstrap loader with invalid MMU (that is, in physical space).Basically, the nanokernel setup code is installed in primary storage body (comprising main kernel code/data/bss part) and other memory bank in the physical storage, and jumps to main entry point.
Before jumping to main kernel, nanokernel carries out initialization by the calling system special purpose function to main kernel context.This function should be arranged in the contextual hidden parts of kernel at least: the srr0 register image is set to the kernel entrance, and the srr1 register image is set to the desired initial value of system kernel.
Except association handles (FPU) unit exception, and all inlets in the exception handler table (the contextual hdls[of kernel]) sensing nanokernel debugging proxy entrance.Guaranteed that so any early stage unusual feasible execution of not expecting stops.
Use is arranged in the static nanokernel storehouse of independence of data division and carries out the nanokernel setup code.When jumping to main kernel, this storehouse is still effective.However, main kernel should switch to its oneself storehouse as early as possible, and should never use this nanokernel storehouse in the future.Not only the time all use the nanokernel storehouse, to handle in next chapter the assisted call that will describe and to seize at initial phase but also in operation.
When jumping to main kernel, the r3 register points to the kernel context, and the srr1 reflection that the msr register is loaded be arranged in the kernel context.Usually, it is invalid processor to be interrupted.In case finished crucial initial phase, main kernel makes usually and interrupts effectively.
At initial phase, main kernel calls the nanokernel method usually with to processor and virtual unusual additional treatments program.At last, main kernel enters idle cycles and calls nanokernel free time method.
When calling this first during method free time, nanokernel think main kernel fully initialization its execution environment, and nanokernel proceeds to the back initial phase.
At this back initial phase, nanokernel is as carrying out initialization to auxiliary kernel context described in the next chapter.In case scheduler program is just called in initialization after finishing, nanokernel, thereby switch to ready state, perhaps under all idle situation of all auxiliary kernels, return from main idle method to move auxiliary kernel.
Nanokernel requires main kernel initialization overall situation shared data structure: RAM descriptor and virtual unit tabulation.Must before calling idle method, finish this initialization.Because auxiliary kernel can be visited overall shared data structure after this moment, so this requirement is normal.
Particularly, main kernel is responsible for physical storage available on the check-out console, and writes down idle physical storage block in the RAM descriptor.
According to mainboard support package (BSP), main kernel should start nanokernel and know (aware) driver, this driver and then virtual unit tabulation should be provided.These virtual units are offered auxiliary kernel, so they should be created before starting the first auxiliary kernel.
What intercepted is unusual
Basically, nanokernel does not intercept produce unusual when master operating system moves on processor.By original master processor program handle that all programmings are unusual, trap and interruption.Only need main rudimentary handling procedure is made amendment, to follow the nanokernel exception handler calling convention that is used for the PowerPC architecture.
According to above-mentioned rule is that the programming relevant with association processing unit emulation is unusual unusually:
Figure A20048003540700371
Floating-point unavailable unusual (FPU)
Figure A20048003540700372
Vector location unavailable unusual (AltiVec VU)
Nanokernel uses these to realize the delay mechanism of sharing as the association's processing unit that further describes in this article unusually.
Another concrete example is a debugging proxy, and this debugging proxy can be embedded in the nanokernel so that the Host Based remote system debugging of master operating system to be provided.In this case, usually relevant some of intercepting and debug features (for example, single instruction trace) or program error (for example, page fault) are unusual synchronously for debugging proxy.Yet this debugging proxy design is not in the scope of this paper.
The interruption of being transmitted
When auxiliary operation system moves, producing interruption on processor, this interruption is transmitted to master operating system.This interrupts transmitting handles by following key step:
Figure A20048003540700381
Intercept this interruption (hdls[in the auxiliary kernel context] respective entries of table point to the nanokernel handling procedure) by nanokernel;
Figure A20048003540700382
The execution of the auxiliary kernel that time-out is seized, and nanokernel switches to main execution environment;
Nanokernel is triggered to the interruption (be branched off into the hdls[in the main kernel context] table corresponding clauses and subclauses) of main kernel.
In this way, call corresponding main low level interrupts handling procedure (in main execution environment) to handle this interruption.In case this interruption is handled, then main kernel turns back to the nanokernel of carrying out the rfi instruction.
After main interrupt handling routine returns, nanokernel calls scheduler program to determine next one auxiliary operation system to be moved.Should be noted that and after interrupting, needn't continue the backup system seized.Because should interrupt, so another (higher priority) backup system can become ready state.
Auxiliary execution environment
Basically, except interrupt management, auxiliary kernel execution environment is very close with original environment.The nanokernel environment revise interrupt management original mechanism so that auxiliary operation system can seize fully.The auxiliary kernel of being transplanted to the nanokernel architecture no longer makes the interruption of processor level invalid, and the software interruption shielding mechanism (that is, virtual unusual) that is provided by nanokernel is provided.Interrupt no longer directly handling, but intercepted and be transmitted to main kernel, and only handle in the mode that postpones by auxiliary kernel alternatively subsequently by nanokernel by this auxiliary kernel.
Initialization
Nanokernel is installed auxiliary storage body and primary storage body when initialization.On the other hand, postpone the final initialization of auxiliary kernel, especially the kernel context is set up, till the initial phase of back.
In this stage, the nanokernel allocate memory is to keep the copy of auxiliary storage body.This copy is used for recovering the initial image of backup system then when restarting.Yet it is optionally that backup system restarts, and can make it invalid to reduce physical storage consumption.
Set up auxiliary kernel context by the calling system specific routine, this routine is come the initialization context according to the demand of system entry point.Except assisting processing (FPU) unit and interrupting entering the mouth, and all clauses and subclauses in the execution processing program table (the contextual hdls[of kernel] field) sensing nanokernel debugging proxy entrance.As described in next part, these clauses and subclauses are pointed to and are used to intercept corresponding auxiliary unusual nanokernel dedicated processes program.
Nanokernel starts auxiliary kernel by switch to the original execution context of being set up in advance by the system-specific routine in kernel context hidden parts.
Similar with main kernel, kernel context physical address is transmitted (transmitting agreement is system-specific) as independent variable.On the other hand, different with main kernel, even the interruption that also makes the processor level at auxiliary kernel initial phase effectively (set MSR[EE]).It should be noted, can seize fully even auxiliary kernel setup code by main system.In order not disturb master operating system when restarting auxiliary operation system, this is particularly important.
Although make hardware interrupts effective, when assisting kernel, startup make virtual unusual (corresponding) invalid with hardware interrupts.Therefore, nanokernel does not transmit interruption, till making them effectively clearly by auxiliary kernel when crucial initial phase finishes.Software interruption shielding mechanism (based on virtual unusual) will be described in this article in further detail.
Stack pointer is invalid when kernel is assisted in startup.Usually, auxiliary kernel uses the static initial storehouse that is arranged in data division to carry out its setup code.
Similar to main kernel, at initial phase, auxiliary kernel calls the nanokernel trap usually with to PowerPC and virtual unusual additional treatments program.At last, auxiliary kernel enters idle cycles and calls the idle trap of nanokernel.
What intercepted is unusual
Auxiliary unusual in order to intercept, the pointer of the handling procedure that nanokernel is own with it is installed to the hdls[that assists in the kernel context] in the corresponding clauses and subclauses of exception handler table.Therefore, this when unusual when producing, exception vector is branched off into the nanokernel handling procedure, and this nanokernel handling procedure is preserved supplementary storage context and handled should be unusual.
All interceptings can be classified as interruption, trap and programming unusual (fault) according to its characteristic unusually.
Nanokernel intercepts all PowerPC and interrupts (asynchronous exception) they are transmitted to main kernel:
Figure A20048003540700401
Reset
Hardware check
System management
External interrupt
Figure A20048003540700405
Performance monitoring
Figure A20048003540700406
Attenuation measurement program (decrementer)
Figure A20048003540700407
Heat
In addition, two nanokernel traps are important for performance, and are exclusively used in auxiliary kernel.
First trap sends to intersect to main kernel and interrupts.Except be transmitted to the unusual corresponding of main kernel with software interruption rather than with hardware interrupts corresponding, the nanokernel processing is equivalent to Interrupt Process.Therefore, the same with interruption, this trap is seized current auxiliary kernel.
Second trap by auxiliary kernel calls to handle wait for virtual unusual (when these waits virtual unusually once more effectively the time).These traps participate in the software interruption shielding mechanism, and in being exclusively used in virtual unusual next part they are described in detail.
Similar to main kernel, it is unusual that nanokernel does not intercept programming usually, except some following special circumstances:
Floating-point unavailable unusual (FPU)
Figure A20048003540700409
Vector location unavailable unusual (AltiVec VU)
Nanokernel uses these to realize the delay mechanism of sharing as the association's processing unit that further describes unusually herein.
Another concrete example is a debugging proxy, and this debugging proxy can be embedded in the nanokernel so that the Host Based remote system debugging of auxiliary operation system to be provided.In this case, usually relevant some of intercepting and debug features (for example, single instruction trace) or program error (for example, page fault) are unusual synchronously for debugging proxy.Yet this debugging proxy design is not in the scope of this paper.
Virtual unusual
Virtual unusual (VEX) is the mechanism that is provided by nanokernel, and it allows kernel to transmit unusually and in the mode that postpones to auxiliary kernel transmission.Particularly, VEX mechanism is used for PowerPC nanokernel architecture, to use software interruption to replace hardware interrupts for auxiliary kernel.
The VEX interface comprises two field: pending and the enabled that is arranged in the kernel context.These fields are only meaningful for auxiliary kernel context, but they can be by main kernel and the two visit of auxiliary kernel.Naturally enumerated all virtual unusual by the bit position in pending (or enabled) field.Therefore, have 32 virtual unusual (pending and enabled field are 32 round valuess) of supporting by the nanokernel on the PowerPC architecture.
Following table shows how to be mapped to reality unusually unusually with virtual:
Virtual unusual Actual unusual Describe
0 ?0x2 Hardware check
1 ?0x1 Reset
2 ?0x14 SMI
3 ?0x5 External interrupt
4 ?0x2e Performance monitoring
5 ?0x9 The attenuation measurement program
6 ?0x17 Heat
7 ?0x23 XIRQ
8 ?0x21 Debugged program
31 ?- Operation
The virtual PowerPC that is mapped as unusually that will from 0 to 6 interrupts.Be mapped as the exception vector 0x23 that is used for to the interruption of auxiliary kernel transmission intersection with virtual unusual 7.Do not have the virtual unusual of use from 9 to 30 at present, they are preserved for expanding in the future.Virtual unusual 31 not correspond to any reality unusual, and it is actually pseudo-virtual unusual, and whether this puppet is virtual internally uses to detect kernel idle by nanokernel unusually.Pseudo-virtually unusually how to work will be described in further detail in this article.
Because can wait for simultaneously a plurality of virtual unusual, but can only handle in them one at every turn, so all virtually distinguished priority according to its numbering unusually.To the hardware check assigned highest priority, and to the pseudo-unusual lowest priority that distributes of operation.
Usually by provide the main kernel of driver to upgrade auxiliary contextual pending VEX field to virtual PIC equipment.This driver comes to send virtual unusual (interruption) to auxiliary kernel by set suitable position in pending VEX field usually.
Upgrade enabled VEX field by auxiliary kernel, so that virtual unusual effective or invalid.If in enabled VEX field, set corresponding position, then make given virtual effective unusually.By using enabled VEX field, auxiliary kernel has realized that the protection key component is not subjected to interrupt influencing.In other words, auxiliary kernel does not re-use MSR[EE] and MSR[ME] that processor is interrupted is invalid in the position/effectively, but revise the contextual enabled VEX of its kernel field.
If given virtual unusual wait then transmits and should also make it effective simultaneously unusually by nanokernel.Nanokernel is just in time jumping to the wait position of resetting correspondence before the auxiliary exception handler.
Should be noted that when kernel is assisted in transplanting on PowerPC nanokernel architecture, must revise rudimentary exception handler to consider the software interruption shielding mechanism of alternative hardware interrupt mask mechanism.When kernel is assisted in operation, make the hardware interrupts of processor level effective all the time, except in rudimentary exception handler code, wherein use the shared resource (temporary transient storage register) that needs key component to preserve processor state.Like this, in the nanokernel environment, auxiliary operation system becomes and can be seized by the master operating system height; It can be seized the short time when rudimentary abnormality code is in preservation state except this.
Virtual unusually can be when it is in disarmed state the transmission by main kernel.In this case, this is not transmitted to auxiliary kernel unusually, but keeps waiting for till making this effective unusually once more.Therefore, virtual unusual when effective when making once more by auxiliary kernel, should check whether waiting for any virtual unusual is arranged.If this inspection is sure, then auxiliary kernel should call nanokernel to handle the virtual unusual of these waits.Carry out this inspection by " handling wait for virtual unusual " trap (the special-purpose vectorial 0x2500 of nanokernel).
Usually, auxiliary kernel makes virtual effective unusually under following two kinds of situations again:
When making virtual unusual invalid key component with the protection code in advance by auxiliary kernel;
Virtual unusual when invalid when when handling the unusual rudimentary handling procedure of processor, having made.
Nanokernel reenters
Usually make the interruption of processor level invalid to carry out the nanokernel code under the situation that prevents to reenter nanokernel.On the other hand, some nanokernels call and may take a long time, so nanokernel must make interruption effectively to keep main interrupt latency shorter when carrying out this long-time operation.
There is two types long-time nanokernel operation:
Figure A20048003540700432
The output of synchro control platform
This operation duration is depended on the serial linear speed.For example, on 9600 baud rate lines, monocase output may spend 1 millisecond.
Figure A20048003540700433
Auxiliary kernel restarts
This operation duration is depended on from the size of the kernel reflection of copy recovery.
For all operations of listing above, nanokernel makes and interrupts effectively and therefore reentering from main kernel.On the other hand, making interruption effectively simultaneously, never call the nanokernel scheduler program to prevent when main interrupt handling routine returns, dispatching another auxiliary kernel.In other words, nanokernel only can be seized (as the result of interrupting) by main kernel, but forbids reentering from auxiliary kernel.This restriction makes nanokernel use the global resource of auxiliary execution environment.Like this, when when auxiliary operation system enters nanokernel, needn't preserve all states, because can not interrupt it from auxiliary operation system.
More than discuss and show that nanokernel must interrupt effectively processor in the code of carrying out owing to the trap of main kernel or auxiliary kernel calls in the nanokernel memory context.In other words, nanokernel must be supported the switching of main interrupt handling routine in the trap calling processor of operation its oneself.
Nested in order to support that this context switches, nanokernel is managed its oneself kernel context.The kernel context of nanokernel has zero identifier value (id field).When switching to main kernel according to interruption, it is used for preserving nanokernel and carries out context (at hidden parts).It also is used for storing nanokernel dedicated interrupt handling procedure pointer (at hdls[] table).Like this, even when operation nanokernel code, also can make interrupt vectorization by the kernel context that " current " carries out.In addition, nanokernel supvr storehouse is used for the shared processing device resource of key and nanokernel and the contextual part of main kernel are carried out stacked, otherwise they will be rewritten when main kernel reenters.
The interruption prolog/epilog that nanokernel uses routine is to handling the interruption in the nanokernel, and is back to the nanokernel interruption code when the Interrupt Process of being undertaken by main kernel finishes.The prolog/epilog that should be noted that routine is to according to the last kernel that calls the nanokernel trap and difference.In fact, treat the type of stacked information in storehouse and measure also inequality for main trap calling program or auxiliary trap calling program.
Interrupting the prolog routine is the nanokernel interrupt handling routine.It is attached to the hdls[in the nanokernel context] all of exception handler table interrupt clauses and subclauses.This handling procedure is carried out following action:
Figure A20048003540700441
The contextual part of kernel is kept in the interruption frame on the storehouse,
With the kernel updating context is that currency reenters to handle main kernel,
Revise the srr0 register value turning back to suitable epilog routine,
Figure A20048003540700444
Switch to corresponding main kernel interrupt handling routine.
Interrupt the epilog routine when calling when returning from main kernel Interrupt Process (rfi).It is used for directly recovering the nanokernel interruption carries out context and never calls the nanokernel scheduler program, and carries out following steps:
Figure A20048003540700445
Recover current state from the kernel context,
From interruption stack frame (preserving) recovery kernel context by the prolog routine,
Figure A20048003540700447
Be back to the code that is interrupted.
Nanokernel interrupt stack frame is used to preserve following information:
Figure A20048003540700448
The copy of the contextual key component of nanokernel: lr, r1, r2, srr0, srr1 register,
Figure A20048003540700449
Last trap calling program (pointing to main kernel or the contextual pointer of auxiliary kernel).
Figure A200480035407004410
It is under the situation of main trap calling program only: the copy of the contextual key component of main kernel: r1, r2, srr0, srr1 register at last trap calling program.
Nanokernel has defined to be used to make and has interrupted effectively/invalid a pair of function.The nanokernel that these functions are preserved in storehouse respectively and recovery is not systematically preserved in the trap porch is carried out contextual extention.
When making interruption effective, nanokernel is carried out following steps:
In storehouse, preserve temporary transient storage register (sprg0-3),
In storehouse, preserve current a pair of interruption prolog/epilog routine,
Figure A20048003540700453
Upgrade current a pair of interruption prolog/epilog routine according to trap calling program (main or auxiliary),
Figure A20048003540700454
Make the interruption of processor level effective (MSR[EE is set] position).
When making interruption invalid, nanokernel is carried out following steps:
Figure A20048003540700455
Make the interruption of processor level invalid (zero clearing MSR[EE] position),
Recover current a pair of interruption prolog/epilog routine from storehouse,
Recover temporary transient storage register (sprg0-3) from storehouse.
Fig. 4 represents to carry out flow process and how to use the nanokernel storehouse to reenter to allow Interrupt Process and main kernel.
Scheduler program
The main effect of operating system dispatcher is next task that selection will move.Because the execution of nanokernel control operation system, so the nanokernel scheduler program is selected next auxiliary operation system to be moved.In other words, nanokernel adds extra scheduling level to total system.
Should be noted that in the nanokernel architecture, master operating system has higher priority with respect to backup system, and and if only if main system just gives backup system with CPU when being in idle cycles.We we can say that main kernel can not seize, and its explicitly calls the nanokernel scheduler program by the idle method of calling in idle cycles.Interrupt in case when the operation backup system, produce, just call main kernel interrupt handling routine.From the angle of main kernel, the background thread of carrying out idle cycles has been seized in this interruption.In case this interruption has been carried out having handled and finished all relevant tasks, and then main kernel turns back to nanokernel, this nanokernel calls the nanokernel scheduler program to determine next backup system to be moved.From the angle of main kernel, this kernel only turns back to and is interrupted the background thread of seizing.Special operations is transparent for main kernel, and it does not change the behavior of main system.
Nanokernel can be realized different scheduling strategies.Yet, acquiescence be to use algorithm based on priority.Should be noted that in identical priority nanokernel uses circulation (round-robin) scheduling strategy.When setting up system image, dispose the priority of given auxiliary kernel statically.
No matter what the scheduling strategy of being implemented is, scheduler program all must detect given backup system and whether be ready to operation.Calculate this condition as the position disjunction operation between contextual pending VEX of kernel and the enabledVEX field.Non zero results represents that system is ready to operation.
As mentioned above, each bit representation of pending VEX and enabled VEX centering is virtual unusual.This preparation is used as the operation standard, if exist the wait of at least one non-shielding virtual unusual, then we we can say that backup system is in the state that is ready to move.
Be mapped to usually that hardware and software (intersection) interrupts all are virtual central unusually, have the current whether idle particular virtual unusual (running) of reflection kernel.
When auxiliary kernel calls free time method, with the zero clearing of running position, and virtual when unusual in pending VEX field whenever transmitting to auxiliary kernel, in pending VEX field, the running position is set.
Usually always in enabled VEX field, the running position is set, to move auxiliary kernel.Nanokernel is provided with this position when kernel is assisted in startup, and this position of when stopping to assist kernel, will resetting.Auxiliary kernel is shielding/deshielding should be never with the zero clearing of running position when being mapped as virtual unusual interruption.
Should be noted that the external agent can carry out auxiliary kernel time-out/continuation by the enabled VEX field that zero clearing/recovery is examined in the context within it.This feature makes and can act on behalf of at the outside scheduling strategy of realizing of nanokernel, as main kernel task.In addition, this also makes it possible to move the debugging proxy that is used for auxiliary kernel, as the task at main kernel top.This assistant adjustment agency's advantage is, all services that provided by master operating system are for debugging available (for example, network stack), and can finish auxiliary kernel debugging concurrently with the mission critical that moves on master operating system.
Intersect and interrupt
This part is mainly concentrated with nanokernel and is intersected the relevant information of interrupt mechanism (providing in the former part).
Here will consider two kinds of following intersection interruptions:
Figure A20048003540700461
The intersection that sends to auxiliary kernel is interrupted
Figure A20048003540700462
The intersection that sends to main kernel is interrupted
Interrupt in order to send to intersect to the auxiliary kernel in destination, the source kernel is at first set in the contextual pending XIRQ of destination kernel field and is intersected the corresponding position of interrupt source.The source kernel sends to intersect to the destination kernel and interrupt VEX so that corresponding position to be set in the contextual pending VEX of destination kernel field then.In case the interrupt handling routine that intersects is called by nanokernel, then it checks this pending XIRQ field, will intersect corresponding zero clearing of interrupt source with waiting for, and finally call the handling procedure that is attached to this source.The source and destination kernel the two all use atomic instructions (atomic instruction) to upgrade pending XIRQ field.Should be noted that this source kernel of two types (it is auxiliary to advocate peace) uses identical algorithm.
Interrupt in order to send to intersect to main kernel, auxiliary kernel at first is provided with in the contextual pending XIRQ of main kernel field and intersects the corresponding position of interrupt source.Auxiliary then kernel calls is carried out the nanokernel of XIRQ trap.Nanokernel is seized auxiliary kernel immediately, and calls main rudimentary intersection interrupt handling routine, and this handling procedure is checked pending XIRQ field, will intersect corresponding zero clearing of interrupt source with waiting for, and finally call the handling procedure that is attached to this source.
Kernel necessarily can not use to intersect and interrupt zero.This interruption is used to notify kernel to start kernel that is stopped or the kernel that oneself stops to move for nanokernel keeps.In other words, the global system configuration of intersect having interrupted interior nuclear alteration that zero notice moving.When changing the state of the running bit field of pointing to by the kernel context, broadcast to all kernels that moving.
Association's processing unit management
Association's processing unit (FPU, SIMD unit) is the computational resource of being shared by all operations system that moves in the nanokernel environment usually.Hereinafter, be example with floating point unit (FPU).Yet administrative class is similar to other association's processing unit of AltiVec vector calculation unit (SIMD) in an identical manner.
For the PowerPC architecture, nanokernel is managed association's processing unit in the mode that postpones and is shared.This for example means, when when an operating system switches to another operating system, do not provide FPU to the operating system of up-to-date scheduling immediately, but postpone the FPU context switch system up to up-to-date scheduling really go up carry out floating point instruction and visit flating point register till.
This delay FPU allocation algorithm makes nanokernel can reduce system switching time.This is particularly important in order to reduce main interrupt delay time, because do not use FPU usually in interrupt level, therefore needn't preserve and recover the FPU register usually to seize auxiliary operation system and to call main interrupt handling routine.
Nanokernel is handled the possessory global variable of contextual FPU of the kernel that points to current use FPU.Do not exist under the possessory situation of FPU, the possessory context of FPU is set to zero.The FPU context is arranged in the contextual hidden parts of kernel.When kernel was not the FPU owner, this context kept the state (that is, flating point register and state) of FPU engine.Obviously, keep the possessory state of FPU by the FPU engine hardware.When nanokernel changes the FPU owner, the FPU state is saved in old FPU context and recovers the FPU state from new FPU context.
When using FPU by the non-FPU owner, nanokernel uses floating-point unavailable (FP) position of MSR register to cause unusual.The MSR register image participates in the contextual hidden parts of kernel.When FPU switches, in last owner's context with MSR[FP] position zero clearing, and in new owner's context, MSR[FP is set] position.Except the FPU owner who is provided with the FP position, in all kernel contexts with the zero clearing of FP position.This make nanokernel the FPU owner handle handle in original mode this unusual in, can intercept for the possessory floating-point of all non-FPU unavailable unusual (0x8).
When nanokernel intercepting " FP is unavailable " is unusual, produce FPU and switch (this needs the retouching operation system kernel).In order to switch the FPU engine between two kernels, nanokernel discharges the current FPU owner and distributes the new FPU owner.
In order to discharge the current FPU owner, nanokernel is examined within it and is preserved current FPU state and MSR[FP in the context] current state of position, and with the FP position zero clearing in the MSR register image.In addition, nanokernel is installed to hdls[in the kernel context with its oneself exception handler] in the suitable clauses and subclauses of exception handler table, with intercepting FP unavailable unusual (0x8).Original exception handler pointer is kept at savedHdls[in the contextual hidden parts of kernel] in the table.
In order to distribute the new FPU owner, during nanokernel will be videoed to MSR from the recovering state of contextual FPU state of kernel and the FP position of preserving in the past.In addition, with original exception handler from savedHdls[] table returns to the contextual hdls[of kernel] the table, thereby when having FPU, handle unusually FP is unavailable in original mode.
Because using the FP position of MSR register to realize postponing FPU, nanokernel switches, so when kernel is not owner's (outside unavailable exception handler of original FP) of FPU, do not allow the state of this position of nuclear alteration in this.Particularly, this means that the kernel of being transplanted to the nanokernel architecture do not support FPU emulation.
Should be noted that usually operating system nucleus also uses the FP position of MSR register to come the delay FPU between the implementation process to switch.Because the MSR register image participates in preserving when therefore the kernel context also switches in system and recovering the MSR register image, so can keep original FPU management almost constant in the nanokernel environment.
Use identical mechanism for the vector calculation unit that is integrated in some PowerPC processor enforcement (AltiVec).In this case, identical for FPU of the VU position role of MSR register and FP position.And, intercepting vector unavailable unusual (vectorial 0x0f20) thus realize that in the mode that postpones the context of SIMD unit switches.
Others and embodiment
Be appreciated that according to above content the foregoing description only is an example, and can realize many other embodiment.Can carry out freely changing to all mentioned operating systems, platform and programming technique.Whether conspicuous for those skilled in the art any other modification, replacement and variation all are regarded as falling within the scope of the present invention, no matter and covered by claims.For fear of ambiguity, protect for any and all novel themes disclosed herein and combination thereof.

Claims (32)

1, a kind of method that makes that a plurality of different operating systems can parallel running on same computing machine comprises:
Selecting first operating system is to have higher relatively priority;
Selecting at least one second operating system is to have relatively low priority;
Common program is provided, and this common program is set to switch between described operating system under predetermined condition; And
They provide modification, so that can be controlled by described common program to described first and second operating systems.
2, method according to claim 1 wherein, is switched between described operating system and is comprised and use exception vector to call described common program.
3, method according to claim 2 comprises to trap and calls the distribution exception vector, makes it possible to use the trap call-by mechanism to call described common program thus.
4, according to claim 2 or 3 described methods, wherein, described first or second operating system is called described common program by calling exception vector.
5, method according to claim 4, wherein, described call exception vector with the step simulation of calling described common program by external event cause unusual.
6, according to aforementioned any described method of claim, wherein, described common program is by intercepting unusual or interrupt vector is seized described first or second operating system.
7, method according to claim 6 also comprises and uses the exception handler table that comprises array of pointers to intercept unusually, and activates exception handler to seize described first or second operating system.
8, according to aforementioned any described method of claim, wherein, described common program can be operated under real pattern.
9, method according to claim 8 comprises by described common program and seizes described first or second operating system, and switch to real pattern when seizing described first or second operating system.
10, method according to claim 8 comprises by described first or second operating system and calls described common program, and switch to real pattern when calling described common program.
11, according to aforementioned any described method of claim, comprise except the operating period of the subroutine of preserving machine state, during the whole operation of described second operating system, make hardware interrupts effective.
12, according to aforementioned any described method of claim, wherein, described first operating system is real time operating system.
13, according to aforementioned any described method of claim, wherein, described second operating system is non real-time, the general-purpose operating system.
14, according to aforementioned any described method of claim, wherein, described second operating system is Linux or its modification or variant.
15, according to aforementioned any described method of claim, wherein, described common program is set to be kept at switches required processor state between the described operating system, and recovers this processor state from the version of being preserved.
16, according to aforementioned any described method of claim, wherein, in virtual mode the processor of described second operating system is handled unusually by described common program.
17, according to aforementioned any described method of claim, wherein, it is unusual that described common program is set to intercept some processor, and the exception handler that calls described first operating system is to serve unusually these processors.
18, method according to claim 17, wherein, the processor of described second operating system is notified unusually to be virtual unusual.
19, method according to claim 18, wherein, described common program is set to call described second operating system and described virtual unusual corresponding exception handler that waiting for.
20, according to aforementioned any described method of claim, comprise that also in described operating system each provides independently storage space, in described independently storage space, each operating system can be operated exclusively.
21, according to aforementioned any described method of claim, comprise that also in described operating system each provides first input and/or the output device of described computing machine, each operating system can be visited this first input and/or output device exclusively.
22, method according to claim 21, wherein, each operating system uses original routine of not revising basically to visit described first input and/or the output device.
23, according to aforementioned any described method of claim, comprise that also in described operating system each provides second input of described computing machine and/or the visit of output device, each operating system can be shared accessing this second input and/or output device.
24, method according to claim 23, wherein, all operations system all uses the routine of described first operating system to visit described second input and/or the output device.
25, method according to claim 24, wherein, described common program is provided for controlling the trap call-by mechanism of the operation of described second operating system, and/or is used for the status change notification of described second operating system is given the case mechanism of described first operating system.
26, according to aforementioned any described method of claim, also comprise described operating system and common program are combined into single code product.
27,, also comprise described operating system and common program are embedded in the permanent storage on the computer product according to aforementioned any described method of claim.
28, a kind of developing instrument computer program, it comprises the code that is used to carry out aforementioned any described step of claim.
29, a kind of computer program, it comprises the code according to claim 36 combination.
30, a kind of computer system, it comprises CPU, memory device and input-output apparatus, and the computer code of carrying out thereon comprises:
First operating system with relative higher priority;
Second operating system with relatively low priority; And
Common program, it is set to move described operating system concurrently by switching under predetermined condition between described operating system.
31, computer system according to claim 30, it is set to use any described method in the claim 1 to 27 to move described first and second operating systems concurrently.
32, according to the aforementioned any described system of claim, product or a method, wherein said computing machine has the reduced instruction set computer architecture.
CNA2004800354072A 2003-10-01 2004-10-01 Operating systems Pending CN1942859A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03292428 2003-10-01
EP03292428.4 2003-10-01

Publications (1)

Publication Number Publication Date
CN1942859A true CN1942859A (en) 2007-04-04

Family

ID=37870414

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004800354072A Pending CN1942859A (en) 2003-10-01 2004-10-01 Operating systems

Country Status (3)

Country Link
JP (1) JP2007507779A (en)
KR (1) KR20070003765A (en)
CN (1) CN1942859A (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102667725A (en) * 2010-01-13 2012-09-12 马维尔以色列(M.I.S.L.)有限公司 Hardware virtualization for media processing
CN103048988A (en) * 2011-10-15 2013-04-17 费斯托股份有限两合公司 Coupling device and method of zuransteuerung austauschbarenelektrischen systems
CN103246560A (en) * 2012-02-14 2013-08-14 联想(北京)有限公司 Mode switching method and electronic equipment
CN103262025A (en) * 2010-10-01 2013-08-21 Flex Electronics ID Co.,Ltd. Cross-environment communication using application space API
WO2015131549A1 (en) * 2014-09-24 2015-09-11 中兴通讯股份有限公司 Method and device for collecting operating system fault information, and computer
CN105528024A (en) * 2014-10-17 2016-04-27 美商迪尔亚科技股份有限公司 Electronic device for internet protocol communications
CN103246560B (en) * 2012-02-14 2016-11-30 联想(北京)有限公司 The method of a kind of pattern switching and electronic equipment
US9678810B2 (en) 2010-10-01 2017-06-13 Z124 Multi-operating system
CN108694691A (en) * 2017-04-09 2018-10-23 英特尔公司 Page fault and selectivity are seized
CN109520079A (en) * 2018-11-08 2019-03-26 广东美的制冷设备有限公司 Air conditioner and its control method, device and computer readable storage medium
CN111124664A (en) * 2019-11-22 2020-05-08 华为技术有限公司 Method and device for accessing second operating system resource by first operating system
CN112470125A (en) * 2018-07-24 2021-03-09 三菱电机株式会社 Interrupt processing method, computer system and program product

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008305070A (en) * 2007-06-06 2008-12-18 Hitachi Communication Technologies Ltd Information processor and information processor system
JP4858720B2 (en) * 2008-03-05 2012-01-18 日本電気株式会社 Emulator, emulation method, program, and recording medium
JP2015041199A (en) * 2013-08-21 2015-03-02 キヤノン株式会社 Information processing apparatus
KR102513961B1 (en) * 2015-11-11 2023-03-27 삼성전자주식회사 Electronic Device having Multiple Operating Systems and Dynamic Memory Management Method thereof
JP6786010B2 (en) * 2018-05-07 2020-11-18 三菱電機株式会社 Information processing equipment, tuning method and tuning program

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0193830A (en) * 1987-10-05 1989-04-12 Nec Corp System for controlling interruption in virtual computer system
JP3503504B2 (en) * 1998-12-11 2004-03-08 株式会社日立製作所 Debug processing system, computer and debug processing method
JP2000347883A (en) * 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd Virtual computer device
JP3765201B2 (en) * 1999-07-07 2006-04-12 株式会社日立製作所 Computer system
JP4402797B2 (en) * 2000-03-02 2010-01-20 株式会社日立製作所 Information processing device
JP2001282558A (en) * 2000-03-30 2001-10-12 Hitachi Ltd Multi-operating computer system

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102667725A (en) * 2010-01-13 2012-09-12 马维尔以色列(M.I.S.L.)有限公司 Hardware virtualization for media processing
CN102667725B (en) * 2010-01-13 2015-09-16 马维尔以色列(M.I.S.L.)有限公司 For the hardware virtualization of media processing
CN103262025A (en) * 2010-10-01 2013-08-21 Flex Electronics ID Co.,Ltd. Cross-environment communication using application space API
US9678810B2 (en) 2010-10-01 2017-06-13 Z124 Multi-operating system
CN103048988A (en) * 2011-10-15 2013-04-17 费斯托股份有限两合公司 Coupling device and method of zuransteuerung austauschbarenelektrischen systems
CN103048988B (en) * 2011-10-15 2016-06-29 费斯托股份有限两合公司 Coupling device and the method for manipulating interchangeable electricity system
CN103246560B (en) * 2012-02-14 2016-11-30 联想(北京)有限公司 The method of a kind of pattern switching and electronic equipment
CN103246560A (en) * 2012-02-14 2013-08-14 联想(北京)有限公司 Mode switching method and electronic equipment
WO2015131549A1 (en) * 2014-09-24 2015-09-11 中兴通讯股份有限公司 Method and device for collecting operating system fault information, and computer
CN105528024A (en) * 2014-10-17 2016-04-27 美商迪尔亚科技股份有限公司 Electronic device for internet protocol communications
CN108694691A (en) * 2017-04-09 2018-10-23 英特尔公司 Page fault and selectivity are seized
CN112470125A (en) * 2018-07-24 2021-03-09 三菱电机株式会社 Interrupt processing method, computer system and program product
CN112470125B (en) * 2018-07-24 2024-02-20 三菱电机株式会社 Interrupt processing method, computer system, and storage medium
CN109520079A (en) * 2018-11-08 2019-03-26 广东美的制冷设备有限公司 Air conditioner and its control method, device and computer readable storage medium
CN109520079B (en) * 2018-11-08 2021-07-23 广东美的制冷设备有限公司 Air conditioner, control method and device thereof, and computer readable storage medium
CN111124664A (en) * 2019-11-22 2020-05-08 华为技术有限公司 Method and device for accessing second operating system resource by first operating system
CN111124664B (en) * 2019-11-22 2023-12-08 华为技术有限公司 Method and device for accessing second operating system resource by first operating system

Also Published As

Publication number Publication date
JP2007507779A (en) 2007-03-29
KR20070003765A (en) 2007-01-05

Similar Documents

Publication Publication Date Title
CN101052949A (en) Operating systems
CN1922576A (en) Operating systems
CN1916877A (en) System and method for communicating command parameters between a processor and a memory flow controller
CN1942859A (en) Operating systems
CN1538296A (en) Multithreaded kernal for graphics processing unit
CN1214307C (en) Multi-function power switch and feedback light emitting diode for hanging-up system
CN1100287C (en) Power management processor for hinging-up system
CN1609812A (en) System and method for enhancing performance of coprocessor
CN1711524A (en) Switching between secure and non-secure processing modes
CN1158591C (en) Automatic backup system for advanced power management (APM)
CN1105959C (en) Low Power ring detect for computer system wakeup
CN1287270C (en) Restarting translated instructions
CN1308818C (en) Dynamic optimizing target code translator for structure simulation and translating method
CN1186718C (en) Microcontroller instruction set
CN1624657A (en) Security-related programming interface
CN1290009C (en) Technique for permitting access across a context barrier in a small footprint device using global data structures
CN1702634A (en) Facilitating management of storage of a pageable mode virtual environment absent intervention of a host of the environment
CN1236380C (en) Microprocessor with random number generator and instruction for storing random data
CN1728685A (en) Method and system for facilitating data transfer in a pageable mode virtual environment
CN1573656A (en) Power supply management system in parallel processing system and power supply management program therefor
CN1220939C (en) Management protocol, method for verifying and transforming downloaded programme fragment and corresponding systems
CN1723448A (en) Secure memory for protecting against malicious programs
CN1869923A (en) System data interfaces, related system architectures
CN101069157A (en) A method and system for accessing resources
CN1641607A (en) Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
C20 Patent right or utility model deemed to be abandoned or is abandoned