Eu continuo vendo o "bootstrapping" mencionado nas discussões sobre desenvolvimento de aplicativos. Parece amplo e importante, mas ainda não encontrei uma explicação ruim sobre o que realmente é o bootstrap; ao contrário, parece que todo mundo deveria saber o que isso significa. Eu não, no entanto. Pelo que pude imaginar, tem algo a ver com as tarefas de inicialização exigidas de um aplicativo após o lançamento, mas posso estar completamente errado sobre isso. Alguém pode me ajudar a entender essa idéia?
bootstrapping
Alex Basson
fonte
fonte
Respostas:
"Bootstrapping" vem do termo "elevando-se por suas próprias instruções". Isso você pode obter da Wikipedia .
Na computação, um carregador de autoinicialização é o primeiro código que é executado quando uma máquina é iniciada e é responsável por carregar o restante do sistema operacional. Nos computadores modernos, ele é armazenado na ROM, mas eu me lembro do processo de inicialização no PDP-11, onde você cutucava bits através dos comutadores do painel frontal para carregar um segmento de disco específico na memória e depois executá-lo. Escusado será dizer que o carregador de bootstrap é normalmente bem pequeno.
"Bootstrapping" também é usado como um termo para construir um sistema usando-se - ou mais corretamente, uma versão anterior. Por exemplo, o ANTLR versão 3 é gravado usando um analisador desenvolvido no ANTLR versão 2.
fonte
Um exemplo de inicialização está em algumas estruturas da web. Você chama index.php (o bootstrapper) e, em seguida, ele carrega os auxiliares da estrutura, modelos, configuração e, em seguida, carrega o controlador e passa o controle para ele.
Como você pode ver, é um arquivo simples que inicia um grande processo.
fonte
Veja no artigo da Wikipedia sobre bootstrapping .
Há uma seção e links explicando o que isso significa em computação . Possui quatro usos diferentes no campo.
Aqui estão algumas citações, mas para uma explicação mais aprofundada e significados alternativos, consulte os links acima.
fonte
O termo "inicialização" geralmente se aplica a uma situação em que um sistema depende de si próprio para iniciar, uma espécie de problema de galinha e ovo.
Por exemplo:
Nesse caso, bootstrapping refere-se a uma maneira de quebrar a dependência circular, geralmente com a ajuda de uma entidade externa, por exemplo
etc.
fonte
No contexto do desenvolvimento de aplicativos, o "bootstrapping" geralmente aparece quando se fala de software modular e / ou atualizável automaticamente.
Em vez de o usuário baixar o aplicativo inteiro, incluindo recursos que ele não precisa, e baixar novamente e atualizá-lo manualmente sempre que houver uma atualização, o usuário baixa e inicia apenas um pequeno executável "bootstrap", que, por sua vez, baixa e instala aqueles partes do aplicativo que o usuário precisa. Além disso, o componente de auto-inicialização é capaz de procurar atualizações e instalá-las cada vez que é iniciado.
fonte
Alex, é praticamente o que o seu computador faz quando é inicializado. ('Inicializando' um computador na verdade vem da palavra inicialização)
Inicialmente, o pequeno programa em seu BIOS é executado. Ele contém código de máquina suficiente para carregar e executar um programa maior e mais complexo.
Esse segundo programa provavelmente é algo como NTLDR (no Windows) ou LILO (no Linux), que executa e pode carregar e executar o restante do sistema operacional.
fonte
Para completar, também é um método bastante importante (e relativamente novo) nas estatísticas que usa reamostragem / simulação para inferir propriedades da população de uma amostra. Ele possui seu próprio artigo da Wikipedia sobre bootstrapping (estatísticas) .
fonte
Inicializar o significado do dicionário é inicializar com recursos mínimos. No contexto de um sistema operacional, o sistema operacional deve ser capaz de carregar rapidamente assim que o POST (Power On Self Test) determinar que é seguro ativar a CPU. O código da cinta de inicialização será executado a partir do BIOS. BIOS é uma ROM de tamanho pequeno. Geralmente, é uma instrução de salto para o conjunto de instruções que carregará o sistema operacional na RAM. O destino do salto é o setor de inicialização no disco rígido. Depois que o programa da bios verifica, é um setor de inicialização válido que contém o endereço inicial do sistema operacional armazenado, ou seja, se é um MBR (Master Boot Record) válido ou não. Se for um MBR válido, o sistema operacional será copiado para a memória (RAM) de lá no sistema operacional e cuidará do gerenciamento de processos e memória.
fonte
IMHO não há uma explicação melhor do que o fato de como foi escrito o primeiro compilador?
Atualmente, o carregamento do sistema operacional é o processo mais comum conhecido como Bootstrapping
fonte
O bootstrapping tem ainda outro significado no contexto do aprendizado por reforço que pode ser útil para os desenvolvedores, além de seu uso no desenvolvimento de software (a maioria das respostas aqui, por exemplo, pelo kdgregory ) e seu uso nas estatísticas, conforme discutido por Dirk Eddelbuettel .
De Sutton e Barto :
O livro descreve vários algoritmos de reforço nos quais o valor-alvo é baseado em uma aproximação anterior como métodos de inicialização:
Observe que isso difere da agregação de bootstrap e da explosão de inteligência mencionada na página da wikipedia sobre bootstrapping.
fonte
Em termos de uso do popular Bootstrap do Twitter, sinto que esse tipo de bootstrap é a ação de integrar um componente modular a um aplicativo da Web, sem que o aplicativo da Web precise reconhecer o componente modular até que ele precise ou faça referência a ele .
O desenvolvedor pode integrar perfeitamente uma cópia padrão do tema CSS Twitter Bootstrap simplesmente carregando (fazendo referência) no aplicativo Web. Vuola! Pode ser necessário substituir algumas dessas alterações, mas você pode fazê-lo de forma que o recurso / componente seja intocado e completamente reutilizável.
Esse mesmo conceito é como os Web Devs implementam APIs jQuery e assim por diante, mas não é realmente expresso pelos Devs como bootstrapping por si só. O que ele faz é melhorar a flexibilidade e a reutilização, permitindo que o isolamento de diferentes componentes / recursos de um aplicativo resida livremente no mesmo servidor / s ou possivelmente em uma CDN.
NOTA: Na computação de inicialização, o MBR e no UNIX requerem um gerenciador ou gerenciador de inicialização especial, um pequeno programa em ROM que carrega o sistema operacional na RAM. Se você pensar bem, o mesmo conceito ocorre na ação do carregador de inicialização, verificando o MBR e carregando o sistema operacional com base nesta tabela, que ocorre sem que o sistema tenha alguma idéia de que isso ocorre.
fonte
Eu pertenço à geração que ativou os switches para entrar em um programa de inicialização. No início dos anos 80, trabalhei em um microcomputador chamado Micro-78, desenvolvido pela Electronics Corporation of India Ltd (ECIL). Era uma espécie de clone do Altair 8800. Lembro-me claramente do que acontece quando um pequeno programa de inicialização é iniciado usando as chaves de alternância e executado pressionando um botão. O programa lê um segundo programa de inicialização contido na 1ª faixa do disquete e o sobrescreve de maneira que o segundo programa de inicialização comece a executar para carregar o sistema operacional do disco. Eu acho que o termo "bootstrap" se refere a esse processo do primeiro programa de inicialização, que lê e sobrescreve o segundo programa de inicialização, de uma maneira "se elevando" com a funcionalidade adicional do segundo programa de inicialização.
fonte
Como um novato humilde no mundo da programação, e folheando todas as respostas aqui depois de ver essa palavra ser usada de maneiras aparentemente ligeiramente diferentes em lugares diferentes, achei a leitura da página da Wikipedia no Bootstrapping (duh! Não pensei em seja a princípio) é muito informativo para entender as diferenças no uso dessa palavra. Poderia ser ...... em ocasiões extremamente raras ...... A Wikipedia pode até ter melhores explicações para certos termos do que .... (editada)? Eles vão trazer pontos de representantes na Wikipedia?
Para mim, parece que todos os significados têm a ver com: começar com o mais simples possível Thing1, tornar algo um pouco mais complexo com o Thing2, e agora você pode usar o Thing2 para executar tarefas de maneira mais eficiente e rápida do que você poderia originalmente com Thing1. Em seguida, repita de Thing2 para Thing 3 ad infinitum ...
Eu o vejo intimamente conectado à evolução biológica e às 'Camadas de Abstração' (iniciantes como eu, ahem, Wikipedia, tosse) - a evolução dos computadores da década de 1940 com switches, código de máquina, Assembly, C, Python, AIs que você pode dar todos os tipos de instruções complexas para gostar de "fazer o jantar% 4 ^% para os meus requisitos padrão & ^ $% e limpar o chão com você% $ £" @: ~ "em gíria bêbada ou dialeto tribal da Amazônia ou inglês sem que eles levantem uma exceção '(para iniciantes novamente ... você adivinhou) - perdeu muitos links por causa da simples ignorância.
Então, em certos significados específicos de software: Significado1: O Thing1 é usado para carregar a versão mais recente do Thing2 (porque é claro que o Thing2 será maior que o Thing1, assim como o Thing3 será maior que o Thing2).
Significado2: Thing1 é um idioma de nível inferior (mais próximo de 1001011100 .... 011001 do que print ("Hello", nome de usuário))) usado para escrever um pouco do idioma superior do Thing2, então esse pouco do Thing2 é usado para expandir o Thing2 em si do nível de vocabulário do bebê para o nível de vocabulário do adulto (o Thing2 começa a ser processado, ou para usar o termo técnico correto 'compilado', pela versão do bebê em si (é um bebê inteligente!), enquanto a versão do bebê do Thing2 por si só, é claro, só poderia ser compilado pelo Thing1, porque ele não pode existir antes de existir, certo!), então a versão filho do Thing2 compila a versão Surly Teenager do Thing2, quando a comunidade de programação decide se os 'problemas' do Surly Teenager ( software termo e metáfora!) valem a pena gastar tempo suficiente para serem aceitos a longo prazo,ou abandoná-los (não tenho certeza para onde levar a analogia aqui).
Se sim, então o Thing2 se autodestruiu (possivelmente algumas vezes) desde a infância até a idade adulta: "a criança é o pai do homem" (Wordsworth, sugiro que não tente procurar a citação ou o autor em Stack Overflow) .
fonte