趣谈 Linux 操作系统学习笔记(一)

学习路径:爬过这六个陡坡,你就能对 Linux 了如指掌

  • Linux上手难,学习曲线陡峭,所以它的学习过程更像一个爬坡模式。
    • 这些坡看起来都很陡,但是一旦爬上一阶,就会一马平川。
    • 你会惊叹 Linux 的设计之美,而 Linux 的灵活性也会使得你有 N 多种方法解决问题,从而事半功倍,你就会有一切尽在掌握的感觉。
    • 只可惜,大部分同学都停留在了山脚下。
  • 那怎样才能掌握这项爬坡技能呢?我们首先需要明确,我们要爬哪些坡。
    • 熟练使用 Linux 命令行
    • 使用 Linux 进行程序设计
    • 了解 Linux 内核机制
    • 阅读 Linux 内核代码
    • 实验定制 Linux 组件
    • 落到生产实践上。

第一个坡:抛弃旧的思维习惯,熟练使用 Linux 命令行

  • 上手 Linux 的第一步,要先从 Windows 的思维习惯,切换成 Linux 的“命令行+文件”使用模式。
  • 在 Linux 中,无论我们做什么事情,都会有相应的命令工具。
    • 虽然这些命令一般会在 bin 或者 sbin 目录下面,但是这些命令的数量太多了。
    • 如果你事先不知道该用哪个命令,很难通过枚举的方式找到。
    • 因此,在这样没有统一入口的情况下,就需要你对最基本的命令有所掌握。
  • 一旦找到某个命令行工具,替代输入框的是各种各样的启动参数。
    • 这些参数怎么填,一般可以通过 -h 查看 help,挨个儿看过去,就能找到相应的配置项;
    • 还可以通过 man 命令,查看文档
    • 无论是什么命令行工具,最终的配置一般会落到一个文件上,只要找到了那个文件,文件中会有注释,也可以挨个儿看下去,基本就知道如何配置了。
    • 如果想全面学习 Linux 命令,推荐阅读《鸟哥的 Linux 私房菜》。
    • 如果想再深入一点,推荐阅读《Linux 系统管理技术手册》。

第二个坡:通过系统调用或者 glibc,学会自己进行程序设计

  • 命令行工具也是程序,只不过是别人写的程序。从用别人写的程序,到自己能够写程序,通过程序来操作 Linux,这是第二个要爬的坡。
  • 用代码操作 Linux,可以直接使用 Linux 系统调用,也可以使用 glibc 的库。
  • 如果要进一步学习 Linux 程序设计,推荐阅读《UNIX 环境高级编程》,这本书有代码,有介绍,有原理,非常实用。

第三个坡:了解 Linux 内核机制,反复研习重点突破

  • 进一步了解内核的原理,有助于更好地使用命令行和进行程序设计,能让你的运维和开发水平上升一个层次,但是不建议直接看代码,因为 Linux 代码量太大,很容易迷失,找不到头绪。
  • 最好的办法是,先了解一下 Linux 内核机制,知道基本的原理和流程就可以了。
    • Linux 内核机制也非常复杂,而且其中相互关联。
    • 比如说,进程运行要分配内存,内存映射涉及文件的关联,文件的读写需要经过块设备,从文件中加载代码才能运行起来进程。
    • 这些知识点要反复对照,才能理清。
    • 这块内容的辅助学习,推荐一本《深入理解 LINUX 内核》。这本书言简意赅地讲述了主要的内核机制。

第四坡:阅读 Linux 内核代码,聚焦核心逻辑和场景

  • 一开始阅读代码不要纠结一城一池的得失,不要每一行都一定要搞清楚它是干嘛的,而要聚焦于核心逻辑和使用场景。
  • 这个时候,就可以有针对性地去做课题,把所学和你现在做的东西结合起来重点突破。
    • 例如你是研究虚拟化的,就重点看 KVM 的部分;
    • 如果你是研究网络的,就重点看内核协议栈的部分。

第五坡:实验定制化 Linux 组件,已经没人能阻挡你成为内核开发工程师了

  • 从只看内核代码,到上手修改内核代码,这又是一个很大的坎。
  • 因为 Linux 有源代码,很多地方可以参考现有的实现,定制化自己的模块。例如,你可以自己实现一个设备驱动程序,实现一个自己的系统调用,或者实现一个自己的文件系统等等。
    在这里插入图片描述

最后一坡:面向真实场景的开发,实践没有终点

  • 如果你是运维,仅仅熟悉上面基本的操作是不够的,生产环境会有大量的不可控因素,尤其是集群规模大的更是如此,大量的运维经验是实战来的,不能光靠读书。
  • 如果你是开发,对内核进行少量修改容易,但是一旦面临真实的场景,需要考虑各种因素,并发与并行,锁与保护,扩展性和兼容性,都需要真实项目才能练出来。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值