Linux---Linux是什么
Linux 便成立的核心网站: http://www.kernel.org
Linux是什么
Linux 就是一套操作系统
Linux 就是核心与系统呼叫接口那两层
软件移植:如果能够参考硬件的功能函数并据以修改你的操作系统程序代码, 那经过改版后的操作系统就能够在另一个硬件平台上面运作了。 这个动作我们通常就称为『软件移植』了
Windows 操作系统本来就是针对个人计算机 x86 架构的硬件去设计的,每种操作系统都是在他专门
的硬件机器上面运行的喔
Linux 提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构, 这个架构是沿袭Unix 良好的传统来的,所以相当的稳定而功能强大
Linux 之前,Unix 的历史
- 兼容分时系统(Compatible Time-Sharing System, CTSS), 它可以让大型主机透过提供数个终端机(terminal)以联机进入主机,来利用主机的资源进行运算工作。他可以让多个使用者在某一段时间内分别使用 CPU 的资源, 感觉上你会觉得大家是同时使用该主机的资源!事实上,是 CPU 在每个使用者的工作之间进行切换, 在当时,这可是个划时代的技术

- 1969 年:Ken Thompson 的小型 file server system
Thompson 的这个文件系统有两个重要的概念,分别是:
- 所有的程序或系统装置都是文件
- 不管建构编辑器还是附属文件,所写的程序只有一个目的,且要有效的完成目标
- 1973 年:Unix 的正式诞生,Ritchie 等人以 C 语言写出第一个正式 Unix 核心
- B—>C==>UNINX
- 相对于汇编语言需要与硬件有密切的配合,高阶的 C 语言与硬件的相关性就没有这么大了!所以,这个改变也使得 Unix 很容易被移植到不同的机器上面
- 1977 年:重要的 Unix 分支–BSD 的诞生
后来可以安装在 x86 硬件架构上面FreeBSD 即是 BSD 改版而来 - 1979 年:重要的 System V 架构与版权宣告
目前被称为纯种的 Unix 指的就是 System V 以及 BSD 这两套 - 1984 年之一:x86 架构的 Minix 操作系统开始撰写并于两年后诞生
既然 1979 年的 Unix 第七版可以在 Intel 的 x86 架构上面进行移植, 那么是否意味着可以将 Unix 改写并移植到 x86 上面了呢? - 1984 年之二:GNU 计划与 FSF 基金会的成立
- GNU 计划
- 写 C 语言的编译程序,那就是现在相当有名的GNU C Compiler(gcc)
- 成立自由软件基金会(FSF, Free Software Foundation)
- 还撰写了更多可以被调用的 C函式库(GNU C library)
- 以及可以被使用来操作操作系统的基本接口 BASH shell
- GNU 的通用公共许可证
通用公共许可证(General Public License, GPL),并且称呼他为 copyleft(相对于专利软件的 copyright!
由于有 GNU 所开发的几个重要软件,如:
- Emacs
- GNU C (GCC)
- GNU C Library (glibc)
- Bash shell
关于 GNU 计划、自由软件与开放原始码
一个软件挂上了 GPL 版权宣告之后,他自然就成了自由软件!这个软件就具有底下的特色:
- 取得软件与原代码:你可以根据自己的需求来执行这个自由软件;
- 复制:你可以自由的复制该软件;
- 修改:你可以将取得的原始码进行程序修改工作,使之适合你的工作;
- 再发行:你可以将你修改过的程序,再度的自由发行,而不会与原先的撰写者冲突;
- 回馈:你应该将你修改过的程序代码回馈于社群!
但请特别留意,你所修改的任何一个自由软件都不应该也不能这样:
- 修改授权:你不能将一个 GPL 授权的自由软件,在你修改后而将他取消 GPL 授权~
- 单纯贩卖:你不能单纯的贩卖自由软件。
托瓦兹 的 Linux 发展
与 Minix 之间
汇编语言(Assembly Language):那是一种直接与芯片对谈的程序语言,也就是所谓的低级语言。 必须要很了解硬件的架构,否则很难以汇编语言撰写程序的。
对 386 硬件的多任务测试
假设 CPU 频率为 1GHz 的话,那表示 CPU 一秒钟可以进行 109 次工作。
Linux 的核心版本
奇数、偶数版本分类(3.0 推出之后就失效了。)
- 主、次版本为奇数:发展中版本(development)
如 2.5.xx,这种核心版本主要用在测试与发展新功能,所以通常这种版本仅有核心开发工程师会使用。 - 主、次版本为偶数:稳定版本(stable)
如 2.6.xx,等到核心功能发展成熟后会加到这类的版本中,主要用在一般家庭计算机以及企业版本中。
主线版本、长期维护版本(longterm version)
- 例如 3.10 就是在 3.9 的架构下继续开发出来的新的主线版本。
- 而旧的版本在新的主线版本出现之后,会有两种机制来处理,一种机制为结束开发 (End of Live, EOL),亦即该程序代码已经结束,不会有继续维护的状态。 另外一种机制为保持该版本的持续维护,亦即为长期维护版本 (Longterm)!
- ,如果你想要使用 Linux 核心来开发你的系统,那么当然要选择长期支持的版本才行!要判断你的 Linux 核心是否为长期支持的版本, 可以使用『 uname -r 』来查阅核心版本,然后对照下
列连结来了解其对应值! https://www.kernel.org/releases.html
Linux 发行版
- 可完全安装的 Linux 发行版
『内核+ 软件 + 工具+ 可完全安装程序』的东西,我们称之为 Linux distribution, 一般中文翻译成Linux发行版,或者 Linux 发布商套件等
底下列出几个主要的 Linux distributions 发行者网址:
- Red Hat
- SuSE
- Fedora
- CentOS
- Debian
- Ubuntu
- Gentoo
Linux 当前应用的角色
企业环境的使用
- 网络服务器
- 关键任务的应用(金融数据库、大型企业网管环境)
- 学术机构的高效能运算任务
个人环境的使用
- 桌面计算机
X Window System 仅只是 Linux 上面的一套软件, 而不是核心喔!所以即使 X Window 挂了,对 Linux 也可能不会有直接的影响 - 手持系统(PDA、手机)
Android 其实就是 Linux 核心的一支,只是专门用来针对手机/平板这类的 ARM 机器所设计的 - 嵌入式系统
云端运用
- 云程序
透过虚拟化技术,你可以将一部实体主机安装多个同时运作的操作系统 (非多重引导),以达到将硬件资源完整利用的效果。 - 端设备
该如何学习
从头学习 Linux 基础
- 计算器概论与硬件相关知识
- 先从 Linux 的安装与指令学起
- Linux 操作系统的基础技能
- 务必学会 vi 文书编辑器
- Shell 与 Shell Script 的学习
- 一定要会软件管理
- 网络基础的建立
计算机基础
网络基础
选择一本易读的工具书
请推荐有关网络的书
实践再实践
(Study-Area)
发生问题怎么处理
- 在自己的主机/网络数据库上查询 How-To 或 FAQ
- Linux 自己的文件数据: /usr/share/doc (在你的 Linux 系统中)
- CLDP 中文文件计划 http://www.linux.org.tw/CLDP/
- The Linux Documentation Project:http://www.tldp.org/
- 鸟哥网站: http://linux.vbird.org/Searching.php
- 如果是网络服务的问题时,请到/var/log/这个目录里头去查阅一下 log file(登录档),这样可以几乎解决大部分的问题了!
- 提问的智慧 http://phorum.vbird.org/viewtopic.php?t=96
- 酷学园讨论区 http://phorum.study-area.org
- 鸟哥的私房菜馆讨论区 http://phorum.vbird.org
相关文章:
Linux---Linux是什么
Linux 便成立的核心网站: http://www.kernel.org Linux是什么 Linux 就是一套操作系统 Linux 就是核心与系统呼叫接口那两层 软件移植:如果能够参考硬件的功能函数并据以修改你的操作系统程序代码, 那经过改版后的操作系统就能够在另一个硬…...
C语言(Tgmath.h库(C99),exit和atexit)
一.Tgmath.h库(C99) C99标准提供得tgmath.h头文件定义了泛型类型宏。比如在math.h中为一个函数定义了3中类型(float,double和long double)的版本,那么tgmath.h文件就创建一个泛型类型宏,与原来的float,double和long double版本的…...
LeetCode 刷题系列 -- 739. 每日温度
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。示例 1:输入:temperatures …...
如何生成毕业论文的目录和创建模板
有粉丝同学最近在写毕业论文,其中比较让人恼火的是毕业论文的目录,折腾了几遍没弄好,想让我写个简单地教程,那就来吧。主要分为三步:第一步是从模板里面提取标题的样式,第二步是对自己的论文使用设置好的标…...
新来的23岁软件测试员上来秀了波操作,把几个老员工看傻了
春招了,公司来了个小伙子,一看简历,嘿?22岁,这不刚毕业的小毛孩子嘛,结果没想到人家上来就把现有项目的性能优化了一遍,给公司节省了一半的成本,这种“王炸”打法,直接给…...
Window10开放某个端口
需求:由于防火墙原因,开放某个端口:如9999 在开始那里搜索防火墙-进入防火墙 第一步:核实是否启动了防火墙,之后进行 第二步:点击“高级设置”,→“入站规则”→“新建规则”→“端口”→ “下一步” …...
进阶7 分页查询
进阶7 分页查询!!! 目录概述练习题概述 应用场景:当要显示的数据一页显示不全,需要分页提交SQL请求 语法: select 查询列表 from 表名 【join type join 表2 on 连接条件 where 筛选条件 group by 分组字段…...
利用升序定时器链表处理非活动连接
参考自游双《Linux高性能服务器编程》 背景 服务器同常需要定期处理非活动连接:给客户发一个重连请求,或关闭该连接,或者其他。我们可以通过使用升序定时器链表处理非活动连接,下面的代码利用alarm函数周期性的触发SIGALRM信号&a…...
MySQL 开发规范
一、数据库命名规范所有数据对象名称必须小写 :db_user禁止使用MySQL 保留关键字,若是则引用 临时表以tmp_ 开头,备份表以bak_ 开头并以时间戳结尾所有存储相同数据的列名和列类型必须一致二、数据库基本设计规范1、MySQL…...
【C语言进阶】预处理与程序环境
目录一.详解编译与链接1.前言2.翻译环境3.剖析编译过程4.运行环境二.预处理详解1.预定义符号2.剖析#define(1).定义标识符(2).定义宏(3).替换规则(4).#和##(5).宏与函数的对比(6).#undef3.条件编译4.文件包含(1).头文件包含的方式(2).嵌套文件包含一.详解编译与链接 1.前言 在…...
【Docker知识】将环境变量传递到容器
一、说明 程序通常通过与软件捆绑在一起的配置来控制操作,环境变量允许用户在运行时设置它们。但是,在 Docker 容器中运行进程会使事情变得复杂,那么如何将环境变量传递给容器呢?下面介绍若干个传递办法。 二、环境变量有何用途 环…...
Allegro如何更改铜皮显示密度操作指导
Allegro如何更改铜皮显示密度操作指导 用Allegro做PCB设计的时候,铜皮正常显示模式如下图 铜皮的密度是基本填充满的,Allegro支持更改铜皮的显示密度 如下图 如何更改密度,具体操作如下 点击setup...
ThinkPHP5酒店预订管理系统
有需要请私信或看评论链接哦 可远程调试 ThinkPHP5酒店预订管理系统一 介绍 此酒店预订管理系统基于ThinkPHP5框架开发,数据库mysql,采用了ueditor富文本编辑器。系统角色分为用户,员工和管理员。用户可注册登录并预订酒店和评论等ÿ…...
【MySQL】MyCat分库分表分片规则配置详解与实战(MySQL专栏启动)
📫作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建工设优化。文章内容兼具广度深度、大厂技术方案,对待技术喜欢推理加验证,就职于知名金融公…...
OpenWrt路由器设置域名动态解析手把手教程
文章目录0、前言1、准备工作2、详细步骤2.1、OpenWrt路由器软件包安装2.2、防火墙放行入站数据(修改为“接受”并保存应用)2.3、域名解析服务商对域名的解析设置2.4、路由器中动态域名插件的设置0、前言 因为一直用着内网穿透(zerotier或者是…...
java流浪动物救助系统(毕业设计)
项目类型:Java web项目/Java EE项目(非开源) 项目名称:基于JSPServlet的流浪动物救助网站[dwjz_web] 进行源码获取 用户类型:双角色(爱心人士、管理员) 项目架构:B/S架构 设计思…...
阿里代码规范插件中,Apache Beanutils为什么被禁止使用?
在实际的项目开发中,对象间赋值普遍存在,随着双十一、秒杀等电商过程愈加复杂,数据量也在不断攀升,效率问题,浮出水面。 问:如果是你来写对象间赋值的代码,你会怎么做? 答…...
NFC enable NFC使能流程
同学,别退出呀,我可是全网最牛逼的 WIFI/BT/GPS/NFC分析博主,我写了上百篇文章,请点击下面了解本专栏,进入本博主主页看看再走呗,一定不会让你后悔的,记得一定要去看主页置顶文章哦。 NFC enable NFC使能流程 认识nfc系统如何工作,最好的方法就是了解nfc的各个流程,…...
Redis实例绑定CPU物理核优化Redis性能
进入本次Redis性能调优之前,首先要知道CPU结构也会影响Redis的性能。接下来,具体了解一下!为什么CPU结构也会影响Redis的性能?主流的 CPU 架构一个 CPU 处理器中一般有多个物理核,每个物理核都可以运行应用程序。每个物…...
STC15中断系统介绍
STC15中断系统介绍✨本篇参考来源于STC官方stc15系列手册:538页- 589页。(文末提供该摘取部分的文档资料) 🎉在官方提供的手册资料中,一个系列一份手册,手册内容涵盖了数据手册和参考手册以及例程案例。对于学习着来说…...
ARM ETE Trace技术:非侵入式调试与TRCEVENTCTL寄存器详解
1. ARM ETE Trace技术概述在嵌入式系统开发中,调试和性能分析一直是极具挑战性的任务。传统的断点调试方式会中断程序执行流,难以捕捉实时性问题。ARM架构下的ETE(Embedded Trace Extension)技术通过非侵入式的指令跟踪机制,为开发者提供了强…...
测试Leader的进阶困境:从管事到管人,再到管战略
在软件测试领域,从一名优秀的测试工程师晋升为测试Leader,往往被视为职业生涯的一次重要跃迁。然而,这场跃迁并非终点,而是一段更为复杂、充满挑战的旅程的开端。许多新晋测试Leader很快就会发现,自己陷入了一种前所未…...
Freewall深度解析:揭秘高性能网格布局引擎的实现原理
Freewall深度解析:揭秘高性能网格布局引擎的实现原理 【免费下载链接】freewall kombai/freewall: Freewall 是一个灵活、响应式的网格布局引擎,可用于创建具有自适应布局功能的网页或应用组件,尤其适合于图片墙、瀑布流布局等场景。 项目地…...
一文讲透编程基础的3大核心模块,新手入门再也不迷茫
文章目录前言一、数据结构:程序的骨架,没有它代码就是一盘散沙1.1 为什么AI写的代码你改不动?因为你不懂数据结构1.2 新手必学的5个核心数据结构,多一个都不用先学(1)数组:最基础也最重要的数据…...
Adafruit Feather 32u4 FONA:基于Arduino与2G GSM的物联网远程通信开发板实战指南
1. 项目概述与核心价值如果你正在寻找一款能让你快速将物联网设备“扔”到世界任何角落,并且还能打个电话、发条短信的开发板,那么Adafruit Feather 32u4 FONA绝对值得你花时间研究。我最初接触它,是为了一个野外环境监测项目,需要…...
AI Agent编排实战:OPC v5.0如何实现多智能体协作与工程化任务管理
1. 项目概述:一人公司的AI CEO最近在折腾AI Agent编排,发现了一个挺有意思的项目,叫OPC(One-Person Company)。简单来说,它不是一个独立的AI应用,而是一个给OpenClaw这个AI智能体平台用的“技能…...
AG32从零开始---用纯cpld点亮LED灯
1.AG32官方给的教程又乱又少真是的,我一个小菜鸡点个灯都要研究半天,诶呀烦死了2.别问我为什么只用cpld,工作需要,mcucpld点灯更是复杂3.用纯cpld编程需要安装软件Quartus II和Supra(自己研究)最新Supra下载…...
Jetpack Compose + 协程(Coroutine)完整实战教程
Jetpack Compose 协程(Coroutine)完整实战教程 现代 Android 开发里: Compose 协程 Flow 已经是官方主流架构。 如果你只会: Button(onClick {})但不会: LaunchedEffectrememberCoroutineScopeStateFlowcollectAsS…...
2026年AI大模型API中转站深度测评:谁能成为生产环境下的最优解决方案?
2026年,AI模型的迭代速度进一步加快。从年初在技术社区引起轰动的OpenClaw架构,到GPT - 5.4、Claude 4.6等性能领先的通用模型,再到视频生成领域的Sora2与Veo3,模型之间的竞争愈发激烈。然而,国内开发者在调用这些模型…...
Linux下串口连接与CircuitPython开发实战指南
1. 项目概述:为什么串口是嵌入式开发的“生命线” 如果你玩过Arduino、树莓派Pico,或者正在捣鼓CircuitPython开发板,那么“串口”这个词对你来说一定不陌生。它就像一条看不见的数据管道,连接着你的电脑和那块小小的开发板。在W…...
