Linux——总结第一步

  • 今天参加了某公司的电话初试,恩,我一直期待的不谈人生规划只谈技术的面试,果然发现我是一只菜鸡,还不能吃的那种。

Linux——总结第一步

  • 就感觉脑子里这些知识都有,但是又说不出个所以然来,所以准备来个复习。(用了老师给的思维导图)

关于Linux

1、钻研一个问题的开始是:它是什么?

Linux是一套免费使用和*传播类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统(来自度娘)

2、它在什么时候会被使用?

  • 由于Linux不仅系统性能稳定,而且是开源软件,在企业开发中,Linux操作系统会被网络运维人员当成系统服务器使用,又可以当做防火墙

3、它是如何产生的呢?

这又得提到我们老师的偶像之一:李纳斯•托瓦兹

  • Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。第 1 版本于 1991 年 9 月发布,当时仅有 10 000 行代码。
  • 李纳斯•托瓦兹没有保留 Linux 源代码的版权,公开了代码,并邀请他人一起完善 Linux。与 Windows及其他有专利权的操作系统不同,Linux 开放源代码,任何人都可以免费使用它。
  • 据估计,现在只有 2% 的 Linux 核心代码是由李纳斯•托瓦兹自己编写的,虽然他仍然拥有 Linux内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。

4、它的优点?

  • 大量的可用软件及免费软件
  • 良好的可移植性及灵活注
  • 优良的稳定性和安全性
  • 支持几乎所有的网络协议及开发语言

5、它的发行版本?

(以前一直使用Ubuntu,却没有搞懂他们是个什么关系,如下图)

  • Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。
  • 从技术上来说,李纳斯•托瓦兹开发的 Linux只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将Linux 内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了 Linux 的发行版本。

Linux——总结第一步

  • 比较知名的发行版有:Red Hat、Ubuntu、SUSE,将他们直接说成 Linux 其实是不确切的,它们是 Linux的发行版本,更确切地说,应该叫作“以Linux为核心的操作系统软件包”。

4.1 它的发行版本可分为两类:

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

6、Linux与Windows的区别?(某公司面试被问到)

Linux——总结第一步

7、Linux与Unix的区别?

  • UNIX 系统大多是与硬件配套的,也就是说,大多数 UNIX 系统如 AIX、HP-UX 等是无法安装在 x86服务器和个人计算机上的,而 Linux 则可以运行在多种硬件平台上;
  • UNIX 是商业软件,而 Linux 是开源软件,是免费、公开源代码的。

8、Linux的系统结构?

Linux——总结第一步

8.1 分为三层

8.1.1 kernel(内核)层

  • 内核层是 UNIX/Linux系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。
  • 功能如下:
    Linux——总结第一步简单点来说:
    (1)管理设备、内存和进程
    (2)控制系统程序/实用程序和系统硬件之间的功能
    (3)管理交换空间、守护进程、文件系统和其他功能

8.1.2 shell层

  • shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。
  • 功能为:shell是用户和内核之间的接口,充当解释器或转换器。

8.1.3 applications层

  • 应用层提供基于 X Window 协议的图形环境。X Window 协议定义了一个系统所必须具备的功能(就如同 TCP/IP
    是一个协议,定义软件所应具备的功能),可系统能满足此协议及符合 X 协会其他的规范,便可称为 X Window。
    可调用shell/library routines/system calls。

8.1.4 library routines

  • 库,如stdio.h是完全基于system calls写出来的

9、Linux文件系统

  • 文件系统是一种数据结构,该数据结构通常驻留在磁盘上,用来组织和管理文件的目录

9.1 根目录(/)

FHS 认为,Linux 系统的根目录(/)最为重要(没有之一),其原因有以下 2 点:

  1. 所有目录都是由根目录衍生出来的;
  2. 根目录与系统的开机、修复、还原密切相关;

因此,根目录必须包含开机软件、核心文件、开机所需程序、函数库、修复系统程序等文件
Linux——总结第一步Linux——总结第一步

9.2 Linux /usr目录

  • usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。
  • Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。
  • FHS 建议,/usr 目录应具备下表所示的子目录。
    Linux——总结第一步

9.3 Linux/var目录

  • /var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。通常,此目录下建议包含如下表所示的这些子目录
    Linux——总结第一步

10、关于Linux常用的命令

明天继续更。。。。。。。