首页 >>  正文

unix和linux哪个强大

来源:baiyundou.net   日期:2024-09-21

摘要:程序员都知道,Linux 不是 Unix,不过二者之间确实存在关系,即 Linux 系统是从 Unix 派生出来的,而 Linux 是一个类 Unix 的操作系统。那么,二者之间具体存在哪些明显的差异呢?

原文链接:https://akr.am/blog/posts/unix-is-not-linux

声明:本文为 CSDN 翻译,未经授权,禁止转载。

作者 | Mohamed Akram译者 | 弯月

出品 | CSDN(ID:CSDNnews)

网上很多有关POSIX和Unix工具的教程和指南总是假设你安装了Linux,或者更具体地说,安装了基于GNU的操作系统。然而,在探讨shell的行为、工具程序以及C的标准库时,这种假设往往会产生很大的影响。

虽然Linux的主导地位可能会让我们忽略Linux与这些操作系统的不同,但我们还是应该有一定的了解。在本文中,我将列出一些比较明显的差异。

Bash不是标准的shell

所有Unix系统上的默认shell都是sh,而不是bash。POSIX标准中介绍了sh中使用的语言。然而,在许多Linux系统上,sh只是指向bash的链接,这样可以用更接近标准的方式来使用bash,但人们依然可以使用一些无法在其他系统上使用的bash功能。如有疑问,请参阅标准。

Unix不包含长选项

Unix命令的选项有两种写法:短选项(只有一条短线-)与长选项(有两条短线--)。短选项一般会采用缩写的形式,而长选项一般会写出完整的单词。

许多工具程序都接受长选项,例如grep --count,对应的短选项是grep -c。前者是GNU的写法,其他系统通常不会采用这种写法,例如BSD。事实上,标准的getopts工具程序和相应的getopt C函数只支持短选项。

Make不同于GNU make

POSIX版本的make比GNU版本更有局限性。这个问题很难解决,因为规范的许多方面都有所欠缺,特别是逻辑或条件运算符。为了解决这个问题,你可以将一些逻辑移动到configure脚本,由这个脚本生成另一个Makefile,然后再包含到主文件中。此外,BSD的语法与GNU完全不同,例如条件语句。幸运的是,如果你只关注macOS和Linux,则可以放心地使用GNU的特性,因为macOS都是基于GNU的。

C编译器不同于GCC

在Makefiles文件中引用C编译器时,最好使用变量$(CC),在编译C++代码时,最好使用变量$(CXX)。大多数BSD系统的默认编译器如今都改为使用Clang了,而且不提供gcc可执行文件。如果是在Makefiles以外使用C和C++编译器,则可以直接使用cc和c++命令,这两个命令能在所有系统上工作。

GNU不同于Linux

二者略有不同,GNU接口不一定会出现在Linux系统上。例如,Alpine Linux发行版因其轻量级而流行于Docker容器中,它没有使用musl的GNU C库,而且放弃了GNU工具程序,改为使用BusyBox。因此,最好还是使用可移植的接口,即便你的目标只是Linux系统。

Unix不同于UNIX

最后,请注意,Unix与UNIX也不完全相同。后者是需要The Open Group认证的商标。在众多经过认证的操作系统中,最有名的是macOS,它遵循一切UNIX规范。也就是说,包括BSD在内的大多数类Unix系统以及GNU工具都在努力尽量遵守标准。

","force_purephv":"0","gnid":"938a96b0bedf62e68","img_data":[{"flag":2,"img":[{"desc":"","height":"80","s_url":"https://p0.ssl.img.360kuai.com/t0186957a1ca5352752_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t0186957a1ca5352752.gif","width":"640"},{"desc":"","height":"607","title":"","url":"https://p0.ssl.img.360kuai.com/t01d614e58f1dc1025f.jpg","width":"1080"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1661947874000,"pure":"","rawurl":"http://zm.news.so.com/cfbf1d8491a4fb7eb0359c8100cb0878","redirect":0,"rptid":"bf7145ae1614b6ae","s":"t","src":"CSDN","tag":[{"clk":"ktechnology_1:操作系统","k":"操作系统","u":""},{"clk":"ktechnology_1:mac","k":"mac","u":""},{"clk":"ktechnology_1:linux","k":"linux","u":""}],"title":"再强调一遍:Unix 不是 Linux!

盛饶肾853unix与linux的区别 -
韶金农15069762378 ______ 1、两者的本质不同: Linux是开发源代码的自由软件,用户对前者有很高的自主权,在实际的的开发是处在一个完全开放的环境之中; 而unix是对源代码实行知识产权保护的传统商业软件,用户的开发完全是处在一个黑箱之中,只有相关的开发...

盛饶肾853unix指令与linux哪个好?
韶金农15069762378 ______ 学习都比较枯燥,后者是前者的一个部分!

盛饶肾853请问linux系统和unix系统有什么区别啊? -
韶金农15069762378 ______ linux操作系统是unix是微机上的实现.还有linux是公开源代码的,它是一个完全免费的操作系统.而unix 却和windows NT一样保密的哦.

盛饶肾853unix和linux有什么主要区别?
韶金农15069762378 ______ linux是派生自unix 但是unix通常是运行在小型机及其更大型的机子上面的,大型企业常用unix linux还可以运行在PC上,普通人在自己的电脑上就可以运行了 当然,而这在很多方面都是大同小异的,熟悉linux之后,再上手unix就不会太困难

盛饶肾853unix和linux两者是什么关系啊?
韶金农15069762378 ______ UNIX是历史最悠久的通用操作系统.1969年,美国贝尔实验室的K.Thompson和D.M.Ritchie在规模较小及较简单的分时操作系统MULTICS的基础上开发出UNIX, 当时是在...

盛饶肾853什么是Linux和Unix,它们有什么区别
韶金农15069762378 ______ Linux是一类Unix计算机操作系统的统称.Linux操作系统的内核的名字也是“Linux”.Linux操作系统也是自由软件和开放源代码发展中最著名的例子.严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个...

盛饶肾853Linux操作系统有什么特性?请描述Linux与Windows操?
韶金农15069762378 ______ 1.linux是开源的,windows不开源 2.linux也有图形界面的,但是图形窗口相当于运行的软件,与底层代码的分界相对明显,而windows很多都是写到内核中的.相对来说集成性高,可读性非常低.代码很多都是编译过的,又不开源,所以能玩到注册表差不多就是极限了. 3.linux的开放性使得我们可以接触到所有的一切,从内核编译,脚本编写,配置更改,加载服务器等等,但是图形方面的功能做得比windows还是差很多的. 4.windows是赚钱的,公司经营,雇人写代码.linux更多的是大家在论坛上贡献的,免费,自由.

盛饶肾853Linux跟Unix区别在于什么?为什么服务器使用Linux多余Unix? -
韶金农15069762378 ______ 主要区别1. UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上.2. UNIX是商业软件,而Linux是自由软件,免费、公开源代码的.3. Linux免费4. unix和linux都是操作系统的名称.但unix这四个字母除了是操作系统名称外,还作为商标...

盛饶肾853linux和unix是什么关系? -
韶金农15069762378 ______ Linux 和 UNIX 的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知 识产权保护的传统商业软件.这应该是他们最大的不同,这种不同 体现在用户对前者有很 高的自主权, 而对后者却只能去被动的适应; 这种不同还表现...

盛饶肾853LINUX和UNIX有什么不同
韶金农15069762378 ______ Linux是基于unix的操作系统

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024