Linux 是啥东西?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 是啥东西?相关的知识,希望对你有一定的参考价值。

参考技术A 分类: 电脑/网络 >> 操作系统/系统故障
解析:

简单的说,Linux是Unix克隆(Unix clone)或Unix风格(Unix alike)的操作系统(OS),在原代码级上兼容绝大部分Unix标准(指的是IEEE POSIX,System V,BSD),是一个支持多用户, 多进程,多线程,实时性较好的功能 强大而稳定的操作系统.它可以运行x86PC,Sun Sparc,Digital Alpha,680x0,PowerPC, MIPS等平台上,可 以说Linux是目前运行硬件平台最多的操作系统. Linux最大的特点在于它是GNU(Gnu's Not Unix----有点分形与混沌的意味----无限自包含,简单的说GNU是一种自由软件体系)的一员,遵循公共版权许可证(GPL),秉承 "自由的思想,开放的源码"的原则,成千上万的专家/爱好者通过Inter在不断地完善并维护它,可以说Linux是计算机爱好者自己的操作系统. 追述Linux的历史直到1990年,Linus Torvalds还是芬兰赫尔辛基大学的一名学生,最初是用汇编语言写了一个在80386保护模式下处理多任务切换的程序,后来从Minix(Andy Tanenbaum教授所写的很小的Unix操作系统,主要用于操作系统教学)得到灵感,进一步产生了自认为狂妄的想法----写一个比Minix更好的Minix,于是开始写了一些硬件的设备驱动程序,一个小的文件系统,......,这样0.0.1版本的Linux就出来了,但是它只具有操作系统内核的勉强的雏形,甚至不能运行,你必须在有Minix的机器上编译以后才能玩.这时候 Linus已经完全着迷而不想停止,决定踢开Minix,于是在1991年10 月5号发布Linux 0.0.2版本,在这个版本中已经可以运行bash(the GNU Bourne Again Shell----一种用户与操作系统内核通讯的软件)和gcc(GNU C 编译器).从一开始,Linus就决定自由扩散Linux,包括原代码,他在p.os.minix新闻讨论组里发布Linux 0.0.2时写到:

"Do you pine for nice days of Minix-1.1, when mem were men and wrote their own device drivers? Are you without a niceproject and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrsting when everything works on Minix? No more all-nighters to get a nifty program working? Then this post might be just for you.

"As I mentioned a month ago, I'm working on a free version of a Minix-lookalike for AT-386 puters. It has finally reached the stage where it's even usable(though may not be depending on what you want),and I am willing to put out the sources for wider distribution. It is just version 0.0.2 ... but I've successfully run bash,gcc,gnu-make,gnu-sed,press,eunder it."

随即Linux引起黑客们(hacker)的注意,通过计算机网络加入了Linux的内核开发,Linux倾向于成为一个黑客的系统----直到今天,在Linux社区里内核的开发被认为是真正的编程.由于一批高水平黑客的加入,使Linux发展迅猛,到1993年底94年初,Linux 1.0终于诞生了! Linux 1.0已经是一个功能完备的操作系统,而且内核写得紧凑高效,可以充分发挥硬件的性能,在4M内存的80386机器上也表现得非常好,至今人们还在津津乐道于此,不过自从2.1.xx系列的内核Linux开始走高端的路子----硬件的发展太快了,但是Linux不会失去它的本色.Linux具有良好的兼容性和可移植性,大约在1.3版本之后,开始向其他硬件平台上移植,包括号称最快的CPU---Digital Alpha(至少目前主频是最高的).所以不要总把Linux与低档硬件平台联系 到一块,Linux发展到今天,这是一个误区,它只是将硬件的性能充分发挥 出来而已,Linux必将从低端应用横扫到高端应用!

在Linux的发展历程上还有一件重要的事:Linux加入GNU并遵循公共版权许可证(GPL).此举大大加强了GNU和Linux,几乎所有应用的GNU库/软件都移植到Linux,完善并提高了Linux的实用性,而GNU有了一个根基,我现在也搞不清楚到底是GNU Linux呢还是基于Linux的GNU. :-) 更重要的是遵循公共版权许可证,在继承自由软件的精神的前提下,不再排斥对自由软件的商业行为(如把自由软件打包以光盘形式出售),不排斥商家对自由软件进一步开发,不排斥在Linux上开发商业软件.从此Linux又开始了一次飞跃,出现了很多的Linux发行版 ,如Slackware,Redhat,Suse,TurboLinux,OpenLinux等十多种,而且 还在增加,注意你不能说"Redhat Linux""Suse Linux""Slackware Linux"等等,Linux主要指操作系统内核,对所有发行版内核原代码都是一样的(但集成的内核版本可能因发行时间不同而有所不同). 还有一些公司在Linux上开发商业软件或把其他Unix平台的软件移植到Linux上来,如今很多IT业界的大腕如IBM,Intel,Oracle,Infomix,Sy *** ase,Corel,Netscape,CA,Novell等都宣布支持Linux! 商家的加盟弥补了纯自由软件的不足和发展障碍,Linux迅速普及到广大计算机爱好者,并且进入商业应用,正是打破某些公司垄断文化圈的希望所在!!

Linux是爱好者们通过Inter协同开发出来的,当然它的网络功能十分强大,比如你可以通过ftp,nfs等来安装Linux,用它来做网关等等.随着Linux的发展衍生出来的应用恐怕出乎Linus本人最初的预料,如有人用它来做路由器,有人来做嵌入式系统,有人来做实时性系统. .....常有新手问Linux能做什么,其实它不象那些中看不中用的操作系统,不在于你用它能干什么,而在于你想干什么! Linux的兴起还给人们很多启迪与思考,如集市式软件开发的讨论, 又如自由软件的精神......

Linux 上 DTrace 的替代方案是啥? [关闭]

【中文标题】Linux 上 DTrace 的替代方案是啥? [关闭]【英文标题】:What's an alternative for DTrace on Linux? [closed]Linux 上 DTrace 的替代方案是什么? [关闭] 【发布时间】:2010-01-13 18:47:15 【问题描述】:

据我所知,Linux 上的 DTrace 实现受到许可和政治的阻碍。目前有哪些替代方案?

【问题讨论】:

Linux 上的 dtrace 有什么新东西吗? @Syntax_Error 是的,你不再需要它了:brendangregg.com/blog/2016-10-27/dtrace-for-linux-2016.html 【参考方案1】:

Systemtap 旨在解决与 dtrace 相同的问题,并具有类似的用户界面 - 用户编写将操作附加到命名探针的小脚本。

据说是不稳定的,默认情况下它通常不会编译到你的内核中,但是一旦我让它工作,我就没有任何问题。

您可以在this table on the systemtap website 中看到它与 dtrace 的比较(可能是党派 :-)

Dtrace 已由爱好者 Paul Fox 部分移植到 Linux,可供您下载试用 - 查看他的 blog 上的链接。

据说kprobes 是 dtrace 的替代品,但我从未尝试过。

【讨论】:

我不知道那个 DTrace 端口,我会检查一下。谢谢。【参考方案2】:

SystemTap 是建立在 Kprobes 之上的更高层次的抽象。有关 Kprobes 如何工作的更多信息,您可以阅读我在 LWN 上的technical article。

正如 Alex 所提到的,Systemtap 本质上解决了与 dtrace 相同的问题,只是它比 dtrace 慢一些(您可能不会这么认为,这取决于您尝试用它做什么),而不是完全一样抛光或使用安全。

要安装 SystemTap SDT 开发包,请尝试:

yum install systemtap-sdt-devel

【讨论】:

【参考方案3】:

sysdig 现在是一个很好的解决方案。

一些用例包括(他们的wiki has some exceptionally interesting examples):

用于磁盘 I/O

查看磁盘带宽使用率最高的进程

sysdig -c topprocs_file

列出使用大量文件的进程

sysdig -c fdcount_by proc.name "fd.type=file"

查看读写字节数排名靠前的文件

sysdig -c topfiles_bytes

打印 apache 读取或写入的主要文件

sysdig -c topfiles_bytes proc.name=httpd

基本的 opensnoop:snoop 文件在发生时打开

sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open

根据 R+W 磁盘活动查看***目录

sysdig -c fdbytes_by fd.directory "fd.type=file"

查看 /tmp 目录中 R+W 磁盘活动排名靠前的文件

sysdig -c fdbytes_by fd.filename "fd.directory=/tmp/"

观察所有名为“passwd”的文件的 I/O 活动

sysdig -A -c echo_fds "fd.filename=passwd"

按 FD 类型显示 I/O 活动

sysdig -c fdbytes_by fd.type

【讨论】:

【参考方案4】:

对于 linux (https://github.com/dtrace4linux) 和 http://crtags.blogspot.com 确实存在 dtrace。

【讨论】:

【参考方案5】:

Oracle 正在将 DTrace 移植到 linux:https://oss.oracle.com/projects/DTrace/

不知道这是否仅适用于他们的 linux 发行版或其他任何发行版。

【讨论】:

看起来他们现在已经全力以赴:theregister.co.uk/2018/02/19/…【参考方案6】:

Linux 有 strace/ltrace(参见 this post 关于 strace)。但它们并不真正等同于 DTrace,它们只涵盖了 DTrace 可以做的一小部分(实际上,DTrace 远远优于 Linux 提供的任何东西)。

【讨论】:

strace 更接近于truss 而不是dtrace

以上是关于Linux 是啥东西?的主要内容,如果未能解决你的问题,请参考以下文章

MinGW是啥东西?它和QT是啥关系?怎么用MinGW

linux centos系统 /usr/libexec 目录下装的是啥东西

linux centos系统 /usr/libexec 目录下装的是啥东西

ons模拟器是啥东西

openjdk到底是啥东西啊?有啥作用啊?是否说在linux下编写java程序必须安装openjdk啊?谢谢回答。

帝国CMS 是啥东西吗??如何或得???