BRPI0910188B1 - método de inicialização de computador, produto de programa de computador fabricado, e dispositivo eletrônico - Google Patents
método de inicialização de computador, produto de programa de computador fabricado, e dispositivo eletrônico Download PDFInfo
- Publication number
- BRPI0910188B1 BRPI0910188B1 BRPI0910188A BRPI0910188A BRPI0910188B1 BR PI0910188 B1 BRPI0910188 B1 BR PI0910188B1 BR PI0910188 A BRPI0910188 A BR PI0910188A BR PI0910188 A BRPI0910188 A BR PI0910188A BR PI0910188 B1 BRPI0910188 B1 BR PI0910188B1
- Authority
- BR
- Brazil
- Prior art keywords
- memory
- computer
- program
- heap
- region
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
mttodo de inicialização de computador, produto de programa de computador fabricado e dispositivo eletrônico a presente invenção provê técnicas que se relacionam a computadores pessoai_s e a dispositivos que compartilham arquiteturas similares, e, em particular, a um método e dispositivo para permitir melhor desempenho e segurança em programas hypervisor, e aplicativos relacionados, obtidos através do uso de múltiplas memórias nãovoláteis.
Description
MÉTODO DE INICIALIZAÇÃO DE COMPUTADOR, PRODUTO DE PROGRAMA DE COMPUTADOR FABRICADO, E DISPOSITIVO ELETRÔNICO
Campo da Invenção
A presente invenção se relaciona geralmente a computadores e dispositivos que compartilham arquiteturas similares. A presente invenção, ademais, se relaciona, mais particularmente, a um método, produto de programa de computador, e dispositivo eletrônico que proporcionam características de desempenho e segurança superiores em programas Hypervisor e programação de aplicativos relacionados.
Histórico da Invenção
Correntemente, a utilização de computadores pessoais se tornou lugar comum, e ainda vem mostrando crescimento. Hardwares cada vez mais baratos vêm se tornando cada vez mais rápidos e incorporam cada vez . mais capacidade e capabilidade ao passar dos anos, e softwares aplicativos para lidar com novas tarefas e softwares de sistema para administrar novos dispositivos continuam surgindo em profusão.
Um usuário típico encontra, a todo momento, novas versões de software que apresentam vantagens e desvantagens em relação aos antigos. Pode se dizer que com o passar do tempo, os usuários contam com computadores com cada vez mais capabilidades e quantidade de software.
Um problema enfrentado por um usuário típico diz respeito aos benefícios e (custo) de adotar novas versões de hardware e software (ou um aplicativo totalmente novo) versus benefícios de continuar com o produto mais antigo, cuja prática domina. Os fatores a serem considerados são complexos (e além do escopo da presente invenção), e ademais soluções de software integrado trazem questões adicionais, na medida que tendem a limitar a capacidade de diferentes aplicativos (ou diferentes variantes dos mesmos aplicativos) de coexistirem harmoniosamente. Um problema comum deste tipo surge se um usuário contar, por exemplo, com um driver para um certo hardware, designado para trabalhar somente com um pré-determinado OS (Sistema Operacional), por exemplo, XP® da Microsoft®, e programa aplicativo que trabalha somente com Vista®.
Nenhuma solução atende plenamente, requerendo que o usuário tenha que tolerar algum tipo de compromisso.
Outro aspecto a ser considerado diz respeito ao tempo de inicialização (start-up) requerido pelo computador. Em geral, quanto mais softwares residentes são tolerados, 10 mais demorada se torna a inicialização. Mesmo quando múltiplos softwares (incluindo múltiplos OS) são interoperáveis e úteis (ou pelo menos co-existem harmoniosamente) e provêem desempenho suficiente, estes softwares ainda demandam um tempo de inicialização 15 excessivo em comparação com a utilização de um único OS.
O tempo de inicialização de computador facilmente pode vir a se tornar um aspecto irritante a um usuário, que meramente deseja seguir com a tarefa em mãos.
Um outro problema que vem aumentando diz respeito aos 20 chamados malware. Vários melhoramentos que objetivam bloquear os citados malwares vêm sendo propostos, mas frequentemente se baseiam em soluções integradas, ligadas a um fornecedor específico, ou pior, a uma particular versão de um software de um certo fornecedor, que torna 25 ainda mais difícil a administração de múltiplas variantes de software. Ademais, tais soluções podem usar frequentemente a solução “segurança por obscuridade, que provê ao usuário um reduzido controle em seu destino, e se mostra menos adequado para uso com produtos de fonte 30 aberta (open source).
Sumário da Invenção
Por conseguinte, a presente invenção provê um método de inicialização de um computador para suportar máquinas virtuais. Outros dispositivos eletrônicos, incluindo computadores pessoais ou controladores digitais completamente diferentes, também podem ser usados.
Métodos inventivos podem incluir alocar regiões de memória e carregar programas a partir de memórias nãovoláteis. Tais programas podem incluir um programa hypervisor, programa para carregar hypervisor, e programas de Appliance. Ademais, heaps de memória podem ser criados para vários propósitos, e memórias nãovoláteis, tais como dispositivos de disco, podem ser processados, por exemplo para carregar Sistemas Operacionais OSs.
De acordo com um aspecto, a presente invenção provê um método de inicialização de um computador pessoal para suportar máquinas virtuais, compreendendo as etapas de:
alocar uma primeira região de memória de leituraescrita;
carregar a partir de uma primeira memória nãorvolátil para uma. primeira .região: — - -- - — um primeiro programa selecionado de uma lista, que consiste de:
um programa hypervisor HV;^e __ _ _ _ _ _ um programa HSC que opera para carregar o programa hypervisor na primeira região;
- criar um heap de memória na memória de leituraescrita, excluindo a primeira região; e
- passar o controle para o primeiro programa.
De acordo com um aspecto adicional, a presente invenção provê um produto de programa de computador fabricado, compreendendo pelo menos uma mídia legível por computador incluindo instruções de computador codificadas, que, ao serem executadas, em pelo menos um computador, inicializam este pelo menos um computador para suportar máquinas virtuais através das etapas que compreendem as ações de:
alocar uma primeira região da memória de leitura-escrita; carregar a partir da primeira memória não-volátil para a primeira região:
um primeiro programa selecionado a partir de uma lista que consiste de:
um programa hypervisor; e um programa que opera para carregar programa hypervisor na primeira região;
criar um heap de memória da memória de leitura-escrita, excluindo a primeira região; e passar o controle para o primeiro programa.
De acordo com um outro aspecto adicional, a presente invenção provê um dispositivo eletrônico compreendendo: meios para executar instruções programadas; e meios não-voláteis para memorizar instruções de 10 computador, que, quando são executadas pelos citados meios de execução, inicializam o citado dispositivo eletrônico para suportar máquinas virtuais através das etapas que compreendem as ações de:
alocar uma primeira região da memória de leitura-escrita; 15_ carregar a partir da_priineira_memória—não-volátil para a primeira região:
um primeiro programa selecionado de uma lista consistindo de: _____ — — - — — — um programa hypervisor; e um programa- que opera para carregar programa hypervisor na primeira região;
criar um heap na memória de leitura-escrita, excluindo a primeira região; e passar o controle para o primeiro programa.
Desde que o programa hypervisor pode ser carregado antes ou depois de alocar e/ou particionar o heap de memória.
Em uma configuração, o heap pode expressamente excluir a memória dedicada a HV, visando eliminar (ou reduzir substancialmente) a visibilidade do HV a partir de 30 programas posteriormente carregados, especialmente a partir de um sistema operacional genérico.
Em uma configuração, depois de instalar o heap, o BIOS pode transferir o controle de volta para HSC, que então carrega e inicia em um modo de memória virtual e/ou em um 35 modo protegido do HV. Tipicamente, HV e/ou BIOS, em conjunto, lêem informações paramétricas de tendência da memória usadas para configuração BIOS (ou alguma outra memória não-volátil oculta), qual informação pode ser usada para particionar o heap. Assim, a informação para guiar uma tendência é disponibilizada para HSC e HV.
Diversas variações destes aspectos serão discutidas junto com configurações alternativas exemplares. Projetos melhorados para firmware/ software provêem um compromisso superior com respeito aos problemas delineados acima. Descrição Resumida dos Desenhos
As vantagens e aspectos acima mencionados e relacionados da presente invenção serão mais bem entendidos e apreciados a partir de uma revisão minuciosa da descrição detalhada a seguir da presente invenção, em conexão com desenhos anexos que estão incorporados e constituem parte da especificação, ilustrando uma configuração da presente Invenção,_ onde _.os ^.mesmos .números. de- referência representam elementos iguais ou similares, nos quais:
A figura 1 é um diagrama esquemático de blocos de um dispositivo eletrônico configurado^ para implementar um produto de programa de computador e/ou método de inicialização de computador, de acordo com uma configuração da presente invenção;
| A | figura | 2 | é | um fluxograma | ilustrando as | etapas |
| realizadas | pelo | dispositivo | eletrônico, | quando | ||
| se | implementa | uma | configuração da | presente invenção | f | |
| A | figura | 3 | é | um fluxograma | ilustrando as | etapas |
realizadas quando da implementação de carregamento e execução de hypervisor, appliances, e sistema operacional principal, em uma configuração exemplar da presente invenção;
A figura 4 é um fluxograma ilustrando as etapas realizadas, quando se virtualiza pedidos de informação de memória de uma máquina virtual em uma configuração exemplar da presente invenção;
A figura 5 é um fluxograma ilustrando as etapas realizadas quando se passa para um modo de facilidade reduzida em uma configuração da presente invenção;
A figura 6A mostra como uma configuração exemplar da presente invenção pode ser codificada em uma mídia de computador; e
A figura 6B mostra como uma configuração exemplar da presente invenção pode ser codificada, transmitida, recebida, e decodificada usando ondas eletromagnéticas. Para efeito de conveniência de descrição, serão dados os mesmos números de referência a componentes que forem idênticos ao longo dos vários desenhos.
Descrição Detalhada das Configurações Preferidas
Na descrição que se segue, para propósito de clareza e facilitar o entendimento, salienta-se que nem todos dos numerosos componentes que aparecem nos diagramas esquemáticos e/ou desenhos serão descritos. Os numerosos componentes são mostrados nos desenhos para prover .15 àqueles habilitados na.técnica, uma descrição abrangente-e capacitante com respeito à presente invenção. A operação dos componentes deve ser plenamente entendida e aparente por aqueles__ habilitados na_ técnica habilitados _na técnica.
Uma configuração exemplar da presente invenção será agora descrita com referência à figura 1.
A figura 1 é um diagrama esquemático de blocos de um dispositivo eletrônico, que implementa uma funcionalidade de uso de memória, de acordo com uma configuração da presente invenção. Em uma configuração exemplar, o dispositivo eletrônico 10 é implementado na forma de computador pessoal, por exemplo, um computador de mesa, notebook, computador tablet, ou qualquer dispositivo de computação adequado.
Embora a descrição se refira à operação de um computador pessoal, aqueles habilitados na técnica deverão apreciar que o dispositivo eletrônico 10 também pode vir a ser implementado como PDA, um dispositivo de comunicação semfio, por exemplo, telefone celular, controladores ou dispositivos incorporados, por exemplo, aparelhos acessórios separados (set-top), dispositivos de impressão, ou combinações destes, para operar e/ou interoperar com a presente invenção.
O computador pessoal 10 pode incluir pelo menos um controlador ou processador 12, configurado para controlar a operação global do dispositivo eletrônico 10. Qual processador ou controlador frequentemente é controlado por uma CPU (de Central Processing Unit, i.e. Unidade de Processamento Central) ou MPU (de Microprocessor Unit, i.e. Unidade de Micro-processamento). O processador 12 pode incluir um ALU (Arithmetic/Logic Unit, i.e. Unidade Aritmética/Lógica) para fazer operações computacionais, um ou mais registros para armazenamento temporário de dados e instruções, e um seqüenciador ou controlador para controlar operações do computador pessoal 10. Em uma configuração, o processador 12 pode incluir um microprocessador Celeron® .ou Centrino®- da Intel®-ou Power PVC® da International Busines Machines®. Em adição, qualquer de uma variedade de outros processadores, incluindo da Sun Microsystems®, MIPS®,_NEC®,_ Cyrix®, e_ outros, pode ser usado para implementar processador 12, que, ademais, não se limita a micro-processadores, podendo assumir outras formas, i.e. micro-controladores, processadores de sinal digital, hardware dedicado ASIC (ApplicationSpecific Integrated Circuit, i.e. Circuito Integrado de Aplicação Específica), máquinas de estado, ou softwares executados em um ou mais processadores distribuídos em rede.
O processador 12 pode ser acoplado a um controlador de barramento 14 por meio de um barramento de CPU 13. Qual controlador 14 pode incluir um controlador de memória integrado 15, que, em uma configuração, pode ser separado do controlador de barramento 14. O controlador de memória integrado 15 pode prover uma interface para acessar, por meio de um processador 12, ou outros dispositivos, uma memória de um sistema de leitura-escrita, por exemplo,, memória RAM (memória de acesso randômico).
O controlador de barramento 14 pode ser acoplado a um barramento de sistema 18, por exemplo, um barramento PCI (Peripheral Component Interconnect, i.e. Interconexão de Componente Periférico) . O barramento de sistema 18 pode ser acoplado um controlador de dispositivo periférico 24
| também conhecido como | controlador | I/O (input/ output, | ||
| 5 i.e. entrada/ saída). | Por | sua | vez | , o controlador de |
| dispositivo periférico | 24 | pode | ser | acoplado a vários |
| outros dispositivos 25, | 26, | 27, | tal | como, por exemplo, |
| teclado, mouse, impressora | etc | • · · | Outros componentes |
(não mostrados na figura 1) provavelmente também poderíam 10 estar presentes, por exemplo, um controlador de tela acoplado à tela, e um controlador de comunicação de rede, são muito comuns.
O barramento de sistema 18 também pode ser acoplado a um número de memórias não-voláteis, para efeito de exemplo, 15. na_.prática, podem haver -mais ou menos memórias - nãovoláteis. Em outras configurações, memórias podem ser acopladas de outras maneiras, tal como, por exemplo, diretamente ao controlador de barramento 14. _ _
Como indicado na figura 1, memórias não-voláteis exemplares 30, 31, 32, 33 podem prover de diferentes tecnologias e com as- respectivas capabilidades. Como mostrado na figura 1, memória não-volátil 30 pode ser implementada como uma memória apenas de leitura ROM e incluir um POST 40 (Power-On Self-Test, i.e. Auto-Teste 25 de Ligação) e CSS 41 (Core System Software, i.e. Software de Sistema de Núcleo) , assim como outros componentes, tal como DDs (Device Drivers, i.e. Drivers (Controladores) de Dispositivos).
Ainda se referindo à figura 1, as terceira e quarta 30 memórias não-voláteis 32, 33 podem incluir vários componentes. Tipicamente, uma das memórias não-voláteis pode ser implementada como memória Flash ou SDM (Secure Digital Memory, i.e. Memória Digital Segura) que tipicamente compreende Firmware BIOS (Basic Input/Output 35 System, i.e. Sistema Básico de Entrada/ Saída) 42.
A memória Flash é usualmente incorporada como um tipo de EEPROM (Eletrically Erasabel Programmable Read-Only
Memory, i.e. Memória Eletricamente Apagável Apenas de Leitura) de bloco orientado.
Outros componentes de firmware e software, por exemplo, Hyperspace® da Phoenix Technologies® Ltd, podem ser armazenados em qualquer memória não-volátil, por exemplo, a terceira memória não-volátil 32 podem incluir uma cópia de programa Hypervisor 61 (também conhecido como VMM (Virtual Machine Monitor, i.e. Monitor de Máquina Virtual)) e/ou programas aplicativo relativamente pequenos, os chamados Appliances 62 (ou Applets).
Embora firmware e software possam ser armazenados em memórias não-voláteis, firmware e software são comumente transferidos para a memória do sistema 16 antes de sua execução através de dispositivo driver de bloco-orientado ou técnica de memória* sombra, cpmo_conhecido=na— técnica. Excepcionalmente, instruções, especialmente instruções POST usadas no setup dos primeiros computadores, podem ser executadas diretamente fora do ROM, ou etc. _tal_ como instruções usadas para implementar a própria operação de memória sombra (shadow-memory).
Em combinação, e em muitas permutações, as memórias nãovoláteis da figura 1 podem incluir instruções (de firmware ou software) para executar as etapas ou ações descritas abaixo, com referência a outras figuras.
A figura 2 é um fluxograma ilustrando as etapas realizadas pelo dispositivo eletrônico, quando da implementação de uma configuração da presente invenção, a partir da condição de ligação (power on) 200. A figura 2 é meramente exemplar, e muitas configurações alternativas serão possíveis dentro do escopo da presente invenção. Ademais, a figura 2 é de um nível um tanto alto, e detalhes adicionais serão descritos mais adiante em conexão com as figuras.
Na etapa 210, o hardware é inicializado como ação preliminar para ligar o hardware, de modo a conseguir outras capabilidades. Então, se inicia POST 220, tendo muitas características não mostradas na figura 2.
Em algum ponto no processo POST, há oportunidade 230 para intervenção humana 240, para reconfiguração manual de parâmetros de memória não-volátil, tal como mini SDM (Secure Digital Memory, i.e. Memória Digital Segura), seguido de um retorno ao começo de uma seqüência de inicialização de ligação 210 (Power Up).
Na etapa 250, é verificado se são solicitados serviços Hypervisor, como da Phoenix Technologies® Hypercore , . Tal pedido pode ser um serviço de boot, tal como, em resposta a um parâmetro de configuração BIOS. A determinação feita assim (etapa 260), se serviços Hypervisor não estiverem sendo pedidos, então, na etapa 270, um ajuste de memória convencional é realizado, e na etapa 280, como um sistema operacional é carregado por boot JbootJLoad)_ na .etapa. 2 99., o .controle consentido a partir do BIOS (neste exemplo, para o Sistema Operacional) .
Na etapa 300, serviços Hypervisor foram ^solicitados, e setup Hypervisor reativo e Hypervisor de carregamento por boot (bootload) serão discutidos abaixo, com referência à figura 3. Depois do que o setup é completado.
A figura 3 mostra setup de carregamento por boot HV e ações associadas, de acordo com uma configuração da presente invenção, e começando 300 com o início do setup Hypercore. Tipicamente, nesta fase de execução, os códigos de instrução fazem parte do BIOS (ou de outro firmware) e podem ser encobertos (ocultos) na memória.
Na etapa 303, um espaço é alocado em uma partição SMM (de System Management Memory, i.e. Memória de Administração de Sistema) para dados de segurança Hypervisor HV. A memória SMM é acessada em um modo de CPU, temporalmente menos usado - Modo de Administração de Sistema - destinado a serviços de nível baixo, tal como monitoramento de temperatura de CPU.
A seguir, na etapa 305, um espaço é alocado à HV, (Hypervisor) por exemplo PVMM (de Phoenix Virtual Machine Monitor, i.e. Monitor de Máquina Virtual Phoenix) a partir de uma memória livre. No exemplo mostrado, esta alocação pode ser feita a partir de espaço RAM TSEG (de Top of Memory Segment - Topo do Segmento de Memória) .
Este espaço recém-alocado é conhecido como PVMMS (de
Phoenix Virtual Machine Monitor segment, i.e. segmento de Monitor de Máquina Virtual Phoenix).
Na etapa 310, HSC (Hypervisor Starter Code, i.e. Código de Partida de Hypervisor) é carregado a partir de uma memória nao-volátil, por exemplo, memória Flash para 10 PVMMS. Técnicas de relocação de memória são bem conhecidas na técnica e incluem aplicação de endereços de base ajustada a deslocamentos (offsets) e técnicas similares para tornar o código independente dos endereços de memória absoluta. Em uma configuração, HSC opera 15_ principalmente em Modo_Big Real (também conhecido como
Modo Real Flat ou Unreal) na Intel® X86 e arquiteturas CPU little endian, e similares.
Relocation_de código também é conhecido como Loadinq, em algumas implementações, especialmente em ambientes nos 20 quais Unix® argot é favorecido. Loading é um pouco mais amplo que Relocation, por não incluir necessariamente ajustes de endereço - ainda que tais ajustes sejam feitos em uma alta proporção de casos.
Em uma configuração, o HSC então pode operar (etapa 315) 25 pára carregar um programa hypervisor. Algumas vezes,
HV não é carregado diretamente, mas, ao invés, carrega Carregador (Loader) , que, por sua vez, carrega HV, tal como em um arranjo de carregamento em cascata.
Programas HV são comuns na técnica, e são usados para 30 criar e hospedar ambientes de máquinas virtuais VM, nos quais programas, substancialmente capazes de serem executados nus (i.e. sem HV) no computador, são recebidos pelo HV. Máquinas virtuais são bem conhecidas, e se tratam de mecanismos que impedem a visibilidade entre 35 situações de VMs, de modo que programas operando com VMs, não percebem (não têm visibilidade) que não estão sozinhos no computador entre outros programas pares.
Embora não mostrado na figura 3, o controle pode retornar do HSC para um thread BIOS, onde é alocada a memória de sistema (RAM) para necessidades adicionais de espaço, por exemplo, um espaço para ACPI (Advanced Configuration and Power Interface, i.e. Configuração Avançada e Interface de Energia).
Tipicamente uma ação tardia do código BIOS é prover o setup (figura 3, etapa 320) do heap de memória, também chamado free store (espaço livre). O heap tende a deixar substancialmente todo “free store (em geral RAM), disponível para ser usado quer por um sistema operacional e programas que este carrega. Na ciência computacional, a alocação de memória dinâmica se trata da alocação de armazenamento de memória para ser usado em um programa de computador durante sua execução. Pode_ser~viste também como um modo de distribuir a posse de recursos de memória limitados em meio a muitas peças de dados e códigos. Em uma configuração, o heap expressamente_ exclui a. memória dedicada para HV, eliminando, ou substancialmente reduzindo, a visibilidade do HV, a partir do último programa carregado, especialmente a partir de sistemas operacionais genéricos, tal como MS Windows® ou Linux®.
Em uma configuração, depois do setup do heap, o BIOS transfere o controle de volta para HSC, que então carrega e inicia modos de memória virtual e/ou protegida do HV. Tipicamente, HV e/ou BIOS em conjunto lêem informações de tendência paramétricas da memória, que são usadas na configuração BIOS (ou outra memória não-volátil oculta) quais informações podem ser usadas para partição do heap (etapa 325) na memória dedicada a múltiplas VMs.
Ainda referindo-se à figura 3, na etapa 330 o programa hypervisor é carregado, tipicamente pelo HSC. Em outras configurações, HV pode ser carregado antes de alocar e/ou particionar heap de memória (etapas 320, 325) . Em uma implementação, HSC pode ser executado em Modo Big Real CPU, tal como modo de memória protegida ou virtual. As etapas 335 de deixar modo Real quando entra HV são implementações especificas.
Assim, por ser capaz na etapa 340 de usar informação de partição de heap de memória para VMs, HV pode seguir fazendo setup de VMs. Na etapa 345, pequenos programas aplicativos (Appliances ou Applets) podem ser carregados a partir de uma memória não-volátil ou separados e protegidos de outra forma na memória não-volátil principal, que, tipicamente, é um disco rigido.
Com certeza, os programas carregados por HV tipicamente podem, se desejado, tratar alocação de memória como próprio heap, e adicionalmente particioná-lo para vários aplicativos, drivers de dispositivo, etc..
Neste ponto, o HV segue a seqüência de procedimento de carregamento por boot não-HV de CPU, por exemplo, na_ etapa 3_50, .pode_emitir 1.9h. Interrupt,- o .19h Interrupt é tomado pelo código que (etapa 355) carrega MBR a partir da memória não-volátil principal (tipicamente disco rigido) e passa o controle^ (etapa 360) _para um_programai encontrado com MBR e que pode ser, por exemplo, um carregador de boot (bootloader) no MBR ou um programa para o qual MBR inclua alguma forma de estação de indireção (apontador de disco). Na etapa 399, isto completa as ações de alocar espaço para carregar e executar HSC e HV e Appliances e/ou sistema operacional principal hospedado pelo HV.
Com certeza, a maior parte dos HVs faz muito mais que descrito aqui, como conhecido por aqueles habilitados na técnica, incluindo virtualização de pedidos 1-0 (EntradaSaida) (endereçados para hardware ou drivers de sinais) e para virtualização de outros pedidos de sistema. Por exemplo, em arquiteturas x86, um HV pode acoplar 15h Interrupt, de modo que este virtualize os conhecidos pedidos de memória 15h Int/EAX= E820h, de modo que o sistema operacional veja sua própria partição de heap, e não todo heap. O BIOS tipicamente provê visibilidade a todo heap, e o HV pode atuar para impedir esta visibilidade, exceto para pedidos que se originem no próprio HV (ou pelo menos não dentro do código carregado por HV, nem código residente no heap).
Assim, uma vez assumindo o controle, o HV pode manter controle do computador até o próximo reset de sistema, freqüentemente em resposta à intervenção por controle SMM (tipicamente usado para eventos mais significativos, tal como detecção de sobreaquecimento ou fechamento incipiente de sistema).
A figura 4 mostra um exemplo de virtualização por HV de acordo com a presente invenção. Na etapa 400, a entrada é feita em uma função de serviço, que responde a um pedido de memória, virtualizado por HV. Tal pedido de memória tipicamente é configurado como ISR (Interrupt Service Routine, i.e. Rotina de Serviço de Interrupção) para 15h interrupt jsoftware_Int (etapa _410 ) - Na etapa 420, é verificado se o pedido é uma memória informacional do formato particular suportada (15h Int/EAX= E820h), sendo que grande parte_ destes _ formatos é conhecida na técnica. Mas, se o pedido de interrupção for de outro tipo, então, na etapa 425, o controle passa para o próximo ISR na seqüência.
Assumindo que o pedido deve ser atendido, na etapa 430, se determina qual VM pede informação de memória. Se o pedido não vier de VM (etapa 440) , então o pedido não será virtualizado, e, na etapa 445, se segue para outra rotina ISR na seqüência (se houver).
Na etapa 450, uma resposta é compilada para o pedido 15h Int/EAX= E820h, mas virtualizada para VM específica. A partição de memória de VM é tratada como se o heap inteiro pretendesse compilar respostas vírtualízadas para os pedidos de memória. Na etapa 499, isto completa rotina ISR para atender pedidos de máquina virtual.
Referindo-se agora à figura 5, onde se descreve a ação do HV quando são realizados serviços Hypercore associados à transição em operação para facilidades reduzidas, na forma racionalizada de operação. Esta capabilidade é complementar, e amplamente permitida pelas facilidades descritas acima fazendo referência a outras figuras.
Uma configuração exemplar da presente invenção podería usar um modo de facilidade reduzida, o ’ sistema operacional primário carregado via MBR é suspenso/ desabilitado, e o disco rígido associado (que é um voraz consumidor de energia) é colocado no estado desligado, mas com os programas Appliance ainda sendo executados usando uma memória não-volátil de semi-condutor. No entanto, o uso de facilidade reduzida, em condição de operação de energia baixa, constitui apenas um exemplo, os dois aspectos são potencialmente separáveis.
Na etapa 500 da figura 5, inicia o processo para passar para a operação de estado de energia baixa. Na etapa 510, o usuário é notificado que o computador está passando para_modo_Appliance,^em resposta a um estímulo.
Então, na etapa 520, são enviados sinais aos sistemas operacionais OSs carregados nas VMs para avisá-los para associar operações, que podem incluir^ completação _de operações 1-0 pendentes. Tipicamente, os OSs têm ganchos para este propósito, em conexão com máquinas que passam para um estado Dormente (Sleep) ou similar, de acordo çom escolhas de implementação de hardware e/ou software. Na etapa 530, faz-se um pedido para desligar discos rígidos e reduzir a velocidade de clock da CPU ou o número de multiprocessador CPUs ativos, ou prover outras mudanças com propósito de poupar energia, como apropriado. Tipicamente, tal controle é controlado por software que executado em SMM, e, portanto, pode ser necessário emitir SMI com um apropriado bloco de pedido ao serviço requerido.
Na etapa 540, as VMs a serem suspensas são marcadas como tendo nenhum compartilhamento (ou quase nenhum compartilhamento) de tempo de CPU disponível (e intercambiadas em páginas de memória virtual, e assim por adiante).
Na etapa 599, a execução do Appliance é reiniciada através de um código de saída/ retorno adequado.
Com respeito à figura 6Ά, as instruções de computador no dispositivo eletrônico 10 podem ser distribuídas como produtos de computadores de firmware/software fabricados 610, com uma variedade de mídias 630, sendo que as instruções são gravadas com gravador de armazenamento 620. Frequentemente em produtos tão complexos, tal como aqueles que implementam a presente invenção, mais uma mídia pode ser usada para distribuição e fabricação de produtos relevantes, sendo que apenas uma mídia é mostrada na figura 6A para efeito de clareza, mas, deve ser apreciado que mais que uma mídia pode ser usada, e um único produto de computador pode ser dividido por uma pluralidade de mídias.
Com respeito à figura 6B, adicionalmente’, e especialmente com respeito ao ^crescimento de utilização de Internet, produtos de computador 610 podem ser distribuídos codificando os mesmos em sinais modulados, tal como em onda. A forma de onda resultante, então, pode ser transmitida por um transmissor 640, propagando em ondas portadoras eletromagnéticas moduladas 650, que são recebidas por um receptor 660. Quando de sua recepção, são demoduladas, e o sinal decodificado em uma versão adicional ou cópia do produto de computador 611, em uma memória ou dispositivo de armazenamento 11.
Outras topologias e outros dispositivos também poderíam ser usados para produzir configurações alternativas para a presente invenção.
Claims (9)
1- Método de inicialização de computador (10), para suporte de máquinas virtuais, caracterizado pelo fato de compreender as etapas de:
alocar (305) uma primeira região de memória de leitura-escrita (16);
carregar (310) um programa hypervisor a partir de uma primeira memória não-volátil (30) para a primeira região:
criar (320) um heap de memória na memória de leituraescrita, o heap de memória excluindo a primeira região;
particionar (325) o heap para criar uma pluralidade de partições que respondem a parâmetros conhecidos a um programa BIOS no computador, em que a pluralidade de partições são dedicadas às máquinas virtuais; e fazer os resultados do particionamento visíveis ao programa hypervisor e configurar, pelo programa hypervisor, as máquinas virtuais usando a pluralidade de partições, em que o programa hypervisor responde a um estimulo para passar para uma operação de estado de baixo energia por:
- suspenção da execução do sistema operacional (52) e colocando a segunda memória não volátil associada (31) em um estado desligado, e
- execução no programa de appliance (62) durante a operação de estado de baixo energia.
2- Método, de acordo com a reivindicação 1, caracterizado pelo fato de:
a alocação (305) e o carregamento (310) operarem substancialmente em um modo real de CPU (Unidade de Processamento Central); e o programa hypervisor operar, pelo menos parcialmente, em um modo protegido ou em um modo de endereço virtual.
3- Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de
Petição 870190083222, de 26/08/2019, pág. 9/127 adicionalmente compreender:
fazer a primeira região invisível a pelo menos alguns programas carregados no computador depois de o primeiro programa, mas antes de ocorrer uma condição de reset ainda mais tardio no computador.
4- Método, de acordo com qualquer uma das reivindicações de 1 a 3, caracterizado pelo fato de adicionalmente compreender:
fazer a primeira região invisível a consultas de locação de memória a partir de instruções localizadas no heap.
5- Método, de acordo com a reivindicação 1, caracterizado pelo fato de o programa hypervisor:
alocar à primeira máquina virtual uma partição selecionada a partir da pluralidade de partições; e virtualizar um pedido a partir da primeira máquina virtual para prover informação com respeito à disponibilidade de memória de leitura-escrita.
6- Método, de acordo com qualquer uma das reivindicações de 1 a 5, caracterizado pelo fato de adicionalmente compreender, antes de carregar o programa hypervisor:
uma ação de demodular um sinal a partir de uma onda eletromagnética, o sinal incluindo instruções de computador codificadas, que, quando executadas pelo computador, inicializam o computador através das etapas definidas na reivindicação 1.
7- Método, de acordo com a reivindicação 6, caracterizado pelo fato de adicionalmente compreender, antes da ação de demodular:
uma ação de modular o sinal na onda eletromagnética impressa em uma mídia tangível.
8- Produto de programa de computador fabricado, caracterizado pelo fato de compreender:
pelo menos uma mídia legível por computador incluindo instruções de computador codificadas na mesma, que, quando executadas por pelo menos um computador, inicializam o
Petição 870190083222, de 26/08/2019, pág. 10/127 pelo menos um computador para suportar máquinas virtuais através das etapas compreendendo as ações de:
alocar (305) a primeira região da memória de leitura-escrita (16);
carregar (310) um programa hypervisor a partir
de partições que respondem a parâmetros conhecidos a um programa BIOS no computador, em que a pluralidade de partições são dedicadas às máquinas virtuais; e fazer os resultados do particionamento visíveis ao programa hypervisor e configurar, pelo programa hypervisor, as máquinas virtuais usando a pluralidade de partições, em que o programa hypervisor responde a um estimulo para passar para uma operação de estado de baixo energia por:
- suspenção da execução do sistema operacional (52) e colocando a segunda memória não volátil associada (31) em um estado desligado, e
- execução no programa de appliance (62) durante a operação de estado de baixo energia.
9- Dispositivo eletrônico (10), caracterizado pelo fato de compreender:
meios (12) para executar instruções programadas; e meios não-voláteis (30, 31, 32, 33) para memorizar instruções de computador, quais instruções, quando executadas pelos citados meios de execução, inicializam o citado dispositivo eletrônico para suportar máquinas virtuais através das etapas que compreendem as ações de: alocar (305) uma primeira região da memória de leitura-escrita (16);
Petição 870190083222, de 26/08/2019, pág. 11/127 carregar (310) um programa hypervisor a partir de uma primeira memória não-volátil (30) para a primeira região:
criar (320) um heap na memória de leitura-escrita (16), o heap na memória excluindo a primeira região;
particionar (325) o heap para criar uma pluralidade de partições que respondem a parâmetros conhecidos a um programa BIOS no dispositivo eletrônico, em que a pluralidade de partições são dedicadas às máquinas virtuais; e fazer os resultados do particionamento visíveis ao programa hypervisor e configurar, pelo programa hypervisor, as máquinas virtuais usando a pluralidade de partições, em que o programa hypervisor responde a um estimulo para passar para uma operação de estado de baixo energia por:
- suspenção da execução do sistema operacional (52) e colocando a segunda memória não volátil associada (31) em um estado desligado, e
- execução no programa de appliance (62) durante a operação de estado de baixo energia.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/217,240 US9286080B2 (en) | 2008-07-02 | 2008-07-02 | Memory management for hypervisor loading |
| PCT/IB2009/052750 WO2010001313A1 (en) | 2008-07-02 | 2009-06-25 | Memory management for hypervisor loading |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| BRPI0910188A2 BRPI0910188A2 (pt) | 2016-01-19 |
| BRPI0910188B1 true BRPI0910188B1 (pt) | 2019-10-22 |
Family
ID=40974121
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0910188A BRPI0910188B1 (pt) | 2008-07-02 | 2009-06-25 | método de inicialização de computador, produto de programa de computador fabricado, e dispositivo eletrônico |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US9286080B2 (pt) |
| EP (1) | EP2307958B1 (pt) |
| JP (1) | JP5308522B2 (pt) |
| CN (1) | CN102203735B (pt) |
| BR (1) | BRPI0910188B1 (pt) |
| TW (1) | TWI443508B (pt) |
| WO (1) | WO2010001313A1 (pt) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8843742B2 (en) | 2008-08-26 | 2014-09-23 | Hewlett-Packard Company | Hypervisor security using SMM |
| US20100211769A1 (en) * | 2009-02-19 | 2010-08-19 | Subramonian Shankar | Concurrent Execution of a Smartphone Operating System and a Desktop Operating System |
| WO2011159882A2 (en) * | 2010-06-16 | 2011-12-22 | Indiana University Research And Technology Corporation | Novel stabilized insulin agonists |
| EP2616380B1 (en) | 2010-09-17 | 2019-11-06 | Harken Italy S.p.A. | Winch provided with adjustable self-tailing and relative operation |
| TWI421683B (zh) * | 2010-11-01 | 2014-01-01 | Phison Electronics Corp | 資料管理方法、記憶體控制器與記憶體儲存裝置 |
| US10339051B2 (en) | 2012-04-30 | 2019-07-02 | Hewlett Packard Enterprise Development Lp | Configurable computer memory |
| EP2979171A4 (en) * | 2013-03-28 | 2016-11-23 | Hewlett Packard Entpr Dev Lp | MEMORY IDENTIFICATION OF A BLADE ELEMENT FOR USE BY A OPERATING SYSTEM OF A PARTITION WITH THIS BLADE ELEMENT |
| US9323539B2 (en) * | 2013-06-27 | 2016-04-26 | Intel Corporation | Constructing persistent file system from scattered persistent regions |
| TW201504937A (zh) * | 2013-07-31 | 2015-02-01 | Ibm | 由實體儲存裝置中所選分區所構成的虛擬儲存裝置 |
| US9292684B2 (en) | 2013-09-06 | 2016-03-22 | Michael Guidry | Systems and methods for security in computer systems |
| US10157008B2 (en) * | 2015-04-29 | 2018-12-18 | Qualcomm Incorporated | Systems and methods for optimizing memory power consumption in a heterogeneous system memory |
| GB2539436B (en) * | 2015-06-16 | 2019-02-06 | Advanced Risc Mach Ltd | Secure initialisation |
| US11237761B2 (en) * | 2019-11-01 | 2022-02-01 | Microsoft Technology Licensing, Llc | Management of multiple physical function nonvolatile memory devices |
Family Cites Families (37)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4300192A (en) * | 1974-04-18 | 1981-11-10 | Honeywell Information Systems Inc. | Method and means for storing and accessing information in a shared access multiprogrammed data processing system |
| US5951685A (en) | 1996-12-20 | 1999-09-14 | Compaq Computer Corporation | Computer system with system ROM including serial-access PROM coupled to an auto-configuring memory controller and method of shadowing BIOS code from PROM |
| JP2001236237A (ja) | 2000-02-23 | 2001-08-31 | Hitachi Ltd | マルチos構成方法 |
| JPH11282685A (ja) | 1998-03-27 | 1999-10-15 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
| US6397242B1 (en) | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
| US6694346B1 (en) * | 1999-04-30 | 2004-02-17 | International Business Machines Corporation | Long running, reusable, extendible, virtual machine |
| JP2001256066A (ja) | 2000-02-29 | 2001-09-21 | Internatl Business Mach Corp <Ibm> | コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置 |
| US6892383B1 (en) | 2000-06-08 | 2005-05-10 | International Business Machines Corporation | Hypervisor function sets |
| US7003771B1 (en) | 2000-06-08 | 2006-02-21 | International Business Machines Corporation | Logically partitioned processing system having hypervisor for creating a new translation table in response to OS request to directly access the non-assignable resource |
| US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
| US6701421B1 (en) | 2000-08-17 | 2004-03-02 | International Business Machines Corporation | Application-level memory affinity control |
| US6915402B2 (en) * | 2001-05-23 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | Method and system for creating secure address space using hardware memory router |
| US7266658B2 (en) | 2002-09-12 | 2007-09-04 | International Business Machines Corporation | System, method, and computer program product for prohibiting unauthorized access to protected memory regions |
| US7370210B2 (en) * | 2002-11-18 | 2008-05-06 | Arm Limited | Apparatus and method for managing processor configuration data |
| JP4423206B2 (ja) * | 2002-11-18 | 2010-03-03 | エイアールエム リミテッド | 安全モードと非安全モードとを切り換えるプロセッサ |
| US7082509B2 (en) | 2003-02-06 | 2006-07-25 | Intel Corporation | Method and system for allocating memory during system boot to reduce operating system memory resource consumption at run-time |
| US7509644B2 (en) * | 2003-03-04 | 2009-03-24 | Secure 64 Software Corp. | Operating system capable of supporting a customized execution environment |
| US20040243783A1 (en) * | 2003-05-30 | 2004-12-02 | Zhimin Ding | Method and apparatus for multi-mode operation in a semiconductor circuit |
| US7380136B2 (en) | 2003-06-25 | 2008-05-27 | Intel Corp. | Methods and apparatus for secure collection and display of user interface information in a pre-boot environment |
| US7318148B2 (en) | 2003-07-31 | 2008-01-08 | Sap Ag | Automatically configuring a computer |
| US20050060590A1 (en) * | 2003-09-16 | 2005-03-17 | International Business Machines Corporation | Power-aware workload balancing usig virtual machines |
| US7370186B1 (en) | 2003-12-01 | 2008-05-06 | Nvidia Corporation | Multi-tasking bootstrap system and method |
| US20050160424A1 (en) | 2004-01-21 | 2005-07-21 | International Business Machines Corporation | Method and system for grid-enabled virtual machines with distributed management of applications |
| US7552419B2 (en) * | 2004-03-18 | 2009-06-23 | Intel Corporation | Sharing trusted hardware across multiple operational environments |
| US7380119B2 (en) | 2004-04-29 | 2008-05-27 | International Business Machines Corporation | Method and system for virtualization of trusted platform modules |
| US7174174B2 (en) * | 2004-08-20 | 2007-02-06 | Dbs Communications, Inc. | Service detail record application and system |
| US8145872B2 (en) * | 2004-11-08 | 2012-03-27 | International Business Machines Corporation | Autonomic self-tuning of database management system in dynamic logical partitioning environment |
| US7325163B2 (en) | 2005-01-04 | 2008-01-29 | International Business Machines Corporation | Error monitoring of partitions in a computer system using supervisor partitions |
| US20060236122A1 (en) | 2005-04-15 | 2006-10-19 | Microsoft Corporation | Secure boot |
| JP2007004661A (ja) | 2005-06-27 | 2007-01-11 | Hitachi Ltd | 仮想計算機の制御方法及びプログラム |
| US7366887B2 (en) | 2005-07-11 | 2008-04-29 | Lenovo (Singapore) Pte. Ltd. | System and method for loading programs from HDD independent of operating system |
| TW200705273A (en) | 2005-07-26 | 2007-02-01 | Mitac Technology Corp | Method instantly initializing and executing a computer program by using a high-speed data access memory to load kernel program of operating system |
| CN101484876B (zh) * | 2006-07-14 | 2012-12-19 | 英特尔公司 | 多任务虚拟机的堆组织 |
| WO2008017204A1 (en) * | 2006-08-01 | 2008-02-14 | Intel Corporation | Heap manager for a multitasking virtual machine |
| US8032899B2 (en) | 2006-10-26 | 2011-10-04 | International Business Machines Corporation | Providing policy-based operating system services in a hypervisor on a computing system |
| WO2008073618A2 (en) | 2006-11-06 | 2008-06-19 | Devicevm, Inc. | Instant on platform |
| CN101038556B (zh) | 2007-04-30 | 2010-05-26 | 中国科学院软件研究所 | 可信引导方法及其系统 |
-
2008
- 2008-07-02 US US12/217,240 patent/US9286080B2/en not_active Expired - Fee Related
-
2009
- 2009-06-25 JP JP2011515707A patent/JP5308522B2/ja not_active Expired - Fee Related
- 2009-06-25 CN CN200980125784.8A patent/CN102203735B/zh not_active Expired - Fee Related
- 2009-06-25 WO PCT/IB2009/052750 patent/WO2010001313A1/en not_active Ceased
- 2009-06-25 EP EP09772973.5A patent/EP2307958B1/en not_active Not-in-force
- 2009-06-25 BR BRPI0910188A patent/BRPI0910188B1/pt not_active IP Right Cessation
- 2009-07-02 TW TW098122469A patent/TWI443508B/zh not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| TWI443508B (zh) | 2014-07-01 |
| EP2307958A1 (en) | 2011-04-13 |
| US9286080B2 (en) | 2016-03-15 |
| WO2010001313A1 (en) | 2010-01-07 |
| EP2307958B1 (en) | 2019-06-12 |
| TW201007450A (en) | 2010-02-16 |
| US20100005267A1 (en) | 2010-01-07 |
| JP2011526714A (ja) | 2011-10-13 |
| CN102203735B (zh) | 2015-01-14 |
| BRPI0910188A2 (pt) | 2016-01-19 |
| CN102203735A (zh) | 2011-09-28 |
| JP5308522B2 (ja) | 2013-10-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5308522B2 (ja) | ハイパーバイザ・ローディングのためのメモリ管理 | |
| CN109478135B (zh) | 计算机系统和用于重新引导计算机系统的方法 | |
| EP1209563B1 (en) | Method and system for allowing code to be securely initialized in a computer | |
| US8533735B2 (en) | System for execution context isolation in response to invoking a BIOS kernel function during a driver execution environment (DXE) phase of boot-up of a computer | |
| US10007546B2 (en) | Operating-system exchanges using memory-pointer transfers | |
| CN105264506B (zh) | 向内存映射配置分配处理器 | |
| US9626181B2 (en) | Systems and methods to securely inject binary images and code into firmware | |
| WO2019118171A1 (en) | Firmware update | |
| JP2010123125A (ja) | プラットフォームの高速リスタートを可能にする方法およびシステム | |
| EP3910469A1 (en) | Interface and warm reset path for memory device firmware upgrades | |
| WO2010107755A1 (en) | Inter operating system memory hotswap to support memory growth in a non-virtualized system | |
| JP2008257687A (ja) | マルチモードコンピュータオペレーション | |
| US11714756B2 (en) | Information handling systems and methods to improve the security and performance of a shared cache memory contained within a multi-core host processor | |
| US10922116B2 (en) | Creating operating system volumes | |
| US20160210141A1 (en) | Hot-Swapping Operating Systems Using Inter-Partition Application Migration | |
| US8843742B2 (en) | Hypervisor security using SMM | |
| TWI390410B (zh) | 不須執行電力開啟自我測試之操作系統傳送及啟動 | |
| US20250244991A1 (en) | Processor Environment Architecture Agnostic Firmware Update Management Operation | |
| US12072816B2 (en) | System-on-chip operating multiple CPUs of different types, and operation method for same | |
| CN120832689B (zh) | 访问控制服务的配置修改方法、服务器和计算机程序产品 | |
| Banik et al. | Understanding the BIOS and Minimalistic Design |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
| B06T | Formal requirements before examination [chapter 6.20 patent gazette] | ||
| B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
| B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 22/10/2019, OBSERVADAS AS CONDICOES LEGAIS. |
|
| B21F | Lapse acc. art. 78, item iv - on non-payment of the annual fees in time |
Free format text: REFERENTE A 14A ANUIDADE. |
|
| B24J | Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12) |
Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2728 DE 18-04-2023 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013. |