Tag: 操作系统

如何使用库

出于某种原因,我永远无法使用任何语言的外部库。 我正在寻找如何使用外部库的说明/解释,以及它们如何工作。 当我在网上search时,我得到的碎片似乎不适用于我下载和试用的任何图书馆。 我在Mac和PC上工作,C ++的例子都很好。 我使用eclipse IDE和C ++插件。如果有适用于所有库的说明,那就太棒了。

为什么“可执行文件”操作系统依赖于?

我知道每个CPU /架构都有它自己的指令集,因此为特定CPU编写的程序(二进制)不能在另一个CPU上运行。 但是我不明白为什么一个可执行文件(像.exe这样的二进制文件)不能在Linux上运行,但是即使在同一台机器上也可以在Windows上运行。 这是一个基本的问题,我期待的答案是.exe和其他二进制格式可能不是原始机器指令,但它们包含一些依赖于操作系统的数据。 如果这是真的,那么这个操作系统相关的数据是什么样的? 作为一个例子.exe文件的格式和它和Linux可执行文件的区别是什么? 有一个来源,我可以得到简短的和详细的信息呢?

JavaScript中的`new`做什么呢?

我很困惑如何构造函数在Javascrpt中工作; 尽pipe使用了几年的语言(大部分就像是LISP的半必要版本),但我想更多地了解对象应该如何工作。 鉴于此代码: function Foo(x) { return { bar: function() { return x; } }; } 调用myFoo = Foo(5)和myFoo = new Foo(5)什么myFoo = new Foo(5) ? 或者换句话说,Javascript中的构造函数究竟做了什么 ?

有没有macros来确定我的代码是否被编译到Windows?

我想检测我正在编译的操作系统是否是Windows。 有一个简单的macros,我可以检查来validation?

为什么闰秒会导致问题?

所以在这个时候(但很可能不会很久),Reddit,Meetup,Fark,LinkedIn,Yelp,4Chan都在下降。 Netflix显然也出现了一段时间。 根据Reddit的tweet,他们在2012年6月30日之前遇到了与闰秒有关的问题: https ://twitter.com/redditstatus/status/219244389044731904 “在太平洋标准时间下午5点,我们正在和闰秒有关的一些Java / Cassandra问题,我们正在尽快恢复服务。” 显然,影响其他网站的问题都与闰秒有关。 在阅读维基百科闰秒的文章之后,我想我明白了什么是闰秒……但是我没有得到什么样的奇怪的行为可能发生,如果闰秒不算? 作为编程人员,当我们编写和configuration服务器时,我们应该如何准备闰秒? 我的意思是只有一秒不是吗?

系统调用如何工作?

我明白,用户可以拥有一个进程,每个进程有一个地址空间(其中包含有效的内存位置,这个过程可以参考)。 我知道一个进程可以调用系统调用并将parameter passing给它,就像任何其他库函数一样。 这似乎表明,所有的系统调用都是通过共享内存等方式进入进程地址空间的。但也许,这只是一个错觉,因为在高级编程语言中,系统调用看起来像任何其他函数,当一个进程调用它。 但是,现在让我进一步深入分析一下底下发生了什么。 编译器如何编译系统调用? 它可能会将进程提供的系统调用名称和参数压入堆栈,然后将汇编指令称为“TRAP”或其他东西 – 基本上就是调用软件中断的汇编指令。 该TRAP汇编指令由硬件执行,首先将模式位从用户切换到内核,然后将代码指针设置为开始中断服务例程。 从这一点开始,ISR以内核模式执行,从堆栈中获取参数(这是可能的,因为内核可以访问任何内存位置,甚至是用户进程拥有的内存位置),并执行系统调用结束放弃CPU,再次切换模式位,用户进程从停止的地方开始。 我的理解是正确的吗? 附上的是我的理解粗略的图表:

我可以阅读Linux内核的哪些部分?

编程不是我的主要工作,虽然我喜欢它,有时得到报酬。 多年以来,我一直在听说Linux,我的朋友们向我展示了许多* nixes(或* nici?),尽pipe我坚持使用Mac OS。 你是否认为我可以欣赏Linux内核的任何部分,这将帮助我理解什么是整体的东西? 例如,Linux与Darwin有什么不同? 我已经和汇编和DOS一起成长起来了,所以像中断或低级C这样的东西不应该成为理解的障碍。 但是最后我对高级概念更感兴趣,比如线程或者networking堆栈 – 我知道不同的操作系统会有不同的操作系统。 而且我正在寻找一些有趣,轻松和愉快的东西,比如深夜阅读。 (注:做了一个CW,以防万一) 更新:我找了一些文档,并开始阅读: 不可靠的locking指南

在Linux中的DNScaching

我很困惑DNScaching。 我正在写一个小型的转发代理服务器,并希望在Linux系统上使用操作系统DNScaching。 如果我理解正确,那么在浏览器级别有DNScaching。 然后是在操作系统级别的DNScaching(Windows有它,我不知道Linux发行版是否默认)。 那么,浏览器/ proxy_server如何使用OS DNScaching呢? 我试图find我是否可以依靠Linux进行DNScaching,而不是在我自己的代理内部进行。 谢谢

在Ruby中检测操作系统

有没有办法检测到ruby的操作系统? 我正在开发一个将需要检测MAC与WINDOWS的sketchup工具。

如何像codepad.org和ideone.com网站沙盒你的程序?

我需要在我的网站上编译和运行用户提交的脚本,类似于键盘和ideone 。 我怎样才能沙盒这些程序,使恶意用户不会把我的服务器? 具体来说,我想locking在一个空目录内,防止他们读取或写入任何地方,消耗太多的内存或CPU,或从其他任何恶意的东西。 我将需要通过沙箱外部的pipe道(通过stdin / stdout)与这些程序进行通信。