我一直看到在应用程序开发的讨论中提到的"bootstrapping".它似乎既广泛又重要,但我还没有看到一个关于实际引导的错误解释; 相反,似乎每个人都应该知道这意味着什么.不过,我没有.我可以说,它与启动时应用程序所需的初始化任务有关,但我可能完全错了.任何人都可以帮我理解这个想法吗?
我正在学习C++,我刚刚开始学习Qt编写GUI程序的一些功能.我问自己以下问题:
以前没有语法能够通过网络询问操作系统窗口或通过网络进行通信的方法(我承认,我还不完全理解的API)C++如何突然通过用C++编写的库本身获得这样的功能?这对我来说似乎非常圆润.您可以在这些库中提供哪些C++指令?
我意识到这个问题对于经验丰富的软件开发人员来说似乎微不足道,但我一直在研究几个小时而没有找到任何直接的反应.它已经达到了我无法遵循关于Qt的教程的程度,因为库的存在对我来说是不可理解的.
直观地说,似乎语言的编译器Foo
本身不能用Foo编写.更具体地说,语言的第一个编译器Foo
不能用Foo编写,但可以编写任何后续的编译器Foo
.
但这是真的吗?我对一种语言的阅读非常模糊,这种语言的第一个编译器是用"本身"编写的.这是可能的,如果是这样的话怎么样?
这可能是徒劳的,因为我知道编写一个操作系统是无法忍受的复杂(尤其是自己).
我不希望构建下一个linux或Windows.
我知道这将是可怕的,而且越野车,并且不会起作用,但那很好.
我想在Assembly,C和(某些)C++中自己编写所有内容.
这是一个未来的项目,因为我现在忙于其他一些事情并且没有立即的时间,但我想我现在会问它,所以也许我可以得到很多答案,它可以构建并成为这种方法的有用资源(我所见过的其他一切都涉及构建minix,使用现有的引导程序,在虚拟引导程序中构建它等).
我想用显示器,键盘和鼠标设置一个旧的桌面,然后开始使用空白硬盘.
我想学习如何编写我自己的bootloader(我已经找到了很多有关这方面的资源,但为了完整性,请仍然添加一些好的),我自己的USB驱动程序(如果有必要),CD驱动程序(如果有必要的话) )等等,从头开始.
如何将代码放入计算机?用软盘做它最好吗?大多数计算机可以通过USB记忆棒完成吗?
我需要哪些司机,你能建议任何建议吗?
启动序列之后 - 然后是什么?我如何进入保护模式等
如何在没有操作系统帮助的情况下管理内存?我只是使用我想要的任何地址吗?无需初始化?
毫无疑问,我会遇到什么会让我困惑?
我怎样才能使命令行O/S和图形命令行?
什么是图形操作系统?比如,我怎么做一些命令行,一个字体,一个顶部的图片?
我在哪里可以阅读有关设置多任务环境的信息?(即,有两个并行运行的图形命令行).
我该如何设置一种窗口系统?设置简单的多任务处理后,如何在屏幕上显示图形?
相信我,我知道这是一个非常复杂的项目,我可能永远无法完成它或在任何用途上写任何东西.
还有很多其他的部分我还没有提到过,如果你想到的话,也可以自由添加.
请为每个答案添加一个"主题" - 例如,USB驱动程序,然后可能是资源列表,需要注意的事项等.
此外,请不要建议建立另一个操作系统或预先存在的代码.我知道我将阅读许多预先存在的代码(例如Linux内核,或示例资源,现有驱动程序等),但最终我想自己完成所有的写作.我知道我应该建立其他的东西,而且还有很多其他的问题,如果我改变主意并走那条路,我就可以读到这些问题.但这一切都是关于从头开始做整件事.
关于如何获得图形的任何建议?不同的视频模式以及如何使用它们等?
爱立信编写和编译的Erlang和Erlang/OTP的实现是什么?是汇编,C还是Erlang本身?
更新1:感谢DrJokepu.如果我理解正确,Erlang source-to-VM编译器是用Erlang本身编写的.但VM是用C语言编写的.
更新2:Hynek-Pichi-Vychodil指出了很多细节.
我听说过引导一种语言的想法,就是为这种语言编写一个编译器/解释器.我想知道如何实现这一点,并且看了一下,看到有人说它只能通过其中任何一个来完成
对我来说,这些似乎都不是真正引导语言,因为它们都需要外部支持.有没有办法用自己的语言编写编译器?
有没有办法为已经引导的角度模块注入延迟依赖?这就是我的意思:
假设我有一个站点范围的角度应用程序,定义为:
// in app.js
var App = angular.module("App", []);
Run Code Online (Sandbox Code Playgroud)
在每一页:
<html ng-app="App">
Run Code Online (Sandbox Code Playgroud)
稍后,我重新打开应用程序,根据当前页面的需要添加逻辑:
// in reports.js
var App = angular.module("App")
App.controller("ReportsController", ['$scope', function($scope) {
// .. reports controller code
}])
Run Code Online (Sandbox Code Playgroud)
现在,说是逻辑的那些点播位中的一个还需要自己的依赖关系(如ngTouch
,ngAnimate
,ngResource
,等).如何将它们附加到基础应用程序?这似乎不起作用:
// in reports.js
var App = angular.module("App", ['ui.event', 'ngResource']); // <-- raise error when App was already bootstrapped
Run Code Online (Sandbox Code Playgroud)
我意识到我可以事先做好一切,即 -
// in app.js
var App = angular.module("App", ['ui.event', 'ngResource', 'ngAnimate', ...]);
Run Code Online (Sandbox Code Playgroud)
或者自己定义每个模块,然后将所有内容注入主应用程序(有关更多信息,请参阅此处):
// in reports.js
angular.module("Reports", ['ui.event', 'ngResource'])
.controller("ReportsController", ['$scope', …
Run Code Online (Sandbox Code Playgroud) 我在设备中运行时遇到此错误,请完全帮助解决此问题;
无法在引导服务器上注册com.XXXXX.deviceapp.错误:未知的错误代码.这通常意味着此进程的另一个实例已在运行或挂在调试器中.程序接收信号:"SIGABRT".
我是Angular JS的初学者.我正在通过以下链接. http://docs.angularjs.org/tutorial/step_00
什么是引导程序文件?他们在哪里?
什么是自动引导和手动初始化引导?我从链接http://docs.angularjs.org/guide/bootstrap中读到了手动初始化的缺点,如下所示
任何人都可以解释这里的缺点究竟是什么?
在较新的示例(seeds,angular.io,..)中,引导过程还有另一个导入:@angular/platform-browser-dynamic
.
有人可以解释一下,它和它之间有什么区别@angular/platform-browser
?
目前还没有关于angular.io官方网站的信息.