Linux自学指南-从应用到内核

这篇具有很好参考价值的文章主要介绍了Linux自学指南-从应用到内核。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0.前言

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

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

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

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

1.linux自学路线

Linux自学指南-从应用到内核

2.预备条件

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

3.linux基本命令

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

视频

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

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

推荐书籍

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

Linux自学指南-从应用到内核

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

Linux自学指南-从应用到内核

4.shell脚本基础编程

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

推荐书籍:

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

Linux自学指南-从应用到内核

5.linux系统编程

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

推荐文档

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

推荐书籍

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

Linux自学指南-从应用到内核

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

Linux自学指南-从应用到内核

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》
Linux自学指南-从应用到内核

实验

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

9.其他组合

一些著名实验文章来源地址https://www.toymoban.com/news/detail-489376.html

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

到了这里,关于Linux自学指南-从应用到内核的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Shell 命令集合 系统设置 】⭐Linux 向内核中加载指定的模块 insmod命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 insmod命令是Linux系统中的一个命令,用于向内核中加载指定的模块。它的作用是将指定的模块文件加载到内核中,使得系统可以使用该模块提供的功能。 模块是一种可以动态加载到内核中的代码,它可以扩展内核的功能。在Linux系统中,模

    2024年02月07日
    浏览(58)
  • 【嵌入式Linux内核驱动】SPI子系统 | 硬件原理 | 应用编程 | 内核驱动 | 总体框架

    1.1 SPI通信协议 SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线 四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slave Output)、SS(Slave Select) 同步,全双工 支持总线挂载多设备(一主多从) 1.2 硬件连接 多NSS独立片选方式 菊花

    2024年02月16日
    浏览(67)
  • [驱动开发]Linux内核定时器与中断的简单应用

    首先介绍一下定时器原理。 在linux系统中定时器有分为软定时和硬件定时器。 以海思某款芯片为例,定时器模块又称为Timer模块,主要实现定时、计数功能。 Timer 具有以下特点: 带可编程 8 位预分频器的 32bit/16bit 减法定时器/计数器。 Timer 的计数时钟为 3MHz 时钟。 支持 3 种

    2024年02月20日
    浏览(42)
  • ARM & Linux 基础学习 / 配置交叉编译工具链 / 编译 Linux 应用和驱动 / 编译内核

    编辑整理 by Staok。 本文部分内容摘自 “100ask imx6ull” 开发板的配套资料(如 百问网的《嵌入式Linux应用开发完全手册》,在 百问网 imx6ull pro 开发板 页面 中的《2.1 100ASK_IMX6ULL_PRO:开发板资料》或《2.2 全系列Linux教程:在线视频与配套资料》里面可以下载到),还有参考 菜

    2024年02月04日
    浏览(54)
  • Python 自动化指南(繁琐工作自动化)第二版:零、前言

    Al Sweigart 是一名软件开发人员和技术书籍作者。Python 是他最喜欢的编程语言,他是该语言的几个开源模块的开发者。他的其他书籍可以在他的网站上根据知识共享许可免费获得。他的猫现在重 11 磅。 Philip James 从事 Python 工作已经超过十年,是 Python 社区的常客。他的演讲主

    2023年04月08日
    浏览(66)
  • 【嵌入式Linux】编译应用和ko内核模块Makefile使用记录

    在Makefile中,变量的赋值可以使用以下几种方式: = :最基本的赋值符号,表示简单的延迟展开(lazy expansion)方式。变量的值将会在使用变量的时候进行展开。 := :立即展开(immediate expansion)的赋值方式。变量的值在赋值的时候立即展开,并且在后续的使用中不再改变。

    2024年02月08日
    浏览(53)
  • linux 内核资源配置--cgroups详解以及在docker中的应用

    1.1、cgroups 是什么 Linux cgroup (Control Groups)是 Linux 内核提供的一种机制, 用于限制进程组使用的资源(如 CPU、内存、磁盘 I/O 等) 。通过将进程组划分为层次结构,并将资源限制应用于不同层次的组,可以实现对系统资源的统一管理和限制。 cgroup 提供了一套 API,用于创建

    2024年02月16日
    浏览(48)
  • 【嵌入式Linux内核驱动】05_IIC子系统 | 硬件原理与常见面试问题 | 应用编程 | 内核驱动 | 总体框架

    1.1 IIC 基础 IIC协议简介—学习笔记_iic标准协议_越吃越胖的黄的博客-CSDN博客 I2C(Inter-Integrated Circuit)是一种串行通信协议,用于连接微控制器、传感器、存储器和其他外设。 I2C使用两条线(SDA和SCL)进行通信,可以连接多个设备,每个设备都有一个唯一的地址。I2C总线上的

    2024年02月09日
    浏览(64)
  • 【Docker】Docker的部署含服务和应用、多租环境、Linux内核的详细介绍

    前言 Docker 是一个 开源的应用容器引擎 ,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux或Windows 操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介: 热爱跑步的恒川 ,致力于

    2024年02月13日
    浏览(48)
  • Centos 7 使用国内镜像源更新内核

    内核选择参考 此博文 :https://blog.csdn.net/alwaysbefine/article/details/108931626 elrepo官网介绍的内核升级方式为:  一、按文档执行引入 elrepo库;  二、按清华镜像站修改镜像源 (https://mirrors.tuna.tsinghua.edu.cn/help/elrepo/) 接下来是换源,建议先备份  /etc/yum.repos.d/elrepo.repo  : 然后编

    2024年02月17日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包