Question

Je continue à voir « bootstrapping » mentionné dans les discussions sur le développement d'applications. Il semble à la fois étendu et important, mais je l'ai pas encore rencontré même une mauvaise explication de ce bootstrapping est en fait; plutôt, il semble que tout le monde est juste censé savoir ce que cela signifie. Je ne suis pas, cependant. Près que je peux comprendre, il a quelque chose à voir avec les tâches d'initialisation requises d'une application lors de son lancement, mais je peux tout à fait tort. Quelqu'un peut-il me aider à comprendre cette idée?

Était-ce utile?

La solution

« Amorçage » vient du terme « vous tirant vers le haut par vos propres moyens. » Ce que vous pouvez obtenir de Wikipedia .

En informatique, un chargeur d'amorçage est le premier morceau de code qui fonctionne lorsqu'une machine démarre, et est responsable du chargement du reste du système d'exploitation. Dans les ordinateurs modernes, il est stocké dans la mémoire morte, mais je me souviens du processus d'amorçage sur le PDP-11, où vous percez les bits via les commutateurs du panneau avant pour charger un segment de disque particulier en mémoire, puis l'exécuter. Inutile de dire que le chargeur d'amorçage est normalement assez petit.

« Amorçage » est également utilisé comme terme pour la construction d'un système en utilisant lui-même - ou plus exactement, une version précédente. Par exemple, ANTLR la version 3 est écrit en utilisant un analyseur développé dans la version ANTLR 2.

Autres conseils

Un exemple de bootstrapping est dans certains frameworks web. Vous appelez index.php (le programme d'amorçage), puis il charge les cadres auxiliaires, les modèles, la configuration, et charge le régulateur et fait passer le contrôle.

Comme vous pouvez le voir, il est un simple fichier qui démarre un grand processus.

Voir sur l'article de Wikipedia sur bootstrapping.

Il y a une section et des liens expliquant ce que cela signifie Computing . Il a quatre utilisations différentes dans le domaine.

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

  

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

     

"Une autre utilisation du terme bootstrapping est d'utiliser un compilateur pour se compiler, en écrivant d'abord une petite partie d'un compilateur d'un nouveau langage de programmation dans une langue existante pour compiler plus des programmes du nouveau compilateur écrit dans la nouvelle langue. "

Le terme « bootstrapping » s'applique généralement à une situation où un système dépend de lui-même pour commencer, une sorte de problème de la poule et de l'œuf.

Par exemple:

  • Comment compiler un compilateur C écrit en C?
  • Comment peut-on commencer un processus d'initialisation du système d'exploitation si vous ne possédez pas le système d'exploitation en cours d'exécution encore?
  • Comment démarrer un système distribué (peer-to-peer) où les clients dépendent de leurs pairs connus pour découvrir de nouveaux pairs dans le système?

Dans ce cas, l'amorçage se réfère à un mode de rupture de la dépendance circulaire, habituellement avec l'aide d'une entité extérieure, par exemple.

  • Vous pouvez utiliser un autre compilateur C pour compiler (bootstrap) votre propre compilateur, et vous pouvez l'utiliser pour lui-même recompiler
  • Utilisez une pièce séparée de code qui met en place le processus initial sans dépendre des fonctions fournies par le système d'exploitation
  • Vous utilisez une liste codée en dur de pairs initial ou une URL de suivi codés en dur qui fournit la liste des pairs

etc.

Dans le cadre du développement d'applications, « bootstrapping » vient habituellement quand on parle de logiciel modulaire et / ou auto-actualisable.

Au lieu de l'utilisateur de télécharger l'application entière, y compris les caractéristiques qu'il n'a pas besoin, et re-téléchargement et la mise à jour manuellement chaque fois qu'il ya une mise à jour, l'utilisateur ne télécharge et démarre un petit exécutable « bootstrap », qui téléchargements tour et installe les parties de l'application que l'utilisateur a besoin. En outre, le composant d'amorçage est capable de rechercher les mises à jour et les installer à chaque fois qu'il est démarré.

Pour être complet, il est également une méthode dans les statistiques qui utilise rééchantillonnage / simulation assez important (et relativement nouveau) pour déduire les propriétés de la population d'un échantillon. Il a son propre long article de Wikipedia sur bootstrapping (statistiques) .

Alex, il est à peu près ce que votre ordinateur fait quand il démarre. ( « Amorcer » un ordinateur est en fait du mot bootstrapping)

Dans un premier temps, le petit programme dans votre BIOS fonctionne. Qui contient suffisamment de code machine pour charger et exécuter un programme plus vaste plus complexe.

Ce second programme est probablement quelque chose comme NTLDR (sous Windows) ou LILO (sous Linux), qui exécute alors et est capable de charger, puis exécutez, le reste du système d'exploitation.

Boot cerclage le sens du dictionnaire est de commencer avec un minimum de ressources. Dans le contexte d'un système d'exploitation du système d'exploitation devrait être en mesure de charger rapidement une fois que le Power On Self Test (POST) détermine que son coffre-fort pour réveiller le CPU. Le code de sangle de démarrage sera exécuté à partir du BIOS. BIOS est une petite taille ROM. En général, il est une instruction de saut à l'ensemble d'instructions qui charge le système d'exploitation à la RAM. La destination du saut est le secteur d'amorçage du disque dur. Une fois que le programme bios vérifie qu'il est un secteur d'amorçage valide qui contient l'adresse de départ du système d'exploitation stocké, à savoir si elle est un MBR valide (Master Boot Record) ou non. Si son MBR valide le système d'exploitation sera copié dans la mémoire (RAM) à partir de là le système d'exploitation prend en charge la mémoire et la gestion des processus.

à mon humble avis il n'y a pas une meilleure explication que le fait sur le Comment a été le premier compilateur écrit

Ces jours-ci le système d'exploitation de chargement est le processus le plus commun comme mentionné Amorçage

En ce qui concerne ce en ce qui concerne l'utilisation du populaire Twitter Bootstrap je me sens comme ce type de bootstrapping est l'action de l'intégration d'un composant modulaire dans une application Web sans l'application Web ayant même de reconnaître la composante modulaire existe jusqu'à ce qu'il en a besoin ou fait référence.

Le développeur peut intégrer de façon transparente une copie par défaut du thème CSS Twitter Bootstrap en chargeant simplement (référencement) dans l'application Web. Vuola! Ensuite, vous devrez peut-être remplacer certains de ces changements, mais vous pouvez le faire de telle sorte que la ressource / composant est intact et complètement réutilisable.

Ce même concept est comment Devs Web implémentent API jQuery et ainsi de suite, mais il est pas vraiment exprimé par Devs comme bootstrapping en soi. Ce qu'il fait est-il améliore la flexibilité et réutilisabilité tout en permettant l'isolement des différents composants / ressources d'une application de séjourner librement sur le même serveur / s ou éventuellement sur un CDN.

NOTE: Dans le calcul offres de bootstrapping avec le MBR et sous UNIX, il a besoin d'un bootloader spécial ou un gestionnaire qui est un petit programme dans la ROM qui charge le système d'exploitation dans la RAM. Si vous pensez à ce sujet le même concept prend place dans l'action du chargeur d'amorçage vérifier le MBR et le chargement du système d'exploitation basé sur ce tableau qui se produit sans le système d'exploitation ayant une idée que cela se produit.

Bootstrap a encore un autre sens dans le contexte de apprentissage par renforcement qui peut être utile de savoir 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) a modifié les moins-Mean-Square (LMS)   algorithme de Widrow et Hoff (1960) afin de produire un renfort   règle d'apprentissage qui pourraient apprendre des succès et des signaux échec   au lieu de partir d'exemples de formation. Ils ont appelé cette forme d'apprentissage   « Adaptation bootstrap sélectif » et décrit comme « l'apprentissage avec un   critique » au lieu de « l'apprentissage avec un enseignant. » Ils ont analysé cette règle   et a montré comment il pouvait apprendre à jouer au blackjack. Ce fut un cas isolé   incursion dans l'apprentissage par renforcement par Widrow, dont les contributions à   l'apprentissage supervisé étaient beaucoup plus influents.

Le livre décrit les différents algorithmes de renforcement lorsque la valeur cible est basée sur une approximation précédente que les méthodes de bootstrap:

  

Enfin, nous notons    une dernière propriété spéciale des méthodes DP [Programmation dynamique]. Toutes les estimations de mise à jour   des valeurs des états fondés sur des estimations des valeurs de successeur   États. Autrement dit, ils mettent à jour des estimations sur la base d'autres   estimations. Nous appelons cette idée générale bootstrapping . Beaucoup de renforcement   méthodes d'apprentissage jouent bootstrapping, même ceux qui ne le font pas   exiger, comme exige DP, un modèle complet et précis de la   environnement.

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

Je fais partie de la génération qui a renversé les commutateurs pour entrer dans un programme d'amorçage. Au début des années 1980, je travaillais sur un micro-ordinateur appelé Micro-78, développé par Electronics Corporation of India Ltd (ECIL). Il était une sorte de clone de Altair 8800. Je me souviens distinctement ce qui se passe quand un petit programme de démarrage a été saisi à 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 sur lui-même de telle écrase sorte que le deuxième programme d'amorçage commence à exécuter pour charger un système d'exploitation de disque. Je pense que le terme « bootstrap » fait référence à ce processus de la première lecture du programme d'amorçage et écrasez le deuxième programme d'amorçage sur lui-même, d'une manière « se tirer vers le haut » avec les fonctionnalités supplémentaires du deuxième programme d'amorçage. Cela peut être l'origine du sens original du « programme d'amorçage ».

En tant que débutant humble dans le monde de la programmation, et en feuilletant toutes les réponses ici après avoir vu ce mot utilisé beaucoup de façons apparemment légèrement différentes dans des endroits différents, je trouve lire la page Wikipédia sur Amorçage (duh! Je n » t penser qu'il soit au début) est très instructif de comprendre les différences dans l'utilisation de ce mot. Se pourrait-il ...... occasions extrêmement rares ...... Wikipédia pourrait même avoir de meilleures explications de certains termes que .... (expurgée)? Vont-ils apporter des points de rep sur Wikipédia si?

Pour moi, il semble tous les sens quelque chose à voir avec: commencer par quelque chose d'aussi simple que possible Thing1, faire quelque chose un peu plus complexe avec ce Thing2, et maintenant vous pouvez utiliser Thing2 pour faire une sorte de tâches plus efficacement et rapidement que vous pourriez l'origine avec Thing1. Ensuite, répétez de Thing2 Thing 3 ad infinitum ...

Je le vois comme étroitement liée à la fois l'évolution biologique et « couches d'abstraction » (débutants comme moi voir, ahem, Wikipedia, toux) - l'évolution des ordinateurs de 1940 avec des commutateurs, code machine, Assembleur, C, Python, intelligences artificielles vous pouvez donner toutes sortes d'instructions complexes comme « faire le% 4 ^% dîner à mes défaut et ^ exigences% de $ et nettoyer le sol vous% $ £ » @: ~ » en argot ivre anglais ou Amazon dialecte tribal sans les ' lever une exception »(pour les débutants à nouveau ... vous l'aurez deviné) - manqué beaucoup de liens là-bas en raison de la simple ignorance

.

Ensuite, dans certaines significations de logiciels spécifiques: Meaning1:. Thing1 est utilisé pour charger dernière version de Thing2 (car bien sûr Thing2 sera plus grand que Thing1, tout comme Thing3 sera plus grand que Thing2)

Meaning2: Thing1 est un langage de bas niveau (plus proche de 1.001.011.100 .... 011001 que print ( « Bonjour, », user.name)) utilisé pour écrire un peu de la langue plus de Thing2, alors ce peu de Thing2 est utilisé pour développer Thing2 lui-même du niveau de vocabulaire bébé vers le niveau de vocabulaire adulte (Thing2 commence à traiter ou à utiliser terme technique correct « compilé », par la version bébé de lui-même (c'est un bébé intelligent!), alors que le bébé version de Thing2 lui-même pourrait bien sûr être établi que par Thing1, car il ne peut pas exister avant qu'il existe, à droite duh!), puis la version enfant de Thing2 compile la version revêche Adolescent de Thing2, au cours de laquelle la communauté de programmation point décide si revêche adolescent ' questions (terme du logiciel et à terme la métaphore!) valent assez de temps passer la résolution d'être accepté à long terme, ou de les abandonner à (pas sûr où prendre l'analogie).

Si oui, alors Thing2 a « la méthode bootstrap » lui-même (peut-être quelques fois) à l'âge adulte de Petite enfance: « l'enfant est le père de l'homme » (Wordsworth, suggère ne pas essayer de regarder la citation ou l'auteur sur Stack Overflow).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top