I keep seeing "bootstrapping" mentioned in discussions of application development. It seems both widespread and important, but I've yet to come across even a poor explanation of what bootstrapping actually is; rather, it seems as though everyone is just supposed to know what it means. I don't, though. Near as I can figure, it has something to do with initialization tasks required of an application upon launch, but I could be completely wrong about that. Can anyone help me to understand this idea?
当前回答
术语“自举”通常适用于系统依赖自身启动的情况,有点像鸡和蛋的问题。
例如:
如何编译用C编写的C编译器? 如果操作系统还没有运行,如何启动操作系统初始化进程? 如何启动一个分布式(点对点)系统,在这个系统中,客户端依赖于它们当前已知的对等点来查找系统中的新对等点?
在这种情况下,bootstrapping指的是一种打破循环依赖关系的方法,通常借助外部实体的帮助。
您可以使用另一个C编译器来编译(引导)您自己的编译器,然后您可以使用它来重新编译自己 您使用一段单独的代码来设置初始进程,而不依赖于操作系统提供的任何函数 您使用硬编码的初始对等体列表或提供对等体列表的硬编码跟踪器URL
etc.
其他回答
就使用流行的Twitter Bootstrap而言,我觉得这种类型的Bootstrap是一种将模块化组件集成到Web应用程序中的操作,而Web应用程序甚至不必在需要或引用它之前承认模块化组件的存在。
开发人员只需将CSS Twitter Bootstrap主题的默认副本加载(引用)到Web应用程序中,就可以无缝地集成它。Vuola !然后,您可能需要重写其中的一些更改,但是您可以这样做,即资源/组件不受影响,并且完全可重用。
Web开发人员如何实现jQuery api等也是同样的概念,但开发人员并没有真正表示为引导本身。它所做的是提高灵活性和可重用性,同时允许应用程序的不同组件/资源的隔离自由驻留在同一服务器或CDN上。
注意:在计算引导处理MBR,在UNIX中,它需要一个特殊的引导加载程序或管理器,这是ROM中的一个小程序,将操作系统加载到RAM中。如果你想一下,同样的概念发生在引导加载程序检查MBR并根据这个表加载操作系统的动作中,而操作系统对此一无所知。
引导文件负责加载主文件的内容。它是主文件的包装器。这样,如果由于某种原因加载文件不成功,我们就可以捕获错误。
术语“自举”通常适用于系统依赖自身启动的情况,有点像鸡和蛋的问题。
例如:
如何编译用C编写的C编译器? 如果操作系统还没有运行,如何启动操作系统初始化进程? 如何启动一个分布式(点对点)系统,在这个系统中,客户端依赖于它们当前已知的对等点来查找系统中的新对等点?
在这种情况下,bootstrapping指的是一种打破循环依赖关系的方法,通常借助外部实体的帮助。
您可以使用另一个C编译器来编译(引导)您自己的编译器,然后您可以使用它来重新编译自己 您使用一段单独的代码来设置初始进程,而不依赖于操作系统提供的任何函数 您使用硬编码的初始对等体列表或提供对等体列表的硬编码跟踪器URL
etc.
I belong to the generation who flipped switches to enter a boot program. In the early 1980s, I worked on a microcomputer called Micro-78, developed by Electronics Corporation of India Ltd (ECIL). It was a sort of clone of Altair 8800. I distinctly remember what happens when a small boot program was entered using the toggle switches and executed by pressing a button. The program reads a second boot program contained in the 1st track of the floppy disk and overwrites it on itself in such a way that the second boot program starts executing to load a disk operating system. I think the term "bootstrap" refers to this process of the first boot program reading and overwriting the second boot program on itself, in a way "pulling itself up" with the additional functionality of the second boot program. That may be the origin of the original meaning of "the bootstrap program".
除了它在软件开发中的应用(例如kdgregory给出的答案)和Dirk Eddelbuettel所讨论的在统计学中的应用之外,在强化学习的上下文中,Bootstrapping还有另一个对开发人员有用的含义。
来自萨顿和巴托:
Widrow, Gupta, and Maitra (1973) modified the Least-Mean-Square (LMS) algorithm of Widrow and Hoff (1960) to produce a reinforcement learning rule that could learn from success and failure signals instead of from training examples. They called this form of learning “selective bootstrap adaptation” and described it as “learning with a critic” instead of “learning with a teacher.” They analyzed this rule and showed how it could learn to play blackjack. This was an isolated foray into reinforcement learning by Widrow, whose contributions to supervised learning were much more influential.
这本书描述了各种强化算法,其中目标值是基于先前的近似作为bootstrap方法:
最后,我们注意到 DP[动态规划]方法的最后一个特殊性质。所有这些都更新了估计 基于对继承者价值的估计的状态值 州。也就是说,他们在其他数据的基础上更新估计 估计。我们把这叫做引导。许多钢筋 学习方法执行引导,即使是那些没有引导的方法 要求,正如DP要求,一个完整和准确的模型 环境。
请注意,这不同于维基百科页面上提到的自举聚合和智能爆炸。