0.前言

国内很多大学操作系统课存在两个问题

1.重理论而轻实践,学起来很枯燥乏味,有些知识太过抽象难以理解。

2.或者实践与预备理论脱节。很多学校的实践直接开始动手改内核,然而学生缺乏一些必要工具使用基础和相关理论知识,甚至很多学生是学操作系统之前并无接触过linux,要么实验肝的头痛。短时间内需要学习大量工具和知识。如linux命令、gdb、汇编语言等。故本人制作了linux自学路线。

推荐资料原则以尽量一个为主,其他为辅。

1.linux自学路线

2.预备条件

  • 熟练使用C语言
  • 自行搭建开发环境,推荐:vscode+wsl

3.linux基本命令

在学习使用linux时候可以不安装图形界面。即使你安装了,其实用处也不大,因为大多数人只是把linux当做代码运行平台。大部分编程工作需要命令行操作。当你熟练掌握命令行后甚至会发现图形界面甚至有些鸡肋。况且使用vscode直接连接wsl可以在vscode上运行、调试代码。这一部分更推荐跟着视频学,书当做字典来用,当绝大部分命令的基础操作都熟练了,可以用utools上linux手册用到不会直接查。其中用的最多还是目录、文件相关的命令。

视频

  • 【狂神说Java】Linux最通俗易懂的教程阿里云真实环境学习:推荐理由是时间短讲的不错可以较为系统认识linux,注意:up推荐的阿里云不用买,直接用wsl

  • 计算机教育中缺失的一课之后用到的一系列工具的学习都可以参考这个视频

推荐书籍

  • 《跟老男孩学Linux运维:核心系统命令实战》:不建议从头到尾学,可以当做字典查,有很多实例。方便理解命令

  • 《 Linux命令行与shell脚本编程大全(第4版)》值得仔细看

4.shell脚本基础编程

如果说掌握命令可以跟os进行交流,那么shell是一种面向操作系统的编程语言,可以批量写linux命令

推荐书籍:

  • 《shell脚本基础教程》:写的非常通俗易懂,适合入门

5.linux系统编程

linux系统编程基本上是在linux环境下写c语言,使用了基本的linux API.

推荐文档

  • CSDNWindalove大佬的博客:《Linux系统编程》,当看完linux是怎样工作的,就再跟着博客继续敲代码

推荐书籍

  • 入门:《Linux是怎样工作的》:图多、实例多,通俗易懂,按照实例敲基本对linux环境下编程会有初步了解。边看边敲代码

  • 深入:《Linux/UNIX系统编程手册》:适合有时间再看

6.x86汇编语言

跟着视频敲代码就行。需要学会写汇编代码,debug调试,只有学会汇编才能看懂内核代码。汇编语言和x86体系结构分不开。

视频

极安御信C&汇编训练营(第零期直播)

书籍

  • 王爽的《汇编语言》适合入门
  • 推荐:李忠的《x86汇编语言(第2版)从实模式到保护模式》必看书籍其中实模式和保护模式对于后续理解linux0.11源码很重要,也可结合后续x86体系结构/微机原理一起看。

7.x86体系架构/微机原理

我感觉微机原理讲的最好的还是西电的周佳社老师。强烈安利

课程

微机原理虽然主要以8086为主线但其16位体系结构是理解16位汇编关键。

8.linux内核

linux内核研究有两种思路一是研究linux早期版本,二是做一些目前著名实验。

视频

b站的linux内核精讲这位up讲的不错

非常好的Linux内核视频 - Linux内核精讲

推荐书籍

《linux内核完全剖析0.12》

实验

哈工大李志君操作系统实验

9.其他组合

一些著名实验

  • xv6=c+risc-v:比较推荐,视频、资料最多,文档文档也很全
  • rcore=rust+risc-v
  • ucore=c+risc-v
  • cs162=c+x86

Linux自学指南-从应用到内核相关推荐

  1. GitHub 上这个「计算机科学」自学指南火了!

    公众号关注 "GitHubPorn" 设为 "星标",每天带你逛 GitHub! 作者:Ozan Onay.Myles Byrne 译者:Keith Null ...

  2. 【校招分享】Java非科班自学指南

    作者:一星如月看多时 链接:[校招干货]Java非科班自学指南V1.0_招聘信息_牛客网 来源:牛客网 本文针对应届校招生,面向大厂面试学习,讲究打牢基础的同时追求速成,适合还有一年以上时间参加校招的 ...

  3. Fedora和Red Hat Enterprise Linux实用指南(第6版)(套装上下册)火热上市!!!!

    亚马逊热卖地址: http://www.amazon.cn/Fedora%E5%92%8CRed-Hat-Enterprise-Linux%E5%AE%9E%E7%94%A8%E6%8C%87%E5% ...

  4. nano spi flash linux构建指南

    title: nano spi flash linux构建指南 前言 本文介绍Licheepi nano SPI Flash镜像的制作过程.主要为小白首次入门做讲解! 制作嵌入式linux系统主要分四 ...

  5. Fedora和Red Hat Enterprise Linux实用指南(第6版)(上、下册)( 入行必读的Linux圣经)

    Fedora和Red Hat Enterprise Linux实用指南(第6版)(上.下册)( 入行必读的Linux圣经) (美)苏贝尔(SobellL,M.G.)著 李洋等译 ISBN 978-7- ...

  6. Fedora和Red Hat Enterprise Linux实用指南(第6版)(上、下册)( 入行必读的Linux圣经)...

    Fedora和Red Hat Enterprise Linux实用指南(第6版)(上.下册)( 入行必读的Linux圣经) (美)苏贝尔(SobellL,M.G.)著 李洋等译 ISBN 978-7- ...

  7. 红旗linux常用端口,红旗linux使用指南

    红旗linux使用指南 [日期:2006-10-01] 来源: 作者: [字体:大 中 小] 红旗Linux使用指南 Red Flag Linux Desktop 5.0 提供了丰富的系统配置工具.控 ...

  8. 软件测试自学指南---从入门到精通V2.0

    本系列是在之前的基础上进行了修改更新,原来的内容显得过于简单,但都是重点,这次对于过于简单部分增加了更详细的内容. 目前国内越来越重视软件测试,人才的缺口也是比较大的,为了帮助大家快速的学习测试知识来 ...

  9. 北京迅为i.mx6ull终结者开发板使用手册+嵌入式Linux开发指南+裸机手册下载地址

    i.MX6ULL终结者三大手册,加速学习和开发速度,一秒化无形! <嵌入式Linux开发指南>+<开发板使用手册>+<裸机使用手册> 详细手册点击链接下载:http ...

最新文章

  1. php发送指令,PHP发送AT指令实例代码
  2. Android_TextSwitcher和ImageSwitcher
  3. 中国已经过了做手机操作系统的窗口期
  4. 基于Angular创建后台数据模拟(译)
  5. doctrine find的对象转换成数组_「ES6基础」Array数组的新方法(上)
  6. “约见”面试官系列之常见面试题第二十六篇之vue-router的hash和history(建议收藏)
  7. 集群搭建预备操作:在私有云上创建与配置虚拟机
  8. SAP License:SAP增强应用实例
  9. PCB设计之:必知的PCB设计八大误区
  10. 2020年考研准考证打印下载及注意事项
  11. 520套电商行业响应式html5模板b2c商城购物网站模板HTML5化妆品电商网站模板IT类电子商务商城购物企业网站模板html5网页静态模板Bootstrap扁平化网站源码
  12. 机器学习实战K-近邻算法
  13. 阿里云深度学习平台试玩
  14. 使用APICloud AVM框架开发人事档案管理助手APP
  15. java测试类写三角形_软件测试实验一——使用junit判断三角形
  16. RocketMQ原理剖析
  17. PTA天梯训练赛一二
  18. 未来教师会被计算机代替,未来老师会被计算机所取代吗?Will The Teacher be Replaced by Computers in the Future-...
  19. 递推 SDUT 王小二切饼
  20. (21)Verilog实现饮料机【1.5元一瓶】

热门文章

  1. 爬取糗事百科段子(xpath)
  2. 一起Talk Android吧(第三百八十二回:UI框架)
  3. 【Sentence Simplification via Large Language Models 论文精读】
  4. 2021武汉理工大学计算机考研复试经验分享
  5. 【FPGA教程案例8】基于verilog的分频器设计与实现
  6. ICA算法-盲源分离
  7. 图文教你把PDF格式转换为CAD格式
  8. 网际快车(FlashGet)0day漏洞曝光
  9. 二,十,十六进制之间的转换
  10. 综合调度系统数据单向传输与网络隔离应用方案