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?


当前回答

就使用流行的Twitter Bootstrap而言,我觉得这种类型的Bootstrap是一种将模块化组件集成到Web应用程序中的操作,而Web应用程序甚至不必在需要或引用它之前承认模块化组件的存在。

开发人员只需将CSS Twitter Bootstrap主题的默认副本加载(引用)到Web应用程序中,就可以无缝地集成它。Vuola !然后,您可能需要重写其中的一些更改,但是您可以这样做,即资源/组件不受影响,并且完全可重用。

Web开发人员如何实现jQuery api等也是同样的概念,但开发人员并没有真正表示为引导本身。它所做的是提高灵活性和可重用性,同时允许应用程序的不同组件/资源的隔离自由驻留在同一服务器或CDN上。

注意:在计算引导处理MBR,在UNIX中,它需要一个特殊的引导加载程序或管理器,这是ROM中的一个小程序,将操作系统加载到RAM中。如果你想一下,同样的概念发生在引导加载程序检查MBR并根据这个表加载操作系统的动作中,而操作系统对此一无所知。

其他回答

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

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

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

引导文件负责加载主文件的内容。它是主文件的包装器。这样,如果由于某种原因加载文件不成功,我们就可以捕获错误。

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".

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

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

As a humble beginner in the world of programming, and flicking through all the answers here after seeing this word used a lot in apparently slightly different ways in different places, I found reading the Wikipedia page on Bootstrapping (duh! I didn't think of it either at first) is very informative to understand differences in use of this word. Could it be......on extremely rare occasions......Wikipedia might even have better explanations of certain terms than....(redacted)? Will they bring in rep points on Wikipedia though?

对我来说,似乎所有的意义都与:从尽可能简单的东西开始,用Thing2做一些稍微复杂的东西,现在你可以用Thing2比原来的Thing1更有效、更快地完成某些任务。然后从第二件事重复到第三件事,直到无限……

I see it as closely connected to both biological evolution and 'Layers of Abstraction' (newbies like me see, ahem, Wikipedia, cough) - the evolution from 1940's computers with switches, machine code, Assembly, C, Python, AIs you can give all kinds of complex instructions to like "make the %4^% dinner to my default &^$% requirements and clean the floor you %$£"@:~" in drunken slang English or Amazon tribal dialect without them 'raising an exception' (for newbies again...you guessed it) - missed out lot of links there due to simple ignorance.

那么在某些特定的软件意义上: 含义1:Thing1用于加载Thing2的最新版本(因为Thing2当然会比Thing1大,就像Thing3会比Thing2大一样)。

Meaning2: Thing1 is a lower level language (closer to 1001011100....011001 than print("Hello, ", user.name)) used to write a little bit of the higher language of Thing2, then this little bit of Thing2 is used to expand Thing2 itself from baby vocabulary level towards adult vocabulary level (Thing2 starts to be processed, or to use correct technical term 'compiled', by the baby version of itself (it's a clever baby!), whereas the baby version of Thing2 itself could of course only be compiled by Thing1, cause it can't exist before it exists, right duh!), then child version of Thing2 compiles Surly Teenager version of Thing2, at which point programming community decides whether Surly Teenager's 'issues' (software term and metaphor term!) are worth spending enough time resolving to be accepted long term, or to abandon them to (not sure where to take the analogy here).

如果是,那么Thing2已经“bootstrap”自己(可能有几次)从婴儿到成年:“孩子是男人的父亲”(华兹华斯,建议不要试图在Stack Overflow上查找引用或作者)。

推荐文章