什么是引导?
我一直在讨论应用程序开发的讨论中提到的“bootstrapping”。 这似乎既普遍又重要,但我还没有遇到什么引导实际是一个贫穷的解释; 相反,似乎每个人都应该知道这意味着什么。 不过,我没有。 就我所知,这与启动时应用程序所需的初始化任务有关,但我可能完全错误。 任何人都可以帮我理解这个想法吗?
“引导”来源于“用自己的引导拉动自己”。 那么你可以从维基百科获得。
在计算中,引导加载程序是机器启动时运行的第一个代码,负责加载操作系统的其余部分。 在现代计算机中,它存储在ROM中,但我记得在PDP-11上的引导过程,在那里你可以通过前面板开关把位加载到内存中,然后运行它。 不用说,引导加载程序通常很小。
“Bootstrapping”也被用作build立一个使用自己的系统的术语,或者更准确地说,是一个前辈版本。 例如, ANTLR版本3是使用在ANTLR版本2中开发的parsing器编写的。
引导的一个例子是在一些Web框架中。 你调用index.php(引导程序),然后加载框架助手,模型,configuration,然后加载控制器并将控制权交给它。
正如你所看到的,这是一个简单的文件,启动一个大的过程。
请参阅关于引导的维基百科文章。
有一个部分和链接解释了它在计算中的含义。 它在这个领域有四种不同的用途。
这里有一些引用,但是对于更深入的解释和其他含义,请参考上面的链接。
“…是一种简单的计算机程序激活更复杂的程序系统的技术。”
“引导术语的另一个用法是使用编译器自行编译,首先用现有语言编写新编程语言编译器的一小部分,编译用新语言编写的新编译器的更多程序。”
在应用程序开发的情况下,通常在讨论模块化和/或可自动更新的软件时出现“引导”。
用户不需要下载整个应用程序(包括他不需要的function),只要有更新就下载并手动更新,用户只需下载并启动一个小的“引导”可执行文件,然后下载并安装那些用户需要的部分应用程序。 此外,引导组件可以查找更新,并在每次启动时进行安装。
为了完整性,统计学中使用重采样/模拟来从样本中推断总体属性也是一个相当重要的(也是相对较新的)方法。 它有自己冗长的维基百科关于引导(统计)的文章 。
亚历克斯,这几乎是你的电脑启动时所做的。 (“启动”一台电脑实际上来自Bootstrapping这个词)
最初,您的BIOS中的小程序运行。 这包含足够的机器代码来加载和运行一个更大,更复杂的程序。
第二个程序可能类似于NTLDR(在Windows中)或LILO(在Linux中),然后执行并能够加载,然后运行其余的操作系统。
忘记链接:这里的维基百科部分:D
计算主条目:引导
计算机术语bootstrap起源于20世纪50年代的一个隐喻。 在计算机中,按下引导程序button导致硬连线程序从input单元读取引导程序,然后执行引导程序,该引导程序读取更多程序指令并成为在没有来自手动input的指令的外部帮助下进行的自持过程。 作为一个计算术语,bootstrap自从至less在1958年以来一直在使用。[5]
在IBM 701计算机(1952-1956)中使用了Bootstrap概念,该计算机有一个“加载button”,它启动从读卡器中的穿孔卡或磁带单元或磁鼓读取第一个36位字单元(硬盘驱动器的前身)。 然后左边的18位半字被作为一条指令读出到存储器中。
- 请参阅Bootstrapping(编译器),使用计算机语言编写用于计算机语言的编译器来编译编译器。
- 参见引导(计算),一个简单的计算机系统激活更复杂的计算机系统的过程的总结。
- 请参阅安装(计算机程序),作为软件安装过程的一部分,作为自举过程
- 请参阅Bootstrapping节点,这是帮助新join节点成功joinP2Pnetworking的networking节点。
引导词典意思是用最less的资源启动。 在操作系统环境中,一旦开机自检(POST)确定其安全唤醒CPU,操作系统应该能够快速加载。 引导代码将从BIOS运行。 BIOS是一个小尺寸的ROM。 一般来说,这是一组跳转指令,将操作系统加载到RAM中。 跳转的目的地是硬盘中的引导扇区。 一旦BIOS程序检查它是一个有效的引导扇区,其中包含存储的操作系统的起始地址,即是否是有效的MBR(主引导logging)。 如果其有效的MBR,则操作系统将从那里复制到内存(RAM),并负责内存和进程pipe理。
恕我直言,没有比第一个编译器如何编写的事实更好的解释?
目前,操作系统加载是最常见的过程,称为自引导
就使用stream行的Twitter Bootstrap而言,我觉得这种types的引导是将模块化组件集成到Web应用程序中,而Web应用程序甚至不需要承认模块化组件,直到它需要它或引用它。
开发人员可以通过简单地加载(引用)到Web应用程序来无缝地集成CSS Twitter Bootstrap主题的默认副本。 Vuola! 然后,您可能需要重写这些更改中的某些更改,但是可以这样做,即资源/组件不受影响并且是完全可重用的。
同样的概念是Web Devs如何实现jQuery API等,但Devs本身并没有真正将其expression为引导。 它所做的是提高了灵活性和可重用性,同时允许将应用程序的不同组件/资源隔离在同一服务器上或可能在CDN上自由地驻留。
注意:在计算引导MBR的交易和在UNIX中它需要一个特殊的引导程序或pipe理器,这是ROM中的一个小程序,将操作系统加载到RAM中。 如果你仔细想一想,在引导加载程序检查MBR和加载操作系统的操作中会发生同样的概念,而这个操作系统并没有任何意识到这一点。
作为编程世界的一个不起眼的初学者,在看到这个单词后,在这里查看所有的答案,在不同的地方使用了很多明显不同的方式,我发现阅读Bootstrapping上的维基百科页面(我没有想到它要么是在第一个)是非常丰富的了解这个词的使用差异 。 难道……在极端罕见的情况下……维基百科甚至可能比….更好地解释某些术语(编辑)? 他们会带来维基百科上的重点吗?
对我来说,似乎所有的含义都是有意义的:从尽可能简单的事情开始Thing1,使Thing2变得稍微复杂一些,现在你可以使用Thing2更快速,更有效地完成某些任务最初与Thing1。 然后重复从Thing2到Thing 3无限…
我认为它与生物进化和“抽象层”(像我这样的新手,ahem,维基百科,咳嗽)密切相关 – 从20世纪40年代开关,机器代码,汇编,C,Python,AI的计算机的演变各种复杂的指令,如“使%4 ^%的晚餐达到我的默认值和$%的要求,并清理你醉酒的俚语英语或亚马逊部落方言的地板, “(再次为新手…你猜对了) – 由于简单的无知错过了很多链接。
然后在某些特定的软件意义上:含义1:Thing1用于加载最新版本的Thing2(因为当然Thing2将比Thing1更大,正如Thing3将比Thing2更大)。
意思2:Thing1是一种较低级别的语言(比print(“Hello,”,user.name)更接近于1001011100 …. 011001)用来写一点Thing2的高级语言,那么Thing2的这一点是用于将Thing2本身从婴儿词汇水平扩展到成人词汇水平(Thing2开始被宝宝版本本身(这是一个聪明的宝宝!)处理,或使用正确的术语“编译”),而婴儿版本的Thing2本身当然只能由Thing1编译,因为在它存在之前它是不可能存在的,对了!),那么Thing2的子版本编译了Suring Teenager版本的Thing2,此时编程团体决定Surly Teenager的“问题”(软件术语和隐喻术语)是值得花费足够的时间来解决长期被接受的,或放弃他们(不知道在哪里拿这个比喻)。
如果是的话,那么Thing2自己(可能是几次)从成长到成年:“孩子是男人的父亲”(Wordsworth,build议不要在Stack Overflow上查询引用或作者) 。