从程序员的角度来看Linux内核和UNIX内核(例如FreeBSD)之间的区别

时间:2011-02-16 04:10:02

标签: linux unix kernel

从程序员的角度来看,Linux内核和UNIX内核(如FreeBSD)之间存在差异。 我搜索了几篇关于此的文章。他们从公司经理的角度比较了用户视图和管理员视图中的这些信息。 任何人都能从程序员的角度找到文章或说些什么吗?

程序员我的意思是,用户土地程序员还是内核级程序员?

任何提示或启示都非常感激。

希望这不是一个陈词滥调的问题,让每个人都生病。 :P

2 个答案:

答案 0 :(得分:5)

从标准的角度来看,确实没有任何区别。 Linux是一个符合“POSIX”标准的操作系统,FreeBSD,Mac OS X和Solaris也都符合“POSIX”标准。至少在理论上。

一旦超越标准,就会有很多不同之处。 Linux作为inotify,udev和其他一系列独特的系统。 FreeBSD有kqueue。他们在ptrace之类的确切实现方面存在差异。例如,Mac OS X的ptrace几乎没有其他Unix系统中的功能。

除了自定义库之外,开发工具也存在差异。 Solaris和FreeBSD都有dtrace。 Linux有valgrind。 Mac OSX有乐器。

您正在考虑的级别会影响您看到或未看到的差异。

答案 1 :(得分:3)

对于userland程序员, no 存在差异。 userland编程将编码为像C这样的语言VM,它将由C库例程转换为低级系统调用。

那些使用其他工具(如Perl,Python,Java等)的人甚至会从内核中删除 more ,因此它也不会直接影响他们。

就内核程序员而言,由于内核本身不同,差异可能很大。虽然我已经在Linux内部做了相当多的工作,但我还没有看到FreeBSD的内部结构,所以我无法对低级别的差异做出明智的评论,但是(最后一点是知情的意见,而不是福音),因为他们运行独立的开发流,具有完全相同的视图的机会很小。