改变您对Fedora的印象

news2025/1/15 7:01:48
导读我是 Fedora 的老用户了,从四年前接触嵌入式 Linux 开始,Fedora 就是我的桌面操作系统,期间从未被其他操作系统替代过,偶尔尝试也会第二天就装回来。用得愈久愈是喜欢,简洁、漂亮、稳定,无一不击中我,到今天已经四年,所以写点什么纪念一下。

使用印象

其实 Linux 和 Windows 相争这么多年,它在桌面操作系统的市场占有率仍然很可怜。虽然这两年貌似开源软件越来越火了阿,但它还是集中在极客圈。让一个没有写过程序的普通人接受 Linux 是很有难度的,陡峭的入门曲线足以吓退很多小菜鸟。诸位已享受 Linux 便利的 geek 们,不要忘记你们曾经的痛苦,不要忘记那一个接一个的坑,从而铭记,切勿向他人推荐 Linux 操作系统,除非他人主动找上门来。

使用并爱上 Linux 操作系统(或者应该称为 GNU/Linux)的人,会给人这样的印象:聪明、善良、天真,缺乏安全感。这应该算是褒奖,因为我也是这样的人(额,好像顺带夸了以下自己)。Linux 之父 Linus Torvalds 就是这样的气质,就像猫一样,身手矫健,充满力量,热爱自由。气质,主要是气质,Linus 肥肥的啤酒肚和身手矫健实在扯不上关系。

在 Linux 的世界里,你就是上帝(此处的你指 root)。基本上,你可以对 Linux 做任何事情,rm -rf /命令是个简单的例子,你也可以把放置在硬盘上的内核删掉,然后重新编译一个替代它。Linux 不会对你做任何限制,它假设你永远知道自己在做什么。这对于程序员或者工程师,是难以言说的魅力,光是想想可以做的事情,就足够让人兴奋。

我曾经在用 Linux 做单片机 MSP430 开发的时候,由于 MSP430 并不会设置芯片唯一序列号,如果我们需要 UUID,可以自己生成一个,和程序一起写进 Flash。mspdebug 是开源软件,从官方网站获取它的源代码后,在其 ui/devcmd.c 文件里的 do_cmd_prog() 函数中,fork 子进程调用 uuidgen 程序,得到唯一序列号后,调用 device_writemem() 函数写入对应地址即可。

这对于商业软件来说是不可想象的,因为我们未必能联系上软件开发者;就算联系上了,他/她也未必愿意或有条件帮我们调试这个功能;再者,有可能费用也超过我们的负担。而在 Linux 世界里,我只需要在 mspdebug 源代码中添加不到 100 行语句,以及掌握 C 语言和 GCC 编译器的使用、MSP430 单片机的地址分配、fork 和 exec 方法……开源软件降低了发挥创造力的门槛,它从诞生之日起,就深刻地改变了世界。

Linux 桌面发行版有很多种,他们各自有各自的特点,没有孰优孰劣之分,只有适不适合,或者说是否有机缘。Ubuntu 非常易用,它为非程序员用户花了很多心思;openSUSE 非常漂亮华丽;Gentoo 是高度优化的操作系统,适合高级用户……我刚开始接触嵌入式 Linux 开发时,开发板手册推荐的主机操作系统是 Fedora,由此一路至今,Fedora 已经更新到了 24,它一如既往地帮助和便利我的工作和生活。

Fedora的特点

简洁

这也是它给我的最深的感受,除非某个配置、库或程序是大多数用户合乎逻辑的选择,它才会在安装时包含它,所以 LibreOffice 是默认安装程序,而 GIMP 不是;Firewalld 是默认安装程序,而图形化界面 firewall-config 则不是。Fedora 的系统设置选项也非常少,触摸板的“Tap to Click”可以设置,但鼠标的颜色、大小都无法更改(可安装 gnome-tweak-tool 来设置系统和鼠标主题);壁纸可以更改,但顶部的任务栏无法更改位置和形态;字体永远是经典的那几个,Source Han Sans CN 我用了整整四年;到今日我已不知屏保为何物……习惯了这种选择很少的状态,以至于不再对系统的细节审美报任何期待。什么也不用改,默认的就很好,就像一间干净整洁的厨房,有灶,有水槽,有置物架,然而再没有多余的东西,锅碗瓢盆请自行添置,微波炉烤箱电饭锅出门右拐电器城。这是一间建筑合理、水电安全的厨房,等待着它的用户来建设自己心目中的美好生活。

完备

这似乎和之前的简洁有冲突,然而它们并不矛盾。使用 Fedora 来 bring up 一台计算机是很简单的,你通常不用担心某个硬件无法识别,或者安装步骤过于繁琐。当我无法使用某个系统镜像来启动计算机时,Fedora 通常能顺利的完成任务。它对硬件的支持很完备,对安装方法的支持也很完备。Fedora 首页上是这样描述的:“更少的配置,更多的创新。只需选择一个满足您需求的 Fedora 产品,便可立即开始使用。”它的设计理念形成了自身的独特气质。

符合Linux编程标准

在 Fedora 下安装某个软件,如果它提示需要某个依赖,那么这个依赖一定可以在大多数 Linux 发行版中找到。如果一份代码能够在 Fedora 下正确的编译,那么它在其他 Linux 发行版中的编译也通常不会遇到什么问题。

更新迅速

如果软件或库有了最新的稳定版,Fedora 通常会紧接着更新它,而不是保留之前的老版本。Fedora 24 刚发布时,存在 LibreOffice 粘贴图片闪退的问题,然而紧接着的 update 就修复了它。迅速的更新得力于 Fedora 社区的高水准与勤劳,也得力于 Redhat 公司对于 Fedora 项目的有力支持。

很多人会有这样一个印象,觉得 Fedora 是 Redhat 的小白鼠,因此它肯定激进、冒险,有很多不稳定因素。然而事实上,正是因为 Fedora 是为服务器而准备的桌面发行版,因此它的开发策略仍然偏向保守。它被严格地限定在标准 Linux 的框架内,如果一个程序提供的是捷径而不是逻辑上的方法,那它很难被 Fedora 所接受,除非它本质上就是为了捷径而存在。这也意味着所谓 Fedora 不适合做技术开发,只是大多数人的刻板印象而已。我在 Fedora 下进行的 STM32、MSP430、Qt 和 OpenCV 等等的工作,几乎都非常顺利,电路制版软件 Cadsoft Eagle 总是会良好的运行。事实上,Fedora 系统很适合做嵌入式开发,在我看来,比 Windows 或其他 Linux 发行版都更加适合。

Eric.S.Raymand 著作的《大教堂与集市》论述了集市(开源文化)可以与大教堂(商业开发)比肩的原因,讲述了程序员对自由和分享的追求,以及这会带来的无以伦比的创造力。如今的 Fedora 已经走过了第 13 个年头,它伴随我走过了人生中成长最迅速的四年,也将继续伴随我接下来的人生。

祝福你,Fedora!祝福你,自由与分享的开源世界!更多Linux资讯请查看:https://www.linuxprobe.com

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenGL学习(基础光照)

这些光照模型都是基于我们对光的物理特性的理解。其中一个模型被称为冯氏光照模型(Phong Lighting Model)。冯氏光照模型的主要结构由3个分量组成:环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照 环境光照 全局照明(Global Illumination)算法,但是…

吴恩达《机器学习》——线性回归代码实现

线性回归1. 单变量线性回归单变量线性回归公式损失函数优化算法——批梯度下降(BGD)2. 多变量线性回归特征缩放(标准化)参数的逆缩放3. 线性回归算法代码实现向量实现Python代码4. 实验结果单变量回归多变量回归实验总结数据集、源…

使用C#开发Word VSTO外接程序示例

目标:实现类似word中导航栏视图的功能。 创建新项目,选择模板“Word VSTO 外接程序”。选择工程,新建项目---新建功能区(可视化设计器)双击打开新建的可视化编辑器,编辑容器RibbonGroup在容器RibbonGroup里…

ReactJS入门之Model层

目录 一:分层 二:使用DVA进行数据分层管理 三:在model中请求数据 四:mock数据 一:分层 上图中,左侧是服务端代码的层次结构,由Controller、Service、Data Access 三层组成服务端系统&#…

Docker图文 | Docker、Dockerfile、Docker-compose、Docker镜像仓库操作 | 系统性学习 | 无知的我费曼笔记

Dokcer和Linux一样都是一些死命令,不必花费过多的时间去学习。 也不必花费过多时间专项地记忆,在实际运用中随用随取即可。 还不如将省下来的时间更多地花费在于培养思维上。 文章目录Docker1.初识Docker1.1.Docker意义1.1.1.应用部署的环境问题描述1.1…

Antd UI Switch组件 中 checked与defaultChecked踩坑记录

目录 需求分析 问题发现 解决方法 总结 需求分析 需求其实很简单,就是在对应的表格行内添加一个人switch 滑块,用于开启或关闭单点登录入口。只需要修改一下对应的表格,添加一个滑块组件,新增一个接口。于是菜鸡博主&#xf…

MySQL库的基本操作与数据库的备份

目录 1、什么是数据库 2、数据库的基本使用 <1>本地连接服务器 <2>创建数据库 <3>创建数据库实例 <4>字符集和校验规则 3、操纵数据库 <1> 查看数据库 <2> 显示创建语句 <3> 修改数据库 <4> 数据库删除 <5>…

遇到的问题

一、git 1. git push之前忘记git pull:需要指定如何协调不同的分支。 解决&#xff1a; (1) git config pull.rebase false (2) git status 用于查看在你上次提交之后是否有对文件进行再次修改 (3) git stash 将当前的工作状态保存到git栈 2. 删除本地分支 # 删除本地分支 git…

【C++初阶】C++的IO流

文章目录C语言的输入输出流CIO流C标准IO流C文件IO流stringstream的简单介绍所有的测试代码C语言的输入输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据&#xff0c;并将值存放在变量中。printf(): 将指定的文字/字…

Python最适合做什么?

Python最适合做什么&#xff1f; 最近我在Reddit上讨论了为什么有人会使用Python而不是其他编程语言。这个讨论非常好&#xff0c;因此我想写一篇关于它的文章。 首先&#xff0c;让我告诉你我对Python的看法。Python是我喜欢的一种语言&#xff0c;可以用于各种各样的应用&a…

spark读取elasticSerach

搭建参考:我的这篇 elasticsearch搭建_我要用代码向我喜欢的女孩表白的博客-CSDN博客 为了方便测试&#xff0c;我们先建立个索引&#xff0c;如果没有索引&#xff0c;他也能插入&#xff0c;只是走的是默认插入格式。 不过虽然接触es已经4年了&#xff0c;但是在工作中&…

XSS攻击原理及预防方法

XSS攻击通常都是通过跨站指令代码攻击网站的后台漏洞。它和信息隐性代码攻击攻击的目标不同。前者是透过从Web前端输入信息至网站&#xff0c;导致网站输出了被恶意控制的网页内容&#xff0c;使得系统安全遭到破坏。而后者则是输入了足以改变系统所执行之SQL语句内容的字串&am…

【解决方案】一种简单且实用的化工厂人员定位系统

化工厂人员定位系统是推进我国安全生产状况持续稳定好转的有效载体&#xff0c;对化工行业的科学发展、安全发展起着重要的促进作用。 化工厂安全责任重于泰山&#xff0c;一旦发生事故后果不堪设想。目前&#xff0c;化工企业还存在着缺乏实时监督、缺乏主动干预、缺乏精准救援…

SpringCloud(9)— Elasticsearch聚合和自动补全

SpringCloud&#xff08;9&#xff09;— Elasticsearch聚合和自动补全 一 数据聚合 1.聚合的分类 聚合&#xff08;aggregations&#xff09;可以实现对文档数据的统计&#xff0c;分析&#xff0c;运算。常见的聚合有三种&#xff1a; 1.桶聚合&#xff08;Bucket&#x…

磁场传感器调研报告

目录 一.磁场传感器 二.磁场传感器工作原理 2.1霍尔效应原理 2.2霍尔传感器工作原理 三.磁场传感器分类介绍 3.1磁阻敏感器 3.2磁性液体加速度传感器 3.3磁性液体水平传感器 四.磁性传感器的应用 4.1汽车 4.2消费类电子产品 4.3工业智能控制和自动化 五、总结 一.…

iftop工具(网卡流量监控软件)的使用

直接运行iftop&#xff0c;不加任何参数 界面显示 界面上面显示的是类似刻度尺的刻度范围&#xff0c;为显示流量图形的长条作标尺用的。 中间的< >这两个左右箭头&#xff0c;表示的是流量的方向。 TX&#xff1a;发送流量 RX&#xff1a;接收流量 TOTAL&#xff1a;总…

open-local部署之后k8s的kube-scheduler挂掉问题

搭建一套k8s集群之后&#xff0c;本地存储化方案选择了阿里巴巴的open-local&#xff0c;没部署open-local&#xff0c;k8s 的kube-scheduler一切正常&#xff0c;只要按照官方文档部署了open-local&#xff0c;k8s的kube-scheduler就会挂掉&#xff0c;不是被kill掉&#xff…

Go的并发模型

Go的并发模型 文章目录Go的并发模型一、GO并发模型的三要素1.1 操作系统的用户空间和内核空间1.2 线程模型的实现&#xff08;1&#xff09;用户级线程模型&#xff08;2&#xff09;内核级线程模型&#xff08;3&#xff09;两级线程模型1.3 GO线程实现模型MPG二、什么是gorou…

选择题

目录 1058:选择题 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 代码长度限制: 时间限制: 内存限制: 思路: 1.选择题结构体 1.2 选择题结构体代码 2.判断选择题是否做对函数 2.1 判断选择题是否做对函数代码: 3.选择题的输入…

【并发】深入理解JMM并发三大特性(二)

t【并发】深入理解JMM&并发三大特性&#xff08;二&#xff09; 我们在上一篇文章中提到了JMM内存模型&#xff0c;并发的三大特性&#xff0c;其中对可见性做了详细的讲解&#xff01; 这一篇文章&#xff0c;将会站在硬件层面继续深入讲解并发的相关问题&#xff01; …