Linux是什么?
Linux是一个开源的操作系统内核,由林纳斯·托瓦兹(Linus Torvalds)于1991年首次发布。它基于Unix操作系统,但提供了更多的自由和灵活性。Linux内核是操作系统的核心部分,负责管理系统资源、处理硬件设备请求、以及管理程序运行等任务。
Linux用在哪些地方?
以下是一些主要的应用场景:
- 个人计算:许多用户选择Linux作为他们的个人操作系统,因为它提供了高度的定制性、稳定性和安全性。
- 软件开发:Linux提供了一个强大的开发环境,包括丰富的编程工具和库,支持多种编程语言,是许多开发者的首选平台。
- 图形设计和多媒体制作:Linux上有许多专业的图形设计和多媒体制作软件,如GIMP、Kdenlive、Blender等。
- 教育:Linux因其开源特性和教育价值,常被用于学校和大学的教学环境中。
- 游戏:虽然游戏通常与Windows系统关联更紧密,但Linux上也有越来越多的游戏支持,特别是通过Steam和Wine等平台。
- 家庭媒体中心:Linux可以作为家庭媒体中心的操作系统,用于播放音乐、视频和照片。
- 个人服务器:Linux是构建个人服务器的理想选择,无论是用于文件共享、网站托管还是其他服务-Linux在服务器领域的应用是最强的,免费,稳定,高效
- 隐私保护:对于注重隐私的用户,Linux提供了更多的隐私保护选项,如使用Tor网络浏览等。
- 虚拟化和容器技术:Linux是虚拟化和容器技术(如Docker)的理想平台,允许用户在同一台机器上运行多个操作系统或应用程序。
- 科学计算和数据分析:Linux提供了强大的科学计算和数据分析工具,如Python、R语言和MATLAB等。
- 移动设备和嵌入式系统:虽然在智能手机领域Android占主导地位,但Linux也在其他移动设备和嵌入式系统中有所应用。
- 桌面环境和界面:Linux提供了多种桌面环境和用户界面,如GNOME、KDE Plasma、XFCE等,满足不同用户的使用习惯。
Linux在个人桌面领域的应用非常灵活,可以根据用户的需求和偏好进行定制,这也是它受欢迎的原因之一。
Linux和Unix的关系
Unix的由来
Unix是一个开创性的操作系统,其起源可以追溯到20世纪60年代末。最初,Unix是由AT&T贝尔实验室的Ken Thompson和Dennis Ritchie共同开发的,目的是创建一个多用户、多任务的分时系统 。Unix的早期开发受到了他们参与设计的Multics系统的影响,Multics是一个更为复杂的操作系统项目,但最终由于种种原因被终止 。
Unix系统的开发始于1969年,最初是在PDP-7微型机上进行的 。1971年,Unix被移植到了PDP-11计算机上,但当时它只支持16KB内存,并且大多数代码是用汇编语言编写的,这限制了其可移植性 。为了解决这个问题,Ken Thompson创建了一种名为"B"的高级语言,随后Dennis Ritchie基于"B"语言开发了C语言,使得Unix能够用高级语言重写,从而提高了其可移植性 。
Unix的广泛应用得益于其开源特性和灵活性。1974年,Thompson和Ritchie在Communication of ACM上发表了论文,正式向外界披露了UNIX系统 。随后,UNIX系统被广泛配备于美国各大学的PDP-11系列计算机上,为UNIX的广泛应用创造了条件 。Unix的设计哲学,如“小即是美”和“万物皆为文件”,对其发展产生了深远影响 。
Unix系统以其稳定性、安全性和高度的自定义性而受到青睐,广泛应用于服务器、超级计算机和嵌入式设备等领域 。它采用分时操作系统理念,实现了多用户同时交互式作业,并展现出卓越的多用户和多任务处理能力 。Unix系统的成功也为后来的操作系统,包括Linux,奠定了基础 。
Linux的由来
Linux的起源可以追溯到1991年,由芬兰程序员林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学读书时开始的一个个人项目。以下是Linux发展的主要历程:
初始动机:
- 林纳斯·托瓦兹最初是想为他的个人电脑编写一个操作系统,因为他对当时可用的操作系统不满意。Minix的影响:
- 托瓦兹在大学期间学习了操作系统课程,使用的是Andrew S. Tanenbaum教授开发的Minix系统。Minix是一个类Unix操作系统,主要用于教学目的。托瓦兹对Minix的局限性感到不满,决定开发一个更强大的系统。Linux内核的诞生:
- 1991年,托瓦兹开始编写Linux内核。最初,他只是将其作为一个业余项目,但很快这个项目吸引了其他开发者的兴趣。Linux内核的第一个版本(0.01)于1991年9月发布。开源和社区贡献:
- 托瓦兹将Linux内核以开源许可证发布,允许任何人自由地使用、修改和分发。这种开放性迅速吸引了全球开发者的注意,他们开始为Linux贡献代码和改进。GNU项目的影响:
- Linux内核的开发受益于GNU项目,特别是Richard Stallman领导的自由软件运动。GNU项目提供了许多工具和库,如GCC编译器和Glibc库,这些工具对Linux的开发至关重要。Linux发行版的出现:
- 随着Linux内核的成熟,各种基于Linux的操作系统发行版开始出现。这些发行版提供了完整的操作系统,包括内核、应用程序和用户界面。早期的发行版如Slackware和Debian逐渐发展成今天广泛使用的Ubuntu、Fedora和Red Hat Enterprise Linux等。商业化和广泛应用:
- 随着Linux的普及,许多企业和组织开始采用Linux作为服务器和桌面操作系统。Linux因其稳定性、安全性和可定制性而受到青睐。此外,Linux在嵌入式系统和移动设备中也有广泛应用。持续发展:
- 至今,Linux内核仍在不断更新和改进。全球的开发者社区继续为Linux贡献代码,使其成为一个不断进化的操作系统。Linux的成功不仅在于其技术优势,还在于其开放和协作的开发模式,这种模式使得Linux能够迅速适应不断变化的技术需求。
Linux与Unix的关系
Linux和Unix之间有着紧密但明确的关系,主要体现在以下几个方面:
- 技术灵感:
- - Linux的设计受到了Unix的强烈启发。Unix的设计理念、工具和哲学对Linux的创建者林纳斯·托瓦兹有着深远的影响。
- 类Unix系统:
- - Linux通常被归类为一个类Unix系统。这意味着它在很多方面与Unix相似,包括其命令行界面、文件系统结构、以及多用户多任务的操作系统特性。
- 兼容性:
- - Linux旨在与Unix兼容,特别是在应用程序编程接口(API)和用户界面方面。这使得许多Unix程序能够在Linux上运行,尽管两者在底层实现上有所不同。
- 开源和自由软件:
- - 与许多Unix变种一样,Linux是开源的,遵循自由软件的原则。这意味着任何人都可以查看、修改和分发Linux的源代码。
- 社区驱动:
- - Linux的开发类似于Unix的早期发展,是由一个全球开发者社区共同推动的。这种开放和协作的开发模式促进了Linux的快速成长和多样化。
- Unix哲学:
- - Linux继承了Unix的一些核心哲学,如“小即是美”、“让每个程序都做好一件事”以及“万物皆文件”等。
- 法律和许可:
- - 尽管Linux和Unix在技术上有很多相似之处,但它们在法律和许可方面是独立的。Linux是独立开发的,不包含Unix的专有代码。
- Unix的分支:
- - 一些Unix的分支,如BSD,对Linux的发展也产生了影响。例如,Linux早期使用了BSD的一些网络代码。
- 替代和补充:
- - 在某些情况下,Linux被用作Unix系统的替代品,特别是在需要成本效益和灵活性的场景中。同时,Linux也被用作Unix系统的补充,例如在Unix系统上运行Linux应用程序。
- 共同的遗产:
- - Linux和Unix共享着许多相同的工具和实用程序,如grep、sed、awk等,这些都是Unix遗产的一部分,也被Linux所继承。
- 总的来说,Linux是在Unix的基础上独立发展起来的,它继承了Unix的许多优点,同时也发展出了自己的特点和优势。Linux的成功在很大程度上得益于Unix的开源精神和设计理念。
VM和Linux的安装
vmware的安装
进入wmware官方网站进行下载,需要激活码,可以自行寻找VMware Workstation Pro
centos7的下载
进入centos官方网站进行下载,直接下载,记住下载安装的位置,可以把centos理解为Linux的外壳(发行版)
在VMware中创建一个虚拟机,按照提示一步一步来,在黑屏时不要随意点击,进入下面这个界面
操作系统选择centos7安装包,网络连接选择NAT网络连接
虚拟机克隆
克隆目的:
- 快速复制环境,用于测试、开发或备份。克隆类型:
- 完整克隆:包含虚拟机所有数据和配置的独立副本。
- 链接克隆:基于快照的优化克隆,节省空间但依赖原始快照。
克隆步骤:
- 打开VMware Workstation。
- 选择要克隆的虚拟机。
- 选择克隆选项,并决定克隆类型。
- 为克隆的虚拟机命名并选择存储位置。
- 配置网络和硬件设置(如果需要)。
- 启动克隆过程并等待完成。
- 启动克隆的虚拟机进行验证。
注意事项:
- 克隆会占用额外存储空间,特别是完整克隆。
- 链接克隆在运行时可能需要更多性能资源。
- 确保原始虚拟机的快照未被删除,以维持链接克隆的完整性。
- 检查软件许可证是否允许虚拟机克隆。
通过克隆,用户可以在不同的虚拟环境中快速部署相同的操作系统和应用程序配置,同时保持原始环境的稳定性和安全性。
右击Centos 7->点击管理->点击克隆(克隆需要在关闭虚拟机的情况下进行)
虚拟机快照
快照定义:
快照是虚拟机在某一时刻的静态副本,包括操作系统、应用程序、数据和系统配置。它类似于传统操作系统中的“系统还原点”。快照目的:
- 版本控制:跟踪虚拟机随时间所做的更改。
- 测试和开发:在不影响原始环境的情况下进行测试或开发。
- 灾难恢复:在系统故障时快速恢复到之前的状态。
快照类型:
- 即时快照:捕获虚拟机当前状态的完整副本。
- 差异快照(链式快照):仅记录自上一个快照以来的更改,节省存储空间。
快照过程:
- 选择虚拟机:在虚拟化软件中选择要创建快照的虚拟机。
- 创建快照:选择创建快照的选项,可能需要指定快照的名称和描述。
- 等待完成:快照创建过程中,虚拟机的状态将被保存。
- 管理快照:可以查看、重命名、删除或回退到快照。
快照使用:
- 回退:如果需要,可以将虚拟机回退到快照状态,撤销之后所做的更改。
- 比较:比较不同快照之间的差异,了解系统的变化。
- 删除:不再需要的快照可以被删除,释放存储空间。
注意事项:
- 存储空间:快照会占用额外的存储空间,尤其是即时快照。
- 性能影响:创建和使用快照可能会对虚拟机的性能产生一定影响,尤其是在磁盘I/O密集型操作时。
- 依赖性:链式快照依赖于之前的快照,如果删除了早期快照,后续快照可能无法正常工作。
- 磁盘空间管理:定期清理不再需要的快照,以优化存储空间使用。
快照是虚拟化环境中的一个强大工具,它提供了一种灵活的方式来保存和恢复虚拟机的状态,非常适合需要频繁测试和配置更改的环境。然而,合理管理快照对于维护性能和存储空间至关重要。
快照管理,只需要在VMware进行操作即可
安装vmtools步骤
在VMware Workstation的菜单栏中,选择“虚拟机” -> “安装VMware Tools”
sudo su -
//切换到root用户
mount /dev/cdrom /mnt
//挂载CD-ROM驱动器
cd /mnt
tar zxf VMwareTools-*.tar.gz -C /tmp
cd /tmp/vmware-tools-distrib
./vmware-install.pl -d
//这里,-d 参数表示自动运行安装程序reboot
//重启
vmware-toolbox-cmd
//配置vmtools的配置项
共享文件夹:
进入settings->选项->共享文件夹->进入/mnt/hgfs文件夹中,当然要和设置的主机路径是一致的才能看到相应的文件夹,注意一定要下载vmwaretools才能启动
目录结构介绍
Linux操作系统以其严格的文件系统层次结构而闻名。这种结构有助于组织文件和目录,使得系统管理更加方便。以下是Linux文件系统的基本目录结构及其主要组成部分的介绍:
1. / (根目录):
- 所有其他目录的父目录。
- 根目录下通常包含一些主要的系统目录。2. /bin:
- 存放基本的二进制文件(即可执行文件)。
- 这些文件是系统启动和运行所必需的,如`ls`、`cp`、`mv`等。3. /sbin:
- 存放系统管理的二进制文件。
- 这些文件通常由系统管理员使用,如`fdisk`、`ifconfig`、`iptables`等。4. /etc:
- 存放系统配置文件。
- 几乎所有系统服务和应用程序的配置文件都存放在这里。5. /lib:
- 存放共享库文件。
- 这些库文件是许多应用程序运行所必需的。6. /media:
- 临时挂载文件系统的挂载点。
- 通常用于挂载可移动存储设备,如USB驱动器、CD-ROM等。7. /mnt:
- 临时挂载的文件系统。
- 通常用于挂载网络文件系统或外部存储设备。8. /boot:
- 存放启动加载程序和内核。
- 这些文件是系统启动时必须加载的。9. /dev:
- 存放设备文件。
- 这些文件代表系统中的硬件设备,如硬盘、键盘、鼠标等。10. /proc:
- 虚拟文件系统,提供系统运行时的信息。
- 这些文件不占用实际的磁盘空间,但可以提供关于系统和进程的信息。11. /sys:
- 另一个虚拟文件系统,提供系统硬件和驱动程序的信息。
- 类似于/proc,但更加详细和结构化。12. /usr:
- 用户相关的应用程序和文件。
- 通常包含用户安装的软件和文档。13. /home:
- 用户的个人目录。
- 每个用户的主目录都存放在这里。14. /opt:
- 可选软件包的安装位置。
- 通常用于安装第三方软件。15. /tmp:
- 临时文件存放目录。
- 系统和应用程序的临时文件都存放在这里。16. /var:
- 可变数据的存放目录。
- 包含日志文件、数据库文件、邮件队列等。17. /root:
- 系统管理员的家目录。
- 通常只有root用户才能访问。18. /srv:
- 服务数据的存放目录。
- 通常用于存放网站、FTP服务器等的数据。19. /mnt:
- 挂载文件系统的临时目录。
- 通常用于临时挂载文件系统。20. /run:
- 系统运行时的系统数据。
- 包含系统运行时的临时数据和状态信息。这些目录构成了Linux文件系统的基础,每个目录都有其特定的用途和功能
请期待下一篇关于Linux的文章吧!