嵌入式Linux学习-BIOS和Boot loader详解笔记
2024-01-091.BIOS****和引导装入程序 为桌面计算机拥电后,一种叫作BIOS的软件系统会立即接管对系统处理器的控制. [BIOS是Basic Input/Output Software (基本输入输出软件)的缩写,但直际上. BIOS在计算机系统中发挥的作用已经远远超过了最初设计该软件时的目标,而且越来越复杂。 通常. BIOS系统都是保存在闪存(Flash)里面的。 BIOS是一组复杂的系统配置软件例程,它记录了计算机硬件体系结构的底层细节信息。 在系统加电时候,BIOS会立即接管对系统处理器的
30道Linux面试题总结
2024-01-09如果你是一名开发人员、系统管理员,或是仅仅对 Linux 感兴趣,那么这个列表是为你准备的。它包含了类 Unix 系统管理或编程职位面试中涉及 Linux 相关的所有常见问题。 Linux 是一种类似于 Unix 的操作系统,已有数十年的历史,最初是基于 Unix 内核。Linux 是一种开源的操作系统,也就是说,它是免费提供的,任何有知识的人都可以对其进行修改。而且,它并不仅仅适用于你的台式计算机——世界各地的服务器就跑着 Linux。 Linux 为我们提供了所有的动力,从我们的安卓智能手
有无操作系统的嵌入式Linux驱动设备有何区别?
2024-01-09有无操作系统的嵌入式Linux驱动设备有何区别?嵌入式系统是指集成电子设备上的计算机系统,通常用于控制、监测、操作或处理某些物理或机械过程。在嵌入式系统中,涉及到设备驱动程序的开发,这些程序的作用是将系统的软件与硬件连接起来,使它们能够相互交互。嵌入式系统常使用Linux系统作为开发平台,它具有开源、可移植、灵活的特点。而在嵌入式Linux系统中,又分为有操作系统和无操作系统的嵌入式Linux驱动设备。那么这两种设备有何区别呢?下面将详细阐述。一、概念有操作系统的嵌入式Linux驱动设备指嵌入
Linux TCP队列相关参数的总结
2024-01-09在Linux上做网络应用的性能优化时,一般都会对TCP相关的内核参数进行调节,特别是和缓冲、队列有关的参数。很多文章会告诉你需要修改哪些参数,但我们经常是知其然而不知其所以然,每次照抄过来后,可能很快就忘记或混淆了它们的含义。 下面我以server端为视角,从 连接建立、 数据包接收 和 数据包发送 这3条路径对参数进行归类梳理。 一、连接建立 简单看下连接的建立过程,客户端向server发送SYN包,server回复SYN+ACK,同时将这个处于SYN_RECV状态的连接保存到半连接队列。客
借助Linux内核文件操作监控机制inotify协助定位
2024-01-09嵌入式Linux系统在运行时,除了小概率的因突然断电等非正常关机造成的文件系统损坏之外,更大概率的是因为应用程序编程不当,造成对Nandflash的频繁擦写,行业术语称之为 过度编程(Over Program) ,逼近Nandflash约十万次的擦写寿命,表现为Nandflash的某些块/页陆续出现位反转(bit flip,所谓位反转,指的是原先Nandflash中存储的某个数据位变化了,即要么从1变成了0,要么从0变成了1)的现象,少量的位反转是可以靠硬件/软件ECC(Error Check
Linux内核KASAN实现原理详解
2024-01-091. 前言 KASAN是一个动态检测内存错误的工具。KASAN可以检测全局变量、栈、堆分配的内存发生越界访问等问题。功能比SLUB DEBUG齐全并且支持实时检测。越界访问的严重性和危害性通过我之前的文章(SLUB DEBUG技术)应该有所了解。正是由于SLUB DEBUG缺陷,因此我们需要一种更加强大的检测工具。难道你不想吗?KASAN就是其中一种。KASAN的使用真的很简单。但是我是一个追求刨根问底的人。仅仅止步于使用的层面,我是不愿意的,只有更清楚的了解实现原理才能更加熟练的使用工具。不
简述Linux内核slab性能优化的核心思想
2024-01-09今天分享一篇内存性能优化的文章,文章用了大量精美的图深入浅出地分析了 Linux 内核 slab 性能优化的核心思想。 slab是 Linux 内核小对象内存分配最重要的算法,文章分析了内存分配的各种性能问题(在不同的场景下面),并给出了这些问题的优化方案,这个对我们实现高性能内存池算法,或以后遇到内存性能问题的时候,有一定的启发,值得我们学习。 Linux 内核的 slab 来自一种很简单的思想,即事先准备好一些会频繁分配、释放的数据结构。然而标准的 slab 实现太复杂且维护开销巨大,因此
基于zynq7020器件来搭建Linux系统
2024-01-09Zynq器件将arm和FPGA结合,利用了两者各自的优势,arm可以实现灵活的控制,而FPGA部分可以实现算法加速,这大大扩展了zynq的应用。比如深度学习加速,图像处理等等。PL侧表示FPGA的逻辑部分,PS侧为arm端以及一些AXI接口控制部分,二者实际上通过AXI接口实现通信和互联。PS可以通过AXI来对PL逻辑部分进行配置和控制,PL侧通过AXI和PS进行数据交互。本章基于zynq7020器件来搭建Linux系统,描述搭建Linux系统过程中PL侧的配置以及对u-boot,kenel,
linux磁盘空间满了怎么清理
2024-01-09在服务器运维过程中,我们时常会遇到这样的情况,收到服务器磁盘空间告警 登录服务器,通过df -Hl查看 和告警信息一致,接着我们就是要找到导致磁盘空间满的目录或文件 如何找到占用空间大的目录或文件? 一种比较笨的方法是,在根目录下,通过du -hs命令,列出各目录所占空间大小 之后再用同样的方法继续到对应目录下去找 再相对高效一点的方法是通过du的-d参数,或--max-depth,设置查询的目录深度,目录深度增加,所查询的目录,展示出来会很多,这个时候可以通过grep进行过滤 du -h -
Linux网络子系统的DMA机制的实现方案
2024-01-09本文由西邮陈莉君教授研一学生进行解析,由白嘉庆整理,薛晓雯编辑,崔鹏程校对. 我们先从计算机组成原理的层面介绍DMA,再简单介绍Linux网络子系统的DMA机制是如何的实现的。 一、计算机组成原理中的DMA 以往的I/O设备和主存交换信息都要经过CPU的操作。不论是最早的轮询方式,还是我们学过的中断方式。虽然中断方式相比轮询方式已经节省了大量的CPU资源。但是在处理大量的数据时,DMA相比中断方式进一步解放了CPU。 DMA就是Direct Memory Access,意思是I/O设备直接存储