合迅科技 实习感悟

本来不想写这篇文章的,但是看到实习报告的总结部分需要写一个收获及体会,还是码一篇文章大致谈谈实习的感悟吧。

学院的实习政策

我是电子科技大学信息与软件工程学院2021级的一名普通本科生。按照学院的培养方案,大三下的这段时间是需要出去实习半年的。在以往,除了正常在企业上班,还可以选择在校内或者校外的实验室工作来抵实习。并且以往的时候,实习是不计入保研成绩的。在这样的情况下,水实习的情况大有人在,以我大二下到大三上所在的实验室为例,不会写代码但是进去充数的人比比皆是。这样的“实习”不是一个让我们学习和进步的选择,反而是在浪费学校和企业的资源和时间。

Read More

Block Device Drivers

块设备是与字符设备并列的概念,这两类设备(一共三类,还有一类是网络设备)在 Linux 中的驱动结构有较大差异。总体而言,块设备驱动比字符设备驱动复杂得多,在 I/O 操作上也有极大的不同。缓冲、I/O 调度、请求队列等都是与块设备驱动相关的概念。

块设备的 I/O 操作特点

块设备 I/O 操作与字符设备的不同之处如下:

  1. 块设备只能以块为单位接收输入和返回输出,而字符设备则以字节为单位。大多数设备是字符设备,因为它们不需要缓冲而且不以固定块大小进行操作。
  2. 块设备对于 I/O 请求有对应的缓冲区,故它们可以选择以什么顺序进行响应,而字符设备无须缓冲且被直接读写。对存储设备而言,调整读写的顺序作用巨大,因为在读写连续的扇区的存储速度比分离的扇区更快。
  3. 字符设备只能顺序读写,而块设备能随机访问。
Read More

Virtual Filesystem

笔记摘抄自 Linux 内核教学 — Linux 系统内核文档 的 VFS 部分,并总结记录。

虚拟文件系统(VFS)

虚拟文件系统(VFS)是内核的组件,处理所有与文件和文件系统相关的系统调用。VFS 是用户与特定文件系统之间的通用接口。这种抽象简化了文件系统的实现,使得各种文件系统更容易集成。各种文件系统通过使用 VFS 提供的 API 来实现文件系统,通用硬件以及 I/O 子系统的通信部分由 VFS 处理。

文件系统按照功能可分为:

  1. 磁盘文件系统(ext3、ext4、xfs、fat 以及 ntfs 等)。
  2. 网络文件系统(nfs、smbfs/cifs、ncp 等)。
  3. 虚拟文件系统(procfs、sysfs、sockfs、pipefs 等)。
Read More

Linux 设备驱动开发详解

本书基于 Linux 4.0 内核编写,个人学习测试的内核版本是 5.15.167。

内核及内核编程

Linux 2.6 后的内核特点

Linux 2.6 相对于 Linux 2.4 有着相当大的改进,主要表现为以下几个方面。

新的调度器

Linux 2.6 以后版本的 Linux 内核使用了新的进程调度算法,它在高负载的情况下有极其出色的性能,并且当有很多处理器时也可以很好地扩展。在 Linux 内核 2.6 的早期采用了 O(1)算法,之后转移到 CFS(Completely Fair Scheduler,完全公平调度)算法。在 Linux 3.14 中,也增加了一个新的调度类:SCHED_DEADLINE,它实现了 EDF(Earliest Deadline First,最早截止期限优先)调度算法。

Read More

tips

本文总结了工作过程中可能遇到的各种问题的解决方法的链接。

Read More
Search by:BingBaidu