Articles of Linux操作系统

如何在Mono Develop(Ubuntu,Linux)中将Saltarelle C#设置为JavaScript编译器

我试图在Mono的默认控制台项目上使用Saltarelle C#编译器 using System; namespace SaltarelleConsoleTest { class MainClass { public static void Main (string[] args) { Console.WriteLine ("Hello World!"); } } } 但是当我尝试编译与terminal命令 mono lib/Saltarelle.Compiler/tools/sc.exe -reference:lib/Saltarelle.Runtime/tools/Assemblies/mscorlib.dll Main.cs -outscript:bin/main.js 发生此错误: Unhandled Exception: System.TypeLoadException: Could not load type 'Saltarelle.Compiler.Program' from assembly 'sc, Version=1.5.0.0, Culture=neutral, PublicKeyToken=a4048e8fcc593f14'. [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'Saltarelle.Compiler.Program' from […]

Linux设备驱动程序 – 如何在closures文件时取消阻止读取线程?

我正在尝试为Linux实现一个字符设备驱动程序,并遇到麻烦。 简而言之,写入设备的数据被缓冲以供读取。 当没有数据可用时,通过“wait_event_interruptible”读取块的调用。 由写入处理程序接收的数据调用“wake_up_interruptible”。 释放处理程序还调用“wake_up_interruptible”来解锁读取器,但设置一个标志来指示驱动程序正在释放。 从用户空间我有一个可执行文件,打开驱动程序通过“打开”,然后启动另一个线程。 主线程继续调用“读”。 按照预期,没有数据可用于读取和呼叫块。 另一个线程hibernate一秒钟(为主线程提供足够的时间来读取和阻塞),调用“closures”,然后再次调用“closures”。 第一个调用返回“0”,而第二个返回“-1”(如预期)。 然而,我的驱动程序的释放处理程序从来没有被调用,我不明白如何解锁我的阅读线程,而不明确发送信号或写入一些数据到设备。 我的理解是,当驱动程序的最后一个句柄closures,其释放处理程序被调用。 我试图实现我认为是标准的用户空间行为 – 阻止从文件读取的线程将变得畅通无阻,并在asynchronousclosures时接收文件结束返回值。 我是否对用户空间中的文件级读取/closures有正确的理解? 我有正确的设备驱动程序了解吗? 我错过了别的吗? 我看了“Linux设备驱动程序第三版”,并不能完全find这个问题的答案。 我也search了谷歌,但似乎无法find答案。 你可以提供任何帮助表示赞赏。 我的内核版本是3.0.15。

logstash启动问题

我正在阅读http://cookbook.logstash.net/recipes/faster-startup-time/ 我做了解压缩jar和试图运行,但我不知道我在做什么错了? #unzip logstash-1.1.5-monolithic.jar -d dest_dir #java -jar -cp /past/to/extracted/logstash/dest_dir logstash.runner agent -f /path/to/logstash/config.conf — web –backend elasticsearch:///?local Unable to access jarfile logstash.runner

如何从Linux上的.so文件中获取C ++类?

我正在使用ACE库来做一些反应器工作。 在linux上,默认的ACE编译输出是libACE.so。 我通常使用-lACE编译选项来编译它,但这取决于我是否已经在ld.so.conf.d目录中configuration了libACE.conf。 如果我想子类ACE_Task,可以从ACE.so导入,编译依赖于libACE.so,如果我想dynamic加载ACE.so,我该怎么做? 我试过了,如果我使用dlopen,那么会出现链接错误。 那么,有没有办法dynamic加载ACE.so,仍然可以像这样实现ACE_Task? class test: public ACE_Task<ACE_MT_SYNCH> { }

如何枚举通过V4L2 USB摄像头的所有支持的图像大小

我一直在使用USB webcam和v4l2 API开发一些video应用程序。 API提供了大量的ioctl()调用来枚举常规function,video标准,像素颜色格式等。但是没有一个ioctl()来枚举USB webCam支持的所有可能的图像大小。 什么是这样做的首选方法? API文档说,你可以设置一个特定的图像大小,ioctl()将返回最接近的匹配。 所以我想我可以尝试所有可能的图像大小,看看USB摄像头是否拒绝它。 但是如果有这么多的标准尺寸格式(QCIF,CIF,4CIF,16CIF,VGA,DV,SVGA,XGA,UVGA,SXGA,UXGA等),那么这样做似乎是一种相当低效的枚举所有可能的支持图像尺寸的方法。 谢谢, -Andres

如何增加STDIN BUFFERSIZE

我正在使用Linux Debian 6.0.6,在STDIN缓冲区中遇到问题。 为了从STDIN得到input,我不能在STDIN中input多于4095个字符,有什么方法可以增加STDIN缓冲区大小。

embedded式linux:首先偏移在/ proc / pid / maps错误?

下面我的工作细节,只是部分与我的问题有关: 在内核版本为2.6.37.6的embedded式linux(arm)上的/ proc / pid / maps中,第一行(可执行文件的代码段)的偏移量似乎是错误的。 我总是看到一行: 00008000-00061000 r-xp 00000000 00:10 8073509 myprog (范围是进程地址空间中的地址,权限之后的数字应该是文件的偏移量) 然而,实际的抵消似乎是0x8000 – 至less,使用这个假设的解释看起来更可信。 nm显示myprog在0x8000之前没有代码,所以这也是有道理的。 有人能给我一个指向我可以find更多关于这个? 我找不到任何东西。 我在做什么:我写了一个工具来解释由mtrace()生成的日志,find可能的内存泄漏,并追溯到分配数据的代码。 对于后面的步骤,我从日志中获取一个指令指针,从/ proc / pid / maps的运行时间映射中查找它,find所需的可执行文件或库,并使用它们的nm-map来查找实际的函数做分配。 这对于除了可执行文件本身以外的所有东西都很有用。

大文件读/写在C + +的性能问题

我正在开发一个关于Qt的应用程序。 在这个应用程序中,主线程是一个Web服务器。 另一个线程有时从大文件(250MB)读取数据,并将其写入输出文件(〜2GB)。 该线程对文件执行高I / O操作,而CPU Iowait大约为70%。 我的问题是,当写入文件时,Web服务器没有快速响应。 我所理解的是服务器的qt套接字(在Linux上)是由一个连接到poll或select事件系统的系统套接字来表示的。 所以Qt发送信号到我的应用程序只有轮询发射事件。 我认为,文件写入太大的io操作可能会阻止轮询系统,所以我的qt服务器不会收到套接字事件。 当线程完成写入数据时,一切正常。 文件的写法如下所示: while(dataToRead){ // context has the list of files to read and current step dataToRead = extractData(context, &pBuffer, &sizeBuf); fwrite (pBuffer, 1, sizeBuf, pOutFile); free(pBuffer); pBuffer = NULL; // usleep(100000); } 如果我添加rest与睡眠function,这有助于避免问题,但不完全如果我不使用一个足够大的睡眠。 但睡眠太大会破坏性能,而且我是尽快生成的文件。 我做错了什么? 尽可能快地读/写文件是安全的吗? 上述function是否强制睡眠? 但是我们怎么能知道好时光呢? 我正在使用英特尔酷睿i5 2500和标准硬盘驱动器Mint LMDE,Linux 3.2.0 64位。 编辑:重现问题的示例程序可以在这里find: […]

无法让ZooKeeper集群工作,选举从未发生

这是我第一次尝试ZooKeeper,虽然我可以轻松地将它设置为在一台机器上运行,但是让它在两台机器的集群中运行根本不起作用。 我认为这可能是我的configuration有问题,但看起来不像我能find它。 这里是服务器1的日志 这里是服务器2的日志 我的configuration如下两台服务器: # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. dataDir=/var/lib/zookeeper […]

在知道树结构的情况下,ldap查询OU

我在一个CentOS桌面上的Itop工具中尝试了两件事。 我在这里发布,因为它是关于一般ldap查询。 我正在尝试使用ldap explore和Itop进行查询。 1.从OU中导入多个用户,但不起作用。 我的ldap查询可能不好: (&(objectCategory=organizationalUnit)(memberOf=CN=Organizational-Unit,CN=Schema,CN=Configuration,DC=mydomain,DC=local)) 要么 (&(objectCategory=user)(memberOf=OU=Users,OU=Informatique,OU=Administration,DC=mydomain,DC=local)) 知道我的树结构是这样的: DC=mydomain,DC=local => OU=Administration => OU=Informatique, OU=Users 2.导入特定用户: (objectcategory=user)((cn=seb)) 该查询正在工作,但我有一个Itop错误,也许是一个字段错过:错误: An error occured while processing 1: Object not following integrity rules: issues = Unexpected value for attribute 'name': Null not allowed, Unexpected value for attribute 'email': Wrong format [seb@mydomain.local], class = Person, id = 如何解决? 用哪个查询? […]