01 JAN

相比 Windows 为什么越来越多人选择Linux?

  

在使用 Linux 之前,我想大家最先接触的都应该是 Windows 吧,但是一般接触过 Linux 之后,在回过头来使用 windows 是内心是十分拒绝的,大多数人产生这个原因到底是为什么呢?

Linux 是一个很神奇的系统,有很多值得我们,需要我们去探索的地方,对于服务器运维的人来说,在为服务器选择操作系统系统的时候,是选择 Linux 还是 Windows 是让人困惑的事?

当然,在你成为一个 Linux 重度爱好者的时候,你就会发现,对于 Linux 真是欲罢不能!

从用户群来说 Linux 是一个以开发者为中心的操作系统,而 Windows 是以消费者为中心的操作系统,这也是两个操作系统作为根本的区别。简单来讲,两个系统的选择就是看你是开发用还是作为消费者使用。

不管是 Windows 操作系统、Linux 系统还是苹果操作系统,甚至包括操作系统的鼻祖 Unix 操作系统,最早都是用 C 语言编写的。

那么为什么那么多人选择学习 Linux,我们来看看 Linux 的众多优点:

提到 linux 的优点,首先就是他的开源;任何人都是可以查看他的源代码的,而 windows 则不开源,所以你要经常的打补丁,修补漏洞之类的。

其次 Linux 的安全性非常高,漏洞修补快速 ;

丰富的软件支持;与其他的操作系统不同的是,安装了 Linux 系统后,用户常用的一些办公软件、图形处理工具、多媒体播放软件和网络工具等都已无需安装。而对于程序开发人员来说,Linux 更是一个很好的操作平台,在 Linux 的软件包中,包含了多种程序语言与开发工具,如 gcc、cc、C++、Tcl/Tk、Perl、Fortran77 等。

第四,多任务,多用户;与 Unix 系统一样,Linux 系统是一个真正的多用户多任务操作系统。多个用户可以在不相互影响的情况下拥有和使用系统资源,同时多个用户可以网络在线的方式使用计算机系统。多任务处理是现代计算机最重要的特点之一。由于 Linux 系统以同等的权限调度每个进程,它可以同时执行多个程序,并且每个程序的运行是相互独立的。您可以在 Linux 主机上规划不同级别的用户,每个用户都可以在不同的环境中登录到系统。此外,还可以允许不同的用户同时登录到主机,以使用主机的资源!

第五,相对较少的系统资源占用 :这是最吸引眼球的地方,目前市面上任何一款个人计算机都可以达到使用 Linux 搭建一个服务上百人以上的主机。

在阅读了这篇文章之后,你应该对 Linux 和 Windows 有了新的理解,所以当你把操作系统作为开发人员而不是消费者时,你会更喜欢 Linux,而今天的 Linux 操作和维护已经成为比较流行的职业。如果你想在服务器的操作和维护中开发,选择 Linux 仍然是很好的选择。

 Linux系统一般有4个主要部分:

内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。

1、Linux内核

内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。如图:

一文看懂 Linux 系统结构

图1

系统调用接口:SCI 层提供了某些机制执行从用户空间到内核的函数调用。这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。SCI 实际上是一个非常有用的函数调用多路复用和多路分解服务。在 ./linux/kernel 中您可以找到 SCI 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。

2、内存管理

对任何一台计算机而言,其内存以及其它资源都是有限的。为了让有限的物理内存满足应用程序对内存的大需求量,Linux 采用了称为“虚拟内存”的内存管理方式。Linux 将内存划分为容易处理的“内存页”(对于大部分体系结构来说都是 4KB)。Linux 包括了管理可用内存的方式,以及物理和虚拟映射所使用的硬件机制。

不过内存管理要管理的可不止 4KB 缓冲区。Linux 提供了对 4KB 缓冲区的抽象,例如 slab 分配器。这种内存管理模式使用 4KB 缓冲区为基数,然后从中分配结构,并跟踪内存页使用情况,比如哪些内存页是满的,哪些页面没有完全使用,哪些页面为空。这样就允许该模式根据系统需要来动态调整内存使用。

为了支持多个用户使用内存,有时会出现可用内存被消耗光的情况。由于这个原因,页面可以移出内存并放入磁盘中。这个过程称为交换,因为页面会被从内存交换到硬盘上。内存管理的源代码可以在 ./linux/mm 中找到。

3、进程管理

进程实际是某特定应用程序的一个运行实体。在 Linux 系统中,能够同时运行多个进程,Linux 通过在短的时间间隔内轮流运行这些进程而实现“多任务”。这一短的时间间隔称为“时间片”,让进程轮流运行的方法称为“进程调度” ,完成调度的程序称为调度程序。

进程调度控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。

通过多任务机制,每个进程可认为只有自己独占计算机,从而简化程序的编写。每个进程有自己单独的地址空间,并且只能由这一进程访问,这样,操作系统避免了进程之间的互相干扰以及“坏”程序对系统可能造成的危害。 为了完成某特定任务,有时需要综合两个程序的功能,例如一个程序输出文本,而另一个程序对文本进行排序。为此,操作系统还提供进程间的通讯机制来帮助完成这样的任务。Linux 中常见的进程间通讯机制有信号、管道、共享内存、信号量和套接字等。

内核通过 SCI 提供了一个应用程序编程接口(API)来创建一个新进程(fork、exec 或 Portable Operating System Interface [POSⅨ] 函数),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 POSⅨ 机制)。

4、文件系统

和 DOS 等操作系统不同,Linux 操作系统中单独的文件系统并不是由驱动器号或驱动器名称(如 A: 或 C: 等)来标识的。相反,和 UNIX 操作系统一样,Linux 操作系统将独立的文件系统组合成了一个层次化的树形结构,并且由一个单独的实体代表这一文件系统。Linux 将新的文件系统通过一个称为“挂装”或“挂上”的操作将其挂装到某个目录上,从而让不同的文件系统结合成为一个整体。Linux 操作系统的一个重要特点是它支持许多不同类型的文件系统。Linux 中最普遍使用的文件系统是 Ext2,它也是 Linux 土生土长的文件系统。但 Linux 也能够支持 FAT、VFAT、FAT32、MINIX 等不同类型的文件系统,从而可以方便地和其它操作系统交换数据。由于 Linux 支持许多不同的文件系统,并且将它们组织成了一个统一的虚拟文件系统.

虚拟文件系统(VirtualFileSystem,VFS):隐藏了各种硬件的具体细节,把文件系统操作和不同文件系统的具体实现细节分离了开来,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如ext2,fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。

虚拟文件系统(VFS)是 Linux 内核中非常有用的一个方面,因为它为文件系统提供了一个通用的接口抽象。VFS 在 SCI 和内核所支持的文件系统之间提供了一个交换层。即VFS 在用户和文件系统之间提供了一个交换层。