初探 Unix 操作系统

本贴最后更新于 1927 天前,其中的信息可能已经时过境迁

在互联网公司里面,基本大大小小所有的服务器端应用程序都是部署在 Linux 服务器上面。由于之前在外企工作,开发的应用程序需要依赖于 Windows 的 API,因此程序都是部署在 Windows Server 上面,导致自己对 Linux 也是只知道皮毛。所以就趁这段时间系统的学习一下 Linux 操作系统的基础知识。不求精通,但求能在工作上能够熟练操作,例如编写一些 Shell 脚本,配置一些环境变量,部署一些程序等。恰好翻到书柜里面的这本书 《Unix 入门经典》,大家都知道 Linux 是芬兰研究生 Linus Torvalds 基于 Unix 开发的类 Unix 系统,于是就顺手看了起来。

Unix 操作系统于 1969 年 诞生于美国电话电报公司(AT&T)的贝尔实验室,这家公司可能很多人没听说过,但是从贝尔实验室创造出来的东西,大家肯定都是耳熟能详的,例如 C,C++ 编程语言,晶体管,太阳能电池,激光等。这款操作系统制作出来以后,贝尔实验室为了扩大它的使用率,使用者对它支付很小的一笔费用即可获得它的源代码。因为很多高校里面的教师都购买它来教学使用,这样高校里面的学生毕业以后到企业里面工作后,因为他们熟悉 Unix,随之就会采购 Unix 来应用在工作上面,因此这也为 Unix 的广泛使用奠定了很好的基础。

在科技发展的长河中,基于 Unix 操作系统衍生出来很多版本,最基本的俩个分叉是 AT&T System V 和 BSD(Berkley Software Distribution)。基于这俩个系统分叉,后面演变出来了很多的版本的 Unix 操作系统来满足不同的应用场景。例如,比较出名的有 Sun Microsystem's Solaris Unix, IBM AIX, Red Hat Enterprise Linux, Fedora Core, Mac OS X, Free BSD, Open BSD 等等。许多供应商想标准化 Unix,其中最成功的 IEEE 的一个产品 POSIX 标准,虽然不是所有的 Unix 都按照此标准生产,但是大多数都遵循了标准中的主要原则。

作为一款成熟而如此流行的操作系统,负责和底层硬件打交道,一些系统的核心组件是必不可少的。Unix 的组件有:内核,shell,文件系统,实用程序。

内核会控制内存,进程,输入输出设备,文件系统操作等核心功能,它是为特定的硬件而构造的,因此当你把运行在 Intel 处理器的内核要运行在其他型号的处理器时候,你需要更改内核来适应新的处理器,但是随着操作系统的发展,很多衍生版本都做了很好的兼容性,不需要我们自己去更改。

Shell 是一个命令行解释器,它提供了很多指令来供我们使用。我们可以通过在终端输入 shell 指令来操作 Unix 操作系统,当然对于不会 shell 命令的小白也可以使用图形界面来操作。shell 的种类有很多种,大多数操作系统中都有三种 shell。Bourne shell(使用最广泛),C shell 改进了 Bourne shell 的一些缺点,类似于 C 语言,更改缺点的同时引入了另外一些缺点。Korn shell 改进了 C shell 的缺点,综合了 Bourne shell 和 C shell 的优点,但是由于它需要使用许可证,因为没有得到流行。

文件系统提供了我们对文件操作的功能,还有经常需要使用邮件接收软件,internet 上网程序也是 Unix 非常重要的组件。

以上为 Unix 操作系统的简单概述,我会继续学习后面的章节,学完后和小伙伴们一起分享,探讨。

欢迎扫码关注我的公众号: 码农尼克,一起来学习。

  • Unix
    7 引用 • 17 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 58 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 67 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 134 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    8 引用 • 30 回帖 • 407 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 94 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 51 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    179 引用 • 995 回帖
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 62 关注
  • OnlyOffice
    4 引用 • 3 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    25 引用 • 191 回帖 • 16 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    125 引用 • 169 回帖 • 1 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 31 关注
  • 安全

    安全永远都不是一个小问题。

    199 引用 • 816 回帖 • 1 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖 • 1 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1434 引用 • 10054 回帖 • 490 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1387 回帖 • 283 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 664 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 362 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 3 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 463 关注