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?


当前回答

亚历克斯,这和你的电脑启动时做的差不多。('Booting' a computer实际上来自于单词bootstrapping)

最初,运行BIOS中的小程序。它包含足够的机器代码来加载和运行一个更大、更复杂的程序。

第二个程序可能是类似于NTLDR(在Windows中)或LILO(在Linux中)的程序,然后执行并能够加载,然后运行操作系统的其余部分。

其他回答

问题已经回答了。用于网页开发。 到目前为止,我在Laravel文档中找到了一个关于引导的很好的解释。这是链接

一般来说,我们指的是注册事物,包括注册服务 容器绑定、事件监听器、中间件,甚至路由。

希望对学习web应用程序开发的人有所帮助。

Boot strapping the dictionary meaning is to start up with minimum resources. In the Context of an OS the OS should be able to swiftly load once the Power On Self Test (POST) determines that its safe to wake up the CPU. The boot strap code will be run from the BIOS. BIOS is a small sized ROM. Generally it is a jump instruction to the set of instructions which will load the Operating system to the RAM. The destination of the Jump is the Boot sector in the Hard Disk. Once the bios program checks it is a valid Boot sector which contains the starting address of the stored OS, ie whether it is a valid MBR (Master Boot Record) or not. If its a valid MBR the OS will be copied to the memory (RAM)from there on the OS takes care of Memory and Process management.

在应用程序开发的上下文中,“引导”通常在讨论模块化和/或自动更新软件时出现。

而不是用户下载整个应用程序,包括他不需要的功能,并重新下载和手动更新它,只要有更新,用户只下载和启动一个小的“引导”可执行文件,它反过来下载和安装用户需要的应用程序的那些部分。此外,引导组件能够在每次启动时查找更新并安装它们。

术语“自举”通常适用于系统依赖自身启动的情况,有点像鸡和蛋的问题。

例如:

如何编译用C编写的C编译器? 如果操作系统还没有运行,如何启动操作系统初始化进程? 如何启动一个分布式(点对点)系统,在这个系统中,客户端依赖于它们当前已知的对等点来查找系统中的新对等点?

在这种情况下,bootstrapping指的是一种打破循环依赖关系的方法,通常借助外部实体的帮助。

您可以使用另一个C编译器来编译(引导)您自己的编译器,然后您可以使用它来重新编译自己 您使用一段单独的代码来设置初始进程,而不依赖于操作系统提供的任何函数 您使用硬编码的初始对等体列表或提供对等体列表的硬编码跟踪器URL

etc.

在一些web框架中有一个引导的例子。你调用index.php (bootstrapper),然后它加载框架的助手、模型、配置,然后加载控制器并将控制权传递给它。

正如您所看到的,这是一个启动大进程的简单文件。