zhngs

zhngs

linux简明教程(1)——前言

一.主流操作系统
二.linux发行版
1.什么是linux
2.linux组成
3.linux发行版
三.如何学习linux
1.看待linux
2.linux学习本质论
3.最小版本linux教程

一.主流操作系统

  • 市面上的主流操作系统有windows,mac,linux,android,ios,简单介绍几种分类方式

  • 按照设备类型分类,PC端分为windows,mac和linux,移动端分为android,ios

  • 按照网络C/S架构分类,客户端分为windows,mac,android和ios,服务器端分为linux

  • 按照操作系统内核分类,linux,mac,android,ios都是类unix系统,可以分为一类,windows分为另一类。linux,mac,ios是unix的变种,android原本是linux的一个分支,因为违反开源精神,后来被linux除名,感兴趣的可以自行了解

二.linux发行版

1.什么是linux

  • 简单来说,linux是现今最流行的类unix系统,已经霸占了全球的服务器市场

2.linux组成

  • 笔者曾做过linux系统和驱动移植,想要自己做一个linux操作系统,首先需要硬件设备(linux开发板),然后满足以下三个条件:linux内核、根文件系统、设备树,你就得到了自己手动DIY的一个linux操作系统

  • linux内核中包含了操作系统需要的核心功能,如进程管理,内存管理,设备驱动等。我们通常所说的linux实际上是linux内核,其项目地址可以在github找到

  • 根文件系统中包含了linux内核启动所需要的各种文件和脚本等,通俗说就是顶级目录"/"下的所有内容

  • 设备树中包含了硬件设备的所有信息,以树的形式组成,供linux内核中的设备驱动程序使用

3.linux发行版

  • linux发行版就是不同的厂家,为linux内核搭配不同的根文件系统和设备树,组成的操作系统版本,但其操作系统内核都是一样的

  • 比较流行的发行版有ubuntu,centos,debian,kali等

三.如何学习linux

1.看待linux

  • linux是一个非常庞大的知识体系,想要完全掌握是不可能的,不同的从业人员眼中对linux的定义并不一样:后端开发人员关注的更多是linux提供的系统调用,在linux上开发出性能更高的程序,这就需要学习不同系统调用有什么效果,有哪些坑需要避免;驱动程序开发人员关注的更多是linux内核源码中驱动程序的编写方法;运维工程师关注的更多是监控linux系统负载情况如何,网络情况如何

  • 对于新手来说,更多的应该把linux看成一个工具,不要心存畏惧,当你深入了解unix哲学后,肯定会喜欢上linux系统的

2.linux学习本质论

  • 一个新手想要快速上手linux,并且能够感觉到linux使用非常舒服,只需要掌握以下三件事即可:

  • 一是接纳命令行界面,抛弃以前使用windows图形界面的经验,这是非常重要的一点,做不到这一点,你永远也学不好linux。图形界面能做到的,命令行都能做到,并且做的更快,更好,更精准,因为图形界面的底层本质就是将操作转换成一个个命令去执行,它隐藏了计算机的细节与美

  • 二是学好shell,你无法直接和linux内核,根文件系统和设备树打交道,这些都是底层的东西。我们需要一个代理,可以和人进行沟通,然后转发给操作系统并执行我们的命令,这个代理就是shell。不清楚shell的脾气,在linux下你会举步维艰

  • 三是掌握常见命令的用法,这些命令实际上就是一个个的命令行程序,是由程序开发人员编写的,感兴趣的可以翻一翻《unix环境高级编程》这本经典书籍,里面会有详细介绍。对于想要学习linux的新手来说,只需要掌握怎么使用就可以了,因为铸剑师不等于用剑高手,写命令行程序的人不一定命令用的明白

3.最小版本linux教程

  • 本教程是一个最小版本的linux教程,旨在把linux系统作为一个工具的本质抽离出来,帮助新手快速掌握linux