linux简明教程(1)——前言
一.主流操作系统
-
市面上的主流操作系统有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