编程基础 - 初识Linux

编程基础 - 初识Linux

返回序言及专栏目录

文章目录

  • 编程基础 - 初识Linux
  • 前言
  • 一、Linux发展简介
  • 二、现代Linux
  • 三、Linux系统各发行版
  • 小结


前言

为什么要学习Linux呢?我这Windows用得好好的,简单易用傻瓜式、用的人还超多!但是我要告诉你的是,你用的Linux类(注意这个类字,不要抬杠)操作系统也不少,甚至很可能比Windows还多!不信你拿出手机看看,安卓、华为鸿蒙是正宗的Linux洐生产品,苹果倒是说源于Unix,但实际上还是同一个爷爷的东西。路由器几乎全是Linux系统的,所谓智能软路由系统本身就是较完整的Linux。监控摄像头、某些监控主机甚至能跑shell代码。

文中部分图片来源于网络


一、Linux发展简介

Linux是一个开源的操作系统内核。它的名字来源于最初主要作者(Linus Torvalds),由作者的名字与unix(一种操作系统)各取一半合成,之所以有unix的一半名字,是因为Linux模仿了Unix,这不是指代码的抄袭,是指功能操作上模仿,而且Unix是AT&T的东西,普通人也不敢抄它。目前Linus也还是内核代码的主要维护人、项目协调者、首席构架师。内核只提供了一些必不可少的功能,比如文件系统、磁盘控制、多任务管理等核心能力。

很多人映像中的Linux是一个黑乎乎的界面,操作要靠打字完成。这种界面其实就是shell,shell的英文意思是壳,也就是在Linux内核外面套了一层壳与内核交互,它是用户与内核的桥梁。它和Windows的前身,上世纪1995年之前的Dos(磁盘操作系统)一样的操作方式。简直是违反了自然规律,不思进取的典型。但是现代windows其实也保留了类似DOS的工具cmd(命令行Command shell)。

Linux 与 Dos
上图为:2020年的Linux(左) 与 1993年的Dos(右)

那么为什么会给人们这种奇怪的映像呢?无非是使用人群关注的重点不一样,大多windows用户可能都不知道内置的cmd是干什么用的,黑乎乎的好难看… 反正这玩意藏得深,咱不理它。而Linux用户不关心X Window(图形接口协议),这花里胡哨的玩意除了吃资源一无是处…咱这2G大内存干点什么不香,要拿去搞这花花绿绿的玩意干嘛!你没看错作者也没说错,对Linux来说,2G的内存,在2024年它干啥都够了!windows越做越好看、花哨,那都是资源堆出来的。

在这里插入图片描述
Linux的自由度很高,有人喜欢把桌面搞成这样,12年这样的桌面比windows10不差吧

在这里插入图片描述
图为同时代的LVWM(左)与windows3.2(右)

早期的Linux的确和前古的Dos一样的操作环境,Windows也确实比Linux更早搞出视窗桌面来。从win3.2发布后来讲,当时Linux也有了类似的程序管理器。
在这里插入图片描述
Windows95版本长这样

但是真正意义的视窗多媒体系统Windows95搞出来后,Linux并没有马上跟进,只是将任务管理器更完善了些,本质还是类似win3.2。直到Windows98发布,Linux才有了真正意义的视窗环境KDE1.0,但是直到今天,图形界面也只是一个软件包,与Linux内核无关。
在这里插入图片描述
早年的LINUX桌面长这样(GNOME)

又因为QT授权许可的问题,99年GNOME 1.0发布,这是Linux的另一个X Window界面。对的,你没看错!Linux不仅有现代视窗环境,还有两套视窗环境。现在也是一直并存的,当然各个发行版会选择其中一个来安装,也可能不安装X Window环境,那就是很多人映像中黑乎乎界面的由来。
在这里插入图片描述
上图为现代KDE桌面

其实Linux的自由度是极高的,你可以把它改得和Windows看起来一模一样。国内的Deepin系统甚至连操作都和windows很像。也有人把它改得和Mac OSX一样:
在这里插入图片描述
上图为假装是Mac OSX的Linux,当然它不是发行版,是个人改造的

真要说界面做得华丽,Linux中公认的是openSUSE,Windows有的动画效果它一个不少,甚至更漂亮。不过笔者只见过没用过,不多说它。

二、现代Linux

笔者三种系统(windows、OSX、Linux)都用过较长时间,在作者看来Windows和OSX是在不同商业模式上的成功,Linux是开源全球协作的成功(当年免费操作系统领域,Linux也有强劲对手的)。各有优缺点,也各自有了很大的用户基数。

有人说Linux性能远高于Windows,这个笔者是不认可的,给Linux套上一个图形界面,你再使劲美化一下,它甚至可能不如Windows,差距应该相对很小。让人有这种映像正是因为Linux经常不用图形界面,特别是服务器领域,因为费资源、还浪费网络带宽,又是一个月都难得去看几眼的,要图形界面干嘛呢,Linux的图形界面从根本上讲就是一个软件包,爱装不装的。给Windows去掉图形界面(虽然不可能),它也能跑得飞起。

那么为学Linux呢,也正是因为它在服务器领域的应用,后端应用一般都是建立在Linux服务器上的。具体是Linux系统的服务器多还是windows系统的多,这个问题一直都有争议,也没有太过让人信服的数据,但看历年世界排名靠前的大型服务器,基本上是用的Linux系统,Unix也经常出现,却几乎看不到windows的影子。

常见的监控主机,其实就是提供了存储服务的一台Linux服务器。路由器其实也是一个Linux服务器,我们平常所登陆的网页界面就是一个典型的服务,openwrt是uhttpd服务、梅林是httpd。对应于我们平常上网时在后端提供服务阿帕奇Web服务器(apache),或Nginx服务器。无非路由器上的功能要简单点,性能要差一些。不是很多人给路由开了smb、nfs这些存储服务吗,对于智能路由来说,拔号、发包、转发什么的正宗路由功能是顺带的…所以很多人感觉乍我这智能路由跑不过100块的TP呢?还真是很有可能的哦~

现代中高端路由的Linux相对比较完整,操作它和操作Linux服务器那是几乎没有区别。服务器做的事,路由基本上全都能干。特别是openwrt,现在发展的趋势是专注于X86-64的硬件,那么它和服务器已经没有区别了。

至于路由系统为什么才百把M这么小,而桌面Linux系统经常也是上G的,那全是因为路由器就这点硬件,而且是固定的。用户基本上不可能去增改。而桌面系统要适配几乎无尽的硬件,那全是驱动程序堆起来的体积。

相较于windows,linux具有以下几点优势,也可能是劣势:

  • 稳定高效:稳定是无可争议的,当年Linux用户就喜欢嘲笑Windows用户,今天你蓝屏几回了?对,不是问有没有蓝屏!服务器大多是没有重启开关的,windows系统的电脑要是没有重启开关,售后部门能把设计部门堵在办公室打残。虽然近些年的不少品牌机也把重启开关和开机键合一了,侧面说明windows10以后稳定性大有提升。
  • 几乎免费:个人用户用的都是免费发行版本,由各大Linux社区打包的。包括软件也绝大多数是免费的,嗯~ 其实Linux上是有收费软件的,大多是行业应用软件。至于效率之争,作者前面已经作了解释。
  • 漏洞少且快速修补:Windows经常有新闻说,xx版本停止服务,逼你升级新系统。Linux不存在的,梅林系统的路由器还在用2.6的内核呢。主要因为开源,有漏洞早被全世界的高手发现修补了。就算新发现了漏洞,咱编译的时候改一改就是了。
  • 多任务多用户:windows说我也会、我也行。Linux说你不行,你那是假装的。win95之后的操作系统都是多任务的,因为cpu跑得快了,把1秒钟分成10的-6次方为单位来用,用户感觉不到多任务的延时而已。Linux当然也是一个样,但windows确实不是多用户的,同一时间只能有一个用户登陆系统,服务器版也是。Linux是可以有多人同时登陆各干各的事的,一个用户开两个shell也是可以的。
  • 更加安全的用户与文件权限策略:文件权限管理方面,虽然Linux增加了复杂度,好处就是增加了安全性。
  • 适合小内核程序的嵌入系统:大小由心、丰俭由人,可以小到几M,可以大到几G。路由就是典型的例子,有些固件只有几M,有些固件有几百M。而且只要你有足够的空间,几M的固件,你也能装上几百M的工具。

三、Linux系统各发行版

细分的话这个版本就没人数得清了,主要有六大门派,找张图来说明这些门派之间的关系
在这里插入图片描述

常见的除开AOSP安卓以外,国人用得最多的就是红帽系和Debian系了。红帽本身是收费的,但它洐生的CentOS和Fedora是免费的,特别是CentOS是各大虚拟主机的第一选择。而Debian因为有国产的深度系统(Deepin),和国内用户非常多的Ubuntu系统的原因而广为人知。

这两派的软件安装包分别为rpmdeb。因为Linux的软件都是有仓库的,你直接输入命令就可以自动下载安装,绝对没有像windows上那样第三方来打个包给你加点广告的事!相应的就有了不同的软件包管理工具,比如ubuntu的apt命令,centOS的yum。当然你有个自己写的或别人写的软件已经在硬盘上了,也可以从本地磁盘安装的。

那么路由器的固件又是哪派的呢?以上六大派都不是,它属于嵌入式Linux领域,这个分支也极其复杂,作者也不可能全知全能。这里面有两个比较重要的开源项目:

  • 一个是让arm跑上Linux的开源项目,叫ucLinux,uc是微控制器的意思,已经合并进了Linux2.6版本核心,所以这么多arm的路由器都和这个有关。
  • 一个是LinkSYS(已被思科收购,后来又卖了),当年这公司搞出了一个WRT54G的路由器,后来开源了,这中间有很多故事的。

可以说目前所有的智能路由器找根子,都和这个LinkSYS的WRT54G有关。当年有人发现这个路由器竟然使用了GPL(通用公共授权许可)开源的Linux代码。这事要放在国内抄代码叫事吗?但在国外那可是戳中了自由软件的根子。最后思科没办法,斗不过自由的人民群众啊~ 也把这个路由的源代码开源了。GPL授权具有传染性,随便你用,但只要你用了,从法律上讲你就必须也开源。

包括AsusWRT、openwrt、Tomato、DD-wrt、高恪等等都是这里来的,梅林和padavan又是从Asus-wrt来的。不是说全世界么多编程高手就靠LinkSYS的这路由来改改才能搞出智能路由来,而是LinkSYS在业界的地位够高、影响力极大,自然有更多的高手去研究。


小结

Linux啥都分派系,说不定啥时候这个门派散伙了,比如著名发行版Fedora早就说散伙不干了,路由固件Tomato也不玩了,但是又不知道啥时候冒出来个版本,比如Ubuntu就是南非的一个名人找人折腾的。国内的深度Linux其实和当年著名的深度windows打包团队有关系,突然就折腾起了Linux,还干得有声有色。嗯~国内民间干Linux事业,他们搞得最出色了,至于官方半官方的版本那就更多了。实际上还有很多例子,比如前面说的两个桌面图形系统。Linux就是这样内耗严重,怪不得干不过windows~。~

返回专栏目录 <<<

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/296684.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

回顾2023编程之旅

一、前言 看在给了我一个博客专家的份上就继续写写博客&#xff0c;实事求是的讲如果是工作之余去总结csdn写写技术博客&#xff0c;还想混个专家什么的&#xff0c;真的是精力不够。因为里面的灌水的实在太多&#xff0c;比不过的&#xff0c;写这个玩意必须得淡泊名利才能悠然…

《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(7)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置&#xff08;6&#xff09; 2.2 HOST主桥 MPC8548处理器的拓扑结构如图2-2所示&#xff1a; OCeaN部件的拓扑结构如图2-3所示&#xff1a; 2.2.1 PCI设备配置空间的访问机制 为了…

轻松入门:Anaconda 在 PyCharm 中的配置与应用指南

1 Anaconda Anaconda 和 Conda 是两个相关但不同的概念。 Anaconda 是一个免费且开源的发行版&#xff0c;包含了 Python 和 R 语言的数据科学和机器学习相关的众多包&#xff0c;它包括 Conda、Python、Jupyter Notebook 等多个科学计算和数据科学中常用的应用。 Anaconda 通过…

30、共空间模式CSP与白化矩阵

CSP算法和PCA降维都涉及到了白化&#xff0c;那白化的目的和作用到底是啥呢&#xff1f; 矩阵白化目的&#xff1a; 对于任意一个矩阵X&#xff0c;对其求协方差&#xff0c;得到的协方差矩阵cov(X)并不一定是一个单位阵。 下面介绍几个线代矩阵的几个概念&#xff1a; 1、…

Oracle分区表

文章目录 A. varchar2类型时间字段(20240102)分区实战1. 表要不要分区2. 将已经存在的表改造为分区表(时间字段&#xff0c;varchar2类型)3. 增加分区3.1 增加分区3.2 置换分区&#xff0c;不会复制索引&#xff0c;不要用这种语法建表&#xff0c;这是专门为置换分区用的3.3 分…

【方法】PPT设置密码后如何修改?

PowerPoint是我们日常和工作中经常用到的办公软件&#xff0c;有时候为了保护文件&#xff0c;还会设置密码&#xff0c;那设置密码后又想要修改密码&#xff0c;怎么操作呢&#xff1f;下面来看看PPT常用的两种密码是如何修改的。 1. “打开密码” 想要修改PPT的“打开密码”…

【深度学习】cv领域中各种loss损失介绍

文章目录 前言一、均方误差二、交叉熵损失三、二元交叉熵损失四、Smooth L1 Loss五、IOU系列的loss 前言 损失函数是度量模型的预测输出与真实标签之间的差异或误差&#xff0c;在深度学习算法中起着重要作用。具体作用&#xff1a; 1、目标优化&#xff1a;损失函数是优化算法…

Modbus 通信协议 二

Modbus 常用缩写 通用Modbus帧结构 -应用数据单元&#xff08;ADU&#xff09; Modbus数据模型 Modbus ADU 和 PDU 的长度 Modbus PDU结构 串行链路上的 Modbus 帧结构 Modbus 地址规则 ASCLL 模式 和 RTU 模式的比较 RTU 模式 RTU 模式位序列 帧格式 帧的标识与鉴别 CRC 循环冗…

2023春季李宏毅机器学习笔记 02 :机器学习基本概念

资料 课程主页&#xff1a;https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.phpGithub&#xff1a;https://github.com/Fafa-DL/Lhy_Machine_LearningB站课程&#xff1a;https://space.bilibili.com/253734135/channel/collectiondetail?sid2014800 一、機器學習基本原理…

【Pytorch】学习记录分享10——TextCNN用于文本分类处理

【Pytorch】学习记录分享10——PyTorchTextCNN用于文本分类处理 1. TextCNN用于文本分类2. 代码实现 1. TextCNN用于文本分类 具体流程&#xff1a; 2. 代码实现 # coding: UTF-8 import torch import torch.nn as nn import torch.nn.functional as F import numpy as np…

canal本地搭建以及运行

具体的文档可参考官网文档&#xff1a;https://github.com/alibaba/canal/wiki canal [kənl]&#xff0c;译意为水道/管道/沟渠&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费 工作原理 canal 模拟 MySQL slave 的交互协议&#x…

01-线程池项目背景:C++的数据库操作

从0开始学习C与数据库的联动 1.原始方式-使用MySQL Connector/C 提供的API查询 1.1 数据库预操作 我的本地电脑上有mysql数据库&#xff0c;里面预先创建了一个database名叫chat&#xff0c;用户名root&#xff0c;密码password。 1.2 Visual Studio预操作 在Windows上使用…

vue3中使用echarts:tooltip的trigger为axis tooltip不显示问题

vue3中使用echarts时&#xff0c;tooltip的trigger设置为axis时formatter不触发 tooltip: {trigger: "axis",formatter: function (params) {console.log("params", params);},axisPointer: {type: "shadow", // 阴影指示器}, },解决办法&#…

10分钟设置免费海外远程桌面使用Amazon Lightsail服务的免费套餐轻松搭建远程桌面

本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道。 目录 前言 使用教程 启动 Amazon Lightsail 实例 配置远程桌面 启动远程桌面 使…

圆通速递单号查询入口,筛选出指定某天签收的单号

随着电商和物流行业的飞速发展&#xff0c;快递单号的管理也成了一个让人头疼的问题。如何快速筛选、整理这些快递单号&#xff0c;成为了提高生活和工作效率的关键。而【快递批量查询高手】的出现&#xff0c;正好可以巧妙的解决上面的问题&#xff0c;下面就来具体看看这款软…

Docker一键极速安装Nacos,并配置数据库!

1 部署方式 1.1 DockerHub javaedgeJavaEdgedeMac-mini ~ % docker run --name nacos \ -e MODEstandalone \ -e JVM_XMS128m \ -e JVM_XMX128m \ -e JVM_XMN64m \ -e JVM_MS64m \ -e JVM_MMS64m \ -p 8848:8848 \ -d nacos/nacos-server:v2.2.3 a624c64a1a25ad2d15908a67316d…

【洛谷千题详解】P5706 【深基2.例8】再分肥宅水

只需要用t/n即可。 AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int main() {float a;int b;cin>>a>>b;double ca/b;printf("%.3f\n",c);cout<<b*2<<endl;return 0; }

VuePress部署到GitHub Pages

一、git push自动部署 1、创建用于工作流的文件 在项目根目录下创建一个用于 GitHub Actions 的工作流 .yml 文件 name: docson:# 每当 push 到 main 分支时触发部署push:branches: [main]# 手动触发部署workflow_dispatch:jobs:docs:runs-on: ubuntu-lateststeps:- uses: a…

问题 E: 便利店

题目描述 天宝来到便利店想买些饮料。便利店有各种型号的瓶装饮料售卖&#xff0c;不同型号的饮料卖不同的价格。1瓶0.25升的卖A元&#xff0c;1瓶0.5升的饮料卖B元&#xff0c;1瓶1升的卖C元&#xff0c;1瓶2升的卖D元。便利店里每种饮料都是无限供应。 天宝要买N升的饮料&a…

逻辑斯蒂回归

逻辑斯蒂回归简介 逻辑斯蒂回归&#xff08;Logistic Regression&#xff09;是一个非常经典的算法&#xff0c;虽然被称为回归&#xff0c;但其实际上是分类模型&#xff0c;并常用于二分类。因为通过逻辑回归模型&#xff0c;我们得到的计算结果是0-1之间的连续数字&#xff…