Linux/Unix 基础:什么是 Linux?

简单来讲,Linux 是一个操作系统(OS)。我们都很熟悉其他操作系统,就像 Microsoft windows,Apple Mac OS,iOS,Google android,等等这些,linux就像它们一样,也是个操作系统。

操作系统就是一个软件,用来保证计算机的硬件和软件之间进行通信。操作系统将输入的信息传递给处理器处理,然后将处理好的信息传递给硬件,进行展示。 这是操作系统最基本的功能。 尽管它还要执行许多其他重要任务才能输出信息给硬件,但我们这里先不谈论它。

从 90 年代中期开始,Linux 被人类广泛使用。 它可以用于手表,也可以用于超级计算机。 我们的手机,笔记本电脑,PC,汽车甚至冰箱中都用到了 linux 操作系统,在开发人员和普通计算机用户中也很有知名度。

Linux 操作系统的目录结构

一个操作系统是一系列软件的集合,每个软件都有自己的具体的作用。

Linux 操作系统有以下组件组成:

1) 内核(Kernel)

内核是操作系统的核心。它在硬件设备和软件之间建立通信。并且, 它管理着系统的所有资源。内核有四个基本的功能:

  • 硬件设备管理: 一个系统会跟很多硬件设备连接,例如:CPU,存储设备,声卡,显卡等等。内核将与设备相关的所有数据存储在设备驱动程序中(没有该内核将无法控制设备)。 如果硬件设备已经跟内核通过驱动程序建立连接,内核知道设备可以做什么以及如何操纵设备以发挥其最佳性能。它还管理所有设备之间的通信。 内核同时具有所有设备必须遵循的某些规则。

  • 内存管理: 内核的另外一个功能就是内存管理。内核会跟踪内存中已经使用的和未使用的内存。并且保证进程使用实际的物理内存地址来处理彼此的数据。

  • 进程管理: 在进程管理中,进程在被 CPU 调度之前,内核会分配给进程足够的时间和优先级别给进程。同时,内核也会保证进程中数据的安全性和数据的属于哪个进程

  • 处理系统调用: 处理系统调用意味着应用程序的请求可以通过系统调用的接口直接传给内核处理。

2) 系统库

系统库是一个用来帮助应用程序调用内核功能的特殊程序。因为有一些任务,应用程序必须通过系统调用,触发内核执行任务,才能执行。但是,应用程序需要知道如何进行系统调用,因为不同的内核有不同的系统调用。好在程序员已经开发了与内核进行通信的标准程序库。每个操作系统都支持这些标准,然后将这些标准转移到该操作系统的系统调用中即可。

Linux 最著名的系统库是 glibc(GNU C库)。

3) 系统工具

Linux 操作系统有一组比较实用的简单的命令行工具。它是 GNU 项目根据其开放源代码许可编写和发布的一个软件,因此这个软件是免费提供给所有人的。

通过命令,你可以访问文件,编辑和操作目录或文件中的数据,更改文件的位置,或者其他操作。

4) 开发工具

有了上面三个组件,操作系统可以运行并正常工作。 如果系统需要更新的话,就要借助于其他工具和库。这些由程序员编写的额外的工具或者库,被称作工具链。 工具链是开发人员用来生成有效应用程序的重要开发工具。

5) 用户终端工具

用户可以定制自己系统的终端工具。终端工具对于操作系统不是必需的,但对于用户来说是必需的。

终端工具的一些示例,例如:图形设计工具,办公套件,浏览器,多媒体播放器等。

开源的操作系统

大多数操作系统的都是编译之后的,意思就是说源代码已经被编译器编译编译,将源代码转换为计算机可以识别的语言,不会把源码暴露出去。

因此,没有源码的话,修改编译之后的代码是一个很难的工作。

另一方面,开源就完全不一样。操作系统的源码也会放在已经编译好的版本中,允许任何有能力的人去修改它。我们可以随意运行开源的程序,根据自己的需求来修改源码,并且把我们修改的源码也开源出去给其他人使用。

简而言之,Linux是一种 「为民所有,为民所享 」的操作系统。

Image placeholder
BinGo
未设置
  0人点赞

没有讨论,发表一下自己的看法吧

推荐文章
Linux/Unix 基础:Linux 的历史

Linux的诞生 在1991年,来自芬兰Helsinki大学的学生LinusTorvalds认为市场上应该有一个比较统一的Unix版本,从此他就开始为这个项目奋斗。后来这个项目就成为了Linux操作系

浏览器中的JavaScript:什么是文档对象模型?什么是DOM操作?

JavaScript并没有那么糟糕。作为运行在浏览器中的脚本语言,它对于网页操作非常有用。在本文中,我们将看到可以用哪些手段来修改HTML文档和交互。什么是文档对象模型?文档对象模型是在浏览器中一切的

基础信息:什么是 MySQL?

MySQL是一个开源的深受欢迎的关系型数据库管理系统(简称RDBMS)。目前排名第二,仅次于Oracle数据库。 MySQL可以免费下载,但是,还提供了几个付费版本,这些版本提供了附加功能。 顾名思义

Kubernetes 基础信息:什么是 Kubernetes?

简介 Kubernetes(常简称为K8s,在希腊语意为“舵手”或“驾驶员”)是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。 由JoeBeda、BrendanBur

Stack Overflow 上最火的一个问题:什么是 NullPointerException

在逛StackOverflow的时候,发现最火的问题竟然是:什么是NullPointerException(java.lang.NullPointerException),它是由什么原因导致的,有没有

AWS vs K8s 是新时代的 Windows vs Linux?

作者:IanMiell是开源程序员、演讲师、作家和博客写手以前……如果你与我一样,年过四十,又在IT行业工作,恐怕还记得每个人使用Windows,一小群但越来越多的人在业余时间埋头编译Linux的年代

jquery怎么写ajax?

jquery怎么写ajax?两种在客户端和服务器端进行请求-响应的常用方法是:GET和POST。GET-从指定的资源请求数据POST-向指定的资源提交要处理的数据GET基本上用于从服务器获得(取回)数

Java 程序员眼中的 Linux_1.0.Linux 介绍

Linux介绍 Linux这个名字 Linux的Wiki介绍:http://zh.wikipedia.org/zh/Linux Linux也称:GNU/Linux,而其中GNU的全称又是:Gnu’sN

[Java 程序员眼中的 Linux] Linux 下常用压缩文件的解压、压缩

Linux下常用压缩文件的解压、压缩 常用压缩包解压命令整理 Linux后缀为.tar.gz格式的文件-解压 命令:tarzxvfXXXXXX.tar.gz Linux后缀为.bz2格式的文件-解压

笨办法 学Linux 安装Linux

Linux学习起步 Windows,VirtualBox虚拟机(.ova格式的预配置映像) 学习Linux你需要什么 VitualBox,虚拟机播放器。 putty,终端模拟器。 预配置的Virtua

别小瞧了 Linux,安卓、华为的自研系统,均源自 Linux!

众所周知,目前国内已有众多的国产系统,基本上均源自linux,以linux为基础进行二次开发。比如红旗linux、深度等等。但不知道为什么,一说起某系统是基于linux而来,很多网友就瞧不起,并且会觉

什么是刻意练习?

刻意练习,不是简单的重复又重复。 “刻意练习”的概念要这样分开理解,“刻意”什么?“练习”什么?“刻意”就是持续做自己不会的事情,比如这章节的知识点没弄明白,我就要去行动起来去弄明白,如查文档,看点评

Redis为什么是单线程、及高并发快的3大原因详解

Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快; 2.redis是单线程的,省去了很多上下文切换线程的时间; 3.redis使用多路复用技术,可以处理并发的连接。非阻塞

面试题:请解释一下什么是虚拟内存?

内存对于用户来说就是一个字节数组,我们可以根据地址来访问到某个字节或者某些字节:很久之前的内存很久很久之前,一台机器上只放置一个程序,操作系统仅仅作为一个函数库存在。对于内存来说,除去操作系统的代码和

一座岛告诉你,什么是智慧!

华为中国生态伙伴大会2019已落下帷幕,两天的时间,华为向大家展示了什么是智慧,什么才是真正的数字世界,当然还有那座仅用30天打造的一座“智慧岛”。

什么是边缘计算及其重要性?

边缘计算正在改变世界上数百万台设备处理,处理和传递数据的方式。联网设备(IoT)的爆炸性增长,以及需要实时计算能力的新应用,继续推动着边缘计算系统的发展。诸如5G无线之类的更快的联网技术,使边缘计算系

什么是react组件

什么是react组件组件就是页面上的一部分。我们可以把一个大的网页拆分成很多小的部分。比如标题部分,对应一个组件,就是标题组件。搜索部分,对应的组件就是搜索组件。页面上很多区域也可以拆分成组件,所以页

什么是Vue-CLI?

vue-cli是有Vue提供的一个官方cli,专门为单页面应用快速搭建繁杂的脚手架。它是用于自动生成vue.js+webpack的项目模板,是为现代前端工作流提供了batteries-included

什么是jquery插件?

什么是jquery插件?jQuery插件,就是开发爱好者自己利用Jquery制作的特效,然后经过封包或包装处理成js文件,发布到网上供大家使用的脚本集合。通常这类插件除了调用jQuery库文件,还需要

HTML 什么是内联元素?

内联元素(inlineelement)也叫内嵌元素或行内元素,一般都是基于语义级(semantic)的基本元素。内联元素只能容纳文本或者其他内联元素,通常被包括在块元素中使用,常见内联元素有“a、b、

css什么是雪碧图?

css雪碧图即CSSSprite,又称CSS精灵,也被称为“CSS图像拼合”、“CSS贴图定位”或“CSS图片精灵”,是一种网页图片应用处理方式。其实就是把一个页面涉及到的所有零星图片都包含到一张大图

什么是vue.js混入?

混入(mixins)定义了一部分可复用的方法或者计算属性。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。来看一个简单的实例: Vue测试实例

什么是jquery?

什么是jQuery?jQuery是一个快捷、小型、功能丰富的Javascript库。它使诸如HTML文档遍历和操作,事件处理、动画和Ajax更简单。它可以跨越多种浏览器,具有通用性和可扩展性。jQue

IDC发布:4Q18云IT基础设施收入低于传统IT基础设施收入

根据IDC全球云IT基础设施季度跟踪报告,在2018年第四季度(4Q18),包括公有和私有云在内的云IT基础设施产品(服务器、企业存储和以太网交换机)销售收入同比增长28.0%,达到168亿美元。20