如何编程日常机器(不是像电器,数字手表等那么多的电脑和移动设备)? 什么样的代码进入可口可乐自动售货机的编程? 我的咖啡机如何接受预定的时间,并在几小时后开始酝酿一壶咖啡? 这些机器是否有操作系统,还是更基础? 他们是用汇编,C还是其他语言编写的? 而且,我真的很想find一些列出这些操作系统或底层代码系统的资源,如果可能的话,甚至可以使用源代码。 如果有人知道这样的资源(search什么都没有给我),那将是太棒了。
我想了解使用Python的库函数执行特定于操作系统的任务(如创build文件/目录,更改文件属性等)的动机,而不是仅仅通过os.system()或os.system() subprocess.call() ? 例如,我为什么要使用os.chmod而不是做os.system("chmod…") ? 我明白,尽可能多地使用Python的可用库方法,而不是直接执行shell命令,是更“pythonic”的。 但是,从functionangular度来看,还有其他动机吗? 我只是在说这里执行简单的单行shell命令。 当我们需要更多的控制任务的执行时,我明白使用subprocess进程模块更有意义。
我知道一般的理论,但我不能适应细节。 我知道一个程序驻留在电脑的辅助存储器中。 一旦程序开始执行,它就完全复制到RAM中。 然后,处理器一次性检索几条指令(取决于总线的大小),将它们放入寄存器并执行。 我也知道一个计算机程序使用两种内存:堆栈和堆,它们也是计算机主内存的一部分。 该堆栈用于非dynamic内存,dynamic内存堆(例如,与C ++中的new运算符相关的所有内容) 我不明白的是这两件事情是如何连接的。 用于执行指令的堆栈在什么位置? 指令从RAM到堆栈,到寄存器?
我读过Linux是一个单一的内核。 整体内核是指将完整的内核代码编译和链接到可执行文件中吗? 如果Linux能够支持模块,为什么不把所有的子系统分解成模块并在必要时加载? 在这种情况下,内核不必首先加载所有模块,并且可以维护模块中的function索引并在必要时加载它们。
我只是想知道谁知道Windows,Mac OS X和Linux由哪些编程语言组成,以及哪些语言用于操作系统的各个部分(即:内核,插件架构,GUI组件等)。 我假设每个都有多种语言,显然我知道Linux内核是用C编写的。 我完全猜测,Mac OS X包含很多Objective-C代码,因为它是从NeXT派生的Apple语言。 Windows,我听说包含C,C ++和英特尔汇编。 Linux或Mac OS是否包含任何汇编代码? 另外,操作系统开发人员是否使用Ruby,Python等脚本语言来编写部分操作系统的脚本? 操作系统的哪些部分将用每种语言编写?
我发现自己在Javascript中编写了一个大项目。 我记得最后一个是相当的冒险,因为哈克JS可以很快变得不可读,我想这个代码是干净的。 那么,我正在使用对象来构造一个库,但有几种方法来定义JS中的东西,这意味着在范围,内存pipe理,名称空间等重要的后果。EG: 使用var或不; 在文件中定义或者在(function(){…})() ,jquery风格中定义; 使用this ,还是不行; 使用function myname()或myname = function() ; 定义对象主体中的方法或使用“原型”; 等等 那么在JS的面向对象编程中,真正的最佳实践是什么? 学术解释真的在这里。 链接到书籍热烈欢迎,只要他们处理质量和鲁棒性。 编辑: 有一些阅读,但我仍然非常有兴趣回答上述问题和任何最佳做法。
二进制信号量和互斥量之间是否有区别,还是基本相同?
我很好奇以下OOP JavaScript技术之间的区别是什么。 他们似乎最终做同样的事情,但被认为比另一个更好? function Book(title) { this.title = title; } Book.prototype.getTitle = function () { return this.title; }; var myBook = new Book('War and Peace'); alert(myBook.getTitle()) VS function Book(title) { var book = { title: title }; book.getTitle = function () { return this.title; }; return book; } var myBook = Book('War and Peace'); alert(myBook.getTitle())
信号量和自旋锁之间的基本区别是什么? 我们什么时候使用旋转locking的信号?
我正在开发一个软件应用程序来检查你已经安装了哪种软件,但是为了做到这一点,我必须知道操作系统是32位还是64位的操作系统。 我试过System.getProperty(“os.arch”); 但是后来我看到这个命令只显示了JDK / JRE的位数,而不是操作系统本身。 如果你能告诉我如何知道什么样的操作系统正在被使用(Windows 7,Mac OS,Ubuntu等),那简直太棒了C: