Articles of Linux操作系统

OpenMP在Visual Studio 2010上提供了13.5倍的提升,但在Unix上却没有提高

我是一个新的OpenMP用户,并且在Visual Studio 2010(Windows 7 Ultimate x64)上运行的并行代码速度提高了13.5倍(14个线程)。 CentOS 5.8 x64(gcc 4.1.2)或SUSE x64(gcc 4.5.1)的性能是zip。 我已经validation了正在使用多个线程。 有一些系统标志或选项,我需要打开? 是的,OMP_NUM_THREADS在环境中,设置为8. CentOS机器是双氙气处理器。

在Qtcreator中debugging助手不能在Linux上工作

对不起英文。 理论上,在qt-creator中debugging时显示Qt中定义的类的字段。 但它不这样做,只显示或内存地址。 我认为在GDB或Python脚本的问题。 从http://origin.releases.qt-project.org/gdb/加载的GDB给出了上面描述的内容。 我试图用configuration标志自己构buildGDB configure –prefix=<DIR> –target x86_64-linux-gnu –with-python 和 configure –target x86_64-linux-gnu –disable-nls –with-libiconv –with-expat –with-python 但是从Qtcreator开始的时候却崩溃了 我在Ubuntu 12.10 x64上运行Qt版本是4.8.4(来自Git),创build者是2.5.2(来自qt-project站点)和2.6.81(git)GDB版本:构build自己 – 7.5从qt-project下载 – 7.4.1 在Win8的主题工作正常,结合QtCreator(2.6.81)-Qt-4.8.4-MinGW-GDB-7.5(用Py。支持从源码构build自己) UPD:尝试用http://qt.gitorious.org/qt-creator/qt-creator/trees/master/dist/gdbbuild立它并没有帮助 解决scheme:Qt库不包含debuggingsimbols。 我被国旗揪住了。 它在macOS和windows(MinGW)中工作,但不在Linux中。 小心!

在linux内核中的指令{interrupt do_IRQ}是什么意思?

linux内核文件arch / x86 / kernel / entry_64.S中的指令{interrupt do_IRQ}是什么意思? 是中断一个指令还是一个macros? 定义在哪里? 如何使用它 ? 847 common_interrupt: 848 XCPT_FRAME 849 addq $-0x80,(%rsp) /* Adjust vector to [-256,-1] range */ 850 interrupt do_IRQ 851 /* 0(%rsp): old_rsp-ARGOFFSET */

Git,推动许可问题

所以我是Git的新品牌和一般的发展。 我是几台不同机器上的Linux和Mac用户,并且有几台云服务器和AWS,我在这些小型的Python项目上工作。 我会尽力解释我想要的东西,希望我已经接近最好的解决scheme,将为我的用例工作。 我希望能够在我拥有的任何设备,家里的Ubuntu桌面,工作的Macbook,云服务器,在工作的Ubuntu桌面和个人Macbook上编写代码。 显然,我正在使用不同的主机名和用户名,我是唯一一个在我的代码上工作的人。 我通过git指南,它的工作,有点。 我试图在我的云服务器上设置我的存储库,我也将更改代码。 我一直在试图从我的MacBook提交和推送,但一直在获取一系列权限错误,我不得不回到repo和chown -R作为我的ssh wheel用户,因为每个对象都有作为根被覆盖。 以下是我在尝试从我的MacBook上推送时看到的一些示例错误消息: 一个提交: macbook:dev macbookuser$ git commit # On branch master # Your branch is ahead of 'origin/master' by 6 commits. # nothing to commit, working directory clean 然后推: macbook:dev macbookuser$ git push user1@myserver-aka-repo.com's password: Counting objects: 18, done. Delta compression using up to 2 threads. […]

杀死一个进程和所有后代的安全方法

我使用apparmor , setrlimit , cap_set_rpoc在Linux中创build沙箱环境,让匿名用户在科学应用程序的上下文中基本上执行我的服务器上的一些任意代码。 沙盒中特别允许的一件事是通过分叉和调用可执行文件来启动新进程(尽pipe一个用户的进程总数受RLIMIT_NPROC限制)。 经过一段时间后,比如说1分钟,系统将杀死主进程和所有潜在的subprocess。 我目前正在依靠进程组ID来识别孩子。 然而,从理论上讲,一个subprocess可以调用setpgid来改变它的进程组,所以当我在主进程id(正确的?)上调用kill(-1 * pid)时候,它将不再受到影响。 不幸的是,我没有设置能够阻止进程调用setpgid linux capability 。 杀死一个进程及其所有(recursion的)subprocess的强大方法是什么?这会使孩子们很难以某种方式“逃避”大屠杀并继续孤儿进程?

避免RDNS查找HTTP请求

我尝试使用pythonbuild立一个HTTP连接,使用下面的代码。 我自己做DNS解决,因为我不能在有问题的机器上更改hosts和resolv.conf文件。 class resolver(object): def __init__(self, server): self.server = server def __call__(self, host): res = check_output('host %s %s' % (host, self.server), shell = True) ips = findall('has address (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', res) return choice(ips) class http_connection(httplib.HTTPConnection): dns_server = '8.8.8.8' def connect(self): resolv = resolver(http_connection.dns_server) self.sock = socket.create_connection((resolv(self.host), self.port), self.timeout) … x = http_connection('%s:%d' % (args.host, args.port)) x.request('GET','/start/') […]

重新命名有间隙的连续图像文件

我正在寻找一种方法来重新命名一个图像文件列表的差距是连续的。 另外我想给他们一个4的填充。我目前使用Python 2.7和Linux bash来编程。 Example: 1.png 2.png 3.png 20.png 21.png 50.png 应该变成: 0001.png 0002.png 0003.png 0004.png 0005.png 0006.png 我也想要的文件名称是相同的目录,他们目前在。 Example: c_users_johnny_desktop_images.0001.png c_users_johnny_desktop_images.0002.png c_users_johnny_desktop_images.0003.png c_users_johnny_desktop_images.0004.png c_users_johnny_desktop_images.0005.png c_users_johnny_desktop_images.0006.png 任何帮助将不胜感激! 🙂 干杯

NXC通过USB进行通讯

你将如何通过USB端口发送数据并在我的Linux机器上接收数据? task main () { byte data[2] = {1,2}; while (1) { Wait(1000); SetUSBOutputBuffer(0, 2, data); } } 编译它: nbc -d -Z2 usb.nxc dmesg的: usb 2-1.2: reset full-speed USB device number 6 using ehci_hcd 现在我怎样才能得到NXT发送的“数据”?我怎样才能用C语言编写一个读取USB缓冲区的Linux程序?

合并或提交到两个单独的存储库

目前我们有repo cos这是我们的主要回购。 我们也有回购cos2,其中包含了所有的cos的提交,直到我们分叉的date。 他们是完全独立的回购。 我们需要在cos2中改变cos2直到我们正式转换到cos2,但是我们需要在此期间从cos2提交cos。 Repo Cos A—B—C—D—n | | | | Repo Cos2 A—B—C—D—n 要么 Repo Cos A—B—C—D—n \ \ \ \ Repo Cos2 E—F—G—H—n 我们如何获得特定的提交或合并到cos2? cos2中的任何东西都不需要去cos,但cos中的所有东西都需要去cos2。 但是,我们需要能够在cos2中继续发展,所以我们不能只是克隆cos来重buildcos2,因为发生了分歧。 我希望有一个像这样的命令, git merge feature/branch user@giturl:/cos2 :feature/branch 但我不认为这是存在的。

Java中的进程pipe理和EventWaiter

我将用Java实现一个小的守护进程应用程序。 以下是我的要求。 有人可以给我一些build议,如何做到这一点? 启动并监视另一个进程(如果发生崩溃,请重新启动) 在Windows和Linux上运行(SUSE是首选) 守护程序本身也不会退出,它应该在收到OSclosures信号时正常退出。 对于Windows,我可以调用多个Win32 API来启动进程并监视其状态。 守护程序应用程序可以是一个Windows服务,其生命周期由Windows自动pipe理。 问题是,如何对付Linux。 此外,如何编写一套代码来处理这两个操作系统,而不是两个?