• 跟着AIGC学Linux:简介(一)


    1.Linux内核的历史

    Linux内核最初由一位名叫Linus Torvalds的芬兰计算机科学家于1991年创建。当时,Torvalds是一名赫尔辛基大学的学生,他在寻找一个类似于UNIX操作系统的替代品时开始着手开发Linux内核。他的目标是创建一个免费且开放源代码的操作系统,这使得任何人都可以自由地使用、修改和分发它。

    Linux内核是操作系统的核心组成部分,它是连接硬件和软件之间的桥梁。它提供了许多基本功能,如进程管理、内存管理、设备驱动程序和文件系统支持等。Linux内核是一个高度可定制的软件,可以根据不同的需求进行修改和扩展。

    2.基本概念

    Linux是一个基于UNIX的操作系统,它具有许多独特的特点。首先,Linux是开放源代码的,这意味着任何人都可以查看、修改和分发它的源代码。这种开放性促进了全球范围内的开发者社区的合作和贡献,使得Linux不断得到改进和完善。

    其次,Linux是多用户、多任务的操作系统。它可以同时支持多个用户进行登录和操作,并且能够同时运行多个程序。这种多任务能力使得Linux成为服务器和大型计算机环境中的首选操作系统。此外,Linux拥有良好的稳定性和安全性。它在设计和开发过程中注重稳定性和安全性,并且拥有一个强大的权限管理系统,可以控制用户对系统资源的访问权限。最后,Linux具有广泛的硬件支持。它可以在各种硬件平台上运行,从个人计算机到嵌入式设备、服务器和超级计算机等。

    3.发行版

    笔者最先是入坑捣鼓了Archlinux,然后Manjaro、Ubuntu、Kubuntu、Deepin、CentOSKali linux,太多太多,各具特色,百家争鸣。不同系统大同小异,根据不同的使用需求去选择不同的发行版,以上笔者仅为了个人折腾乐趣,先后次序不具教学意义。

    # 一条命令查看Linux发行版的真实用户份额:
    wget -qO - linux.top/o|sh
    
    • 1
    • 2

    以下为软件包统计,https://repology.org/repositories/statistics/total,根据total量排序统计结果,NixOS系统无愧于新晋之神,不过笔者在2020年已经退坑折腾了,当年Archlinux还是蝉联榜首的。(这里讨论的是软件包支持数量而非发行版用户量,目前身边用的最多的还是ubuntu和centos)

    4.Linux应用领域

    1. 服务器和数据中心:Linux在服务器和数据中心领域得到了广泛应用。由于其稳定性、安全性和可靠性,许多互联网公司、企业和组织选择在其服务器上运行Linux操作系统。它被用于托管网站、数据库、云计算、大数据处理等关键任务。

    2. 嵌入式系统:Linux在嵌入式系统领域也得到了广泛应用。嵌入式Linux可以在各种设备上运行,如智能手机、平板电脑、智能电视、路由器、机顶盒等。它提供了一个灵活的操作系统平台,可以满足不同设备的需求。

    3. 科学研究和超级计算:Linux在科学研究和超级计算领域也发挥着重要作用。许多科学实验室、研究机构和大学使用Linux作为其研究和计算平台。Linux的开放性和可定制性使得科学家们可以根据自己的需求进行定制和优化。

    4. 移动设备和智能手机:虽然移动设备市场主要由iOS和Android操作系统主导,但Linux在移动设备领域也有一席之地。例如,Android操作系统是基于Linux内核开发的,并且许多智能手机制造商使用Linux作为其移动设备的底层操作系统。

    5. 软件开发和编程环境:Linux是许多开发人员和程序员首选的操作系统。它提供了丰富的开发工具、编程语言支持和开发环境。许多开发人员喜欢Linux的自由和灵活性,以及开源社区提供的丰富资源和支持。

    但是第一大用途还是作为服务器使用:

    • LAMP/LNMP堆栈:LAMP(Linux + Apache + MySQL + PHP)和LNMP(Linux + Nginx + MySQL + PHP)是两种常见的Web服务器堆栈。它们将Linux作为操作系统,与Apache或Nginx作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本语言进行组合。这些堆栈提供了强大的Web开发环境,适用于构建和托管各种动态网站和Web应用程序。

    • LEMP堆栈:LEMP(Linux + Nginx + MySQL/MariaDB + PHP)是类似于LAMP堆栈的替代方案,它使用Nginx作为Web服务器,MySQL或MariaDB作为数据库,PHP作为服务器端脚本语言。LEMP堆栈被广泛用于高性能、高并发的Web应用程序和网站。

    • MEAN/MERN堆栈:MEAN(MongoDB + Express + Angular + Node.js)和MERN(MongoDB + Express + React + Node.js)是一种现代的全栈JavaScript开发方案。它们使用Linux作为操作系统,与MongoDB(或MERN中的MySQL/MariaDB),Express作为后端框架,Angular或React作为前端框架,以及Node.js作为服务器端运行时环境。这些堆栈适用于构建现代的单页应用程序和Web服务。

    • Linux服务器与Docker:Docker是一种流行的容器化平台,可以轻松地在Linux服务器上部署和管理容器化应用程序。使用Docker,您可以将应用程序和其依赖项打包到容器中,并在不同的Linux服务器上运行它们,而无需担心环境差异。这为应用程序的部署、扩展和管理提供了更好的灵活性和可移植性。

    5.Linux VS Windows

    在全球操作系统用户统计中,Windows是占第一的,Linux始终还是小众用户。这里不讨论Mac系统,其实Mac系统也是基于unix系统的,不过跟Linux是两条分支前者走商业化路线,后者继续开源。

    用一张长图从九个方面对比Linux和Windows:https://www.educba.com/linux-vs-windows/

    横向对比表格:

    特性WindowsLinux
    开发商微软公司Linus Torvalds,社区
    编程语言C++,汇编汇编语言,C
    操作系统系列图形操作系统系列类Unix操作系统系列
    许可证专有商业软件GPL(GNU通用公共许可证)v2等
    默认用户界面Windows外壳Unix外壳
    内核类型Windows NT家族有一个混合内核;Windows CE也有混合内核;Windows 9x及更早系列具有单片内核整体内核
    源模型闭源软件;可用源(通过共享源倡议)开源软件
    初始发行1985年11月20日,比Linux更古老1991年9月17日
    营销目标主要是个人计算主要是云计算、服务器、超级计算机、嵌入式系统、大型机、手机、PC
    可用语言138种语言多种语言
    平台ARM、IA-32、Itanium、x86-64、DEC Alpha、MIPS、PowerPCAlpha、H8/300、Hexagon、Itanium、m68k、Microblaze、MIPS等
    官方网站微软Linux
    包管理器Windows Installer (.msi)、Windows Store (.appx)打包在Linux发行版 (distro)中
    区分大小写在Windows中文件名不区分大小写Linux中文件名区分大小写
    开机只能从主磁盘完成可以从任何磁盘完成
    默认命令行Windows PowerShellBASH
    使用方便Windows具有丰富的GUI,技术人员和非技术人员都可以轻松使用Linux主要由技术人员使用,对于普通用户来说学习Linux将需要时间
    安装易于设置,安装过程中需要的用户输入要少得多设置复杂,需要大量用户输入
    可靠性Windows的可靠性不如Linux,但近年来得到了很大的提高高度可靠和安全
    定制化Windows的自定义选项非常有限Linux有多种发行版可根据需求高度定制
    软件Windows拥有最多的桌面用户,从第三方开发商获得了最多的商业软件;其中许多软件与Linux不兼容;在视频游戏方面领先Linux有许多免费且易于安装的软件包;与自由软件兼容
    支持Linux和Windows都提供广泛的支持;Windows 10支持更容易获得Linux拥有开源社区的协助,支持更广泛
    更新Windows更新发生在当前时刻,可能有时对用户不方便;安装需要更长时间且需要重新启动用户可以完全控制何时进行更新;安装时间较短且无需重新启动
    访问并非每个用户都可以访问源代码,只有选定的团队成员可以访问源代码用户可以访问内核源代码并进行修改,这样可以更快修复操作系统中的错误。然而,开发人员可能会利用漏洞获得不当利益
    隐私Windows收集用户数据Linux发行版不收集用户数据
    价格Microsoft Windows的许可证价格通常在99.00美元至199.00美元之间;Windows 10为现有Windows用户提供了免费升级,但该优惠已经过期;Windows Server 2016数据中心版起价为6155美元Linux许可证完全免费;但需要Linux支持的组织可以选择付费订阅,例如Red Hat和SUSE;在基础设施成本方面,其他条件相同(本地或云上),由于Linux轻量级的特性,我们可以预期在Linux上的吞吐量比Windows高出20%
  • 相关阅读:
    汇编语言程序设计 --- 一元二次方程ax2+bx+c=0求解(含注释详细源代码)
    服务器数据恢复—RAID5阵列重建重建导致数据丢失的数据恢复案例
    C++ 学习链接
    LLM(二)| LIMA:在1k高质量数据上微调LLaMA1-65B,性能超越ChatGPT
    【Reinforcement Learning】强化学习基础内容有哪些?
    洛谷 P1716 双调序列
    注册商标好处,商标注册流程
    大数据Flink(九十三):DML:Order By、Limit 子句
    算法每日——每日一练
    Python绘图系统23:导入多个坐标轴的数据
  • 原文地址:https://blog.csdn.net/weixin_48093827/article/details/131392915