linux 框架学习法

news2025/1/18 3:46:58

学习视频:【北京迅为】再谈Linux学习方法-框架学习法

学习UBOOT

在这里插入图片描述

框架学习法

在这里插入图片描述

linux基础框架

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

文件系统框架

在这里插入图片描述
在这里插入图片描述

  • bootloader是上电后执行的第一个程序
  • bootloader会引导linux内核,会执行zimage
  • linux内核会挂载文件系统,文件系统可大可小,例如QT或unbuntu或安卓

linux应用框架

在这里插入图片描述
通过软中断使得运行在用户态的应用程序能够有机会进入内核态
在这里插入图片描述
在这里插入图片描述
文件IO通过内核的系统调用来使用操作系统资源

而标准IO通过标准C库来调用操作系统资源【带缓冲】
在这里插入图片描述
绿色部分是CPU

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主机通过socket接口来调用底层TCP/IP协议栈

socket是标准接口,和标准IO一样,可以在多个操作系统中使用
在这里插入图片描述

在这里插入图片描述

linux驱动框架

在这里插入图片描述
驱动的发展过程要了解

在这里插入图片描述
原始架构的引入使得应用程序和驱动程序分离

平台总线的引入使得平台驱动和平台设备分离,平台驱动可以做成标准的形式,根据电路原理图适配平台设备即可

设备树的引入使得平台设备的程序从操作系统源码中独立出来,使得电路图修改后也不必编译系统(系统源码)就可以实现硬件适配

在这里插入图片描述
将下层的函数定义好后,放在file_operations结构体中,通过register_chrdev()注册到linux内核当中,该函数的一个参数就是主设备号。实现主设备号和结构体关联起来

应用层通过那几个文件操作函数去操作设备节点实现操作硬件吗,原理是内核态完成了设备节点与硬件操作的关联

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/556891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go语言gin框架项目:按模板导出excel并在网页端下载,并将此接口完成swagger的配置

1.需求 甲方的需求是以这种格式导出一个开工通知单 前端页面是这个样子: 前端勾选一部分部室,后端根据勾选的这些部室名称进行查询,将查询到的部室主任名字填充到表格对应的位置中,另外将前端传过来的信息都填充到表格的指定位置…

4.1 一级存储结构

本节介绍 GPU 上的一级缓存结构,重点介绍统一的 L1 数据缓存和暂存器“共享内存”,以及它们如何与计算核心交互。 我们还简要讨论了 L1 纹理缓存的典型微架构。 我们包括对纹理缓存的讨论,虽然它在 GPU 计算应用程序中的使用有限,…

前端GC垃圾回收机制

js中的管理是自动的,对象不再被引用时就是垃圾,不能从根上访问时也是垃圾。 能够访问到的对象就是可达对象(引用,作用域链),可达的标准就是从根触发是否能够被找到,根可以理解为是全局变量。 …

【机器学习】 - 作业7: 某闯关类手游用户流失预测

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

并发和线程

并行和并发 1.并行跟并发有什么区别? 从操作系统的角度来看,线程是CPU分配的最小单位。 并行就是同一时刻,两个线程都在执行。这就要求有两个CPU去分别执行两个线程。 并发就是同一时刻,只有一个执行,但是一个时间段…

详解HTTPS加密过程

目录 前言 HTTPS是什么 HTTPS的工作过程 引入对称加密 引入非对称加密 引入证书 总结 前言 对于HTTP上篇文章已经做了详细的解释了。众所周知,HTTPS要比HTTP要安全,但是为什么HTTPS要比HTTP安全呢? 这篇文章主要研究HTTPS的加密机制…

操作系统-X18 linux日志审计

Linux日志审计 在unix/类unix(Linux)系统中,日志是内核(内存)的一部分。 用于记录系统、程序运行中发生的各种事件 通过阅读日志,有助于诊断和解决系统故障 日志文件的分类 ①内核及系统日志 由系统sysl…

队列及其实现

目录 一&#xff1a;队列 1.队列的概念及结构 2.队列的实现 <1>.初始化队列 <2>.队尾入队列 <3>.队头出队列 <4>.获取队列头部元素 <5>.获取队列队尾元素 <6>.获取队列中有效元素个数 <7>.销毁队列 二&#xff1a;完整代…

如何完全卸载IDEA

工欲善其事必先利其器&#xff0c;我们在用idea的时候&#xff0c;idea的环境出现了莫名其妙的问题&#xff0c;怎么也找不到问题原因。有时候也可能是安装了不知名VB脚本&#xff0c;给系统装了一大堆的环境变量(如下图所示)&#xff0c;这个时候你可以试着把idea卸载重新安装…

Jetpack Compose UI预览

Android开发 Jetpack_Compose_2 UI预览Preview 前言 在学习jetpack compose如何编写ui之前&#xff0c;我认为还是应该先了解与Android studio配合的UI预览Preview。 这样就可以立刻看到UI效果&#xff0c;从而方便后续学习验证代码。 所需依赖 implementation "androidx…

CAPL(vTESTStudio) - 自动创建带有时间戳的报告和log

目录 getLocalTime - 获取本地时间函数 代码示例 获取当前时间并形成格式:"2023_05_22_23_20_18"

Qt中的坐标系

Qt中的坐标系 Qt中的坐标系与win10上画图工具的联系 上面这个图片的水印挡住了重要信息,然后又截了一张,显然,画图工具的像素就是Qt中的坐标系,所以,以后查坐标系直接打开Qt:画笔位置所显示的像素就是Qt的坐标!!! 再总结一下: 好奇:win10上的画图工具是qt写的吗? 答: 不是…

【SpringCloud】Nacos

文章目录 一、Nacos1、安装2、服务注册和发现3、服务分级存储模型4、负载均衡策略--NacosRule5、服务实例的权重设置 一、Nacos 1、安装 官网&#xff1a;https://nacos.io/zh-cn/ 下载 Github主页: https://github.com/alibaba/nacos Github的Release下载页: https://githu…

linux命令行如何查看命令帮助信息

一&#xff0c;简介 “授之以鱼不如授之以渔”&#xff0c;我们再学习linux命令的时候&#xff0c;想查看某个命令的详细说明&#xff0c;有哪些方法呢&#xff1f;本文来介绍一下如何在命令行查找命令的帮助信息。 二&#xff0c;linux命令格式介绍 Linux命令一般由三部分组…

【深度学习】- 作业1: Softmax实现手写数字识别

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

【深度学习】 - 作业7: 图像超分辨率重建

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

Linux网络编程—Day10

Linux服务器程序规范 Linux服务器程序一般以后台进程形式运行。后台进程又称守护进程。它没有控制终端&#xff0c;因而也不会意外接收到用户输入。 守护进程的父进程通常是init进程&#xff08;PID为1的进程&#xff09;&#xff1b;Linux服务器程序通常有一套日志系统&#…

Android 11.0 系统设置显示主菜单添加屏幕旋转菜单实现旋转屏幕功能

1.前言 在android11.0的系统rom定制化开发中,在对系统设置进行定制开发中,有产品需求要求增加 旋转屏幕功能的菜单,就是在点击旋转屏幕菜单后弹窗显示旋转0度,旋转 90度,旋转180度, 旋转270度针对不同分辨率的无重力感应的大屏设备的屏幕旋转功能的实现, 接下来就来分析…

chatgpt赋能Python-python_dill

Python dill - 更高效&#xff0c;更强大的对象序列化工具 在Python编程中&#xff0c;对象序列化是一个非常常见的操作&#xff0c;它将Python对象转换为可以存储或传输的格式。Python默认提供了pickle模块来实现序列化&#xff0c;但是pickle存在一些限制&#xff0c;比如无…

usb摄像头驱动-core层usb设备的注册

usb摄像头驱动-core层driver.c 文章目录 usb摄像头驱动-core层driver.cusb_bus_typeusb_device_matchusb_uevent usb_register_driver 在ubuntu中接入罗技c920摄像头打印的信息如下&#xff1a; 在内核中&#xff0c;/driver/usb/core/driver.c 文件扮演了 USB 核心驱动程序管…