Tag Archive for ‘linux’

Page 2 of 5

linux进程可执行文件的绝对路径

这种情况很少遇到,我们需要一个运行中进程的绝对路径,可惜的是glibc中或者系统调用中我都没有找到类似的函数。但是linux绝对不会不给你这个机会的,那就是proc文件系统了。在proc文件系统中那些数字都是运行中的进程,进入一个文件名为数字的文件夹以后,我们就可以发现以下类似文件目录结构。

[cyher@cyher ~]$ ls /proc/3355/
attr             cpuset   io        mountinfo   pagemap      smaps    task
auxv             cwd      latency   mounts      personality  stack    wchan
cgroup           environ  limits    mountstats  root         stat
clear_refs       exe      loginuid  net         sched        statm
cmdline          fd       maps      oom_adj     schedstat    status
coredump_filter  fdinfo   mem       oom_score   sessionid    syscall

这里就是一个进程所有的信息了大名鼎鼎的ps命令就是读取这里的内容解析出信息的,这里是ps的官方网站 http://procps.sourceforge.net/

那好了,就用这里给的信息来解析出执行文件的绝对路径吧

/*
 * =====================================================================================
 *
 *       Filename:  get_exe_path.c
 *
 *    Description:
 *
 *        Version:  1.0
 *        Created:  2009年09月23日 17时07分17秒
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  cyher (), cyher.net@gmail.com
 *        Company:  cyher.net
 *
 * =====================================================================================
 */
 
#include
#include
#include
#define BUF 128
 
int main(int agrc, char **argv) {
    char buf[BUF];
    char proc[BUF];
    char *p;
 
    sprintf(proc, "/proc/%d/exe", atoi(argv[1]));
    readlink(proc,buf, BUF); /*proc/pid/exe 是一个链接,用readlink读*/
    p = strchr(buf,'('); /*读出的路径后面有可能会有 (deleted)字样,删去*/
    if (p != NULL) {
        p--;
        *p = '\0';
    }
    puts(buf);
}

这样就能读取出绝对路径了,不过你首先要知道pid啊 呵呵。

自己曾经作过的小实验

youku链接:http://v.youku.com/v_show/id_XMTAyODE5MjEy.html

自己的嵌入式学习经验, 想不到别人给拍成视频了

见笑了….呵呵. 说的太年轻气盛了….别拍阿,我知错了.现在需要低调…呵呵.

在macbook上安装各种操作系统

想在macbook上装操作系统, 但是鉴于macbook于一般pc还不是很相同,所以在发行版的选择上还是有点困难的. 经过我在网上的搜索最后结合我自己的需要,在我的macbook pro上装了ubuntu,opensolaris这两个系统.(别提windows, 他就是用的人多点,其他没有什么可取之处,结论仅限于计算机爱好者).

mac上多系统启动
http://wiki.onmac.net/index.php/Triple_Boot_via_BootCamp_Ubuntu


ubuntu上装mac
https://wiki.ubuntu.com/MactelSupportTeam/CommunityHelpPages

最后还是选择ubuntu, 这个在资深linuxer中口碑不是很好的系统, 为什么口碑不好, 我想是因为ubuntu的成功有点不劳而获的感觉吧.整个系统建立在debian上,而自身对linux内核和软件库的贡献相对他的成功要少.当然这写东西不是我们要讨论的.为什么我选择了ubuntu装在我的macbook上, 因为我需要的是一个稳定,实用,功能完善的系统,主要作桌面应用和编码而不是作系统研究的OS, ubuntu都支持的非常好,在各大linux发行办中支持的最好了.ubuntu有专门的mac支持的团队,看上面的链接,所以很人性化了,其实最重要的是简单了,我现在的情况估计不允许我长时间编译gentoo…..

推荐指数: * * * * *

mac上opensolaris
http://wiki.genunix.org/wiki/index.php/OpenSolaris_Dual_Boot
http://blogs.sun.com/judychen/entry/在macbook_pro上安装solaris
http://www.weiphone.com/viewthread.php?tid=208850
http://developers.sun.com.cn/solaris/opensolaris_2005_mac.html#author
http://wikis.sun.com/display/chosug/OpenSolaris+2009.06+on+a+MacBook+Pro

solaris,哈,同样经典的unix, 现在有opensolaris项目能够跑在x86体系上,看上面的链接就知道sun和apple的关系还是不错的,opensolaris有很好的官方支持macbook.所以希望了解solaris的童鞋不能错过了.我跟人对opensolaris也是一知半解就不多说了,不过感觉不错.

推荐值数: * * * *

mac上debian
http://wiki.debian.org/MacBook
debian,最古老,软件包最多,最自由,最有linux精神的发行版之一,是ubuntu他爹,同样对macbook支持不错,就是配置起来稍微geek点, 喜欢钻研系统的高手们,推荐使用.

推荐指数: * * * *

mac上gentoo
http://www.odi.ch/prog/macbookpro/index.php
gentoo,包管理系统借鉴bsd的port, 全部源码自编译, 高手以及时间充裕的人,我相信一定能做出最适合自己,速度最快的linux. gentoo的意思是一种游的最快的企鹅.

推荐指数: * * *

mac上opensuse
http://en.opensuse.org/Installation_on_MacBook
opensuse, 华丽, 企业级高端应用, top500的超级计算机很多用的都是suse,这是为什么呢?我也不知道…想想华丽的suse配上精致的macbook一定感觉不错,但是文档支持一般, 软件支持也一般了.

推荐值数: * *

mac上arch
http://wiki.archlinux.org/index.php/MacBook#Mac_OS_X_with_Arch_Linux
http://wiki.archlinux.org/index.php/MacBook_Aluminum
http://wiki.archlinux.org/index.php/MacBookPro
arch linux, 轻量级linux,可定制性高,对i686有特殊优化. 对mac支持还算不错,对于一般用户来说还是要费点事的.arch可能就是gentoo的折衷方案吧.

推荐指数: * * *

mac上fedora
http://www.cenolan.com/2009/06/installing-fedora-11-on-a-macbook/
fedora, redhat支持的开源发行版,那是相当的有实力,我也一直用.但是装在macbook上可能难度不亚于arch或者gentoo,连个官方文档都难找到.不过上面那个链接介绍的已经很清楚了, 喜欢fedora的童鞋别错过了,毕竟fedora还是一个非常不错的发行版.

推荐指数: * * *

mac上freebsd
http://wiki.freebsd.org/AppleMacbook
freebsd, 和mac os x 同属一系. 优秀的架构,很适合作服务器应用, 让我想不到的是,对mac的支持也是相当的不错的,但是用起来还是需要一些经验和技术的,总之,freebsd装在mac上有些怪怪的,不过freebsd还是相当有内涵的OS大家不妨试试.

推荐指数: * * *

后记: 我们以前在pc上装hackintosh, 现在我们也在mac上装各种开源系统,这里我没有写安装过程,是因为,上面的链接里面已经讲的非常清楚了.写这个目的就是让人们知道,世界上不只有windows和mac os x, 还有许多优秀的系统, 在某些方面甚至更优秀.希望我们中国的开源事业能从OS开始, windows是个毒瘤, 把我们变的越来越傻, 我们越用越难以脱离, 我们就是这样被微软控制的.声明:没有说微软的技术不好, 只是它太封闭, 太独裁. 我们现在的版权意识很差,windows用的都是基本盗版的, 等到盗版不了的时候, 只有乖乖的交钱了. linux不仅免费,还能让我们更了解操作系统, 这样才是安全的.

unix-center.net需要帮助

我的邮件里有这么样子一封信http://www.unix-center.net/?p=133

看完以后,心中不知道有什么感觉,就去捐了100元。这时候有些人选择了,忽略,不信任,忘记等。。。确实这是一个自由的捐款,在自愿的情况下。但是我还是想帮助unix-center.net这个项目以及项目负责人,因为我收益于这个项目,我也知道,那些想学习linux或者unix的同学也一样,有些人有钱,有些人没钱,但是如果觉得这个项目帮助了自己或者能够帮助别人,那就请你出自己的一份力。因为在中国有这样的资源实属不多,所以我同项目负责人一样想让这个项目延续下去。说实话,这是我的一个个人信仰,也许也是这个项目负责人的信仰,帮助想要学习linux和unix系统的人。我现在只能做这些了,希望我们国家的开源和计算机事业都有源源不断的人材。

最后一句话,信任是不需要证据的,有了证据你再信任,信任就没有必要存在了。
—–送给那些不相信确有其事的人

About

You are currently browsing the Cyher.NET weblog archives for 'linux' tag.