Je continue de voir le "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é une mauvaise explication de ce qu'est réellement le bootstrap; il semble plutôt que tout le monde soit censé savoir ce que cela signifie. Mais non. D'après ce que je peux comprendre, cela a quelque chose à voir avec les tâches d'initialisation requises d'une application au lancement, mais je peux me tromper complètement. Quelqu'un peut-il m'aider à comprendre cette idée?
bootstrapping
Alex Basson
la source
la source
Réponses:
"Bootstrapping" vient du terme "vous tirer vers le haut par vos propres bootstraps." C'est ce que vous pouvez obtenir de Wikipedia .
En informatique, un chargeur d'amorçage est le premier morceau de code qui s'exécute au démarrage d'une machine et est responsable du chargement du reste du système d'exploitation. Dans les ordinateurs modernes, il est stocké dans la ROM, mais je me souviens du processus d'amorçage sur le PDP-11, où vous poussiez des bits via les commutateurs du panneau avant pour charger un segment de disque particulier dans la mémoire, puis l'exécutiez. Inutile de dire que le chargeur de démarrage est normalement assez petit.
"Bootstrapping" est également utilisé comme un terme pour construire un système en utilisant lui-même - ou plus correctement, une version précédente. Par exemple, ANTLR version 3 est écrit à l'aide d'un analyseur développé dans ANTLR version 2.
la source
Un exemple d'amorçage est dans certains frameworks web. Vous appelez index.php (le bootstrapper), puis il charge les frameworks helpers, les modèles, la configuration, puis charge le contrôleur et lui passe le contrôle.
Comme vous pouvez le voir, c'est un simple fichier qui démarre un gros processus.
la source
Voir sur l'article Wikipedia sur le bootstrap .
Il y a une section et des liens expliquant ce que cela signifie en informatique . Il a quatre utilisations différentes dans le domaine.
Voici quelques citations, mais pour une explication plus approfondie et d'autres significations, consultez les liens ci-dessus.
la source
Le terme "bootstrapping" s'applique généralement à une situation où un système dépend de lui-même pour démarrer, une sorte de problème de poule et d'oeuf.
Par exemple:
Dans ce cas, le bootstrapping fait référence à un moyen de briser la dépendance circulaire, généralement avec l'aide d'une entité externe, par exemple
etc.
la source
Dans le contexte du développement d'applications, le "bootstrap" apparaît généralement lorsque l'on parle de logiciels modulaires et / ou auto-actualisables.
Plutôt que l'utilisateur télécharge l'application entière, y compris les fonctionnalités dont il n'a pas besoin, et la retélécharge et la met à 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 à son tour télécharge et installe ces parties de l'application dont l'utilisateur a besoin. De plus, le composant d'amorçage est capable de rechercher des mises à jour et de les installer à chaque démarrage.
la source
Alex, c'est à peu près ce que fait votre ordinateur lorsqu'il démarre. (Le «démarrage» d'un ordinateur provient en fait du mot bootstrapping)
Initialement, le petit programme de votre BIOS s'exécute. Cela contient suffisamment de code machine pour charger et exécuter un programme plus grand 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 est capable de charger, puis d'exécuter, le reste du système d'exploitation.
la source
Par souci d'exhaustivité, il s'agit également d'une méthode assez importante (et relativement nouvelle) en statistique qui utilise le rééchantillonnage / simulation pour déduire les propriétés d'une population à partir d'un échantillon. Il a son propre long article Wikipédia sur le bootstrap (statistiques) .
la source
Boot strapping le sens 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 devrait pouvoir se charger rapidement une fois que l'autotest de mise sous tension (POST) détermine qu'il est sûr de réveiller le processeur. Le code de la sangle de démarrage sera exécuté à partir du BIOS. Le BIOS est une ROM de petite taille. Généralement, c'est une instruction de saut vers l'ensemble d'instructions qui chargera le système d'exploitation dans la RAM. La destination du saut est le secteur de démarrage du disque dur. Une fois que le programme de bios vérifie, c'est un secteur de démarrage valide qui contient 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. S'il s'agit d'un MBR valide, le système d'exploitation sera copié dans la mémoire (RAM) à partir de là, le système d'exploitation se charge de la gestion de la mémoire et des processus.
la source
À mon humble avis, il n'y a pas de meilleure explication que le fait de savoir comment le premier compilateur a été écrit?
De nos jours, le chargement du système d'exploitation est le processus le plus courant appelé Bootstrapping
la source
Bootstrapping a encore une autre signification dans le contexte de l' apprentissage par renforcement qui peut être utile à 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 de son utilisation dans les statistiques comme discuté par Dirk Eddelbuettel .
De Sutton et Barto :
Le livre décrit divers algorithmes de renforcement où la valeur cible est basée sur une approximation précédente en tant que méthodes de bootstrap:
Notez que cela diffère de l'agrégation de bootstrap et de l'explosion d'intelligence qui sont mentionnées sur la page wikipedia sur le bootstrapping.
la source
En ce qui concerne l'utilisation du populaire Twitter Bootstrap, j'ai l'impression que ce type de démarrage est l'action d'intégrer un composant modulaire dans une application Web sans que l'application Web doive même reconnaître que le composant modulaire existe jusqu'à ce qu'il en ait besoin ou qu'il 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 la chargeant (référençant) simplement dans l'application Web. Vuola! Ensuite, vous devrez peut-être remplacer certaines de ces modifications, mais vous pouvez le faire de telle manière que la ressource / le composant soit intact et complètement réutilisable.
Ce même concept est la façon dont les développeurs Web implémentent les API jQuery et ainsi de suite, mais il n'est pas vraiment exprimé par les développeurs comme un bootstrap en soi. Ce qu'il fait, c'est qu'il 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 calcul des opérations d'amorçage avec le MBR et sous UNIX, il nécessite un chargeur de démarrage ou un gestionnaire spécial qui est un petit programme en ROM qui charge le système d'exploitation dans la RAM. Si vous y réfléchissez, le même concept a lieu dans l'action du chargeur d'amorçage vérifiant le MBR et chargeant le système d'exploitation en fonction de ce tableau, ce qui se produit sans que le système d'exploitation ait la moindre idée que cela se produit.
la source
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 80, j'ai travaillé sur un micro-ordinateur appelé Micro-78, développé par Electronics Corporation of India Ltd (ECIL). C'était une sorte de clone de l'Altair 8800. Je me souviens clairement de ce qui se passe lorsqu'un petit programme de démarrage est entré à l'aide des interrupteurs à 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 de disque. Je pense que le terme "bootstrap" se réfère à ce processus de lecture et de remplacement du premier programme de démarrage sur lui-même, en quelque sorte "se redressant" avec les fonctionnalités supplémentaires du deuxième programme de démarrage.
la source
En tant qu'humble débutant dans le monde de la programmation, et en feuilletant toutes les réponses ici après avoir vu ce mot utilisé beaucoup de manières apparemment légèrement différentes à différents endroits, j'ai trouvé la lecture de la page Wikipedia sur Bootstrapping (duh! Je n'y ai pas pensé soit au début) est très instructif pour comprendre les différences d'utilisation de ce mot. Serait-ce possible ...... en de très rares occasions ...... Wikipedia pourrait même avoir de meilleures explications de certains termes que .... (expurgé)? Vont-ils apporter des points de rep sur Wikipedia?
Pour moi, il semble que toutes les significations aient quelque chose à voir: commencer avec quelque chose d'aussi simple que possible Thing1, rendre quelque chose d'un peu plus complexe avec cette Thing2, et maintenant vous pouvez utiliser Thing2 pour effectuer une sorte de tâches plus efficacement et plus rapidement que vous ne le pourriez. à l'origine avec Thing1. Répétez ensuite de Thing2 à Thing 3 à l'infini ...
Je le vois comme étroitement lié à la fois à l'évolution biologique et aux `` couches d'abstraction '' (les débutants comme moi voient, ahem, Wikipedia, toux) - l'évolution des ordinateurs des années 40 avec commutateurs, code machine, assemblage, C, Python, IA que vous pouvez donner toutes sortes d'instructions complexes à aimer "faire le dîner% 4 ^% à mes exigences par défaut & ^ $% et nettoyer le sol que vous% $ £" @: ~ "en argot ivre anglais ou dialecte tribal d'Amazon sans eux 'levant une exception '(pour les débutants encore une fois ... vous l'avez deviné) - raté beaucoup de liens là-bas en raison d'une simple ignorance.
Ensuite, dans certaines significations logicielles spécifiques: Signification1: Thing1 est utilisé pour charger la dernière version de Thing2 (car bien sûr Thing2 sera plus grand que Thing1, tout comme Thing3 sera plus grand que Thing2).
Signification2: Thing1 est une langue de niveau inférieur (plus proche de 1001011100 .... 011001 que print ("Hello", user.name)) utilisée pour écrire un peu de la langue supérieure de Thing2, alors ce petit morceau de Thing2 est utilisé pour étendre Thing2 lui-même du niveau de vocabulaire bébé au niveau de vocabulaire adulte (Thing2 commence à être traité, ou à utiliser le terme technique correct `` compilé '') par la version bébé de lui-même (c'est un bébé intelligent!), tandis que la version bébé de Thing2 lui-même ne peut bien sûr être compilé que par Thing1, car il ne peut pas exister avant qu'il existe, duh!), puis la version enfant de Thing2 compile la version Surly Teenager de Thing2, à quel point la communauté de programmation décide si les `` problèmes '' de Surly Teenager ( terme logiciel et terme métaphore!) valent la peine de passer suffisamment de temps à être résolus pour être acceptés à long terme,ou de les abandonner (je ne sais pas où prendre l'analogie ici).
Si oui, Thing2 s'est «bootstrapé» lui-même (peut-être plusieurs fois) de la petite enfance à l'âge adulte: «l'enfant est le père de l'homme» (Wordsworth, suggère de ne pas chercher la citation ou l'auteur sur Stack Overflow) .
la source