9

为什么很多程序员都建议使用Linux

 1 year ago
source link: https://hbuacm.github.io/2023/01/06/2023%E5%AF%92%E5%81%87%E8%AE%AD%E7%BB%83%E6%AF%8F%E6%97%A5%E5%88%86%E4%BA%ABday5/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

HBUACM

day5 为什么很多程序员都建议使用Linux
发表于 2023-01-06| 更新于 2023-01-06|2023程序设计训练营每日分享
阅读量:2

为什么很多程序员都建议使用Linux

​ 说到Linux,就不能提到大名鼎鼎的UNIX系统,在上世纪60年代末的时候,那时候计算机系统还是批处理的,在又大又笨的大型机器上运行,要先将程序卡片装入设备,然后等1个小时后才能取运算的结果。不仅慢,还很废纸。

  于是美国电话电报公司(下面简称AT&T公司)下面的贝尔实验室联合麻省理工学院及美国通用电气公司本来是打算开发一个大型机上的多人使用、多任务、多层次的操作系统multics。但是multics这个系统步子迈得太大了,贝尔实验室认为这个项目周期长、成本高,不久就撤资了,各方也陆续退出,项目于是凉凉了。

  但是贝尔实验室下面的两个研究员肯·汤普森(Ken Thompson)和丹尼斯·里奇(Dennis Ritchie)对项目关闭很失望,因为他们在这个系统上开发了一个游戏太空旅行(Space Travel),实验室的其他人员对这个游戏玩得也很上头。

​ 于是,为了能够继续玩游戏,肯·汤普森和丹尼斯·里奇决定自己开发一个操作系统;是的,你没有看错,大神就是大神,出发点都异于常人。肯·汤普森找来了一台五年前老旧的PDP-7小型机,虽然称为小型机,但是也有一间屋子那么大!

​ 在这台机器上,他首先重写了游戏,然后想要开发一个全新的操作系统,由于有之前multics系统的经验,在一个月内他很快完成了内核系统、文件系统、编辑器、编译系统的工作。1969年第一版的UNIX系统正式诞生了。

  在《UNIX传奇》一书中,提及了UNIX系统的高光时刻,上映于1993年的科幻冒险电影《侏罗纪公园》中有一个名场面,哈蒙德教授的孙女就是操作UNIX系统,关闭了闸门,从而拯救了一行人,有兴趣可以重温

  但是UNIX是由不少使用汇编语言完成的,汇编语言用来编程不够强大,也不具备很好的可移植性,于是1971年丹尼斯·里奇在B语言的基础上开发出了C语言,1973年UNIX也用C语言进行了重写,随后发布了4、5、6几个版本的UNIX。此后,UNIX被政府机关、研究机构、企业、大学纷纷注意,并逐步流行;随着UNIX系统的广泛流行,C语言也成为了最受欢迎的语言之一,一直延续至今。

一开始AT&T公司也没有把UNIX当回事,毕竟不是正式的项目,况且在操作系统上(multics)还吃过大亏,也就没想拿它卖钱,因此被免费提供给大学使用,甚至直接给V7版本的源码以做研究。

  因此在后面的10年,UNIX在各个学术机构得到广泛应用,甚至许多机构在此源码基础上加以改进,其中最著名的变种之一是由加州大学柏克莱分校开发的BSD产品(Berkeley Software Distribution),在此基础上又诞生了三条分支:FreeBSD、OpenBSD和NetBSD,就连苹果电脑的内核Darwin所使用的NextSETP也是BSD的衍生版本。

  AT&T公司一看,哟呵,UNIX居然这么火,于是意识到了UNIX巨大的商业价值,不再将UNIX源码授权给学术机构,并对之前的UNIX及其变种声明了版权,后面引发了各种旷日持久的版权纠纷,这是UNIX的后话。

Linux

​ 80年代,随着AT&T公司闭源UNIX系统,在学校里给学生用的操作系统很少;当时计算机主要使用的操作系统有UNIX、MS-DOS和MacOS这几种,UNIX已经开始商用,比较昂贵,仅局限于大型机;MS-DOS系统比较简陋,且源代码被软件厂商严格保密;而MacOS大家肯定也都知道,是专门用在苹果计算机上的系统,而且当时应该没有黑苹果一说。

  1987年当时在荷兰阿姆斯特丹Vrije大学当教授的美国人安迪·塔内鲍姆(AndrewS.Tanenbaum)为了让学生更好的理解操作系统的原理,就仿照BSD的源代码,编写了一个类UNIX系统,取名为MINIX,意为迷你的UNIX,并且开放全部代码给大学教学和研究用;既然是MINI,它的代码体量也是比较小的,全部代码共约12000行,而且只是一个教学工具,没有什么实际的应用价值。

  1991年,我们的主人公Linus Torvalds(简称Linus)在芬兰赫尔辛基大学期间,开始对UNIX产生了浓厚的兴趣;在校期间,由于Linus经常要用他的终端仿真器(Terminal Emulator)去访问大学主机上的新闻组和邮件,他对MINIX只允许在教育上使用很不满,同时也为了方便读写和下载文件,他开始写属于自己的类UNIX系统;在一个暑假没日没夜的开发中,最终开发出了Linux的第一个内核(0.02版),并取名Linus' Minix,后来改名为Linux。

  1991年10月Linus在Minix新闻组发布消息,对外宣布Linux内核的诞生,并公开了内核源码;公开后Linux因为结构清晰、功能简洁,一经发布立即收受好评;后来在很多热心支持者的帮助下,经过多次版本升级迭代,终于在1994年3月,Linux1.0正式发布。

  Linux的标志和吉祥物是一只叫做Tux的企鹅,它的由来是因为Linus之前在澳洲时,在动物园里曾被一只企鹅咬了一口,便选择了企鹅作为Linux的标志。

  如同当初汤普森和里奇没有想到UNIX系统的成功一样,Linus也没有想到自己花了一个暑假做着玩的内核系统,竟然能以商品化操作系统的形态,运行在今天全球数十亿台设备上。

  在Linux的官网,有这么一篇文章,什么是Linux,详细的介绍了Linux的功能、内核每个部分作用,以及为什么我们要使用Linux,感兴趣的童鞋可以看看。

Linux与UNIX的区别和联系

Linux系统和UNIX系统主要有以下区别:

  1. 开源性:UNIX是闭源的,Linux是开源的。
  2. 跨平台性:UNIX系统大多是与硬件配套的,只能在工作站或小型机上运行,且价格昂贵;而Linux则可运行在多种硬件平台上。

linux发行版

​ 我们很多时候都能看到Linux发行版这个词,或者又看到说Linux内核怎么样,很多同学容易混淆这两个概念。其实当初Linus开发的Linux只是一个内核,是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,是硬件和软件之间进行通信的桥梁,内核并不是一套完整的操作系统;我们可以把内核理解为手机的芯片,有了芯片,手机的各个功能才能运行起来,因此内核是整个操作系统的核心。我们在The Linux Kernel Archives网站可以下载到各种版本的Linux内核,并且对其进行编译。

​ 我们常说的Linux系统,其实更多说的是广义上Linux众多的发行版,因为你并不会直接去操作系统的内核。发行版是指一些组织或厂商将Linux的内核与各种软件、软件包管理器等封装起来,并提供系统安装界面、系统配置和桌面环境等,构成了Linux的发行版。相当于小米、VIVO的手机厂商,将芯片集成到手机里,装上屏幕、外壳、扬声器、电池等等部件,然后把手机整个的卖给你。

  Linux的各个发行版使用的是同一个Linux内核(内核版本可能有差异),因此在内核层不存在什么兼容性问题;每个发行版有不一样的感觉,只是在发行版的最外层(比如界面、包管理器)才有所体现。

​ Linux的发行版本有很多,其大体可以分为两类:

  • 商业公司维护的商业版本,以著名的Red Hat为代表;
  • 社区组织维护的免费版本,以Debian、Ubuntu为代表。

  有些同学可能会开始疑惑了,上面不是说Linux是开源的吗?为什么还会有商业版?是的,Linux内核是开源的,但是开源不等于免费,商业版收费的是它的商业服务和支持。

  比如Red Hat虽然使用的都是开源软件,但是付出了很多人工将成千上万的开源软件整合成一个系统,并且保证软件间的兼容性稳定性,提供后续的支持、维护以及升级服务,因此它是收费的;如果你氪金氪了足够多,比如购买他们的高级服务,你甚至可以让Red Hat的工程师现场过来给你解决问题。

​ 很多同学可能还是觉得开源收费不太能理解,但其实如果你去尝试编译多个开源软件,或者在操作系统时遇到一些莫名其妙的错误,然后你花费几天找遍github、stackoverflow和Google也没有找到问题而苦恼时,你会觉得如果有人能够帮你解决问题是一件非常高兴的事。更何况企业项目在运行时往往都会追求快速上线,计时按照天甚至小时,这个时候快速解决问题就显得非常的重要;这点费用对于企业来说是非常划算的。

Red Hat

  Red Hat(红帽公司)创建于1993年,是一家开源解决方案供应商,部位于美国北卡罗来纳州的罗利市。

  1993年,Bob Young 成立了ACC公司,这家公司主要是做邮购业务,主营业务是出售Linux和Unix的软件附件。1994年,Marc Ewing创建了自己的Linux发行版,并将其命名为:红帽Linux,Ewing在就读卡内基·梅隆大学期间曾经戴着一顶红色的康奈尔大学长曲棍球帽子,这是他的祖父赠送给他的。Young在1995年收购了Ewing的企业,两者合并成为红帽软件公司,由Young担任首席执行官。

  Red Hat公司的产品主要包括RHEL(Red Hat Enterprise Linux,收费版本)和 CentOS(RHEL 的社区克隆版本,免费版本)、Fedora Core(由 Red Hat 桌面版发展而来,免费版本)。

Fedora

  Fedora Linux是由Fedora项目社区开发、红帽公司赞助,目标是创建一套新颖、多功能并且自由的操作系统。

  Fedora对于用户而言,是一套功能完备、更新快速的免费操作系统;而对赞助者Red Hat公司而言,它是许多新技术的测试平台,因此它的稳定性不如Centos。

CentOS

  CentOS可以理解为是基于Red Hat商业版系统的社区编译重发布版,完全开源免费,因此相较于其他一些免费的Linux发行版会更加稳定,也因此一般企业里常用作服务器操作系统。

Debian

  Debian是目前世界最大的非商业性Linux发行版之一,是由世界范围1000多名计算机业余爱好者和专业人员在业余时间制做。

Ubuntu

  Ubuntu是基于Debian发展而来,界面友好,容易上手,对硬件的支持非常全面,是目前最适合做桌面系统的Linux发行版,而且Ubuntu的所有发行版都免费提供,也是笔者个人非常喜欢的一个Linux发行版。

  Ubuntu的创始人马克·沙特尔沃思(Mark Shuttleworth)是一名有传奇色彩的南非人,他在大学毕业后创建了一家安全咨询公司,后以5.75亿美元被收购,一跃成为南非本地的富翁。2002年马克自费乘坐罗斯联盟号飞船,在国际空间站中度过了8天的时光,之后创立了Ubuntu社区。他说太空的所见正是他创立Ubuntu的精神所在。Ubuntu这个词也是来源自非洲一个部落,意思是”人性””我的存在是因为大家的存在”,是非洲传统的一种价值观。

​ 作为Linux发行版中的后起之秀,Ubuntu在短短几年时间里便迅速成长为从Linux初学者到实验室用计算机/服务器都适合使用的发行版。

  1. 如果你需要一个服务器系统,想要一个比较稳定的服务器,可以选择CentOS或者RHEL。
  2. 如果你需要桌面系统,既不想用盗版,也不想在系统配置上浪费太多时间,可以选择Ubuntu。
  3. 如果你喜欢折腾新功能特性可选Fedora

linux的优势

界面优雅美观

​ 安装完很多应用后,我们发现这些应用也不会在桌面留下任何痕迹,没有Windows软件那种安装完后,还要死皮赖脸的请求你创建桌面快捷方式,还给你默认勾选;只要一不留神,你的桌面说不定就多了三四个不常用的图标。

​ Ubuntu界面的设计者考虑到,大部分用户在工作时,桌面上的图标几乎都是被应用窗口遮住,把窗口移开来查找想要的应用是一件非常痛苦的事,因此停用了桌面图标,改用在应用程序中提供了入口;点击右下角的按钮,我们可以看到所有的程序。

​ Ubuntu给了我们一个干净的环境,让我们能够更专注于当前的工作环境,更少被其他弹框打扰;因此更适合用来干活

​ 开源带来的一大显而易见的好处就是不用每次安装完系统去找各种Windows激活工具了,相信很多小伙伴都有装完系统被下面各种软件支配的恐惧,不装的话系统各种提示,装了又怕有风险。

  开源意味着使用者可以免费自由使用、查看和修改系统的源代码,这种完全开放透明的架构对于政府机构或者特殊需求的组织等来说是非常重要的。

  同时,Linux系统有广泛的硬件支持,甚至可以拿出一台上个世纪老旧的intel奔腾3处理器来运行也能很流畅;正是得益于开源的特点,很多程序员不断地向Linux社区提供代码,使得Linux有着丰富的设备驱动资源,对主流硬件有着很好的支持,几乎能运行在所有主流的处理器上。

  在超赞的Linux软件这篇文章中,作者整理了非常多Linux中开源的软件,也都是日常很实用的软件。

系统安全稳定

​ 使用Windows过程中相信大家在日常中会遇到不少卡顿、蓝屏的情况发生;笔者在之前的公司就遇到IT装完系统,一段时间经常蓝屏死机的情况发生,然后数次重装系统,这在办公时是及其痛苦的。

  但是Linux系统极少出现卡顿情况,除非你运行多个大型的软件。在我实际的体验中,在同一配置的电脑中,运行相同多软件的情况下,Linux系统的流畅度是明显优于Windows电脑的。

  在Windows中,我们经常会遇到磁盘空间不够的情况,尤其是C盘空间,很多软件都会默认安装到C盘(比如Chrome),或者将缓存文件放到C盘,过一段时间就需要清理;但在Linux系统中不需要。

  首先Linux系统安装完成后,本身不会占用太多的磁盘空间,占用较少的资源;其次Linux系统自身的树形目录结构已经将每个文件的位置规范了,/home是用户目录,/usr软件目录等等进行划分,我们可以将硬盘格式成一个区,然后直接挂载根目录

​ 正是由于Linux系统的安全稳定高效,因此Linux天然适合用来做服务器;无论是企业级的大型服务器,还是最近流行的家用nas系统;无论是你用的手机操作系统,还是看家用大屏电视机,亦或是小巧的机顶盒,Linux系统出现在生活中的各个角落。

​ 要想学好Linux,不能只记住几个命令,最好的方式是为自己搭建一个Linux的环境,在真实的环境下进行学习;Ubuntu就是一个比较适合初学者的发行版;如果怕装系统麻烦,最简单的方式是在Windows10下安装Ubuntu子系统体验,不过有一些命令会被阉割。

  如果手头有闲置移动硬盘,想要真实体验一下Ubuntu系统(虚拟机体验不好),又不想舍弃Windows系统,可以将Ubuntu环境安装到移动硬盘,打造自己的个人移动工作平台;这样你不管是在办公室还是回家干活,只需要随身携带一块小小的硬盘就能轻松将工作用到的所有资料打包带走,保持工作的进度和环境。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK