Linux系统有哪些缺点?

  • 1回答
  • 3浏览
  • 提问时间:2021-07-15
最佳答案 linux基本上是一个只适合开发或运维人员的系统。即便如此,linux系统还是有很多缺点。只说内核。宏内核、内核和驱动相结合。对于做驱动的人来说,没有完全稳定的界面,内核版本一变驱动就得跟着改。内核机制很多,很多都是重复冗余。而且很多都和驱动有关。甚至上层的接口也在变化。sysfs下面的大部分接口,只有写驱动的人才能明白是怎么回事。例如sysfsdebugfs实际上是类似的东西,但是没有统一说什么该怎么放,驱动只要达到目的,这也是内核机制冗余的另一种表现。核心抽象结构一直在演变,越来越复杂,各种融合。学习曲线不是陡峭的,而是一直陡峭的。谨慎地说,linux内核这种宏内核迟早会走到尽头。linux2.6和现在的linux4.xlinux5.0,早已经不是同一个内核,虽然它一直叫linux内核。同理,linux内核微内核化是大势所趋。当然即使linux变成了微内核架构,甚至微内核架构都改了好几版了,可能它还是叫linux。发行版,图形栈,包管理之类的一大堆破事烂事让人抓狂的事更是不用讲了。< img class="cto- img" src="https://s2.51cto.com/images/20210715/1626320160859802.jpg" title="1626320160859802.jpg" style="display:block;margin:auto;" alt="8.jpg"/>这没什么好奇怪的。没有什么是完美的。这世界一直在演进。如果哪天linux不再变化了,它就不再是linux,它的生命也到了尽头。那时会有另外一个linux的,已经搞linux很久的当然仍然能适应这个世界的变化。请不必担心。
问答分类:操作系统

Linux 为什么又称为 GNU/Linux?

  • 1回答
  • 2浏览
  • 提问时间:2021-07-15
最佳答案 GNU和Linux为什么会有两个不同的名字?由于当年RMS构建了整个GNU系统,但未能制作出一个完整可用的内核,当时Linus利用GNU工具链制作出一个内核,取名为Linux,最终成为GNU中使用最广泛的内核。GNU和Linux之争看似是名字之争,其实是两个人,两个态度之争。RMS倡导的理念是FreeSoftware自由软件,认为商业软件不道德,必须给用户自由,所以要使用自由软件。他创建了gcc编译器和emacs等神级软件,创建了除内核以外的所有上层软件。还撰写了GPL通用发布协议,为开源软件的发展奠定了坚实的法律基础。Linus略过了自由软件,提出了OpenSourceSoftware开源软件的新概念。他认为开源软件是一种开发模式,而不是一种宗教。他认为软件更好就应该选择什么。在某些场合选择开源软件的原因是开源软件在某些领域可以做得更好。因此,他只想做一个更好的核心,没有任何道德束缚。这种思想本来很难维护开源软件的持续性,好在有GPL的保护,使得Linux一直不会变味。在RMS打下的GNU上层软件基础以及GPL法律基础下,在Linus的人格魅力以及先进开发理念的引导下,更多的开发者上了开源软件的战车,开始拥抱开源软件。< img class="cto- img" src="https://s2.51cto.com/images/20210715/1626319704800194.jpg" title="1626319704800194.jpg" style="display:block;margin:auto;" alt="11.jpg"/>所以,其实Linux应该称为GNU/Linux,因为FSF不想把GNU跟Linux这个概念绑在一起。类似的,WSL1或许不应该称为WSL,而应该称为WSG,因为本质上是在Windows内核上面跑GNU,而与Linux内核没有什么直接关系。然而,事实已经很难改变。或许更多的人更多的机构已经把看到的GNU那些东西称为Linux。很多人在做出Linux这个表述的时候,心里实际想的也是GNU体系的那些东西。所以实情也就成了大家今天看到的样子。
问答分类:操作系统

为什么说linux桌面不稳定、差呢?

  • 1回答
  • 1浏览
  • 提问时间:2021-07-15
最佳答案 Windows需要实现和改进哪些功能取决于为该系统付费的用户。OSX需要实现和改进哪些功能取决于设计师认为用户需要什么。GNU/Linux桌面需要实现和改进哪些功能?决定有编程能力和意愿的用户需要什么。然而,在GNU/Linux系统下,最具编程能力和编程意愿的用户是主流。而且桌面付出的努力真的不够。因此,一些小问题或多或少总是存在的。如果你能自己改代码,有时间改代码,那么这些问题都不是问题。比如我常用的图形界面应用屈指可数。如果里面有不符合我需求的,我基本都是自己改代码,所以感觉挺舒服的。但是如果你不能自己改代码,也不能请亲戚朋友帮你改代码,同时你的要求也比较高,遇到问题希望很快解决,那么Linux桌面的确会有些不爽。因为每个人遇到的问题并不相同,假如你遇上了一个别人都没有遇到的问题,而你自己没有能力解决,对Linux桌面来说,这个问题就有可能长期悬而未决。< img class="cto- img" src="https://s2.51cto.com/images/20210715/1626318753270919.jpg" title="1626318753270919.jpg" style="display:block;margin:auto;" alt="12.jpg"/>而对于Windows来说,这种问题虽然遇上的人非常少,但可能也已经被报上去,在可以预期的将来就能解决。——所以说Linux是程序员的操作系统并没有错,原因并非因为这个操作系统是给程序员做的,而因为程序员比较容易解决自己在使用过程中遇到的问题。
问答分类:操作系统

Linux 作为服务器操作系统的优势是什么?

  • 1回答
  • 1浏览
  • 提问时间:2021-07-15
最佳答案 不幸的是,以Linux服务器的用户规模,任何技术优势都是次要的。“网络效应”是决定Linux作为服务器OS的最佳选择。当一个产品对用户的价值随着使用相同产品或兼容产品的用户的增加而增加时,就会出现网络外性。先下手为强(first-moveradvantage)和赢家通吃(winner-take-all)是具有网络效应的行业市场竞争的重要特征。[1]听起来像是Windows在PC端的优势,但实际上两者完全相同。一旦每个人都开始使用Linux服务。丰富的服务器软件和用户将接踵而至。新用户的体验会越来越好,因为软件和经验资源(数据和人)会更丰富。那Linux如何达到今天的规模呢?尽管有点跑题。如今,人们热衷于互联网经济。growth模式在Linux的世界里并不少见:高端种子用户comp.os.minix是Unix内核爱好者/学习者的讨论组。该用户组中的用户理解操作系统原理,具有内核代码的理解和设计能力。Linus制作Linux内核第一版后,首先发布到comp.os.minix,立即引起了众多爱好者的关注,并贡献了代码,很快就能创建comp.os.linux。X-Window已经能在92年运行了。从那以后,Linux内核代码发展迅速,全靠越来越多的内核贡献者加入。Linux从0.01开始就要求用户自行安装GNU工具。后来选择以GPL发行。GPL虽然在帮助创造更好的商业软件上有些争议。但在保证源代码回馈量上却效果极佳。此时GNUHurd遥遥无期,社区迫切需要一个高速迭代,能用的GPL操作系统内核。因此Linux迅速获得更多用户的支持。不论有心无心,这是第二步成功的推广——提供目标用户无可替代的必需品。< img class="cto- img" src="https://s2.51cto.com/images/20210715/1626318567137265.jpg" title="1626318567137265.jpg" style="display:block;margin:auto;" alt="7.jpg"/>同时期的386BSD,却因为代码和协议问题,没有获得同样推广的机会。免费的操作系统Linux内核源代码可以免费下载。大多数Linux发布版本,包括GNU/Linux的发行版本和商业的发行版本几乎都提供免费下载服务。免费意味着零试用成本,也不需要为安装在第二台机器上付费。如果你在大学机房里勤工俭学,从朋友那里听到一个新兴的操作系统,还是免费的。你有什么理由不下载下来试一试呢?如果你使用之后觉得比一些老掉牙的Unix系统好用,为什么不给安装到机房的其他机器上呢?
问答分类:操作系统

Linux 和 macOS 的具体差异有哪些?

  • 1回答
  • 1浏览
  • 提问时间:2021-07-15
最佳答案 Linux本身只是一个核心,它为程序员定义了操作系统的基本元素,但最终用户不能直接操作或使用它。因此,除开发者以外的用户不知道什么是Linux。Linux是一个相对自由的世界,你可以围绕Linux内核构建各种上层系统。这样构建的系统称为发行版。普通用户只能接触发行版本,不能接触Linux本身,发行版本中的命令行、shell、XWindow系统都不是Linux的一部分。王银曾经说过:Linux可以是这样,Linux可以是那样,Linux可以是什么样子。Android是目前用户最多的Linux发行版。除此之外,oid相比,其他Linux发行版只占很小的比例,包括Ubuntu和各种基于GNU的发行版。GNU不是Linux不可分割的一部分,所以虽然Android几乎不含GNU元素,但它仍然是纯正正宗的Linux。既然,Linux本身从来就没有定义它该是什么图形系统,与用户该是什么操作,甚至也从来没有定义它该有什么命令行(那些往往是POSIX或者GNU定义的东西),所以,非开发者讨论Linux是否好用根本没意义,因为你接触到的那些部分,都不属于Linux。< img class="cto- img" src="https://s2.51cto.com/images/20210715/1626318235790291.jpg" title="1626318235790291.jpg" style="display:block;margin:auto;" alt="12.jpg"/>——普通用户只能讨论具体的某个「发行版」是否好用。——在当下,如果要讨论当前最流行的发行版,那么讨论的目标无疑应该是Android。现在题主讨论的是Linux跟OSX的差异,这个差异仅仅只对开发者有意义,那么他们的差异倒是挺简单的,就是系统提供的系统调用,API都不一样,这些不一样的地方可以写一本厚厚的书,所以参见操作系统的相关手册就好。
问答分类:操作系统

到什么程度才叫精通 Linux?

  • 1回答
  • 1浏览
  • 提问时间:2021-07-15
最佳答案 Linux主体分为运维和开发两个方向。无论是Linux相关从业者还是爱好都可以分类到这里,其中运维一般是初学者或转行者的首选,Linux运维主要是维护和调试服务器的稳定性、性能和安全性;-PS:说白了,不能让别人上你的服务器,很容易崩溃。其实Linux入门并不难。只要有Linux基础,了解Linux的命令格式,大部分服务架构都可以根据文档进行部署,所以如果只停留在部署的层面,无论是最简单的FTP还是现在虚拟化技术K8S,都可以算是基础;在部署之上,是服务器的基本维护。比如访问网站时,经常会出现404和502的错误。你可以在短时间内快速定位和解决问题。恭喜你,你已经成功入门工程师领域了!云计算架构师的第一步成功迈出!由于做一个普通的运维工程师还是很容易拿到盒饭的,所以云计算是个不错的选择。而大多数常见问题都会被公司收录在“文档”中,这也无可厚非,互联网公司更多的是考虑到“成本”、“安全”等问题,所以对于业务体系的建立、优化等问题才是最能体现一个工程师技术能力的举个栗子,电商公司一般架构规模在50-100台服务器之间,会涉及的到的技术有防火墙、负载、高可用、数据库、存储、备份、监控,更甚者会涉及日志、虚拟化、云平台等技术。< img class="cto- img" src="https://s2.51cto.com/images/20210715/1626318006184597.jpg" title="1626318006184597.jpg" style="display:block;margin:auto;" alt="11.jpg"/>那么由于内存、CPU这些硬件性能的限制,如果单纯将服务上线,随着业务流量的增长,客户访问量增多,一个集群架构负载的客户流量是会被限制,常有人问我为什么Nginx的连接数达到600内存和CPU就消耗了83%,那么就要考虑“服务调优”总结一下,如果你能将下图中的技术都能有所了解,并且能够合理规划出一个企业业务架构,同时进行优化,那么就能是“精通”了(题主加油!!!)
问答分类:操作系统

Linux的功能有多强大?

  • 1回答
  • 1浏览
  • 提问时间:2021-07-15
最佳答案 大一的时候用的是51单片机,也就是淘宝五块钱一块,可以跑控制车,控制转速,跑灯等等;后来发现功能单一,太复杂,控制,管脚,计算跟不上。大三学stm32,100多管脚,功能强大,适合一些硬件。可以跑一些复杂的场景和计算,比如摄像头处理。我就在想,能不能像Windows系统一样在上面跑一个系统,想开发什么就有什么。是的,大四去armv7学习操作系统。发现之前的东西都是小玩具...其实linux功能强大,不是很厉害,而是兼容性。什么架构平台,什么硬件设备都可以跑,跑起来后里面特性都能很好支持,当然也是生态强大有关,生态好了,大家都在用,就逼得大厂商也得适配,自然就更强大了。Linux更准确得说是优美,代码和架构,都很棒,这才是他的强大之处。< img class="cto- img" src="https://s2.51cto.com/images/20210715/1626317798409402.jpg" title="1626317798409402.jpg" style="display:block;margin:auto;" alt="7.jpg"/>举例来说,linux里面最多的驱动,包括硬盘,usb,网络,wifi等等,里面又可以细分usb2.03.0,硬盘又分成不同厂商,都能被linux驱动架构很好处理,设备如何注册,如何配置,是否涉及中断等等,都有统一方法。还有网络,调度算法等等,每一个子系统都涉及一个或多个架构设计方法,能互相独立,又能协同合作构成一个整体。推荐学习下。
问答分类:操作系统

想用Linux系统是装双系统好还是装虚拟机好?

  • 1回答
  • 1浏览
  • 提问时间:2021-07-15
最佳答案 这个问题没有标准答案。哪一种方案取决于您的硬件配置,以及您如何使用Linux系统。首先分析两种方案的区别:双系统的优点:对硬件要求低。CPU和内存只需要满足运行系统的要求,只需要占用系统所需的额外硬盘空间。硬件可以直接访问两个系统。如果你需要在Windows下玩游戏,你需要在Linux下运行CUDA应用,比如深度学习开发;或者在某个硬件开发的两个系统下驱动,除非安装两个系统,否则这是唯一的解决方案。双系统缺点:只能同时运行一个系统。两个系统的应用不能一起使用,要么两个系统都安装了相同功能的应用,要么重启切换;而且交换数据只能由额外的FAT32/exFAT分区或者在一个系统中安装另一个系统的文件系统驱动。配置复杂。具体方案很多,就不详细说了,但一般来说需要一定的硬盘分区和系统引导的基础知识。并且在重新安装系统时,往往会破坏现有的配置,需要重新配置。虚拟机的优点:两个系统可以同时运行。两个系统的应用程序可以一起工作,比如Linux运行一个网站服务器,用Windows下的IE看效果;或者Linux下程序的输出结果,作为Windows下写的文档中的数据。交换数据也很方便,任何网络共享方式都可以,比如Windows共享(smb),FTP,SFTP等等。另外,通过远程桌面,VNC,Xclient等方式在两个系统之间切换也很方便。配置相对简单方便。如果使用图形虚拟机软件,设置和调整虚拟机的硬件配置非常方便简单。安装宿主机系统和虚拟机系统和普通电脑没有太大区别。虚拟机方案的缺点:对硬件配置要求高。CPU可以共用还好,但也需要选择支持虚拟化的型号,否则虚拟机的性能很差。内存则必须配置两个系统以及上面运行的软件的需求之和——包括必要的预留容量,增加的容量少则1-2G,多则需要8-16G甚至32、64G,取决于虚拟机需要运行的应用对内存的需求。< img class="cto- img" src="https://s2.51cto.com/images/20210715/1626317610922602.jpg" title="1626317610922602.jpg" style="display:block;margin:auto;" alt="5.jpg"/>虽然部分虚拟机软件如hyper-v支持动态内存,但性能较差,也需要虚拟机内的系统安装相应的驱动。总的来说,同样的硬件资源运行虚拟机的系统性能总是要比直接用物理机运行起来差一些的。虚拟机的无法直接访问所有硬件。虽然也有一些虚拟机软件允许虚拟机访问硬件的方案,但多少都有所限制。例如vmware的工作站版本只能允许虚拟机系统访问USB设备,N卡直通至今是个难题等等。所以,到底选择哪个方案,看需求。
问答分类:操作系统

哪种Linux发行版适合程序员做开发?

  • 1回答
  • 1浏览
  • 提问时间:2021-07-15
最佳答案 标准答案肯定是看爱好:喜欢开箱即用的选择Mint,支持广泛选择Ubuntu,稳定选择Debian/CentOS,port-like系统选择Gentoo,软件更新选择Arch。另一个标准答案是差别不大。的确,今天Linux软件越来越完善,开源生态系统工具很多,已经不是十年前五年前的样子了。第三个标准答案是与服务器环境一致,不需要解释。但我还是要投Arch一票。并非说其他系统不好,而是说我真的很享受Arch的优势。一、完善的单点包管理系统,您可以使用同一个软件管理系统来管理Arch官方源,网友制作的软件包,从源代码编译的软件包,同时,您可以轻松地重新编译特定的系统软件包,添加/修改一两个编译选项,或制作自己的软件包。根据我的经验,Arch的软件包模型避免了其他发行版本中不同软件源之间的冲突或不同软件版本共存的依赖。Rolling-只有一个不断更新的版本,没有版本更新的麻烦,就没有系统是13.04结果发现某个软件只支持12.04和13.10的麻烦,查看文档时不必担心某个特定版本的解决方案是否适合您当前的系统。您还可以快速享受新编译器和软件的特点。三是强有力的社区支持。Arch的文档质量不需要我去安利。软件更新快,bug修复快,官方源和AUR软件数量巨大。4)简单一致的系统模型:Arch基本不修改上游软件包——你用的是官方systemd、crond、gnome、vim,所以所有Linux上的通用步骤都适用于Arch。基本上,除了看pacman/abs是如何管理软件包的,你不需要额外的知识来管理arch系统。5)易用性和稳定性:与流行观点相反,Arch其实很容易学习和使用,问题很少。这主要体现在软件管理统一,抽象层薄,软件更新快,所以你遇到的抽象、更新、版本冲突带来的问题很少,标准的实现和丰富的文档也节省了很多学习成本。顺便黑一句Apple,xcode的bug不见减少,OSX的bug倒是越来越多了,而且越来越慢。< img class="cto- img" src="https://s2.51cto.com/images/20210715/1626317276220140.jpg" title="1626317276220140.jpg" style="display:block;margin:auto;" alt="4.jpg"/>6)飞快。各种意义上的。Update-很多人觉得Arch是一个月不更新就挂-我经常三五个月不更新完了之后pacman一次的,当然我平常在服务器上做的事情也比较简单,就是跑跑webserver。Arch主页一般都有news,明确帮你解决升级的时候可能遇到的问题-我看了一下,上一个可能需要手动解决的问题在去年10月份,和特定的java包有关,再上一个是去年二月份,而且前提是你的键盘是PS/2,再往前数是去年9月份,对sysctl.conf的处理有点变化,把文件改个名就好了。考虑到大部分的distribution是6个月一更新,这个周期不能算短吧。
问答分类:操作系统

为什么朋友喜欢向别人推荐linux系统?

  • 1回答
  • 1浏览
  • 提问时间:2021-07-15
最佳答案 您所说的情况确实存在,很多人无脑瞎吹Linux甚至自吹自擂几乎只用Linux。还有很多Linux用户看不起Ubuntu,这是真的。第一种情况是网络上常见的云Linux用户。事实上,通常这些云用户的真实水平真的连皮毛都达不到,你不能戳穿它们主要是因为你自己接触Linux不多,否则这些人早就原形毕露了。我当然也在现实中遇到过。比如你的电脑几乎24小时都是Linux,只有在游戏中才会切入Windows。结果发现他的战网(现在叫暴雪娱乐平台)基本24小时在线挂机。假如你不明白,那么我提示战网是WindowsOnly的软件。那是典型的尴尬吹罢了,让小白觉得他很流弊,让你觉得他和你是一路人。这种人在网上太多了,现实中也见过不止一两个。再者,看不起Ubuntu现象。看不起Ubuntu主要是两个方面造成的:Ubuntu的小白用户数量巨大,在各个Linux社区和交流群中经常看到他们非常低级的问题。Ubuntu作为最受欢迎的发行版之一,其公司Canonical对Linux的贡献很少。Ubuntu的小白用户很多,并不意味着Ubuntu是垃圾。这说明Ubuntu的宣传是成功的Linux让新手想到Ubuntu,然后接触Ubuntu。第二,对Linux内核没有显著贡献的发行版厂商非常的多,Ubuntu的流行不表示它背后是一个拥有技术实力的公司。< img class="cto- img" src="https://s2.51cto.com/images/20210715/1626316926527832.jpg" title="1626316926527832.jpg" style="display:block;margin:auto;" alt="8.jpg"/>而往往看不起Ubuntu的Linux用户又都是一些半吊子,这帮半吊子是怎么发现Ubuntu能被他们瞧不起的呢?答案就是看大佬(相对于他们而言)的言论得知的。有一些人很早就开始接触Linux,对Linux社区的情况相对了解,对发行版相对了解。然后发布了一些对Ubuntu公司不作为的偏见言论。结果在这群半吊子之间广为传播,变成了大家不用Ubuntu,上手一个安装过程稍微比Ubuntu复杂的发行版,就可以瞧不起Ubuntu的病态现象。
问答分类:操作系统