web-dev-qa-db-fra.com

Qu'est-ce que l'amorçage?

Je continue à voir "bootstrapping" mentionné dans les discussions sur le développement d'applications. Cela semble à la fois répandu et important, mais je n’ai pas encore trouvé d’explication médiocre sur l’amorçage; il semble plutôt que tout le monde soit supposé savoir ce que cela signifie. Je ne suis pas, cependant. Autant que je sache, cela a quelque chose à voir avec les tâches d'initialisation requises d'une application lors du lancement, mais je peux me tromper complètement à ce sujet. Quelqu'un peut-il m'aider à comprendre cette idée?

601
Alex Basson

"Bootstrapping" vient du terme "se remonter par ses propres bootstraps". C'est ce que vous pouvez obtenir de Wikipedia .

En informatique, un chargeur bootstrap est le premier élément de code qui s'exécute au démarrage d'une machine et est chargé de charger le reste du système d'exploitation. Sur les ordinateurs modernes, il est stocké dans la ROM, mais je me souviens du processus bootstrap du PDP-11, qui consiste à insérer des bits via les commutateurs du panneau avant pour charger un segment de disque particulier dans la mémoire, puis l'exécuter. . Inutile de dire que le chargeur bootstrap est normalement assez petit.

"Bootstrapping" est également utilisé pour créer un système utilisant lui-même - ou plus correctement, une version antérieure. Par exemple, ANTLR la version 3 est écrite à l'aide d'un analyseur syntaxique développé dans ANTLR version 2.

298
anon

Un exemple d’amorçage se trouve dans certains frameworks Web. Vous appelez index.php (le programme d'amorçage), puis il charge les aides, les modèles, la configuration, puis le contrôleur et lui passe le contrôle.

Comme vous pouvez le constater, il s’agit d’un simple fichier qui lance un processus volumineux.

233
ryeguy

Voir l'article de Wikipedia sur bootstrapping .

Il existe une section et des liens expliquant ce que cela signifie dans Informatique . Il a quatre utilisations différentes sur le terrain.

Voici quelques citations, mais pour une explication plus en profondeur et des significations alternatives, consultez les liens ci-dessus.

"... est une technique par laquelle un simple programme informatique active un système de programmes plus complexe."

"Une autre utilisation du terme bootstraping consiste à utiliser un compilateur pour se compiler, en écrivant d'abord une petite partie d'un compilateur d'un nouveau langage de programmation dans un langage existant pour compiler davantage de programmes du nouveau compilateur écrits dans le nouveau langage."

51
HeDinges

Le terme "amorçage" s'applique généralement à une situation où un système dépend de lui-même pour démarrer, en quelque sorte un problème de poulet et d'oeufs.

Par exemple:

  • Comment compilez-vous un compilateur C écrit en C?
  • Comment démarrer un processus d'initialisation de système d'exploitation si le système d'exploitation n'est pas encore en cours d'exécution?
  • Comment démarrer un système distribué (d'égal à égal) dans lequel les clients dépendent de leurs homologues connus pour se renseigner sur les nouveaux homologues du système?

Dans ce cas, l’amorçage fait référence à un moyen de rompre la dépendance circulaire, généralement avec l’aide d’une entité externe, par ex.

  • Vous pouvez utiliser un autre compilateur C pour compiler (amorcer) votre propre compilateur, puis l'utiliser pour se recompiler.
  • Vous utilisez un élément de code distinct qui configure le processus initial sans dépendre des fonctions fournies par le système d'exploitation.
  • Vous utilisez une liste codée en dur des homologues initiaux ou une URL de suivi codée en dur qui fournit la liste des homologues.

etc.

33
Ivan Poliakov

Dans le contexte du développement d'applications, le "démarrage" apparaît généralement lorsqu'il est question de logiciel modulaire et/ou pouvant être mis à jour automatiquement.

Plutôt que de télécharger l'intégralité de l'application, y compris les fonctionnalités dont il n'a pas besoin, et de la télécharger à nouveau et de la mettre à jour manuellement chaque fois qu'il y a une mise à jour, l'utilisateur télécharge et démarre uniquement un petit exécutable "bootstrap", qui les télécharge et les installe ensuite. parties de l'application dont l'utilisateur a besoin. De plus, le composant bootstrap peut rechercher des mises à jour et les installer à chaque démarrage.

22
Michael Borgwardt

Pour être complet, il s’agit également d’une méthode statistique assez importante (et relativement nouvelle) qui utilise le rééchantillonnage/la simulation pour déduire les propriétés de la population à partir d’un échantillon. Il a son propre long article de Wikipedia sur l'amorçage (statistiques) .

14
Dirk Eddelbuettel

Alex, c'est à peu près ce que fait ton ordinateur quand il démarre. ('Démarrer' un ordinateur provient en fait du démarrage de Word)

Initialement, le petit programme de votre BIOS s’exécute. Celui-ci contient suffisamment de code machine pour charger et exécuter un programme plus volumineux et plus complexe.

Ce deuxième programme est probablement quelque chose comme NTLDR (sous Windows) ou LILO (sous Linux), qui s'exécute ensuite et peut charger, puis exécuter, le reste du système d'exploitation.

14
davewasthere

Boot strapping la signification du dictionnaire est de démarrer avec un minimum de ressources. Dans le contexte d'un système d'exploitation, le système d'exploitation doit pouvoir se charger rapidement une fois que le test POST (Power On Self Test) détermine que son coffre-fort peut réveiller le processeur. Le code de la sangle d’amorçage sera exécuté à partir du BIOS. Le BIOS est une ROM de petite taille. Généralement, il s'agit d'une instruction de saut à l'ensemble d'instructions qui chargera le système d'exploitation dans la RAM. La destination du Jump est le secteur de démarrage du disque dur. Une fois que le programme bios a vérifié, il s’agit d’un secteur de démarrage valide contenant l’adresse de départ du système d’exploitation stocké, c’est-à-dire s’il s’agit d’un MBR (Master Boot Record) valide ou non. Si c'est un MBR valide, le système d'exploitation sera copié dans la mémoire (RAM) à partir de là sur le système d'exploitation prend en charge la gestion de la mémoire et des processus.

4
achoora

IMHO il n'y a pas une meilleure explication que le fait à propos de Comment a été écrit le premier compilateur?

De nos jours, le chargement du système d'exploitation est le processus le plus commun appelé Bootstrapping.

2
Ivanzinho

En ce qui concerne l’utilisation du populaire Twitter Bootstrap, j’ai l’impression que ce type d’amorçage est l’action consistant à intégrer un composant modulaire dans une application Web sans que l’application Web doive même reconnaître que le composant modulaire existe il en a besoin ou le référence.

Le développeur peut intégrer de manière transparente une copie par défaut du thème CSS Twitter Bootstrap _ en le chargeant (en le référençant) dans l'application Web. Vuola! Ensuite, vous devrez peut-être remplacer certaines de ces modifications, mais vous pourrez le faire de manière à ce que la ressource/le composant ne soit pas modifié et soit complètement réutilisable.

Ce même concept est la façon dont les développeurs Web implémentent les API jQuery, etc., mais les développeurs ne l'expriment pas vraiment sous forme d'amorçage. Cela améliore la flexibilité et la réutilisabilité tout en permettant à l'isolation de différents composants/ressources d'une application de résider librement sur le même serveur/s ou éventuellement sur un CDN.

REMARQUE: dans le traitement des transactions d'amorçage avec le MBR et sous UNIX, il nécessite un gestionnaire d'amorçage ou un gestionnaire spécial, qui est un petit programme dans ROM qui charge le système d'exploitation dans la RAM. Si vous y réfléchissez, le même concept intervient dans l'action du chargeur bootstrap vérifiant le MBR et chargeant le système d'exploitation sur la base de cette table, ce qui se produit sans que le système d'exploitation ait réellement la moindre idée que cela se produit.

1
yardpenalty

Bootstrapping a encore une autre signification dans le contexte de apprentissage par renforcement qu'il peut être utile de connaître pour les développeurs, en plus de son utilisation dans le développement de logiciels (la plupart des réponses ici , par exemple par kdgregory ) et son utilisation dans les statistiques comme indiqué par Dirk Eddelbuettel .

De Sutton et Barto :

Widrow, Gupta et Maitra (1973) ont modifié l'algorithme LMS (Weast Mean Mean Square) de Widrow et Hoff (1960) afin de produire une règle d'apprentissage par renforcement qui puisse tirer des enseignements des signaux de succès et d'échec plutôt que des exemples d'apprentissage. Ils ont appelé cette forme d'apprentissage " sélective bootstrap adaptation " et l'ont décrite comme "apprenant avec un critique" au lieu de "apprenant avec un enseignant. "Ils ont analysé cette règle et montré comment il pouvait apprendre à jouer au black jack. Il s’agissait d’une incursion isolée dans l’apprentissage par renforcement de Widrow, dont les contributions à l’apprentissage supervisé étaient beaucoup plus influentes.

Le livre décrit divers algorithmes de renforcement dans lesquels la valeur cible est basée sur une approximation précédente sous la forme de méthodes bootstrap:

Enfin, notons une dernière propriété spéciale des méthodes DP [Dynamic Programming]. Tous mettent à jour les estimations des valeurs des états sur la base des estimations des valeurs des états successeurs. C'est-à-dire qu'ils mettent à jour les estimations sur la base d'autres estimations. Nous appelons cette idée générale bootstrapping . De nombreuses méthodes d'apprentissage par renforcement effectuent un amorçage, même celles qui ne nécessitent pas, comme le requiert DP, un modèle complet et précis de l'environnement.

Notez que cela diffère de bootstrap agrégation et explosion de l'intelligence qui est mentionné sur le page wikipedia lors du démarrage.

1
Scipio

J'appartiens à la génération qui a basculé les commutateurs pour entrer dans un programme de démarrage. Au début des années 1980, j'ai travaillé sur un micro-ordinateur appelé Micro-78, mis au point par Electronics Corporation of India Ltd (ECIL). C'était une sorte de clone d'Altair 8800. Je me souviens clairement de ce qui se passe lorsqu'un petit programme de démarrage est entré à l'aide des commutateurs à bascule et exécuté en appuyant sur un bouton. Le programme lit un deuxième programme de démarrage contenu dans la 1ère piste de la disquette et l’écrase sur lui-même de telle sorte que le deuxième programme de démarrage commence à s’exécuter pour charger un système d’exploitation sur disque. Je pense que le terme "bootstrap" fait référence à ce processus du premier programme de démarrage lisant et écrasant le second programme de démarrage sur lui-même, de manière à se "relever" avec les fonctionnalités supplémentaires du second programme de démarrage. C'est peut-être l'origine du sens originel de "programme bootstrap".

0
Murthy KVM