一幅漫画带你了解Linux内核,建议收藏!

举报
Lucifer三思而后行 发表于 2021/10/28 11:49:24 2021/10/28
【摘要】 作者简介作者:LuciferLiu,中国DBA联盟(ACDU)成员。目前从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。 前言今天网上冲浪,无意间看到一幅讲解Linux内核的漫画,觉得很有意...

作者简介

  • 作者:LuciferLiu,中国DBA联盟(ACDU)成员。
  • 目前从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。
  • 现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。

前言

  • 今天网上冲浪,无意间看到一幅讲解Linux内核的漫画,觉得很有意思,拿出来给大家分享一下。

inside the linux kernel

一眼望去,这幅漫画是以一座房子为载体,小企鹅,小狗,小丑等等成员组成的大家庭,各自分工明确,井然有序,将房子比作Linux内核真是形象有趣。

一、介绍

  • 看看作者为我们标出的成员:
  • file system(文件系统)
  • process table(进程表)
  • httpd process(httpd 进程)
  • watchdog process(看门狗进程)
  • ssh daemon(ssh进程)
  • cron(计划任务)
  • wine process(Wine进程)
  • pipes(管道)
  • terminals and terminal processes(终端和终端进程)

1 文件系统(file system)

  • 万丈高楼平地起,就从地基开始说起吧!
    文件系统
  • 顾名思义,文件系统就是存放文件的位置。漫画中形象的比喻为文件柜和文件。
  • 地基(底层)由一排排的文件柜组成,井然有序,文件柜里放置着 “文件” — 电脑中的文件。
  • 左上角,有一只胸前挂着 421 号牌的小企鹅,它表示着 PID(进程 IDProcess ID) 为 421 的进程,它正在查看文件柜中的文件,这代表系统中正有一个进程在访问文件系统。
  • 在右下角有一只小狗,它是看门狗watchdog ,这代表对文件系统的监控。
  • 看完了地基,就继续看地面一层,可以看到通往一层有一个楼梯:
    通道

这个楼梯是连通底层(地基)的文件系统,进程(小企鹅)们可以通过这个台阶,到文件系统中去读取文件,进行操作。

2 httpd 进程

  • 上了地面一层,一眼望去就看到两位门神?
    httpd
  • 在这层的左侧,有一只胸前挂着 1341 号牌的小企鹅,守在门口,门上写着 80。
  • 这个 PID 为 1341 的小企鹅负责接待 80 端口,也就是我们常说的 HTTP (网站)的端口。
  • 小企鹅头上有一片羽毛,这片羽毛大有来历,它是著名的 HTTP 服务器 Apache 的 Logo。
  • 喏,就是这只:

在这里插入图片描述
httpd是apache超文本传输协议的主程序,它被设计成一个独立运行的守护进程。httpd会建立一个线程池来处理http请求。

可参考:Linux httpd命令

httpd [-hlLStvVX][-c<httpd指令>][-C<httpd指令>][-d<服务器根目录>][-D<设定文件参数>][-f<设定文件>]

可以通过 httpd -k restart 重启httpd服务,使用 httpd –t 可以检查配置文件是否存在错误。

3 ssh 进程

  • 来看看另一位门神 22
    ssh进程
  • 在最右侧的一个门牌号 22 的门,有一只带着墨镜的小企鹅在守着,看起来好酷啊,它是黑衣人叔叔吗?
  • 为什么要这么酷的一个企鹅呢,因为 22 端口是 SSH 端口,是一个非常重要的远程连接端口。
  • 通常通过这个端口进行远程管理,所以对这个端口进来的人要仔细审查。
  • ssh进程是一个守护进程(demon),监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。
  • Linux 一般作为服务器使用,而服务器一般放在机房,你不可能一直在机房操作你的 Linux 服务器。这时我们就需要远程登录到Linux服务器来管理维护系统。Linux 系统中是通过 ssh 服务实现的远程登录功能,默认 ssh 服务端口号为 22。
  • 终端利用ssh登录远程服务器
  • 安装ssh:yum install ssh
  • 启动ssh:service sshd start
  • 登录远程服务器:ssh root@10.211.55.100
  • 输入密码:oracle
  • root 是服务器用户名
  • 10.211.55.100 是服务器 ip
  • 输入密码回车即可登录

Window 系统上 Linux 远程登录客户端有 SecureCRT, Putty, SSH Secure Shell 等。
ftp

  • 再向右看,我们可以看到这里仍有一扇门,门上写着 21,但是,看起来这扇门似乎年久失修,上面的门牌号都歪了,门口也没人守着。
  • 看起来这个 21 端口的 FTP 协议有点老旧了,目前用的人也比以前少了,以至于这里都没人接待了。

4 计划任务(cron)

cron

  • 拿着手表在对时的小企鹅在干吗?它就是 crontab 进程,按时执行计划任务。
  • 如何定义计划任务?
  • crontab -e 打开任务计划程序定义文件,写入需要定时执行的命令任务。
  • 例如:定期同步系统时间
    ##每天12点同步时间服务器10.211.55.18,clock --systohc是硬盘时间同步系统时间的意思
    00 12 * * * root /usr/sbin/ntpdate 10.211.55.18 && /sbin/clock --systohc
  • 可通过 crontab -l 查看计划任务

可参考:Linux crontab 命令

5 进程表(process table)

  • 房间一层的中间位置有一块垫子,众多小企鹅在围着着桌子坐着。这个垫子的区域代表进程表。
    在这里插入图片描述
  • 左上角有一个小企鹅,站着,仿佛在说些什么这显然是一位家长式的人物,不过看起来周围坐的那些小企鹅不是很听话——你看有好多走神、自顾自聊天的——“喂喂,说你呢,哇塞娃(171),转过身来”。
  • 它代表着 Linux 内核中的初始化(init)进程,也就是我们常说的 PID 为 1 的进程。桌子上坐的小企鹅都在等待状态wait中,等待工作任务。
  • 如果他们不听话学坏了,可以通过 kill -9 pid 来初始化他们。

6、看门狗(watchdog process)

  • 瞧瞧,垫子(进程表)两旁还有两只小狗。
    在这里插入图片描述
  • 看门狗会监控小企鹅的状态(监控进程),当小企鹅们不听话时,它就会汪汪地叫喊起来。
  • 这个很好理解,watchdog 就是为了保证系统正常运行,或者从死循环,死锁等一场状态退出的一种机制。

7 管道(pipes)

  • 男女搭配干活不累,图中这两位可谓是演绎的淋漓尽致。
    pipes
  • 在楼梯旁边,有两个勤劳的小企鹅正扛着管道(PipeLine)在行走,一只小企鹅可以把自己手上的东西通过这个管道,传递给后面的小企鹅。
  • 他们在干吗呢?管道,看字面意思不难猜出是用来传递东西的。在linux系统,通常是用来传递数据,是编程不可或缺的模块。
  • 管道的专用符号是 |,当前一个流结束时,通过符号 |,前一个流的输出会自动变为后一个流的输入。
  • 例如:输出test.txt文件中包含lucifer的行:cat test.txt | grep 'lucifer'

8 wine进程(wine process)

  • 最后还剩一只孤单的小企鹅,它手上拿着一杯红酒,身上写着 411,看起来有点不胜酒力。
    在这里插入图片描述
  • 它就是红酒(Wine)小企鹅,它可以干(执行)一些来自 Windows 的任务。
  • 说白了,wine就算一个windows模拟器。模拟运行Windows可执行文件。如 EXEDLL

9 终端和终端进程(terminals and terminal processes)

  • 看完了地面一层,还有最上层,有一面墙壁,两个小企鹅在忙碌着什么。
    在这里插入图片描述
  • 这里有很多不同的屏幕,每个屏幕上写着 TTY(这就是对外的终端)。
  • 比如说最左边 tty4 上输入了“fre”——这是想输入“freshmeat…” 吗?
  • 它旁边的 tty2 和 tty3 就正常多了,看起来是比较正常的命令;
  • tty7 显示的图形界面,对,图形界面(X Window)一般就在 7 号终端;
  • tty5 和 tty6 是空的,这表示这两个终端没人用。

tty(终端)是对外沟通的渠道之一,但是,不是每一个进程都需要 tty,某些进程可以直接通过其他途径(比如端口)来和外部进行通信,对外提供服务的,所以,这一层不是完整的一层,只是个跃层。

看到这里,整幅漫画就已经看完了。不知道大家对Linux的认识有没有更进一步呢?


本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

技术交流可以 关注公众号:Lucifer三思而后行

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。