内核

2024/4/11 15:34:42

LWN:让BPF program可以睡眠!

关注了就能看到更多这么棒的文章哦~Sleepable BPF programsBy Jonathan CorbetJuly 7, 2020原文来自:https://lwn.net/Articles/825415/主译:DeepL多年前,当classic BPF功能被添加到内核中时,并不存在BPF program在执行…

ubuntu下配置内核时make menuconfig遇到的问题

在ubuntu下制作自己根文件系统时,在配置内核时出现了如下问题,不能出现正常的配置界面 解决方法 1、保证连网 2、apt-get update 3、apt-get install ncurses 或者apt-get install libncurses5-dev 成功出现配置界面 之后给大家分享根文件系统和设备…

LWN:64位DMA的问题!

关注了就能看到更多这么棒的文章哦~The trouble with 64-bit DMABy Jonathan CorbetAugust 11, 2022DeepL assisted translationhttps://lwn.net/Articles/904210/我们生活在一个 64 位的世界里,甚至许多发行版提供方想完全停止支持 32 位系统了。然而&a…

对于OS线程模型的理解

OS实际上是由好几部分组成的,被加载到内存中后,很大一部分是不运行的,只是静静的在内存中等待用户程序来调用,这部分就是内核提供的系统代用部分。进程管理、文件管理等我现在理解为由一个个的进程来实现,如果是单核cp…

为 K8s workload 引入的一些 BPF datapath 扩展

译者序本文翻译自 LPC 2021 的一篇分享:BPF datapath extensions for K8s workloads[1]。作者 Daniel Borkmann 和 Martynas Pumputis 都是 Cilium 的核心开发。翻译时补充了一些背景知识、代码片段和链接,以方便理解。翻译已获得作者授权。由于译者水平…

一次有趣的 Docker 网络问题排查经历

前段时间公司的安卓打包服务出现问题,现象是在上传 360 服务器进行加固的时候,非常大概率会卡在上传阶段,长时间重试最后失败。我对这个情况进行了一些排查分析,解决了这个问题,写了这篇长文复盘了排查的经历&#xff…

LWN:6.1 合并窗口第二部分!

关注了就能看到更多这么棒的文章哦~The rest of the 6.1 merge windowBy Jonathan CorbetOctober 17, 2022DeepL assisted translationhttps://lwn.net/Articles/910608/Linus Torvalds 于 10 月 16 日发布了 6.1-rc1,并关闭了 6.1 合并窗口;…

查看Linux系统/文件是32位还是64位

查看系统(内核) uname -a 结果如下: 查看文件 对于可执行文件、.o文件或so文件,有两种方式查看是32位还是64位。 第一种,用file命令,比如看WebRTC编译出来的stunserver,可以这样&#xff1a…

【C语言有什么用?②】制作一个多线程词频统计工具

☘写在前面☘ 学习一个语言最好的方法是做一个小项目,这个项目不需要多么复杂,但是一定能激发你的学习兴趣。让我们话不多说,开始吧 本文将带你手撸一个多线程词频统计工具,你将学到 📝 如何创建多线程 📝…

Linux内核镜像格式

文章目录Linux内核镜像格式常用Linux 内核镜像格式kernel镜像格式:vmlinuxkernel 镜像模式:Imagekernel 镜像格式:zImagekernel镜像模式:bzImagekernel 镜像模式:uImagekernel镜像格式:xipImage参考Linux内…

使用 Cilium 给 K8s 数据平面提供强大的带宽管理功能

❝本文转自赵亚楠的博客,原文:https://arthurchiao.art/blog/better-bandwidth-management-with-ebpf-zh/,版权归原作者所有。欢迎投稿,投稿请添加微信好友:cloud-native-yang本文翻译自 KubeConCloudNativeCon Europe…

CentOS6.9中添加网卡并实现网卡绑定

目录目标步骤添加网卡总结网卡绑定总结目标 添加一块网卡,使用bonding将2块网卡绑定到bond0网卡中,ip为原来的ip地址,使用模式2作为bonding的模式,并测试 步骤 添加网卡 关机,点击“编辑虚拟机设置”>“添加”&…

内核杂七杂八的基础知识

更多内容可关注微信公众号 #内核通知链 内核子系统之间事件的通知,一般用内核通知链来实现。通知链只能在内核子系统之间使用,不能在内核与用户控件之间进行时间的通知。通知链是一个函数链表,链表上的每一个节点都注册了一个函数&#xff0…

剧透!直播盘点Greenplum7 版本新特性

了解更多Greenplum相关内容,欢迎访问Greenplum中文社区网站 《Greenplum 7新版本大剧透》系列直播 2022年年初,Greenplum 7版本将正式GA(具体时间请以官方信息为准)。今年,Greenplum中文社区将和墨天轮社区合作&#x…

Linux 启动流程之自解压(四)

Linux 启动流程之自解压(四) 5 程序自解压 5.1 restart restart: adr r0, LC0 //LC0为运行地址,0x17cldmia r0, {r1, r2, r3, r6, r10, r11, r12} //通过加载内存值后,r10x17cldr sp, [r0, #28]/** We might be running at a d…

内核调试出现value optimized out的问题

最近在用gdb调试内核的过程中经常会有< value optimized out>的提示&#xff0c; 首先分析该提示出现的原因&#xff0c;我的理解是可能这些被优化的变量已从内存中被移到了寄存器中&#xff0c;所以会找不到。 为了能在调试过程中看到所有的变量&#xff0c;不知道能不…

Linux修改内核参数的两种方法

Linux内核主要有五大功能&#xff1a;进程管理、内存管理、文件系统、网络管理、驱动管理&#xff0c;此外还有个安全管理的功能。那如何修改Linux内核参数呢&#xff1f;这里有两种方法 方法1&#xff1a;输入重定向改内核参数&#xff0c;临时生效 临时修改网络协议参数 […

Win11支持安卓App终于更新了!教你如何在国区使用,上班刷抖音不是梦

晓查 发自 凹非寺量子位 | 公众号 QbitAI2022年2月16号&#xff0c;这可能是操作系统历史上最神奇的一天&#xff0c;因为Windows和Android在同一天实现了互相套娃。微软承诺的“Windows 11支持Android应用”今天终于发布更新。你终于可以在自己的工作电脑上刷抖音了。而就在微…

破局行业“区块链孤岛”,百度发起成立国内首个区块链开源工作组

10月15日&#xff0c;由开放原子开源基金会举行的"有你有我开源节" 开源技术研讨会暨深圳国际开源谷成立揭牌仪式”活动拉开帷幕。国家工业信息安全发展研究中心副主任&#xff08;原工信部信息发展司副司长&#xff09;董大健、深圳市副市长聂新平、深圳市工信局局长…

Linux 的内核原理

Linux 的内核原理 半年前&#xff0c;我写了《计算机是如何启动的&#xff1f;》&#xff0c;探讨BIOS和主引导记录的作用。 那篇文章不涉及操作系统&#xff0c;只与主板的板载程序有关。今天&#xff0c;我想接着往下写&#xff0c;探讨操作系统接管硬件以后发生的事情&…

Linux网卡驱动(1)-网卡驱动架构分析

1、Linux网络子系统 网络子系统采用分层的结构&#xff1a; 我们这里研究内核空间即可&#xff0c;在内核空间分成5层&#xff0c;分别是&#xff1a; 1、系统调用接口&#xff0c;它面向的客户是应用层序&#xff0c;为应用程序提供访问网络子系统的统一方法&#xff0c;比如…

Linux串口驱动程序(1)-tty架构

1、tty概念分析 在Linux系统中&#xff0c;终端是一类字符型设备&#xff0c;它包括多种类型&#xff0c;通常使用tty来简称各种类型的终端设备。由于串口也是一种终端&#xff0c;因此这里引入终端这个概念 串口终端&#xff08;/dev/ttyS*&#xff09; 串口终端是使用计算机…

Linux总线驱动设计(1)-总线驱动模型

1、总线模型概述 随着技术的不断进步&#xff0c;系统的拓扑结构也越来越复杂&#xff0c;对热插拔&#xff0c;跨平台移植性的要求也越来越高&#xff0c;2.4内核已经难以满足这些需求。为适应这种形势的需要&#xff0c;从Linux 2.6内核开始提供了全新的设备模型。 假如说现…

5.1 linux内存管理-分页管理和页异常处理

1&#xff1a;信息 linux - 0.11 memory.c page.s 2: 内存分页管理 基本名词 页目录&#xff1a;指的是一个4K大小的内存&#xff0c;有1024个页目录项 页目录项&#xff1a;每个页目录项指向一个页表&#xff08;4K&#xff09; 页表&#xff1a;指的是一个4K大小的内存&am…

Java NIO底层原理

1.1. Java IO读写原理 无论是Socket的读写还是文件的读写&#xff0c;在Java层面的应用开发或者是linux系统底层开发&#xff0c;都属于输入input和输出output的处理&#xff0c;简称为IO读写。在原理上和处理流程上&#xff0c;都是一致的。区别在于参数的不同。 用户程序进…

Linux驱动开发准备

1、Linux驱动开发概述 Linux驱动分类&#xff0c;分类有很多分类方法&#xff0c;比如常规分类法、总线分类法&#xff0c;按照常规分类法可分为字符设备、块设备、网络设备。1.1 字符设备 字符设备是一种按字节(最小访问单位)来访问的设备&#xff0c;字符驱动则负责驱动字符设…

Linux字符设备驱动程序开发(2)-字符设备驱动模型分析

1、设备描述结构cdev 在Linux系统中,设备的类型非常繁多&#xff0c;如&#xff1a;字符设备&#xff0c;块设备&#xff0c;网络接口设备&#xff0c;USB设备&#xff0c;PCI设备&#xff0c;平台设备&#xff0c;混杂设备……&#xff0c;而设备类型不同&#xff0c;也意味着…

Linux字符设备驱动程序开发(3)-LED驱动程序设计

1、设备控制理论 控制理论-作用 大部分驱动程序除了需要提供读写设备的能力外,还需要具备控制设备的能力。比如: 改变波特率。 设备控制-应用函数 在用户空间&#xff0c;使用ioctl系统调用来控制设备&#xff0c;原型如下:int ioctl(int fd,unsigned long cmd,...) fd: 要…

虚拟文件系统相关的数据结构和操作

虚拟文件系统 虚拟文件系统所隐含的思想是把表示很多不同种类文件系统的共同信息放入内核&#xff1b;其中有一个字段或函数来支持Linux所支持的所有实际文件系统所提供的任何操作。对所调用的每个读、写或其他函数&#xff0c;内核都能把它们替换成支持本地Linux文件系统、NT…

关于linux内核中jiffies和jiffies_64解析

1、前言 linux内核中定义了jiffies变量来记录从系统启动到当前时刻系统时钟所产生的tick数。jiffies变量是一个无符号整型数值&#xff0c;即unsigned long类型。 它的声明如下&#xff08;在 include/linux/jiffies.h 中&#xff09;: 假定HZ1000&#xff0c;那…

中断详解(二)——中断描述符、任务门、中断门、陷阱门

什么是中断描述符表 中断描述符IDT表示一个系统表&#xff0c;它与中断或异常向量相联系。每一个中断或异常向量在这个系统表中有对应的中断或异常处理程序入口地址。中断描述符的每一项对应一个中断或异常向量&#xff0c;每个向量由8个字节组成。因此&#xff0c;最多需要256…

ubuntu下第一个内核模块

1.文件准备 新建hello.c Makefile在同级目录下 2.hello.c #include<linux/module.h>//所有模块都要使用头文件module.h&#xff0c;此文件必须包含进来 #include<linux/kernel.h>//头文件kernel.h包含了常用的内核函数。 #include<linux/init.h>//头文件ini…

深入理解 Cilium 的 eBPF 收发包路径

Docker 技术鼻祖系列本文翻译自 2019 年 DigitalOcean 的工程师 Nate Sweet 在 KubeCon 的一篇分享: Understanding (and Troubleshooting) the eBPF Datapath in Cilium[1] 。由于译者水平有限&#xff0c;本文不免存在遗漏或错误之处。如有疑问&#xff0c;请查阅原文。以下是…

云原生世界中的高端玩法:数据包标记

更多奇技淫巧欢迎订阅博客&#xff1a;https://fuckcloudnative.io前言本文翻译自 2020 年 Joe Stringer 在 Linux Plumbers Conference 的一篇分享: Packet Mark In a Cloud Native World[1]。探讨一个在网络和安全领域非常重要但又讨论甚少的主题&#xff1a;skb mark。skb m…

容器网络一直在颤抖,罪魁祸首竟然是 ipvs 定时器

更多奇技淫巧欢迎订阅博客&#xff1a;https://fuckcloudnative.io前言趣头条的容器化已经开展了一年有余&#xff0c;累计完成了近 1000 个服务的容器化工作&#xff0c;微服务集群的规模也达到了千台以上的规模。随着容器化服务数量和集群规模的不断增大&#xff0c;除了常规…

由 OOM 引发的 ext4 文件系统卡死

注&#xff1a;本问题影响 3.10.0-862.el7.centos 及之后的 CentOS 7 版本内核&#xff0c;目前问题还未被修复。背景近日&#xff0c;我司的测试同学发现内部集群中一个存储节点无法通过 ssh 访问了。iDRAC console 界面出现如下图的错误&#xff1a;有若干个服务进程由于 cgr…

Linux 进程管理完全解读

原文链接&#xff1a;https://www.ebpf.top/post/linux_process_mgr/本文是技术团队内部分享的版本&#xff0c;目的是通过进程管理及调度器历史对于 Linux 进程管理的演进过程起到一个总览的作用&#xff0c;完整的 PDF 可以在这里 下载。水平有限&#xff0c;本文内容仅供参考…

eBPF 基本架构及使用

eBPF 介绍Tcpdump 是 Linux 平台常用的网络数据包抓取及分析工具&#xff0c;tcpdump 主要通过 libpcap 实现&#xff0c;而 libpcap 就是基于 eBPF。先介绍 BPF&#xff08;Berkeley Packet Filter&#xff09;&#xff0c;BPF 是基于寄存器虚拟机实现的&#xff0c;支持 JIT(…

Linux按键驱动程序设计(2)-Linux中断处理程序

写过按键裸机程序的同学都知道按键的读取一般都采用中断的方式&#xff0c;如果采用轮询的方式真的是太浪费CPU资源了。下面将介绍Linux中的中断处理程序。 1、裸机中断处理流程回顾 对所有芯片而言&#xff0c;中断都有一个通用的入口&#xff0c;进入后会保存保存当前的环境把…

Linux按键驱动程序设计(5)-按键去抖

1、按键去抖介绍 编写过裸机驱动的同学都知道按键是必需去抖的&#xff0c;这里不再赘述。2、去抖方法 按键去抖动的方法主要有二种一种是硬件电路去抖动;另一种就是软件延时去抖。而延时又一般分为二种&#xff0c;一种是for循环等待&#xff0c;另一种是定时器延时。在操作系…

Linux串口驱动程序(4)-串口发送分析

1、tty数据发送调用关系 怎么样才能找到发送数据所使用的函数呢&#xff1f;打开uart_register_driver函数&#xff0c;找到里面的tty_register_driver&#xff0c;转到定义&#xff0c;这里调用了tty_fops这个结构&#xff0c;这几结构里就保存了读写串口的函数tty_write&…

eBPF 入门教程

作者&#xff1a;Adrian Ratiu译者&#xff1a;狄卫华1. 前言有兴趣了解更多关于 eBPF 技术的底层细节&#xff1f;那么请继续移步&#xff0c;我们将深入研究 eBPF 的底层细节&#xff0c;从其虚拟机机制和工具&#xff0c;到在远程资源受限的嵌入式设备上运行跟踪。注意&…

eBPF 完全入门指南.pdf(万字长文)

eBPF 源于 BPF[1]&#xff0c;本质上是处于内核中的一个高效与灵活的虚类虚拟机组件&#xff0c;以一种安全的方式在许多内核 hook 点执行字节码。BPF 最初的目的是用于高效网络报文过滤&#xff0c;经过重新设计&#xff0c;eBPF 不再局限于网络协议栈&#xff0c;已经成为内核…

原来 Linux 是这么接收网络帧的

本文将从初学者角度&#xff0c;介绍 Linux 内核如何接收网络帧&#xff1a;从网卡设备完成数据帧的接收开始&#xff0c;到数据帧被传递到网络栈中的第三层结束。着重介绍内核的工作机制&#xff0c;不会深入过多驱动层面的细节&#xff0c;示例代码来自 Linux 2.6。设备的通知…

MFC HMODULE

HMODULE hmodulel; HMODUEL是代表模块的句柄 hmodule是代表系统的内核对象&#xff0c; 如句柄&#xff0c;线程句柄&#xff0c;进程句柄、 HINSTANCE 在win32下与HMODULE相同的东西&#xff0c; HWIND是窗口句柄

Linux性能调优命令之free

功能说明 free 命令显示系统使用和空闲的内存情况&#xff0c;包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略 语法 free [参数] 参数 -b &#xff1a; 以Byte为单位显示内存使用情况。-k &#xff1a;  以KB为单位显示内存使用情况。-m &#xff1a;  以…

Linus又炮轰GitHub!看看你们的merge机制,只会产生垃圾

点击上方“果汁简历”&#xff0c;选择“置顶公众号”新智元报道 来源&#xff1a;Linus编辑&#xff1a;LRS【新智元导读】Linux之父Linus最近在邮件列表中又炮轰GitHub&#xff0c;直指GitHub的合并机制&#xff0c;直言只能产生绝对无用的「垃圾」信息&#xff0c;并告诫后…

ARM7异常与中断

ARM7异常与中断 2009-06-07 10:46:48分类&#xff1a; 只要正常的程序流被暂时中止&#xff0c;处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前&#xff0c;ARM7TDMI内核保存当前的处理器状态&#xff08;CPSR->SPSR&#xff09;&#xff0c;这样当处理…

malloc kmalloc vmalloc

简单的说&#xff1a; kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存 kmalloc保证分配的内存在物理上是连续的,vmalloc保证的是在虚拟地址空间上的连续,malloc不保证任何东西(这点是自己猜测的,不一定正确) kmalloc能分配的大小有限,vmalloc和malloc能分配…

内核函数mmap的实现原理,机制

首先&#xff0c;文件映射是虚存的中心概念, 文件映射一方面给用户提供了一组措施, 好似用户将文件映射到自己地址空间的某个部分, 使用简单的内存访问指令读写文件&#xff1b;另一方面, 它也可以用于内核的基本组织模式, 在这种模式种, 内核将整个地址空间视为诸如文件之类的…

路哟子系统——高级路由(留坑)

路哟子系统——高级路由&#xff08;留坑&#xff09;

BUG:测试Logstash出现报错

Logstash 报错 问题&#xff1a; OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreadsN 某些软件包启动的时候默认…

Ubuntu删除内核(包括自己编译的和系统附带的)

在上一篇文章中&#xff0c;笔者介绍了编译一个新的内核的方法&#xff0c;那是因为学习操作原理系统的时候&#xff0c;需要编译一个新的内核&#xff0c;而一开始为了节省时间&#xff0c;笔者编译了一个较低的版本&#xff0c;但以该内核启动却无法使用键盘&#xff0c;不得…

下面通过一个shell每隔1s读取arm设备的内核和内存信息,把他写在文件中

主要使用top命令读取并写在对应文件中&#xff0c;具体如下&#xff1a; #!/bin/bashecho "删除旧日志文件"time$(date "%Y%m%d-%H:%M")echo "记录100s内间隔1s的top的前11行" for i in {1..5} dotop -d 1 -n 1 -b | head -n 5 >> toplog…

无法进入ubuntu怎么清理\boot旧版系统内核

由于ubuntu \boot手动分区只分了200M&#xff0c;今天早上突然提示\boot空间只剩下573kb&#xff0c;我当时想着先重启一下&#xff0c;然后再删除多余内核&#xff0c;结果。。。直接进不了ubuntu系统了。重装系统对于我的代价太大&#xff0c;所以决定一步步学着修复ubuntu。…

linux内核源码目录结构

&#xff08;1&#xff09;arch:存放不同CPU架构的目录。 &#xff08;2&#xff09;block:linux存储体系相关的块设备管理。 &#xff08;3&#xff09;crypto:常见的加密C语言算法实现目录。 &#xff08;4&#xff09;drivers:驱动目录&#xff0c;存放Linux支持的所有驱动设…

eBPF 技术实践:加速容器网络转发,耗时降低60%+!

Linux 具有功能丰富的网络协议栈&#xff0c;并且兼顾了非常优秀的性能。但是&#xff0c;这是相对的。单纯从网络协议栈各个子系统的角度来说&#xff0c;确实做到了功能与性能的平衡。不过&#xff0c;当把多个子系统组合起来&#xff0c;去满足实际的业务需求&#xff0c;功…

使用 eBPF 实时持续跟踪进程文件记录

本文主要用于演示基于 ebpf 技术来实现对于系统调用跟踪和特定条件过滤&#xff0c;实现基于 BCC[1] 的 Python 前端绑定&#xff0c;过程中对于代码的实现进行了详细的解释&#xff0c;可以作为学习 ebpf 技术解决实际问题的参考样例。样例代码#include <stdio.h> #incl…

K8s 选 cgroupfs 还是 systemd?这是一个问题

❝本文转自 DevopsApple&#xff0c;原文&#xff1a;https://xyz.uscwifi.xyz/post/C6TKCS8wZ/&#xff0c;版权归原作者所有。欢迎投稿&#xff0c;投稿请添加微信好友&#xff1a;cloud-native-yang什么是 cgroupCgroup 是一个 Linux 内核特性&#xff0c;对一组进程的资源使…

[译] Linux 异步 I/O 框架 io_uring:基本原理、程序示例与性能压测(2020)

译者序本文组合翻译了以下两篇文章的干货部分&#xff0c;作为 io_uring 相关的入门参考&#xff1a;How io_uring and eBPF Will Revolutionize Programming in Linux[1], ScyllaDB, 2020An Introduction to the io_uring Asynchronous I/O Framework[2], Oracle, 2020io_urin…

拥抱云原生,基于 eBPF 技术实现 Serverless 节点访问 K8S Service

Serverless 容器的服务发现2020 年 9 月&#xff0c;UCloud 上线了 Serverless 容器产品 Cube&#xff0c;它具备了虚拟机级别的安全隔离、轻量化的系统占用、秒级的启动速度&#xff0c;高度自动化的弹性伸缩&#xff0c;以及简洁明了的易用性。结合虚拟节点技术&#xff08;V…

多平台容器镜像构建就看这一篇

孔矾建&#xff0c;腾讯高级工程师。多年云原生技术实践经验&#xff0c;聚焦容器镜像与存储领域&#xff0c;负责腾讯云容器镜像仓库产品开发&#xff0c;Harbor 社区 Maintainer&#xff0c;《Harbor 权威指南》联名作者。前言愿景与现实早在1995年&#xff0c;就有“write o…

一口气搞懂「文件系统」,就靠这 25 张图了

前言不多 BB&#xff0c;直接上「硬菜」。正文文件系统的基本组成 文件系统是操作系统中负责管理持久数据的子系统&#xff0c;说简单点&#xff0c;就是负责把用户的文件存到磁盘硬件中&#xff0c;因为即使计算机断电了&#xff0c;磁盘里的数据并不会丢失&#xff0c;所以可…

黑苹果的历史

Docker 技术鼻祖系列楔子&#xff1a;第一台“黑苹果”如果按照“黑苹果”的定义 —— 在一台没有苹果 Logo 的电脑上运行苹果公司开发的操作系统 —— 那么全世界第一台“黑苹果”应该诞生于 24 年前。1996 年&#xff0c;苹果将 Macintosh 电脑切换到 IBM 的 PowerPC 架构。时…

BPF数据传递的桥梁——BPF Map(一)

Docker 技术鼻祖系列对 ebpf 技术感兴趣的同学可以订阅作者的博客主题&#xff1a;https://davidlovezoe.club/wordpress/archives/tag/ebpf这是一个实战系列文章&#xff0c;它是eBPF 学习计划[1]里面的应用场景之网络部分&#xff0c;终极目标是源码级别学习云原生网络方案 C…

操作系统笔记——第6章 进程和线程管理

1、进程&#xff08;process&#xff09;描述——静态表示部分 1.1 进程的定义 一个具有一定独立功能的程序在一个数据集合上的一个动态执行过程。 指令/程序是静态的&#xff0c;通过系统执行起来的指令&#xff0c;对调用数据进行处理&#xff0c;完成一定的功能&#xff0…

嵌入式操作系统

嵌入式操作系统一、嵌入式操作系统概述1.1 嵌入式操作系统的特点1.2 嵌入式操作系统的分类1.2.1 非实时操作系统1.2.1 实时操作系统二、实时操作系统2.1 实时操作系统与通用操作系统的比较2.2 实时操作系统的评价指标三、基于Linux的嵌入式操作系统3.1 ARMLinux简介3.2 uCLinux…

LWN:把slab从struct page中移出来!

关注了就能看到更多这么棒的文章哦&#xff5e;Pulling slabs out of struct pageBy Jonathan CorbetOctober 8, 2021DeepL assisted translationhttps://lwn.net/Articles/871982/目前&#xff0c;在内存管理子系统中加入 folio 概念的工作看起来似乎已经停滞不前了&#xff0…

【Linux进阶之路】信号

文章目录 一 、初始信号1.概念2. 简单认识3. 硬件信号 二 、异常与信号1.信号处理异常2.特殊事件3.终端信号与内核信号 三、深入信号1.信号的发送2.信号的保存2.1.sigset_t2.2.sigprocmask 3.信号的处理 四、内核1.原理2.函数 尾序 一 、初始信号 1.概念 信号我们可以大体上从…

LWN:glibc 里支持临界区的重放功能!

关注了就能看到更多这么棒的文章哦&#xff5e;Restartable sequences in glibcBy Jonathan CorbetJanuary 31, 2022DeepL assisted translationhttps://lwn.net/Articles/883104/"Restartable sequence" 是位于用户空间的一小段代码&#xff0c;用来访问 per-CPU 的…

使用 eBPF 调试 Python 容器

随着 Docker/Kubernetes 等容器技术的盛行&#xff0c;越来越多的 Python 应用已经运行在容器中了。在带来便利性的同时&#xff0c;也让生产环境中的 debug 变的复杂。eBPF 是一项革命性的技术&#xff0c;可以在 Linux 内核中运行沙盒程序&#xff0c;而无需更改内核源码。以…

LWN:关注隐私安全自由的PureOS!

关注了就能看到更多这么棒的文章哦&#xff5e;PureOS: freedom, privacy, and securityBy Jake EdgeDecember 23, 2020DeepL assisted translationhttps://lwn.net/Articles/841105/Purism 最近的一篇博客文章是在庆祝整整三年之前 FSF 认可了它的 Linux 发行版。Purism 公司开…

LWN:别了,bdflush()!

关注了就能看到更多这么棒的文章哦&#xff5e;Bye-bye bdflush()By Jonathan CorbetJuly 5, 2021DeepL assisted translationhttps://lwn.net/Articles/861431/在 Linux 内核中增加系统调用是经常发生的事情&#xff0c;几乎每个合并窗口期内都有这种动作。相反&#xff0c;删…

APP测试—ios和安卓的认识

1 ios 苹果公司 安卓 4.0以上版本测试 2 Android与ios对比 2.1 开发语言 Android开发语言&#xff1a;java&#xff0c;c iso开发语言&#xff1a;objective-C 2.2 特性 iso&#xff1a;流畅度、稳定性、安全性高&#xff0c;碎片化低、应用发布相对Android慢、功耗大 And…

【Linux内核解析-linux-5.14.10】内核总览

内核模块组成 Linux内核中有很多模块&#xff0c;以下是其中的一些&#xff1a; 文件系统模块&#xff1a;包括ext2、ext3、ext4、NTFS、FAT、XFS等文件系统模块。网络模块&#xff1a;包括TCP/IP协议栈、网络驱动程序等。设备驱动模块&#xff1a;包括硬盘、USB、网卡、声卡…

LWN:支持Intel线性地址屏蔽功能!

关注了就能看到更多这么棒的文章哦&#xff5e;Support for Intels Linear Address MaskingSupport for Intels Linear Address MaskingDeepL assisted translationhttps://lwn.net/Articles/902094/一个 64 位的指针可以对海量的内存进行寻址&#xff0c;远远超过真实世界中一…

LWN:文件系统格式算是ABI吗?

关注了就能看到更多这么棒的文章哦&#xff5e;The ABI status of filesystem formatsBy Jonathan CorbetOctober 8, 2020DeepL assisted translationhttps://lwn.net/Articles/833696/Linux 内核开发有一个关键原则&#xff0c;那就是内核和用户空间之间的 ABI 不能被破坏。任…

select、poll和epoll的区别

操作系统在处理io的时候&#xff0c;主要有两个阶段&#xff1a; 等待数据传到io设备io设备将数据复制到user space 我们一般将上述过程简化理解为&#xff1a; 等到数据传到kernel内核spacekernel内核区域将数据复制到user space&#xff08;理解为进程或者线程的缓冲区&…

初识链表-linux链表-1

目的&#xff1a; 初识链表操作 参考&#xff1a; linux 应用层编程之内核链表list的使用 linux中链表的使用 Linux内核中经典链表 list_head 常见使用方法解析

深入理解Linux网络技术内幕——IPv4选项的处理

IP选项介绍 IP首部中有4bit用于表示首部长度&#xff0c;其单位是4个字节&#xff0c;所以&#xff0c;IP首部的最大长度是15*460字节&#xff08;4bit最大可以表示到15&#xff09;&#xff0c;而IP固定首部的长度是20字节&#xff0c;所以一个IP首部最大允许有40字节长度的选…

redhat8设置kdump不生效问题

kdump配置解决oom杀死crash进程开机后设置kdump第二内核如果生成的crash 过大 在/etc/kdump.conf设置然后重启kdumpe服务测试生成 coredump最近开发内核过程中Redhat8 不能生成coredump 所以自己研究了下规避解决了&#xff1a;以下是配置&#xff0c;记录下方便后续查看。解决…

Linux内核简介

版权声明&#xff1a;本文参考了《Linux 内核设计与艺术》。 未经作者允许&#xff0c;严禁用于商业出版&#xff0c;否则追究法律责任。网络转载请注明出处&#xff0c;这是对原创者的起码的尊重&#xff01;&#xff01;&#xff01; 1 Unix的特点 简洁所有东西都抽象为文件…

编译内核驱动模块出错(./arch/x86/include/asm/xxx fatal error: asm/xxx: No such file or directory)

今天编译驱动时突然出现以下错误信息&#xff0c;后面经检查是因为我更换了之前的内核源码导致的。 点击直接查看解决办法 以下是编译错误输出信息: make -C /mnt/hgfs/Ubuntu/ebf_6ull_linux M/mnt/hgfs/Ubuntu/imx6ULL/imx6ULL/source modules make[1]: Entering directo…

KVM虚拟化详解——超详细!!!

这里写目录标题一、虚拟化的概述1.1 虚拟化的定义1.2 虚拟化的发展历程1.3 虚拟化的类型1.4 虚拟化的特点二、KVM概述2.1 kvm的定义2.2 KVM 虚拟化架构/三种模式2.3 kvm的原理2.4 KVM工作流程一、虚拟化的概述 1.1 虚拟化的定义 通过虚拟化技术将一台计算机虚拟为多台逻辑计算…

Linux5.4内核编译

Linux是如此美妙&#xff0c;如此有趣。Like Matrix&#xff0c;It’s Everywhere ! 编译环境 Windows10, Vmware16, Ubuntu20.04&#xff0c;虚拟环境。PC机&#xff0c;内存32G&#xff0c;CPU 16 核心&#xff0c;I7八代。 源码下载 检查Ubuntu虚拟环境的内核版本&#…

深入理解 netfilter 和 iptables!

Netfilter &#xff08;配合 iptables&#xff09;使得用户空间应用程序可以注册内核网络栈在处理数据包时应用的处理规则&#xff0c;实现高效的网络转发和过滤。很多常见的主机防火墙程序以及 Kubernetes 的 Service 转发都是通过 iptables 来实现的。关于 netfilter 的介绍文…

FATAL: Module xxx.ko not found in directory /lib/modules/4.1.15-2.1.0+ Modprobe无法装载模块问题

出现这个问题一般要么是模块位置放错了&#xff0c;要么是modules.dep文件中没有对应模块记录导致无法装载 解决办法 首先查看/lib/module/内核版本目录下是否存在需要装载的模块。内核版本可以通过uname -r获取到。在上述目录下执行depmod指令&#xff0c;对该目录下的模块进…

【C语言有什么用?①】从零开始撸一个用户态模拟文件系统

☘写在前面☘ 学习一个语言最好的方法是做一个小项目&#xff0c;这个项目不需要多么复杂&#xff0c;但是一定能激发你的学习兴趣。让我们话不多说&#xff0c;开始吧 本文将带你手撸一个磁盘组织方式的模拟&#xff0c;你将学到 &#x1f4dd; c语言指针的使用 &#x1f4dd…

杂项设备文件操作集

file_operationgs.c #include<linux/init.h> #include<linux/module.h> #include<linux/kernel.h> #include<linux/fs.h>//文件操作集头文件 #include<linux/miscdevice.h>//杂项设备头文件 #include<linux/uaccess.h>//数据发送接受头文…

安装Linux内核实验

安装 Linux 内核 4.0 从Elrepo或者源代码来安装最新的Linux内核4.0。代号为‘Hurr durr I’m a sheep’的Linux内核4.0是目前为止最新的主干内核。它是稳定版3.19.4之后发布的内核。4月12日&#xff0c;Linux Torvalds宣布了Linux内核4.0的发布&#xff0c;它现在就已经可用了…

LWN:Linux kernel中如何废弃不用的软件和硬件平台!

关注了就能看到更多这么棒的文章哦&#xff5e;Software and hardware obsolescence in the kernelBy Jonathan CorbetAugust 28, 2020LPC原文来自&#xff1a;https://lwn.net/Articles/829733/DeepL assisted translation.在内核中添加代码以支持新的硬件&#xff0c;相对来说…

KVM虚拟化技术及环境配置

KVM一、KVM概述&#xff08;1&#xff09;虚拟化产生背景&#xff08;2&#xff09;虚拟化类型&#xff08;3&#xff09;虚拟化优劣势&#xff08;4&#xff09;KVM架构以及原理二、实验搭建&#xff08;1&#xff09;基础环境&#xff08;2&#xff09;安装KVM&#xff08;3&…

流水线中使用 docker in pod 方式构建容器镜像

上个月参加了 Rancher 社区举办的 《Dockershim 即将被移除&#xff0c;你准备好了么&#xff1f;[1]》直播分享后&#xff0c;得知自 1.24 版本之后&#xff0c;Kubernetes 社区将正式放弃对 docker CRI 的支持&#xff0c;docker CRI 这部分代码则由 cri-dockerd[2] 项目来接…

如何更好的从单片机过渡到嵌入式linux领域(有效)

就现在的行业发展来看只会单片机已经不吃香了并且在薪资待遇方面来看的话单片机的收入限制性太强可能工作很多年之后发现没有了成长空间&#xff0c;因此逐渐转到嵌入式Linux这个方向是越来越多的人的一个选择&#xff0c;那么接触了那么长时间单片机之后又要怎样从单片机领域转…

年前的最后一场直播,揭秘数据库恢复系统

了解更多Greenplum相关内容&#xff0c;欢迎访问Greenplum中文社区网站 为了让大家对Greenplum的内核有更深入的了解&#xff0c;让大家在开发或者是使用Greenplum过程中更加得心应手&#xff0c;今年&#xff0c;Greenplum中文社区开展了《深入浅出Greenplum内核》系列直播课程…

LWN:内核热点: folio,多代LRU,以及Rust!

关注了就能看到更多这么棒的文章哦&#xff5e;The kernel radar: folios, multi-generational LRU, and RustBy Jonathan CorbetJanuary 20, 2022DeepL assisted translationhttps://lwn.net/Articles/881675/内核社区非常繁忙&#xff0c;所以根本无法把所有正在发生的事情都…

内核模块的加载

版权声明&#xff1a;本文为CSDN博主「ashimida」的原创文章&#xff0c;遵循CC 4.0 BY-SA版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/lidan113lidan/article/details/45313535 更多内容可关注微信公众号 更新 再谈内核…

LWN: 5.13 开发周期的一些统计数据!

关注了就能看到更多这么棒的文章哦&#xff5e;Some 5.13 development statisticsBy Jonathan CorbetJune 28, 2021DeepL assisted translationhttps://lwn.net/Articles/860989/5.13 开发周期非常繁忙&#xff0c;这是之前就预料到的。在 9 周的开发周期内 mainline 已经合入了…

Linux日志文件的相关知识

Linux日志概述一、日志的功能二、常见日志文件的位置及记录内容三、日志记录的一般格式四、常用日志概述4.1 内核及系统日志4.1.1 查看rsyslog.conf 配置文件4.1.2 Linux系统内核日志消息的优先级别4.2 用户日志4.3 程序日志五、日志管理策略一、日志的功能 用于记录系统、程序…

中断详解(一)——基本概念

1 概述 1.1什么是中断 中断通常被定义为一个事件&#xff0c;该事件能够改变处理器执行指令的顺序。这样的事件与 CPU 芯片内外部硬件电路产生的电信号相对应。 中断分为同步中断和异步中断。 同步中断——同步中断是当指令执行时由 控制单元产生的&#xff0c;之所以称…

一个IO的旅程

作者 | 李一帆初级秃头后端工程师。21 点&#xff0c;你打开微信&#xff0c;开心地对女孩说&#xff1a;“晚上好”。女孩说&#xff1a;“我在洗澡”。你抱着手机等待晚点聊&#xff0c;此刻&#xff0c;你是阻塞的&#xff0c;也是同步的。为什么&#xff1f;1. 什么是 I/O谈…

K8S跨Node网络

一、背景介绍前面一章我们介绍了Node节点上面不同的容器之间的通讯方式&#xff0c;主要是根据docker0(网桥)Veth Pair的方式来玩起来的。本章我们来介绍下不同Node节点上面不同的容器之间的通讯方式&#xff0c;我们不妨想一想&#xff0c;如果不同Node节点上面的容器能够共享…

Kubernetes 单机侧的驱逐策略总结

❝本文转自 Edwardesire 的博客&#xff0c;原文&#xff1a;https://edwardesire.com/posts/process-eviction-under-k8s/&#xff0c;版权归原作者所有。欢迎投稿&#xff0c;投稿请添加微信好友&#xff1a;cloud-native-yang进程驱逐&#xff1a;当机器存在资源压力时&…

Linux 新系统正式发布,易用性开始向 Windows 看齐!

来源&#xff1a;baijiahao.baidu.com/s?id1723528229727988800虽然目前 PC 用户大多会选择 Windows 操作系统&#xff0c;因为它受众人群广&#xff0c;简单易用。那么除了 Windows 操作系统&#xff0c;还有没有其它选择呢&#xff1f;答案是肯定的。前段时间&#xff0c;Li…

深入理解Linux网络技术内幕——IPv4 概念

1.大蓝图 大蓝图展示了IPv4协议与其他子系统之间的联系&#xff0c;保罗设备驱动、Netfilter、L4 层协议等之间的互动。IPv4协议中的报文 我们可以大致看出数据在IPv4协议中的流向&#xff0c;接收报文设备驱动处理完硬件介绍到的数据后&#xff0c;IPv4协议的ip_rcv函数&#…

LWN:Intel CPU的间接跳转保护功能!

关注了就能看到更多这么棒的文章哦&#xff5e;Indirect branch tracking for Intel CPUsBy Jonathan CorbetMarch 31, 2022DeepL assisted translationhttps://lwn.net/Articles/889475/"Control-flow integrity"&#xff08;CFI&#xff09;是一套旨在防止攻击者改…

Golang调度机制

本质上就是生产者和消费者的关系。 核心三组合&#xff1a; M P G S (sheduler) M 指Machine&#xff0c;一个M关联了一个内核线程。负责运行goroutine. P 指 Processor&#xff0c;代表了M所需的上下文环境。也是处理用户级代码逻辑的处理器。P的数量决定了系统内最大的…

linux内核树的构建

这一段时间开始学习liunx设备驱动程序&#xff0c;一开始接触到了些新的术语概念&#xff0c;这里总结一下近几天学习到的内容。 使用 linux-source-3.16参考书目&#xff1a;《linux设备驱动程序》第三版&#xff0c;linux kernel 2.6.x 下载内核源码 uname -r 查看当前使用…

问题排查利器:Linux 原生跟踪工具 Ftrace 必知必会

TLDR&#xff1a;建议收藏&#xff0c;需要时查阅。如果你只是需要快速使用工具来进行问题排查&#xff0c;包括但不限于函数调用栈跟踪、函数调用子函数流程、函数返回结果&#xff0c;那么推荐你直接使用 BCC trace[1] 或 Brendan Gregg[2] 封装的 perf-tools[3] 工具即可&am…

LWN:让BPF成为一个更安全的内核编程环境!

关注了就能看到更多这么棒的文章哦&#xff5e;BPF as a safer kernel programming environmentSeptember 23, 2022This article was contributed by David VernetLPCDeepL assisted translationhttps://lwn.net/Articles/909095/无论好坏&#xff0c;C语言已经是内核开发领域的…

第四十期-ARM Linux内核的中断(10)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期中我们介绍了ARM Linux内核中添加工作项的关键函数&#xff0c;这一期我们继续介绍其他与工作队列相关的关键函数。 一、ARM Linux内核与工作队列相关的关键函数 从第38期我们可以知道&#…

LWN:最近在关注的kernel改动!

关注了就能看到更多这么棒的文章哦&#xff5e;Kernel topics on the radarBy Jonathan CorbetAugust 2, 2021DeepL assisted translationhttps://lwn.net/Articles/864603/内核开发社区非常繁忙&#xff0c;每天都有成千上万的电子邮件飞来飞去&#xff0c;每个时刻都有许多不…

LWN: 6.0 合并周期,第二部分!

关注了就能看到更多这么棒的文章哦&#xff5e;6.0 Merge window, part 2By Jonathan CorbetAugust 15, 2022DeepL assisted translationhttps://lwn.net/Articles/904032/Linus Torvalds 在 8 月 14 日发布了 6.0-rc1&#xff0c;关闭了合并窗口&#xff0c;时间跟预计的一样。…

LWN:图像处理器领域的不快!

关注了就能看到更多这么棒的文章哦&#xff5e;The growing image-processor unpleasantnessBy Jonathan CorbetAugust 18, 2022DeepL assisted translationhttps://lwn.net/Articles/904776/曾几何时&#xff0c;如果想购买一些硬件来运行 Linux&#xff0c;那么在选择硬件时必…

LWN:5.14 开发周期数据分析!

关注了就能看到更多这么棒的文章哦&#xff5e;Some 5.14 development statisticsBy Jonathan CorbetAugust 30, 2021DeepL assisted translationhttps://lwn.net/Articles/867540/5.14 内核在经历了 9 个星期的开发之后&#xff0c;终于在 8 月 29 日正式发布了。这个周期不像…

LWN: 非GPU的加速器驱动绕过了合入原则!

关注了就能看到更多这么棒的文章哦&#xff5e;Not-a-GPU accelerator drivers cross the lineBy Jonathan CorbetAugust 26, 2021DeepL assisted translationhttps://lwn.net/Articles/867168/一般来说&#xff0c;内核社区通常乐意合并那些可以正常工作的设备驱动程序&#x…

LWN:用户空间的中断!

关注了就能看到更多这么棒的文章哦&#xff5e;User-space interruptsBy Jonathan CorbetSeptember 30, 2021LPCDeepL assisted translationhttps://lwn.net/Articles/871113/"interrupt&#xff08;中断&#xff09;" 这个术语会让人联想到源自硬件的、由内核所处理…

Ubuntu上增加系统调用(需要编译内核)

写这篇的原因以及目的 最近老师布置了一个任务在Ubuntu中添加一个自己的系统调用&#xff0c;很多同学都完成得比较好&#xff0c;可能因为自己太蠢&#xff0c;花了很久很久很久很久才完成&#xff0c;也走了很多弯路&#xff0c;用的是虚拟机&#xff0c;重装过一两次 也用了…

第三十九期-ARM Linux内核的中断(9)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期中工作队列相关的关键数据结构&#xff0c;这一期我们将介绍与工作队列相关的关键函数。 一、ARM Linux内核中与工作队列相关的关键函数 与工作队列相关的关键函数主要涉及工作项的添加、工作…

构建最小根文件系统

PC端服务器系统&#xff1a;ubuntu12.04 LTS&#xff0c;已安装好NFS服务&#xff0c;IP地址为192.168.1.61 开发板平台&#xff1a;TQ2440&#xff0c;已经成功烧写u-boot和内核&#xff0c;内核版本&#xff1a;2.6.22.6&#xff0c;IP地址为192.168.1.59 busybox版本&#x…

深入理解Linux网络技术内幕——帧的接收与传输

帧的接收 NAPI与netif_rx&#xff08;非NAPI&#xff09; Linux内核获取网络帧到达通知的方式有两中&#xff1a;中断和轮询。&#xff08;中断值设备向内核发出中断&#xff0c;轮询指linux内核主动轮询设备&#xff09;在早起的linux内核中&#xff0c;网络帧主要以中断的方…

字节一面:go的协程比线程轻量,体现在哪?

01 用户态和内核态 Linux整个体系分为用户态和内核态(或者叫用户空间和内核空间)&#xff0c; 那内核态究竟是什么呢? 本质上我们所说的内核态&#xff0c; 它是一种特殊的软件程序&#xff0c;特殊在哪&#xff1f;统筹计算机的硬件资源&#xff0c;例如协调CPU资源、分配内存…

LWN:5.16 合并窗口,第二部分!

关注了就能看到更多这么棒的文章哦&#xff5e;5.16 Merge window, part 2By Jonathan CorbetNovember 15, 2021DeepL assisted translationhttps://lwn.net/Articles/875135/Linus Torvalds 在 11 月 14 日结束了 5.16 的合并窗口&#xff0c;发布了 5.16-rc1&#xff0c;完全…

第十三期-Linux内核的分布式编译(1)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期中我们介绍了 Linux 内核模块依赖图的绘制方法&#xff0c;这一期中我们将介绍 Linux 内核的分布式编译方法和分布式编译工具 distcc 的安装过程。 一、Linux 内核的分布式编译 分布式编译是…

第三十七期-ARM Linux内核的中断(7)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期中我们介绍了ARM Linux内核中与中断相关的常用函数&#xff0c;这一期我们将介绍ARM Linux内核中的底半机制。 一、ARM Linux内核中底半机制 Linux系统内核在处理中断时&#xff0c;为避免复…

一文深入分析虚拟机中对象锁实现!

一、前言 编程过程中经常会遇到线程的同步问题&#xff0c;Java 中对同步问题的解决方案比较多&#xff08;synchronized、JUC、原子操作、volatile、条件变量等&#xff09;&#xff0c;其中synchronized 最方便、简单易用&#xff0c;也是java 编程中使用最多的临界区保护方…

LWN: 回顾一下UMN 大学的那次事件!

关注了就能看到更多这么棒的文章哦&#xff5e;Looking back at the UMN episodeBy Jonathan CorbetSeptember 27, 2021DeepL assisted translationMaintainers summithttps://lwn.net/Articles/870415Looking back at the UMN episode今年早些时候&#xff0c;一个由明尼苏达大…

LWN:5.17 合并窗口的剩余部分!

关注了就能看到更多这么棒的文章哦&#xff5e;The rest of the 5.17 merge windowBy Jonathan CorbetJanuary 24, 2022DeepL assisted translationhttps://lwn.net/Articles/881597/Linus Torvalds 在 1 月 23 日发布了 5.17-rc1&#xff0c;并关闭了 5.17 的合并窗口&#xf…

第三十六期-ARM Linux内核的中断(6)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期中我们介绍了ARM Linux内核中SGI的处理流程&#xff0c;这一期我们将介绍ARM Linux内核的与中断相关的常用函数。 一、ARM Linux内核中与中断相关的常用函数 在ARM Linux内核源码中&#xff…

Linux内核4.4版本yum方式升级详细过程

从个人笔记中将一些内容稍加修整后搬运至此&#xff0c;如果有问题麻烦请指出&#xff01;谢谢&#xff01; 一、前言 本文章内容旨在使用yum方式将centos7服务器的内核给升级至当前4.4.191稳定版本 系统环境&#xff1a; [rootdocker-web-demo ~]# cat /etc/system-release…

LWN:期待 Linux Plumbers 2021 大会!

关注了就能看到更多这么棒的文章哦&#xff5e;A look forward to Linux Plumbers 2021By Jake EdgeJuly 27, 2021DeepL assisted translationhttps://lwn.net/Articles/864016/一年一度的 Linux Plumbers Conference&#xff08;LPC&#xff09;是从事 Linux 系统底层&#xf…

Kafka性能篇:为何Kafka这么“快“?

完整实例&#xff1a;源码直通车>>> 先预告一下 Kafka 系列文章&#xff0c;大家敬请期待哦&#xff1a; 以讲解性能作为 Kafka 之旅的开篇之作&#xff0c;让我们一起来深入了解 Kafka “快”的内部秘密。你不仅可以学习到 Kafka 性能优化的各种手段&#xff0c;也可…

LWN:stable kernel中的bug fix导致专有module的麻烦!

关注了就能看到更多这么棒的文章哦&#xff5e;A stable bug fix bites proprietary modulesBy Jonathan CorbetJune 21, 2021DeepL assisted translationhttps://lwn.net/Articles/860262/长久以来&#xff0c;内核开发社区与那些开发并发布专有的&#xff08;proprietary&…

操作系统I/O:阻塞和非阻塞

原文地址为&#xff1a; 操作系统I/O&#xff1a;阻塞和非阻塞操作系统内核对于I/O只有两种方式&#xff1a;阻塞和非阻塞。 调用阻塞I/O时&#xff0c;应用程序需要等待I/O完成才返回结果&#xff0c;阻塞I/O的一个特点是调用之后一定要等到系统内核层面完成所有操作后&#x…

【FPGA大赛作品】FPGA 上的RISC-V开发平台(一等奖)

本系列文章介绍一下2020届大学生FPGA创新设计大赛的一些获奖作品。这届比赛中的队伍均实力超前&#xff0c;创意无限&#xff0c;他们的作品十分值得学习与借鉴。本次介绍来着重庆邮电大学的潘星雨团队的作品&#xff0c;该作品大赛一等奖&#xff0c;最佳创意奖&#xff0c;重…

2020-03-18-Linux内核17-硬件如何处理中断和异常

layouttitlesubtitledateauthorheader-imgcatalogtags postLinux内核17-硬件如何处理中断和异常基于X86架构的中断和异常的硬件工作原理2020-03-18Tupelo Shenimg/post-bg-unix-linux.jpgtrueLinuxLinux内核中断异常在上一篇文章中&#xff0c;我们已经了解了中断和异常的一些概…

零基础要怎样更好的学习嵌入式Linux

作为一个新人&#xff0c;怎样学习嵌入式Linux?被问过太多次&#xff0c;特写这篇文章来回答一下。 在学习嵌入式Linux之前&#xff0c;肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令&#xff0c;用到了一看就会)。 C语言要学到什么程度呢?越熟当然越好&…

centos 内核对应列表 内核升级 linux

近期服务器频繁出现问题&#xff0c;找运维同事排查&#xff0c;说是系统版本和内核版本和官方不一致&#xff0c;如下&#xff1a; Release 用的是7.8, kernal 用的是 5.9 我一查确实如此&#xff1a; 内核&#xff1a; Linux a1messrv1 5.9.8-1.el7.elrepo.x86_64 发行版 Cen…

《Linux内核分析》(六)——Linux系统进程创建

作者&#xff1a;Sandy 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 实验环境&#xff1a;cLinux64位 &#xff08;32位系统可能结果会不同&#xff09; 依照学术诚信条款&#xff0c;我保证此回答为本人原创&am…

IRP派遣函数

派遣函数 派遣函数是WIndows驱动程序中的重要概念。驱动程序的主要功能是负责处理I/O请求&#xff0c;其中大部分I/O请求是在派遣函数中处理的。 用户模式下所有驱动程序的I/O请求&#xff0c;全部由操作系统转化为一个叫IRP的数据结构&#xff0c;不同的IRP会被派遣到不同的…

浏览器嵌入组件miniblink使用笔记

miniblink是龙泉寺扫地僧基于chromium内核开发的一款开源浏览器嵌入组件&#xff0c;相对于BlzFans早期开发的WKE组件&#xff0c;在HTML5支持、JS引擎速度、新Web标准兼容性上都有较大改进&#xff0c;而且项目较为活跃&#xff0c;作者还贴心地wke和cef的接口&#xff0c;方便…

Linux下的C语言学习笔记(2)

------------------------------day--7--内存管理--------------------------------------- 系统内核&#xff1a;留给系统的正常运行必不可少的栈&#xff1a;编写的程序运行时存放变量的堆&#xff1a;数据段&#xff1a;存放全局变量&#xff0c;常量的代码段&#xff1a;存…

操作系统复习_操作系统概述

1、操作系统的基本概念、基本功能&#xff1b; 2、分时系统、批处理系统、实时系统的主要特征&#xff1b; 3、用户接口、系统调用过程&#xff1b; 4、单道与多道程序技术&#xff1b; 5、CPU工作模式&#xff1b; 1.什么是操作系统&#xff1f; 2.操作系统的五大功能&…

linux开机引导和启动过程(详细)(含配置文件解读)

过程概述 BIOS加电自检加载MBR中的Bootloader加载内核&#xff0c;初始化initrd加载父进程&#xff0c;执行初始化程序打开终端 BIOS开机加电自检 BIOS(基本输入输出系统)&#xff0c;该系统存储于主板的ROM芯片上&#xff0c;计算机在开机时&#xff0c;会最先读取该系统&a…

聊聊非阻塞I/O编程

写在前面随着互联网的发展&#xff0c;面对海量用户高并发业务&#xff0c;传统的阻塞I/O架构已经无能为力&#xff0c;改善阻塞问题是服务器高性能架构的关键优化点&#xff0c;本篇文章介绍非阻塞I/O编程的实现。阻塞I/O与非阻塞I/O阻塞和非阻塞的区别点在于&#xff0c;线程…

acpi:error!Centos8安装nvidia显卡后与acpi冲突

前言 之前装好了显卡驱动&#xff0c;但是可能是acpi与nvidia显卡驱动冲突&#xff0c;开机后在图形界面输入密码登录时会卡住&#xff0c;需要另外一台机器ssh连接后输入init 5刷一下才能正常登录&#xff0c;也不能按ctrlaltf2进入命令行。 如果知道ip地址&#xff0c;能远程…

浅析 Kubelet 驱逐机制

本文基于对 Kubernetes v1.22.1 的源码阅读Kubelet 出于对节点的保护&#xff0c;允许在节点资源不足的情况下&#xff0c;开启对节点上 Pod 进行驱逐的功能。最近对 Kubelet 的驱逐机制有所研究&#xff0c;发现其中有很多值得学习的地方&#xff0c;总结下来和大家分享。Kube…

Could not generate persistent MAC address

本文永久链接: https://www.xtplayer.cn/linux/network/could-not-generate-persistent-mac-address/问题现象在 docker 容器环境中&#xff0c;可能会看到很多如下的错误日志&#xff1a;Could not generate persistent MAC address for tap0: No such file or directory问题分…

关于 eBPF

原文&#xff1a;https://docs.projectcalico.org/about/about-ebpfeBPF 是一种 Linux 内核功能&#xff0c;允许将快速而安全的微型程序加载到内核中以自定义其操作。通过本文档&#xff0c;您将了解&#xff1a;eBPF 的一般背景。eBPF 的各种用途。Calico 如何在 eBPF 数据平…

k8s 基础环境配置

本文永久链接: https://www.xtplayer.cn/kubernetes/k8s-basic-environment-configuration/主机基础配置主机名配置因为 K8S 或者 FQDN 的规定&#xff0c;主机名仅支持包含 - 或/和 .(中横线和点)两种特殊符号&#xff0c;并且一个集群中主机名不能重复。HostsLinux 系统安装完…

Linux学习—复习bash这个shell

管理整个计算机硬件是操作系统的内核&#xff0c;内核时需要被保护的&#xff0c;所以我们只能通过shell跟内核通信&#xff0c;让内核达到我们想要的目的。 1 硬件、内核、shell 在计算机运行应用需要些什么&#xff1f; 1&#xff09;硬件&#xff1a;整个系统中的实体工作…

内核调试

本文基址&#xff1a;http://blog.csdn.net/cugxueyu/archive/2007/12/21/1957740.aspx ※ 调试工作艰苦&#xff0c;是内核级开发区别于用户级开发的一个显著特点。 ※ 驾驭内核调试的能力&#xff0c;很大程度上取决于经验和对整个操作系统的把握。 一、调试前的准备 内核级…

360浏览器默认急速模式

360浏览器默认疾速模式 <!-- 强制360使用webkit内核 --><meta name"renderer" content"webkit" />浏览器默认内核的指定只需在head标签中添加一行代码即可&#xff1a; 若页面需默认用极速核&#xff0c;增加标签&#xff1a;<meta name&qu…

听说你错过了直播?我们准备了视频回放!

5月22日举行的《深入浅出Greenplum内核》系列直播的第二场活动中&#xff0c;Greenplum内核研发唐鹏洲为大家详细解析了Greenplum并行执行引擎到底是如何工作的&#xff0c;知识点覆盖了Greenplum执行器、并行化Plan&#xff0c;以及Greenplum为了完成执行计划而设计的两个特殊…

Linux内核驱动 --ioctl函数解析

1、前言 当我们在讨论linux内核驱动开发时&#xff0c;就不得不提到ioctl这个及其重要的函数。它是字符类设备驱动程序中实现对设备控制的接口之一。 ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理&#xff0c;就是对设备的一些特性进行控制&am…

LWN:5.18合并窗口第一部分!

关注了就能看到更多这么棒的文章哦&#xff5e;5.18 Merge window, part 1By Jonathan CorbetMarch 25, 2022DeepL assisted translationhttps://lwn.net/Articles/888736/截至目前&#xff0c;在 5.18 开发周期中已有 4127 个 non-merging changeset 进入了 mainline。这个速度…

cc1: error: code model kernel does not support PIC mode /usr/src/linux-2.6.35.5/./Kbuild:35: recipe

错误&#xff1a; CHK include/linux/version.h CHK include/generated/utsrelease.h CC kernel/bounds.s cc1: error: code model kernel does not support PIC mode /usr/src/linux-2.6.35.5/./Kbuild:35: recipe for target ‘kernel/bounds.s’ failed make[1]: *** [kern…

LWN:5.19 合并窗口第一部分!

关注了就能看到更多这么棒的文章哦&#xff5e;5.19 Merge window, part 1By Jonathan CorbetMay 27, 2022DeepL assisted translationhttps://lwn.net/Articles/896140/在撰写本文时&#xff0c;针对 5.19 开发周期&#xff0c;已经有将近 4600 个 non-merge changeset 合入 m…

LWN:5.18 开发周期数据分析!

关注了就能看到更多这么棒的文章哦&#xff5e;Statistics from the 5.18 development cycleBy Jonathan CorbetMay 23, 2022DeepL assisted translationhttps://lwn.net/Articles/895800/5.18 版内核在经历了 9 周的开发周期后于 5 月 22 日发布。这说明又到了该看看这次 rele…

LWN:改进内存管理相关的文档!

关注了就能看到更多这么棒的文章哦&#xff5e;Improving memory-management documentationBy Jonathan CorbetMay 10, 2022LSFMMDeepL assisted translationhttps://lwn.net/Articles/894374/如同内核的大部分内容一样&#xff0c;内存管理子系统的文档是不太够的&#xff0c;…

LWN: /dev/userfaultfd

关注了就能看到更多这么棒的文章哦&#xff5e;/dev/userfaultfdBy Jonathan CorbetJune 13, 2022DeepL assisted translationhttps://lwn.net/Articles/897260/userfaultfd() 系统调用允许一个线程在用户空间帮另一个线程来处理 page fault。有许多有趣的实用例子&#xff0c;…

嵌入式Linux系统的移植(下)

一、移植BootLoader 嵌入式操作系统如Linux, WinCE等不能自行引导启动&#xff0c;需要BootLoader系统引导程序来引导。在ARM平台上&#xff0c;常见的BootLoader主要有:U-Boot, vivi, Redboot等。U-Boot不仅支持X86, ARM, MIPS, PowerPC等多种体系结构&#xff0c;并且还能启动…

内核模块的Makefile文件

编译内核模块需要Makefile文件&#xff0c;示例如下&#xff1a; obj-m : helloworld.o //与内核模块代码的名字保持一致&#xff0c;生存目标.o文件KDIR : /home/kernel/linux-ok6410 //内核的路径all:make -C $(KDIR) M$(PWD) modules CROSS_COMPILEarm-linux- ARCH…

LWN: 复盘LWN 2020年的预测!

关注了就能看到更多这么棒的文章哦&#xff5e;LWNs 2020 RetrospectiveBy Jonathan CorbetDecember 21, 2020DeepL assisted translationhttps://lwn.net/Articles/840446/大家都知道&#xff0c;预测是很难做到准确的&#xff0c;尤其是关于未来的预测。因此&#xff0c;想必…

LWN: 老编译器以及古老的bug!

关注了就能看到更多这么棒的文章哦&#xff5e;Old compilers and old bugsBy Jonathan CorbetJanuary 11, 2021DeepL assisted translationhttps://lwn.net/Articles/842122/内核项目花费了很多精力来帮助使用旧的工具链的开发者。在一个新系统上编译内核本身已经是一个挑战了…

Linux内核中块层上的多队列

如果你想知道SSD为什么使用多队列&#xff0c;可以看看这篇文章&#xff1a;https://kernel.dk/blk-mq.pdf 1. 多块层 以下关于多队列层的总结来自 The Multi-Queue Interface Article&#xff0c;Linux kernel git 展示了如何转换为blk-mq。 blk_mq 的API实现了两级块层设计…

Linux进程模型总结

来源于网络 原创不详 Linux进程通过一个task_struct结构体描述&#xff0c;在linux/sched.h中定义&#xff0c;通过理解该结构&#xff0c;可更清楚的理解linux进程模型。 包含进程所有信息的task_struct数据结构是比较庞大的&#xff0c;但是该数据结构本身并不复杂&…

LWN: 在Linux kernel里应用profile-guided optimization!

关注了就能看到更多这么棒的文章哦&#xff5e;Profile-guided optimization for the kernelBy Jonathan CorbetSeptember 3, 2020LPC原文来自&#xff1a;https://lwn.net/Articles/830300/DeepL assisted translationCovid-19 大流行带来的诸多影响之一&#xff0c;就是 2020…

LWN: 5.12 合并窗口,第二部分!

关注了就能看到更多这么棒的文章哦&#xff5e; 5.12 merge window, part 2 By Jonathan Corbet March 1, 2021 https://lwn.net/Articles/847451/ 5.12 kernel 的合并窗口随着 2 月 28 日发布的 5.12-rc1 关闭了。尽管 Linus 在 5.11 发布之后最初 6 天内被断电了&#xff0c;…

LWN:让内核支持符合FIPS规范的随机数!

关注了就能看到更多这么棒的文章哦&#xff5e;FIPS-compliant random numbers for the kernelBy Jake EdgeDecember 7, 2021DeepL assisted translationhttps://lwn.net/Articles/877607/Linux 随机数生成器&#xff08;RNG, random-number generator&#xff09;引出了大量的…

LWN:5.13合并窗口第一部分!

关注了就能看到更多这么棒的文章哦&#xff5e;The first half of the 5.13 merge windowBy Jonathan CorbetApril 30, 2021DeepL assisted translationhttps://lwn.net/Articles/854536/截至目前&#xff0c;在 5.13 开发周期中已经有超过 7800 个 non-merge commit 合入了 ma…

有了这款图形管理界面,一分钟内配置 10 个 WireGuard 客户端不是梦

该文章随时会有校正更新&#xff0c;公众号无法更新&#xff0c;欢迎订阅博客查看最新内容&#xff1a;https://fuckcloudnative.io前言之前花了很大的篇幅介绍了 WireGuard 的????工作原理和????配置详解&#xff0c;可这里面的内容实在太多了&#xff0c;大部分人根本…

LWN: 针对驱动程序设计的防火墙!

关注了就能看到更多这么棒的文章哦&#xff5e;A firewall for device driversBy Jonathan CorbetAugust 13, 2021DeepL assisted translationhttps://lwn.net/Articles/865918/设备驱动程序&#xff08;device drivers&#xff09;以及它们所控制的硬件&#xff0c;长期以来一…

聊聊对 BPF 程序至关重要的 vmlinux.h文件

1.1 前言eBPF 是一项令人兴奋的强大技术&#xff0c;其允许开发者在 Linux 内核的核心处添加自定义代码功能&#xff0c;并且我们还可以通过编写简单的 C 或 Go 程序与加载到内核中的 eBPF 程序交互&#xff0c;用于加载或读取数据。运行在内核中的 BPF 程序可以检查所附加进程…

LWN: kernel warning 的时候应该怎么处理?

关注了就能看到更多这么棒的文章哦&#xff5e;What to do in response to a kernel warningBy Jonathan CorbetNovember 18, 2021DeepL assisted translationhttps://lwn.net/Articles/876209/内核内部提供了一些宏&#xff0c;供代码在出错的时候调用从而产生 warning。然而&…

LWN:允许其他CPU来清空此CPU的page list!

关注了就能看到更多这么棒的文章哦&#xff5e;Remote per-CPU page list drainingBy Jonathan CorbetFebruary 15, 2022DeepL assisted translationhttps://lwn.net/Articles/884448/有时&#xff0c;一组内核 patch 会有一个令人眼前一亮、非常吸引眼球的标题。不过大多数时候…

【重磅】Greenplum内核升级至PostgreSQL 12,众多新特性惊喜不断

了解更多Greenplum技术干货&#xff0c;欢迎访问Greenplum中文社区网站 ​Greenplum 基于 PostgreSQL&#xff0c;但针对大数据的场景和用户对性能的极致追求开发了大量的特性和做了极致甚至苛刻的优化。此外&#xff0c;Greenplum紧密拥抱Postgres社区&#xff0c;以敏捷的方式…

LWN:在可重启序列(rseq)中增加虚拟CPU ID!

关注了就能看到更多这么棒的文章哦&#xff5e;Extending restartable sequences with virtual CPU IDsBy Jonathan CorbetFebruary 28, 2022DeepL assisted translationhttps://lwn.net/Articles/885818/可重启序列&#xff08;restartable sequence&#xff09;是 Linux 内核…

LWN:DVB与头文件和用户空间的regression!

关注了就能看到更多这么棒的文章哦&#xff5e;DVB, header files, and user-space regressionsBy Jake EdgeAugust 25, 2021DeepL assisted translationhttps://lwn.net/Articles/867275/最近 Linux 5.14 版本中 media 子系统出现了一次比较奇怪的质量回退&#xff08;regress…

《Linux内核分析》(五)——Linux系统调用的执行过程

作者&#xff1a;Sandy 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 实验环境&#xff1a;cLinux64位 &#xff08;32位系统可能结果会不同&#xff09; 依照学术诚信条款&#xff0c;我保证此回答为本人原创&am…

《Linux内核分析》(二)——从一个简单Linux内核分析进程切换原理

作者&#xff1a;Sandy 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 实验环境&#xff1a;cLinux64位 &#xff08;32位系统可能结果会不同&#xff09; 依照学术诚信条款&#xff0c;我保证此回答为本人原创&am…

《Linux内核分析》(三)——跟踪分析Linux内核的启动过程

作者&#xff1a;Sandy 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 实验环境&#xff1a;cLinux64位 &#xff08;32位系统可能结果会不同&#xff09; 依照学术诚信条款&#xff0c;我保证此回答为本人原创&am…

Linux设备驱动开发

Linux设备驱动开发一、设备驱动程序简述1.1 设备驱动程序分类1.2 设备驱动程序相关概念二、设备驱动程序架构2.1 设备驱动程序基本架构2.2 相关数据结构一、设备驱动程序简述 1.1 设备驱动程序分类 在Linux内核源码中&#xff0c;设备驱动程序占有很大比例。虽然驱动程序的增…

Linux系统驱动程序开发实例

Linux系统驱动程序开发实例一、编写内核模块1.1 编写内核模块原则1.2 编写内核模块实例二、编写块&#xff08;字符&#xff09;设备驱动程序三、编写网络设备驱动程序3.1 网络设备驱动设计方法3.2 网络设备驱动设计实例Linux系统的驱动程序开发主要包括&#xff1a;内核模块开…

ARM Linux内核移植

ARM Linux内核移植一、内核结构1.1 Linux系统组成1.2 Linux内核代码目录结构二、内核启动流程2.1 vmlinux-arm.lds.in与head-armv.S2.2 start_kernel()函数三、定制Linux内核3.1 裁剪、配置内核3.2 编译内核一、内核结构 1.1 Linux系统组成 Linux内核主要由五个子系统组成&am…

Linux内核源代码分析经验

Linux的最大的好处之一就是它的源码公开。同时&#xff0c;公开的核心源码也吸引着无数的电脑爱好者和程序员&#xff1b;他们把解读和分析Linux的核心源码作为自己的 最大兴趣&#xff0c;把修改Linux源码和改造Linux系统作为自己对计算机技术追求的最大目标。   Linux内核…

06.内核启动流程分析之内核启动

内核最终目的&#xff1a;运行根文件系统的应用程序 内核做的事情&#xff1a; 处理uboot传入的参数 arch\arm\kernel/*启动内核&#xff1a;bi_arch_number机器ID。参数存放的地址 bd->bi_boot_params*/ theKernel (0, bd->bi_arch_number, bd->bi_boot_params);判…

CPU上下文你真的理解了吗

1. 什么是CPU上下文 CPU 寄存器和程序计数器&#xff0c;都是 CPU 在运行任何任务前必须的依赖环境&#xff0c;被叫做CPU上下文。 CPU寄存器&#xff1a; CPU 内置的容量小、但速度极快的内存。程序计数器&#xff1a;存储 CPU 正在执行的指令位置、或者即将执行的下一条指令…

最强 CNI 基准测试:Cilium 网络性能分析

作者&#xff1a;Thomas Graf译者&#xff1a;罗煜、张亮&#xff0c;均来自 KubeSphere 团队Thomas Graf 是 Cilium 的联合创始人&#xff0c;同时也是 Cilium 母公司 Isovalent[1] 的 CTO 和联合创始人。此前 Thomas 曾先后在 Linux 内核[2]的网络、安全和 eBPF 领域从事了 1…

linux的epoll

epollAPIepoll_createepoll_ctlepoll_waitcodeselect和poll差不多&#xff0c;原理一样&#xff0c;后来又出现了epoll&#xff0c;为什么呢&#xff1f;肯定做了优化。 API 首先&#xff0c;我们来看看epoll的api。 epoll_create int epoll_create(int size);epoll_create(…

LWN:GCC也支持BPF了!

关注了就能看到更多这么棒的文章哦&#xff5e;BPF in GCCBy Jake EdgeSeptember 15, 2020LPC原文来自&#xff1a;https://lwn.net/Articles/831402/DeepL assisted translationBPF virtual machine 在内核中的应用越来越广泛&#xff0c;但直到最近 GCC 才在支持这个 target …

「实战系列」Greenplum内核优化,手把手教你提升数倍SELECT性能

了解更多Greenplum技术干货&#xff0c;欢迎访问Greenplum中文社区网站 Greenplum是世界领先的开源MPP数据库&#xff0c;Greenplum 6的混合负载HTAP性能有了大幅度的提升&#xff0c;已经可以满足大部分OLTP应用场景。这个过程非一日之功&#xff0c;也涉及到系统的各个层面的…

阿里巴巴java性能调优实战:网络通信优化之I/O模型:如何解决高并发下I/O瓶颈?

网络通信优化之I/O模型&#xff1a;如何解决高并发下I/O瓶颈&#xff1f; 提到 Java I/O&#xff0c;相信你一定不陌生。 你可能使用 I/O 操作读写文件&#xff0c;也可能使用它实现 Socket 的信息传输…这些都是我们在系统中最常遇到的和 I/O 有关的操作。 我们都知道&…

linux ioctl驱动作用及程序示例

前言 linux操作系统的目标之一是向用户掩盖系统硬件设备的特殊性。驱动程序调用步骤&#xff1a;应用程序、库、内核、驱动、硬件。 linux嵌入式系统设备&#xff0c;例如&#xff1a;触摸屏、按键、 IIC总线、 LCD等是字符设备&#xff0c;他们特点是按字节流进行先后顺序读…

Centos6.7安装docker1.7.1

Docker当前发布的最新版本已经到了1.11&#xff0c;其官网上针对Centos的的安装需求如下: Docker requires a 64-bit installation regardless of your CentOS version. Also, your kernel must be 3.10 at minimum, which CentOS 7 runs.看来如果我们想在低于3.x内核的操作系统…

Ubuntu下编译Linux内核常见错误总结

Ubuntu下编译Linux内核常见错误总结 最近在做linux内核分析课程的大作业&#xff0c;涉及到了内核的编译&#xff0c;遇见了不少问题&#xff0c;这里做一个整理总结。 ● 编译内核执行make menuconfig命令时提示错误fatal error: curses.h: 没有那个文件或目录 原因&#x…

12 . 中断

中断介绍 中断就是当CPU 执行程序时&#xff0c;由于发生了某种随机的事件(外部或内部)&#xff0c;引起CPU 暂时中断正在运行的程序&#xff0c;转去执行一段特殊的服务程序(中断服务子程序或中断处理程序)&#xff0c;以处理该事件&#xff0c;该事件处理完后又返回被中断的…

硬件保护和软件保护_什么是硬件保护?

硬件保护和软件保护A computer contains various hardware like processor, RAM, monitor etc. So OS must ensure that these devices remain intact ( not directly accessible by the user). 计算机包含各种硬件&#xff0c;例如处理器&#xff0c;RAM&#xff0c;监视器等。…

最大文件描述符/内核参数

ulimit -a &#xff1a;查看用户级文件描述符限制 ulimit -SHn max-file-number&#xff1a;将用户级文件描述符设定为最大&#xff08;临时&#xff09; 永久修改用户文件描述符限制&#xff0c;可以在/etx/security/limits.conf 文件中加入: * hard nofile max-file-number …

linux开发入门之环境的搭建

linux之路漫漫而修远兮&#xff0c;吾将上下而求索。 硬件准备&#xff1a;OK6410开发板&#xff0c;win7 PC机&#xff0c;路由器&#xff1b; 软件准备&#xff1a;VM虚拟机&#xff0c;linux发行版Red Hat。 &#xff08;1&#xff09;SD卡制作引导启动程序 本人是用的飞…

树莓派配置Linux内核源码

目录&#xff1a;1.获取编译所需源码&#xff1a;linux&#xff1a;tools&#xff1a;2.配置环境变量&#xff1a;3.配置config&#xff1a;&#xff08;1&#xff09;使用源码自带的 config&#xff1a;&#xff08;2&#xff09;获取当前树莓派的 config&#xff1a;4.编译&a…

利用 BLKTRACE 和 BTT 分析磁盘 IO 性能

本文永久链接: https://www.xtplayer.cn/linux/disk/blktrace-btt-test-io/平时我们在 Linux 上查看磁盘 I/O 性能&#xff0c;可能我们首先就会想到 iostat 命令(包含于 sysstat 软件包中)或者 iotop 命令。iostat 或者 iotop 仅提供了汇总的简单视图&#xff0c;其中很重要的…

Ubuntu安装Linux2.6.35内核编译

Ubuntu12.04Linux2.6.35 百度&#xff1a;Ubuntu更换内核方法步骤 参考&#xff1a;百度 在ubuntu安装Linux2.6.35内核 https://www.linuxidc.com/Linux/2011-08/40124.htm http://www.mamicode.com/info-detail-2101399.html https://blog.csdn.net/xin_yu_xin/article/detail…

深入分析Tasklet机制

0、为什么引入tasklet机制&#xff1f;linux内核为什么还要引入tasklet机制呢&#xff1f;主要原因是软中断的pending标志位也就32位&#xff0c;一般情况是不随意增加软中断处理的。而且内核也没有提供通用的增加软中断的接口。其次内&#xff0c;软中断处理函数要求可重入&am…

新冠疫情查询神器!

大家好&#xff0c;我是懂王。 马上就过年了&#xff0c;然而最近疫情形势又严峻了起来。河北&#xff0c;东北地区更是被列为高风险地区&#xff0c;尤其是近期回国人员的增多&#xff0c;使得疫情的风险越来越大&#xff0c;所以目前国内各地都在倡导本地过年。 然而有些外出…

macOS 终于可以完美使用 Podman 了!

更多奇技淫巧欢迎订阅博客&#xff1a;https://fuckcloudnative.io前言Podman 是一个无守护程序与 Docker 命令兼容的下一代 Linux 容器工具&#xff0c;该项目由 RedHat 主导&#xff0c;其他的细节可以参考 Podman 使用指南[1]&#xff0c;本文的重点不是这个。Podman 一直以…

Java是如何创建线程的(二)从glibc到kernel thread

Java是如何创建线程的&#xff08;二&#xff09;从glibc到kernel thread 背景 上一节我们讨论了java线程是如何创建的&#xff0c;看了看从java代码层面到jvm层面的源码里都干了什么。 整个流程还是比较复杂的&#xff0c;我将上一节总结的调用时序图贴在下面&#xff0c;方…

Greenplum架构最详解读(内含视频)

了解更多Greenplum技术干货&#xff0c;欢迎访问Greenplum中文社区网站 引言 4月17日&#xff0c;我们和阿里云合作&#xff0c;举行了《Greenplum内核揭秘》系列直播的第一场《架构解读》。在本次活动中&#xff0c;来自Greenplum全球总监杨瑜介绍了一些包括数据库、数据库管…

内核树的建立

在进行内核相关的开发时&#xff0c;经常需要根据目标内核在开发平台中建立相应的内核树&#xff0c;那么什么是内核树&#xff1f;为什么需要内核树呢&#xff1f; 一、内核树 简单来说&#xff0c;内核树&#xff0c;就是关于内核中各个目标模块提供的内核API的一个逻辑树&…

实时操作系统 rhino

摘要&#xff1a; rhino posix 项目在aos上实现&#xff0c;稍微了解下即可。 最初在看的时候&#xff0c;比较疑惑rhino和POSIX都是啥&#xff0c;经过查找&#xff0c;最方便的还是先去看Alios的官方项目wiki&#xff0c;有如下信息&#xff0c; Kernel: 包括Rhino RTOS 内…

Linux内核分析(一)--内核架构和子系统

目录 一、引言 二、内核架构 ------>2.1、kernel源码获取 ------>2.2、cpuinfo ------>2.3、内核体系结构 ------>2.4、内核主要组件 三、内核源码及子系统 ------>3.1、整体结构与子系统 ------>3.2、cpuinfo ------>3.3、整体结构与子系统 -…

Linux查看物理CPU个数、CPU内核数、线程数、和占用的进程

physical id&#xff1a;每颗CPU的id&#xff0c;计算系统中有几个CPU。 cpu cores&#xff1a;当前的CPU有几个核心。 processor&#xff1a;每个CPU线程的id&#xff0c;计算系统中总计有几个CPU线程。 # 总核心数 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 物理C…

linux安装驱动模块时提示 loading out-of-tree module taints kernel

在刚开始学习linux设备驱动时&#xff0c;我们写驱动文件时可能并不会把他们加入到Kconfig的树中&#xff0c;而是直接编译产生.ko文件后&#xff0c;在开发板上运行insmod xxx.ko&#xff0c;此时虽然安装模块成功了&#xff0c;但是会提示loading out-of-tree module taints …

linux内核源码分析之虚拟内存

目录 虚拟地址空间划分&#xff08;用户空间&#xff09; 32位系统虚拟地址空间分配 64位系统虚拟地址空间分配 内存管理 内核布局虚拟地址空间 虚拟内存区域在内核中组织 内存访问权限 调用malloc 申请内存&#xff0c; 虚拟地址空间布局&#xff08;内核&#xff09…

Linux内核make目标详解

1 清理目标 $make clean—— 删除大多数生成的文件&#xff0c;但保留配置和足够的构建支持以构建外部模块$make mrproper —— 删除所有生成的文件 config 各种备份文件$make distclean —— $make mrproper 删除编辑器备份文件和补丁文件 2 配置目标 手动配置 $ make [AR…

RT-Thread临界段之rt_hw_interrupt_enable和rt_hw_interrupt_disable

一、PRIMASK PRIMSK1 ;关闭中断 PRIMSK10;打开中断 二、void rt_hw_interrupt_enable(rt_base_t level);有参数&#xff0c;无返回值 该功能将设置指定的中断状态&#xff0c;该状态应由rt_hw_intterrupt_disable函数返回值&#xff08;入参level&#xff09;决定。 如果…

三场技术演讲,Greenplum中文社区诚邀您共聚PGConf.Asia

2021 PGConf.Asia亚洲技术大会将于12月15日正式拉开帷幕&#xff0c;内容丰富&#xff0c;将涵盖从内核技术到应用实践的多方位干货&#xff0c;为中国的技术粉们带来两天的技术盛宴。 作为PG的伙伴社区&#xff0c;Greenplum中文社区一直积极参与PostgreSQL的代码贡献与技术活…

Exynos4412 中断是如何来处理的

Linux 中&#xff0c;当外设触发中断后&#xff0c;大体处理流程如下&#xff1a; a – 具体CPU architecture相关的模块会进行现场保护&#xff0c;然后调用machine driver对应的中断处理handler; b – machine driver对应的中断处理handler中会根据硬件的信息获取HW interr…

Cortex-M4内核结构

Cortex-M4内核结构 1. 内核Core 2. 三阶流水线 3. 内核工作模式 4. 总结 Cortex-M4内核结构 Cortex-M4处理器是ARMv7-M架构的一种实现&#xff0c;它是一种32位精简指令集(Reduced Instruction Set Computing, RISC)的处理器&#xff0c;有一个三阶的指令流水线&#xff0c;依…

MySQL高阶知识点(一)一条SQL【更新】语句是如何执行的

一条SQL【更新】语句是如何执行的 首先&#xff0c;可以确定的说&#xff0c;【查询】语句的那一套流程&#xff0c;【更新】语句也是同样会走一遍&#xff0c;与查询流程不一样的是&#xff0c; 更新语句涉及到【事务】&#xff0c;就必须保证事务的四大特性&#xff1a;ACID&…

树莓派——文件系统解析

文件系统学习1. 什么是文件系统&#xff1f;2. 文件系统&#xff08;文件管理系统的方法&#xff09;的种类有哪些&#xff1f;3. 什么是分区&#xff1f;windowsLinux4. 什么是文件系统目录结构&#xff1f;5.什么虚拟文件系统Virtual File System &#xff1f;6.虚拟文件系统…

linux进程调度(1)

一、 相关概念简述 1.1 Linux进程的四个要素 一般来说Linux系统的进程都具备下列诸要素: (1) 有一段程序供其执行。这段程序不一定是某个进程所专有&#xff0c;可以与其他进程共用。 (2) 有进程专用的内核空间堆栈。 (3) 在内核中有一个task_struct数据结构&#xff0c;即…

socket基础API(socket,bind,listen,accept,close)深入解析

①socket()系统调用声明 int socket(int domain,int type,int protocol);domain告诉系统使用哪个底层的协议族&#xff1a; PF_INET&#xff1a;IPV4 PF_INET6&#xff1a;IPV6 type参数指定服务类型 SOCK_STREAM服务&#xff08;流服务&#xff09;–TCP SOCK_UGRAM服务&…

Centos7 升级内核版本

1、查看当前内核版本 $ uname -r 3.10.0-514.el7.x86_64 $ uname -a Linux k8s-master 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux $ cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 2、升级内核 更新…

udev机制 守护进程 (精灵进程(Daemon))

udev机制与守护进程&#xff08;精灵进程(Daemon)&#xff09; UDEV守护进程&#xff0c;它能够根据系统中的硬件设备的状态动态更新设备文件&#xff0c;包括设备文件的创建&#xff0c;删除 等。它就像幽灵&#xff0c;运行在内核里面&#xff0c;侦听内核发出的事件&#x…

netty入门(七)——零拷贝

NIO和零拷贝 1、传统的IO操作共会进行三次状态的转换和四次拷贝 2、mmap优化&#xff1a;通过内存映射&#xff0c;将文件映射到内核缓冲区&#xff0c;同时&#xff0c;用户空间可以共享内核空间的数据&#xff0c;这样在进行网络传输时&#xff0c;就可以减少内核空间到用户…

关于stm32抢占优先级和子优先级中难以理解的地方

他说的是4位&#xff0c;我一开始理解的是0123四个数。这样一看就理解了。3位就是可以2的三次方&#xff0c;也就是8。而响应优先级一位&#xff0c;就是2的一次方。2*816&#xff0c;所以就是16。 这个寄存器好像在corem3内核里边&#xff0c;她外边没咋写。所以不用管了&…

LWN:SA_IMMUTABLE以及修改signal处理行为有多危险!

关注了就能看到更多这么棒的文章哦&#xff5e;SA_IMMUTABLE and the hazards of messing with signalsBy Jonathan CorbetDecember 17, 2021DeepL assisted translationhttps://lwn.net/Articles/878768/内核中有一些部分&#xff0c;是哪怕那些最有经验和能力的开发者也不敢涉…

3.0 内核信号

1&#xff1a;信息 代码 Linux 0.01 2: 内核中信号 #define SIGHUP 1 #define SIGINT 2 #define SIGQUIT 3 #define SIGILL 4 #define SIGTRAP 5 #define SIGABRT 6 #define SIGIOT 6 #define SIGUNUSED 7 #define SIGFPE 8 #define SIGKILL 9 #define S…

如何在linux中查看cpu信息、机器硬件型号

这里给大家推荐一款免费迭代 二开便捷的商城项目&#xff1a;源码直通车>>> # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c8 Intel(R) Xeon(R) CPU E5410 2.33GHz (看到有8个逻辑CPU, 也知道了CPU型号) # cat /proc/cpuinfo | grep physical | uniq -c…

Docker——相关概念及安装方法

docker基础一、Docker简介二、Docker的应用场景三、Docker的核心概念3.1 镜像3.2 容器3.3 仓库四、Docker的安装方法方法一&#xff1a;使用CURL获得Docker的安装脚本进行安装方法二&#xff1a;使用YUM仓库安装Docker一、Docker简介 Docker 是一个开源的应用容器引擎&#xf…

Windows系统总述-Windows基本结构

文章内容来自Windows内核原理与实现 现代操作系统的基本结构 操作系统本身属于软件的范畴&#xff0c;但是它需要紧密地跟硬件打交道&#xff0c;它为上层应用软件或应用系统提供了一层抽象&#xff0c;专门负责硬件资源的管理和分配。应用软件不需要直接跟硬件打交道&#x…

为何 Linus 一个人就能写出这么强的系统,国人却做不出来?

点击上方 果汁简历 &#xff0c;选择“置顶公众号”优质文章&#xff0c;第一时间送达转自&#xff1a;默然 Coldwings&#xff08;知乎&#xff09;www.zhihu.com/question/63187737他是谁&#xff0c;Linus&#xff01;林纳斯・托瓦兹&#xff08;Linus Torvalds, 1969 年~&…

linux内核源码分析笔记

一、内核源码目录结构 1、Linux 内核源代码包括三个主要部分 1&#xff09;内核核心代码&#xff1a;包括linux内核整体架构分析笔记描述的各子系统和子模块&#xff0c;以及其他支撑子系统&#xff0c;如&#xff1a;电源管理、linux初始化等。 2&#xff09;非核心代码&…

Chromium内核浏览器编译记(三)116版本内核UI定制

转载请注明出处&#xff1a;https://blog.csdn.net/kong_gu_you_lan/article/details/132180843?spm1001.2014.3001.5501 本文出自 容华谢后的博客 往期回顾&#xff1a; Chromium内核浏览器编译记&#xff08;一&#xff09;踩坑实录 Chromium内核浏览器编译记&#xff08;…

lab-1:Xv6 and Unix utilities

实验工具 clone实验源码 git clone git://g.csail.mit.edu/xv6-labs-2023进入目录 cd xv6-labs-2023运行内核 make qemu打印数据 Ctrl-p退出 ctrax xv6中的system call int fork() Create a process, return child’s PID. int exit(int status) Terminate the current p…

Cortex‐M3/M4/M7内核的操作模式和特权等级介绍

0 前言 如果我们是基于MCU的裸机编程&#xff0c;是不需要关心内核的操作模式和特权等级的。如果是进行RTOS的开发编程&#xff0c;我们就要必要了解一下Cortex‐M3/M4/M7内核的操作模式和特权等级&#xff0c;这在RTOS的线程切换等场合会使用到。 1 Cortex‐M3/M4/M7内核的操…

cm-14.1 Android系统启动过程分析(2)- init进程的启动之前的那些事(偏嵌入式方向)

声明 前阶段在项目中涉及到了Android系统定制任务,Android系统定制前提要知道Android系统是如何启动的。本文参考了一些书籍的若干章节本文使用的代码是LineageOS的cm-14.1,对应Android 7.1.2,可以参考我的另一篇博客:如何下载Nexus5的LineageOS14.1(cm-14.1)系统源码并编译…

Linux内核模块开发 第 6 章

The Linux Kernel Module Programming Guide Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang译 断水客&#xff08;WaterCutter&#xff09; 6 字符设备驱动 include/linux/fs.h 中定义了结构体 file_operations &#xff0c;这个结构体包含指…

Linux的进程调度算法简介

文章目录一、调度算法的原理和分类1.进程调度简介2.按不同需求对调度的进程分类3.调度算法分类二、调度的时机三、调度的依据四、调度的实现1.Linux2.4.16版本2.Linux2.6.23版本小结一、调度算法的原理和分类 1.进程调度简介 进程调度的研究是整个操作系统理论的核心&#xff…

初识Linux内核

初识Linux内核Linux诞生于1991年&#xff0c;出自LinusTorvalds。POSIX 表示可移植操作系统接口(Portable Operating System Interface)。POSIX是在Uni标准化过程中出现的产物。POSIX 1003.1标准定义了一个最小的Unix操作系统接口任何操作系统只有符合这一标准&#xff0c;才有…

C++拾遗--多线程:C语言多线程的引入

C拾遗--多线程&#xff1a;C语言多线程的引入 前言 多线程是编程中的一个重要内容。多核时代使多线程成为一种可能&#xff0c;显然&#xff0c;一件事情多个人干&#xff0c;效率一定会提升。下面来看下C语言中是如何使用多线程的。 正文 1.CreateThread 先来看一个实例 #…

could not create shared memory segment: 设备上没有空间

[postgresdb223 home]$ pg_ctl start waiting for server to start....2023-08-17 18:51:47.852 CST [1281811] FATAL: could not create shared memory segment: 设备上没有空间 2023-08-17 18:51:47.852 CST [1281811] DETAIL: Failed system call was shmget(key161594131…

分析概览 文章管理 草稿管理 图片管理 站点管理 主站 关于 登出 手写操作系统项目----进程

大家好&#xff0c;我叫徐锦桐&#xff0c;个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识&#xff0c;还有日常折腾的经验&#xff0c;欢迎大家来访。 这里记录了&#xff0c;手写操作系统项目中关于进程的部分。 进程四要素 首先进程有四要素。 …

MIT6.S081Lab2:system calls

准备环境 按照官方指南准备环境&#xff0c;即下面三行命令 $ git fetch$ git checkout syscall$ make clean如果git checkout syscall的时候提示makefile文件的修改没有提交的话&#xff0c;把makefile文件改回原来的样子即可&#xff0c;反正也只是添加了几句编译新加的文件…

【linux驱动】简单字符设备驱动

1. 设备文件相关结构体和函数 一个 Linux 系统&#xff0c;默认最大的主设备号是 255&#xff0c;结构体如下 // include/linux/fs.h #define CHRDEV_MAJOR_HASH_SIZE 255// /fs/char_dev.c static struct char_device_struct {struct char_device_struct *next;unsigned int…

MMU的28问,你能回答几个

01、一个大系统中有多少个MMU&#xff1f;02、一个ARM Core中有多少个Translation regime&#xff1f;03、EL1&0 Translation regime Stage2、EL2 Translation regime stage1、EL2&0 Translation regime stage1 这三者的区别是什么&#xff1f;04、TTBR1_EL2寄存器有啥…

Linux多核CPU启动内核调试(详细)总结

目录 一、综述二、调试流程简介2.1 大体流程2.2 spin-table简介 三、uboot和内核配置3.1 uboot配置3.2 内核timer配置3.3 内核GIC中断配置3.4 驱动确认3.5 内核SMP配置3.6 内核config配置 四、其他相关链接1、[交叉编译linux内核总结](https://blog.csdn.net/Luckiers/article/…

死锁的四个必要条件怎么理解

简单介绍 死锁是指在多线程或多进程的环境中&#xff0c;两个或多个进程或线程相互等待对方所持有的资源而无法继续执行的情况。死锁发生时&#xff0c;各个进程或线程都无法继续执行&#xff0c;系统处于僵持状态。 死锁发生的四个必要条件是&#xff1a; 互斥条件&#xff0…

LWN:2022 Linux存储、文件系统、内存管理以及BPF峰会!

关注了就能看到更多这么棒的文章哦&#xff5e;The 2022 Linux Storage, Filesystem, Memory-Management, and BPF SummitBy Jonathan CorbetMay 4, 2022DeepL assisted translationhttps://lwn.net/Articles/893733/Linux Storage, Filesystem, Memory-Management, and BPF Su…

LWN:用户空间块设备驱动的崩溃恢复!

关注了就能看到更多这么棒的文章哦&#xff5e;Crash recovery for user-space block driversBy Jonathan CorbetAugust 29, 2022DeepL assisted translationhttps://lwn.net/Articles/906097/在 6.0 的合并窗口期&#xff0c;内核合入了一个新的用户空间块设备驱动机制&#x…

QEMU+gdb调试Linux内核全过程

1、编译源码&#xff08;Linux kernel 4.6.2&#xff09; make menuconfig 执行make menuconfig时报错缺少库文件 需要安装依赖库 sudo apt-get install aptitude sudo aptitude install libncurses5-dev sudo apt-get install libssl-dev 首先编译内核,编译内核时注意要选…

内核中获取内存使用情况

在内核编程的过程中&#xff0c;需要获取主机的内存使用率&#xff0c;多方搜索无果&#xff0c;以此为记&#xff01; 代码如下&#xff1a; void update_memory_rate() {struct sysinfo mem_info;unsigned long total;unsigned long free;unsigned long used;uint32_t uint…

程序员需要了解的底层知识

程序员需要了解的底层知识概要计算机组成CPU内存IO核心概念VFS(虚拟文件系统)FD(文件描述符)磁盘IO网络IOTCP三次握手IO处理流程IO模型同步阻塞(BIO)同步非阻塞(NIO)多路复用(I/O multiplexing)IO多路复用实现信号驱动IO(Signal driven I/O)模型比较异步非阻塞(AIO)操作系统模式…

第三十三期-ARM Linux内核的中断(3)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期我们从处理器的视角介绍了ARM Linux内核的中断流程&#xff0c;这一期我们从内核的视角来考察ARM Linux中的中断流程。 一、ARM Linux内核的中断流程&#xff1a;内核的视角 在第二十九期的异…

GreenWaves RISC-V核心,取代物联网中的Cortex内核

无晶圆半导体公司GreenWaves Technologies开发了一种专为物联网应用设计的新处理器&#xff0c;他们声称将会超越ARM Cortex处理器。 是什么使得这个核心不同&#xff0c;它将如何有利于快速增长的IoT基础设备的创新&#xff1f; http://www.yiboard.com/thread-633-1-1.html

Linux加载启动可执行程序的过程(一)内核空间加载ELF的过程

linux内核启动时将ELF格式注册到内核可支持的文件格式链表中&#xff0c;也就是通过register_binfmt 函数将定义的elf_format结构体添加到链表中。该结构体如下&#xff1a;当我们执行一个可执行程序的时候, 内核会list_for_each_entry遍历所有注册的linux_binfmt对象, 对其调用…

第四十一期-ARM Linux内核的系统调用(1)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期中我们介绍了工作队列相关的关键函数&#xff0c;这一期我们将介绍ARM Linux内核中的系统调用。 一、ARM Linux内核中的系统调用 在ARM Linux内核中&#xff0c;系统调用是一种特殊的异常&am…

Linux kernel移植笔记

到内核官网下载最新版本的内核https://www.kernel.org/ 目前&#xff0c;下载的内核版本是 linux-3.4.2 交叉编译版本&#xff1a;arm-linux-4.3.2 PC机系统&#xff1a;ubuntu 12.04 LTS 开发板&#xff1a;TQ2440 1.下载完内核后&#xff0c;进行解压 tar xvfj linux-3.4.2…

LWN:把NAPI轮询改为使用kernel threads!

关注了就能看到更多这么棒的文章哦&#xff5e;NAPI polling in kernel threadsBy Jonathan CorbetOctober 9, 2020DeepL assisted translationhttps://lwn.net/Articles/833840/在那些需要进行大量网络传输的系统中&#xff0c;最终会花很大一部分 CPU 时间在网络协议栈&#…

LWN:memfd_secret()

memfd_secret()第一个是 Mike Rapoport 的 memfd_secret()补丁集&#xff0c;之前已经介绍过了(https://lwn.net/Articles/812325/)&#xff0c;所以我们这里仅仅再简单介绍一下&#xff0c;详细背景资料请看那篇文章。这项工作的目的是允许用户空间进程创建一个 "秘密 &q…

FPGA实现高带宽NVMe SSD读写

本文引用自CSDN&#xff0c;作者&#xff1a;ARTBES。原文地址&#xff1a;https://blog.csdn.net/weixin_42166371/article/details/117573776项目背景近期实验室项目需对2GB/s的高速数字图像数据实时存储&#xff0c;后续数据带宽将提升至30GB/s。经调研&#xff0c;SATA协议…

LWN:地址空间隔离的两个patch!(重发)

关注了就能看到更多这么棒的文章哦&#xff5e;Two address-space-isolation patches get closerBy Jonathan CorbetOctober 27, 2020DeepL assisted translationhttps://lwn.net/Articles/835342/地址空间隔离&#xff08;address-space isolation&#xff09;是指从一个或多个…

LWN:tracepoint如何支持睡眠!

关注了就能看到更多这么棒的文章哦&#xff5e;Relief for insomniac tracepointsBy Jonathan CorbetOctober 29, 2020DeepL assisted translationhttps://lwn.net/Articles/835426/内核的 tracing 设施&#xff0c;设计时就着重考虑要能快速执行&#xff0c;尽可能减少对系统正…

LWN:Android上使用KVM!

关注了就能看到更多这么棒的文章哦&#xff5e;KVM for AndroidBy Jake EdgeNovember 11, 2020KVM Forum(https://lwn.net/Archives/ConferenceByYear/#2020-KVM_Forum)DeepL assisted translationhttps://lwn.net/Articles/836693/谷歌在做一个项目&#xff0c;希望将 Linux 内…

LWN: 放开kcmp()!

关注了就能看到更多这么棒的文章哦&#xff5e; kcmp() breaks loose By Jonathan Corbet February 11, 2021 DeepL assisted translation https://lwn.net/Articles/845448/ Linux 内核实现了大量的系统调用&#xff0c;所以对于大多数人来说总是会有一些不熟悉的系统调用&…

LWN:在kernel内处理暴力尝试攻击!

关注了就能看到更多这么棒的文章哦&#xff5e; Handling brute force attacks in the kernel By Jake Edge March 17, 2021 DeepL assisted translation https://lwn.net/Articles/849531/ 针对 Linux 系统的若干种攻击都依赖于对 fork()系统调用进行暴力调用&#xff08;brut…

LWN:5.13 内核中导出符号的变化!

关注了就能看到更多这么棒的文章哦&#xff5e;Exported-symbol changes in 5.13By Jonathan CorbetMay 17, 2021DeepL assisted translationhttps://lwn.net/Articles/856312/多年来&#xff0c;内核社区对于是否将 kernel 内部内核符号(kernel symbol)导出供 loadable module…

y9000x Ubuntu 16.04 网卡问题 以及升级内核问题

1.y9000x网卡问题 https://blog.csdn.net/zsyf33078/article/details/105319368 2.升级内核问题 在升级内核linux-headers-5.7.1-050701_5.7.1-050701.202006071230_all.deb 文件的时候说缺少libssl1.1问题 https://blog.csdn.net/z952957407/article/details/99690571 3.i91…

兴趣 or 经济利益?你会选择加入什么样的DAO组织?#DAO

DAODAO 是什么&#xff1f;#包含哪些要素&#xff1f;有哪些种类&#xff1f;#它的资产如何构成与分配&#xff1f;它将带来什么&#xff0c;改变什么&#xff1f;#无界社区会孵化哪些 DAO 组织&#xff1f;如果会&#xff0c;探索实践 DAO 的方式是&#xff1f;# DeepDAO 中按…

LWN: Control-flow integrity in 5.13!

关注了就能看到更多这么棒的文章哦&#xff5e;Control-flow integrity in 5.13By Jonathan CorbetMay 21, 2021DeepL assisted translationhttps://lwn.net/Articles/856514/在为 5.13 内核合并的许多改动中&#xff0c;有一项是增加了 LLVM control-flow integrity&#xff0…

海思3531D环境搭建

前面工作中&#xff0c;有一段时间&#xff0c;再做海思相关的项目&#xff0c;hisi3531D是一款广泛应用在音视频领域的芯片&#xff0c;其解码的速度和效率&#xff0c;被业内称赞。本文主要是讲解海思3531D在linux系统环境搭建&#xff0c;包括u-boot、linux内核、根文件系统…

LWN: 实现针对Windows的eBPF!

关注了就能看到更多这么棒的文章哦&#xff5e;Implementing eBPF for WindowsJune 10, 2021This article was contributed by Quentin MonnetDeepL assisted translationhttps://lwn.net/Articles/857215/Extended BPF&#xff08;eBPF&#xff09;是 Linux 内核中的一个通用执…

LWN:5.14合并周期的第一部分!

关注了就能看到更多这么棒的文章哦&#xff5e;The first half of the 5.14 merge windowBy Jonathan CorbetJuly 2, 2021DeepL assisted translationhttps://lwn.net/Articles/861248/目前为止&#xff0c;在 5.14 开发周期中只合入了不到 5000 个 non-merge changeset。这还不…

LWN:Rust for Linux 的最新进展!

关注了就能看到更多这么棒的文章哦&#xff5e;Rust for Linux reduxBy Jake EdgeJuly 7, 2021DeepL assisted translationhttps://lwn.net/Articles/862018/7 月 4 日&#xff0c;Rust for Linux 项目又提供了一版 patch set&#xff0c;仍是为内核加入了 Rust 语言的支持。看…

浅谈Linux

Linux系统最初由芬兰赫尔辛基大学的Andrew S.Tanenbaum写的MINIX操作系统演变而来,这是一个小型操作系统,主要用于教学&#xff0c;1991年1月,Tanenbaum的学生Linus Torvalds发现老师的操作系统 不能满足自己的需要,自己开始研发操作系统&#xff0c;1991年9月,Linux0.0.1出现,…

线程的实现(JVM以一个程序的角度)JVM-7

线程的实现&#xff08;以一个程序的角度&#xff09; 线程是比进程更轻量级的调度执行单位 &#xff0c;线程的引入 可以把一个进程的资源 分配和执行调度 主流操作系统提供线程实现 Java提供了再不同硬件和操作系统平台对线程的操作 即 每一个已经调用的start()调用 还未结…

LWN:利用BIO caching来提供IO速度!

关注了就能看到更多这么棒的文章哦&#xff5e;More IOPS with BIO cachingBy Jonathan CorbetSeptember 6, 2021DeepL assisted translationhttps://lwn.net/Articles/868070/很久很久以前&#xff0c;块存储设备&#xff08;block storage device&#xff09;速度非常慢&…

修改GRUB2源码与编译安装流程

能进来这个文章的&#xff0c;基本也不需要我介绍GRUB是什么了。 如果我们需要GRUB的源代码&#xff0c;或者把我们自己编写的模块加入GRUB中&#xff0c;我们要怎么做呢&#xff1f; 首先我们创建一个目录&#xff0c;下载并解压grub的源码。 mkdir grub cd grub wget ftp:/…

LWN:维护者峰会上讨论Rust in kernel!

关注了就能看到更多这么棒的文章哦&#xff5e;Using Rust for kernel developmentBy Jonathan CorbetSeptember 27, 2021Maintainers summitDeepL assisted translationhttps://lwn.net/Articles/870555/在 2021 年的 Linux Plumbers 大会上&#xff0c;Linux 的 Rust 开发者们…

LWN: 6.1 合并窗口第一部分!

关注了就能看到更多这么棒的文章哦&#xff5e;The first half of the 6.1 merge windowBy Jonathan CorbetOctober 7, 2022DeepL assisted translationhttps://lwn.net/Articles/910312/6.1 合并窗口正在顺利进行中&#xff1a;自从窗口打开以来&#xff0c;已经有 5,752 个 n…

LWN:为了写论文而提交的错误commit

关注了就能看到更多这么棒的文章哦&#xff5e;Intentionally buggy commits for fame—and papersBy Jake EdgeApril 21, 2021DeepL assisted translationhttps://lwn.net/Articles/853717/4 月初发布在 linux-kernel 邮件列表上的一个错误 patch&#xff0c;显然成为了让 Gre…

Linux源码编译开启cgroup blk限制io性能

编译选项 - 内核5.9 General Setup---> Control Group support ---> io controllerEnable the block layer--->Block layer bio throttling support--->Multiqueue writeback throttling .config编译名称 CONFIG_FAIR_GROUP_SCHEDy # CONFIG_CFS_BANDWIDTH is …

这次,带你写一个操作系统

彭东&#xff0c;Intel 傲腾项目关键开发者&#xff0c;文章摘自《操作系统实战45讲》。你好&#xff0c;我是彭东&#xff0c;网名LMOS&#xff0c;欢迎加入我的专栏&#xff0c;跟我一起开启操作系统的修炼之路。 先来介绍一下我自己。我是Intel 傲腾项目开发者之一&#xf…

【操作系统】春招八股文----常见的几个操作系统相关问答

目录 【0】内存的申请释放 【1】什么是操作系统&#xff1f;请简要概述一下 【2】操作系统有哪些分类&#xff1f; 【3】什么是内核态和用户态&#xff1f; 【4】如何实现内核态和用户态的切换&#xff1f; 【5】并发和并行的区别 【6】什么是进程&#xff1f; 【7】进程…

LWN:将kernel迁移到现代C语言标准!

关注了就能看到更多这么棒的文章哦&#xff5e;Moving the kernel to modern CBy Jonathan CorbetFebruary 24, 2022DeepL assisted translationhttps://lwn.net/Articles/885941/尽管 Linux kernel 项目总体上是在快速发展的&#xff0c;但它还是依赖于一些旧工具。虽然批评者…

2020-02-06-Linux设备驱动开发0-环境搭建

layouttitlesubtitledateauthorheader-imgcatalogtags postLinux设备驱动开发0-环境搭建学习Linux驱动开发&#xff0c;当然得有一个自己的练兵台了&#xff01;2020-02-06Tupelo Shenimg/post-bg-re-vs-ng2.jpgtrueLinuxDriver1 环境介绍 主机环境&#xff1a; Win10 64 Vi…

性能之内存篇

最近笔者在看性能分析相关的是知识&#xff0c;就特意针对内存整理了这一篇文章&#xff0c;在这里笔者主要从下面三个方面来介绍这方面的知识&#xff1a;1.内存的作用是什么&#xff0c;他在操作系统中的基础知识都有哪一些&#xff1f;2.查看内存和内存相关问题涉及到的工具…

漏洞复现 CVE-2021-3493——Linux kernel 特权提升 +升级ubuntu内核的方法 (附exp)

1、漏洞简述 linux kernel一般指Linux内核。Linux是一种开源电脑操作系统内核。它是一个用C语言写成&#xff0c;符合POSIX标准的类Unix操作系统。 Linux内核中overlayfs文件系统中的Ubuntu特定问题&#xff0c;它未正确验证关于用户名称空间的文件系统功能的应用。 由于Ubu…

LWN:小话题:Realtime, Futex, ntfs3!

关注了就能看到更多这么棒的文章哦&#xff5e;Short subjects: Realtime, Futexes, and ntfs3By Jonathan CorbetAugust 16, 2021DeepL assisted translationhttps://lwn.net/Articles/866112/即使在&#xff08;北半球&#xff09;夏天大家都因为炎炎夏日而非常慵懒的日子里&…

深入linux内核架构-第二章-进程管理和调度

2.1什么是进程优先级以及抢占式多任务处理&#xff1f; 这个用过任何操作系统的程序员都能够理解的。在这里就不多说了。 那么linux进程管理和调度采用的什么模型呢&#xff1f;我们称这种方案为抢占式多任务处理&#xff08;preemptive multitasking&#xff09;&#xff0c;…

常见浏览器及其内核对应

截止到2020年8月&#xff0c;目前常见浏览器使用的内核如下表所示。 浏览器目前使用的内核IETridentOperaPresto->Webkit->BlinkSafariWebkitFirefoxGeckoChromeBlinkEdgeEdgeHTML(Trident的一个分支) -> ChromiumQQ浏览器Trident&#xff08;兼容&#xff09; Chro…

can't find referenced method 'int checkSelfPermission(java.lang.String) 混淆失败的问题

在用腾讯的X5浏览器内核更换Android系统的WebView时&#xff0c;增加的SDK&#xff0c;混淆时报错 cant find referenced method int checkSelfPermission(java.lang.String) 现在越来越多的SDK开始兼容Android M,就会使用一些M里的新API,checkSelfPermission就是一个,如果本…

第六期-Linux内核源码结构(2)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 在上一期中&#xff0c;我们按照openEuler内核的目录结构简要介绍了openEuler内核目录中各个子目录的功能&#xff0c;这一期我们将简要介绍Linux内核的基本功能和抽象层级。 一、Linux内核Kernel M…

LWN:使用Rust进行Linux kernel开发!

Supporting Linux kernel development in RustAugust 31, 2020This article was contributed by Nelson ElhageLPC(https://lwn.net/Archives/ConferenceByYear/#2020-Linux_Plumbers_Conference)DeepL assisted translation.长期以来&#xff0c;Rust 编程语言的一个目标都是能…

5-Linux proc system

Linux proc system proc 文件系统是由内核创建的虚拟文件系统&#xff0c;被内核用来向外界报告信息的一个文件系统&#xff0c;存储着当前内核运行状态的一系列特殊文件&#xff0c;是在系统运行时才创建的&#xff0c;所以它仅存在于内存之中而不在外存(硬盘、flash)上。通过…

Linux下编写内核模块

最简单的内核模块编写&#xff0c;需要包含以下最基本的条件&#xff1a; 1、头文件根据功能的需求&#xff0c;添加不同功能的内核相关头文件#include <linux/module.h>#include <linux/init.h>以上两个头文件是必不可少的。 2、模块初始化模块初始化函数static i…

学习802.11之MAC帧格式(一篇就够!)

802.11规范的关键在于MAC&#xff08;媒介访问控制层&#xff09;&#xff0c;MAC位于各式物理层之上&#xff0c;控制数据传输。负责核心成帧操作以及与有线骨干网络之间的交互。 802.11 MAC采用载波监听多路访问&#xff08;CSMA&#xff09;机制来控制对传输媒介的访问&…

Linux内核中的常用数据结构-双向链表(1)

Linux的内核代码&#xff0c;网上很多&#xff0c;例如http://docs.huihoo.com/doxygen/linux/kernel/3.7/include_2linux_2types_8h_source.html 或者 http://lxr.free-electrons.com/source/drivers/gpu/drm/radeon/mkregtable.c 这个文件中基本上定义了大多数的双向链表操…

Docker 镜像加载原理简述 带 commit镜像

Docker镜像讲解 镜像是一种轻量级、可执行的独立软件包&#xff0c;用来打包软件运行环境和基本运行环境开发的软件&#xff0c;他包含运行某个软件爱你所需的所有内容&#xff0c;包括代码&#xff0c;运行时&#xff0c;库、环境变量和配置文件 将所有的应用&#xff0c;直…

Web前端复习——Javascript(1)

1、js发展进程关键词 ECMAScript标准——定义了js语言的核心语法 Netscape——遵照标准&#xff0c;实现了Javascript语言 Microsoft——遵照标准&#xff0c;实现了JSscript标准 W3C&#xff1a;DOM标准——专门操作网页内容的标准 所有浏览器都兼容 BOM&#xff1a;专门…

14、linux系统管理-系统资源查看

文章目录1.vmstat2.free3.查看CPU信息whouptimeuname查看centos的版本号1.vmstat vmstat [刷新延时] [刷新次数]procs&#xff1a;进程信息字段&#xff1a; r&#xff1a;等待运行的进程数&#xff0c;数量越大&#xff0c;系统越繁忙。b&#xff1a;不可被唤醒的进程数量&am…

Golang-channel底层实现精要

Golang-channel底层实现精要 一.channel 背景知识 channel是Go语言内置的核心类型&#xff0c;可以将其看做一个管道&#xff0c;channel和goroutine一起为go并发编程提供了最优雅和便利的方案在Go中有一句经典名言&#xff0c;永远不要通过共享内存来通信&#xff0c;而是要通…

LWN:关于module、GKI、以及火箭科学!

关注了就能看到更多这么棒的文章哦&#xff5e;The intersection of modules, GKI, and rocket scienceBy Jonathan CorbetOctober 11, 2021DeepL assisted translationhttps://lwn.net/Articles/872209/人们通常不认为那些围绕着对跟特定平台有关的 configuration 和 driver 进…

5.0 linux内存管理-原理

1. 信息 linux 0.11 2. 目的 了解内存的管理机制了解虚拟内存和物理内存的映射方式了解操作系统内存和磁盘的交互&#xff08;分页机制->缺页重读机制&#xff0c;用时拷贝机制&#xff09;应用程序如何高效使用内存和高级程序的设计方式 3. linux系统中内存映射图 lin…

除了SIGMOD还有它!《Greenplum走进西安》技术研讨会

了解更多Greenplum相关内容&#xff0c;欢迎访问Greenplum中文社区网站 时隔14年&#xff0c;2021 SIGMOD大会将于6月20-25日来到古城西安。作为最高学术地位的国际性学术会议&#xff0c;SIGMOD收录的论文代表了行业的最高水平。Greenplum内核团队的论文《Greenplum: A Hybrid…

LWN:char 是否应该是signed?

关注了就能看到更多这么棒的文章哦&#xff5e;Would you like signs with those chars?By Jonathan CorbetOctober 24, 2022DeepL assisted translationhttps://lwn.net/Articles/911914/C 语言之所以让人沉迷的众多原因&#xff08;怪癖&#xff09;之一&#xff0c;就是那些…

LWN:呼吁再次考虑地址空间隔离!

关注了就能看到更多这么棒的文章哦&#xff5e;A call to reconsider address-space isolationBy Jonathan CorbetSeptember 29, 2022LPCDeepL assisted translationhttps://lwn.net/Articles/909469/内核运行时可以访问到地址空间中的全部内容&#xff0c;通常就包括了所有的物…

LWN:5.17 合并窗口第一部分!

关注了就能看到更多这么棒的文章哦&#xff5e;The first half of the 5.17 merge windowBy Jonathan CorbetJanuary 13, 2022DeepL assisted translationhttps://lwn.net/Articles/880909/目前为止&#xff0c;有将近 7000 个 non-merge commit 已经合入了 mainline&#xff0…

LWN: BPF 中也能panic!

关注了就能看到更多这么棒的文章哦&#xff5e;The BPF panic functionBy Jonathan CorbetJuly 18, 2022DeepL assisted translationhttps://lwn.net/Articles/901284/BPF 子系统的关键卖点之一&#xff0c;就是加载 BPF 程序的动作是安全的&#xff1a;BPF verifier 这个验证器…

LWN: 5.14 中的 memfd_secret()!

关注了就能看到更多这么棒的文章哦&#xff5e;memfd_secret() in 5.14By Jonathan CorbetAugust 6, 2021DeepL assisted translationhttps://lwn.net/Articles/865256/2020 年 2 月之后&#xff0c;memfd_secret() 系统调用其实已经在 LWN 以其他形式报道过。一开始&#xff0…

LWN: cgroup 新增 kill 功能!

关注了就能看到更多这么棒的文章哦&#xff5e;A "kill" button for control groupsBy Jonathan CorbetMay 3, 2021DeepL assisted translationhttps://lwn.net/Articles/855049/内核的 cgroup 机制&#xff08;control group&#xff09;是用来划分进程并为每个进程…

LWN: 5.11内核数据分析!

关注了就能看到更多这么棒的文章哦&#xff5e; Development statistics for the 5.11 kernel By Jonathan Corbet February 15, 2021 https://lwn.net/Articles/845831/ Linux kernel 5.11 在 2 月 14 日正式发布了&#xff0c;这可以算得上人们期待的一个浪漫情人节礼物了。这…

【精选】ARMv8/ARMv9架构入门到精通-[前言]

快速链接: . &#x1f449;&#x1f449;&#x1f449; 个人博客笔记导读目录(全部) &#x1f448;&#x1f448;&#x1f448; 付费专栏-付费课程 【购买须知】: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; 想不想一夜暴富&#xf…

LWN:32位Linux的未来!

关注了就能看到更多这么棒的文章哦&#xff5e;The future of 32-bit LinuxDecember 4, 2020This article was contributed by Arnd Bergmannhttps://lwn.net/Articles/838807/近年来关于处理器&#xff08;Processor&#xff09;和 SoC (system-on-chip) 的新闻都是围绕着最新…

LWN:把atomic kmap改成local kmap!

关注了就能看到更多这么棒的文章哦&#xff5e;Atomic kmaps become localBy Jonathan CorbetNovember 6, 2020DeepL assisted translationhttps://lwn.net/Articles/836144/内核中的 kmap()接口在某种意义上是个挺奇怪的 API&#xff0c;它的存在意义&#xff0c;完全只是用来…

万字讲解你写的代码是如何跑起来的?

今天我们来思考一个简单的问题&#xff0c;一个程序是如何在 Linux 上执行起来的&#xff1f; 我们就拿全宇宙最简单的 Hello World 程序来举例。 #include <stdio.h> int main() {printf("Hello, World!\n");return 0; } 我们在写完代码后&#xff0c;进行…

Linux应用程序开发——进程控制

Linux应用程序开发——进程控制一、Linux系统进程概述二、Linux系统进程调度三、相关系统调用及实例分析3.1 系统调用概述与常用函数3.2 系统调用实例一、Linux系统进程概述 &#xff08;1&#xff09; 进程的定义&#xff1a;进程在Linux操作系统中执行特定的任务&#xff0c…

2.5.3特殊操作系统-微内核操作系统:微内核、单体内核到微内核的流程、单体内核和微内核对比

2.5.3特殊操作系统-微内核操作系统&#xff1a;微内核、单体内核到微内核的流程、单体内核和微内核对比微内核单体内核到微内核的流程单体内核和微内核对比微内核 微内核操作系统主要针对于单体内核而言的。 现代操作系统大多拥有两种工作状态&#xff0c;分别是核心态和用户态…

LWN:Arm64的内存标记扩展功能!

关注了就能看到更多这么棒的文章哦&#xff5e;The Arm64 memory tagging extension in LinuxBy Jonathan CorbetOctober 15, 2020DeepL assisted translationhttps://lwn.net/Articles/834289/5.10 内核开发周期中合入的首批功能之一就是支持 Arm v8.5 memory tagging extensi…

面试问了解Linux内存管理吗?10张图给你安排的明明白白

linux内存管理&#xff0c;内存管理好像离我们很远&#xff0c;但这个知识点虽然冷门&#xff08;估计很多人学完根本就没机会用上&#xff09;但绝对是基础中的基础&#xff0c;这就像武侠中的内功修炼&#xff0c;学完之后看不到立竿见影的效果&#xff0c;但对你日后的开发工…

Linux kernel内存分配基础

结合工作中的实战经验&#xff0c;以及工作中常用的内存管理知识点。想写一篇文章&#xff0c;介绍一下kernel的内存分配基础知识。让大家对kernel内存管理有一个基本的认识。 基本概念 Node Zone Page Memblock Buddy Slub Malloc 缺页异常 分配匿名页 内核触发页面回收的机…

新唐NUC980使用记录(5.10.y内核):访问以太网(LAN8720A) 启用SSH

文章目录 目的修改内核和设备树以访问以太网制作根文件系统并启用SSH总结 目的 这篇文章主要测试新唐NUC980&#xff08;5.10.y内核&#xff09;访问以太网&#xff08;PHY为LAN8720A&#xff09;以及启用SSH。 这篇文章中内容均在下面的开发板上进行测试&#xff1a; 《新唐…

打印系统中所有状态的tcp

实现将系统中所有状态的tcp打印出来&#xff0c;代码如下&#xff1a; char* GetConnState(unsigned char state) {char* p "";switch (state){case TCP_ESTABLISHED:p "TCP_ESTABLISHED";break;case TCP_LISTEN:p "TCP_LISTEN";break;case …

内核分析3

1.1 setup_command_line函数 作用&#xff1a;处理与命令行有关的参数&#xff0c;如uboot向内核传输命令参数 1.2 parse_early_param();和 parse_args&#xff1b; 作用&#xff1a;解析uboot传输的参数&#xff0c;将解析的每一个参数放到每一个数组中&#xff0c;再将数组…

内核分析2(setup_arch)

1.函数的作用 确定当前内核的机器码&#xff0c;然后确定当前内核所用的CPU 2.machine_desc 机器码的描述符。里面包含了机器平台的相关信息。 struct machine_desc {/** Note! The first four elements are used* by assembler code in head.S, head-common.S*///机器码号…

do_bootm_linux函数分析

&#xff08;1&#xff09; do_bootm_linux (cmdtp, flag, argc, argv, &images); ulong initrd_start, initrd_end; ulong ep 0; bd_t *bd gd->bd; char *s; #重新校验机器码 int machid bd->bi_arch_number; #定义一个函数指针&#xff0c;用来重定位内核 void…

有关内核的一些基础知识

&#xff08;1&#xff09;内核和uboot是什么 uboot是一个复杂的裸机程序。 内核也是一个复杂的裸机程序。 区别&#xff1a;内核执行后分为内核层和应用层&#xff0c;分层后内核层可以随便访问内存和操作硬件&#xff0c;而应用层只能访问限制范围内的内存和操作硬件。 &am…

内核调试工具crash使用

内核调试工具crash使用 前言初识获取vmlinuxDwarf Error: wrong version in compilation unit header (is 5, should be 2, 3, or 4) 其他 前言 在编写内核驱动的过程中&#xff0c;时不时就导致内核崩溃&#xff0c;也没啥好的调试方法&#xff0c;要么dmesg打印内核日志&…

linux内核的proc文件系统

https://xuesong.blog.csdn.net/article/details/109522945 Linux的procfs文件系统是一个虚拟文件系统&#xff0c;是一种特殊文件系统&#xff0c;用于显示进程信息和内核进程。目前&#xff0c;虽然/proc仍然被广泛使用&#xff0c;但是内核2.6及以上的版本&#xff0c;大部分…

内核、设备树、文件系统

一、什么是内核 Linux内核就像人的心脏&#xff0c;灵魂&#xff0c;指挥中心。内核是一个操作系统的核心,它负责管理系统的进程&#xff0c;内存&#xff0c;设备驱动程序&#xff0c;文件和网络系统&#xff0c;决定着系统的性能和稳定性。内核以独占的方式执行最底层任务&a…

理解Linux backlog/somaxconn内核参数

TCP SYN_REVD, ESTABELLISHED 状态对应的队列 TCP 建立连接时要经过 3 次握手&#xff0c;在客户端向服务器发起连接时&#xff0c; 对于服务器而言&#xff0c;一个完整的连接建立过程&#xff0c;服务器会经历 2 种 TCP 状态&#xff1a;SYN_REVD, ESTABELLISHED。 对应也会…

Arm发布最新内核 : Corte-X4/A720/A520,支持Armv9.2

1、背景 Arm 是一家设计智能手机的CPU内核的公司&#xff0c;并且每年它都会进行新的迭代&#xff0c;这些迭代随后将集成进芯片SOC&#xff0c;例如当年的旗舰 Snapdragon 、 MediaTek Dimensity。2023年&#xff0c;发布了新的旗舰级内核&#xff1a; Cortex-X4 超大核、Cort…

嵌入式Linux驱动开发 04:基于设备树的驱动开发

文章目录 目的基础说明开发准备设备树调整驱动程序与测试总结设备树文件内容 目的 前面文章 《嵌入式Linux驱动开发 03&#xff1a;平台&#xff08;platform&#xff09;总线驱动模型》 引入了资源和驱动分离的概念&#xff0c;这篇文章将在前面基础上更进一步&#xff0c;引…

LUKS磁盘加密

数据的安全&#xff0c;保密性在现在的生活中显得越来越重要。随着数字化的时代的来临&#xff0c;越来越多的数据被数字化&#xff0c;特别是更多有关于我们隐私的数据在不断生成&#xff0c;甚至还有我们需要离线保存的密钥等。而且通常我们使用磁盘&#xff0c;USB 闪存&…

LWN:LPC 2020上安卓内核相关讨论!

关注了就能看到更多这么棒的文章哦&#xff5e;Android kernel notes from LPC 2020By Jonathan CorbetSeptember 10, 2020LPC原文来自&#xff1a;https://lwn.net/Articles/830979/DeepL assisted translation在 Android 项目的早期&#xff0c;它的 kernel 代码跟 kernel co…

Linux--12--Kernel panic – not syncing: Attempted to kill init! Redhat6.2故障修复

1、Linux环境 Redhat6.2&#xff0c; Linux version 2.6.32-220.el6.i686 (mockbuildx86-003.build.bos.redhat.com) (gccversion 4,4.5 20110214 (Red Hat 4.4.5-6) (GCC) ) #1 SMP Wed Nov 9 08:02:18 EST 2011 2、故障现象 修改TCP相关文件&#xff0c;重启完Linux系统之…

tf.keras.layers.Conv2D()

官方文档如下&#xff1a; 2D convolution layer (e.g. spatial convolution over images). This layer creates a convolution kernel that is convolved with the layer input to produce a tensor of outputs. If use_bias is True, a bias vector is created and added to…

NVIDIA Jetson TX2编译内核解决无法使用游戏手柄XBOX360的问题

最近在TX2上面使用ROS时发现购买的XBOX360游戏手柄插入USB后&#xff0c;终端执行 ls /dev/input/ 并没有显示手柄的输入接口&#xff08;js*&#xff09; 于是就在TX2论坛、博客各个地方搜集解决方案&#xff0c;后来发现 TX2默认内核中Input并没有进行joystick的配置。 一番…

《Linux驱动》iTop4412开发板LCD驱动 详细分析 (二)

由上图可以看出 lcd的应用层 通过 内核的fbmem接口 再调用驱动xxxfb.c的内容 而fbmem接口是内核提供的&#xff0c;所有驱动设计人员主要的任务就是定义一个fb_info 结构体(该结构由内核提供)&#xff0c;然后填充结构体中的内容做好相应的初始化后&#xff0c;提交给内核就可…

Linux内核中是怎么实现min和max函数

Linux内核代码有很多很经典的代码&#xff0c;仔细去看看&#xff0c;可以学到很多知识。今天说说Linux是怎么实现min和max的。max和min函数都是比较常用的&#xff0c;可以用函数&#xff0c;或者利用宏去实现&#xff0c;一般我们会这样去写&#xff1a; 1 #define min(x,y) …

DM365 linux内核文件系统的烧写步骤及其uboot参数配置

DM365 linux内核&文件系统的烧写步骤及其uboot参数配置 目录 源文档下载&#xff1a;http://download.csdn.net/detail/zhangjikuan/6443961 第一节&#xff1a;uboot下载 第二节&#xff1a;启动uboot 第三节&#xff1a;修改uboot参数 第四节&#xff1a;ping通 第…

内核MTD分区大小计算

在内核启动的时候会打印出MTD分区的情况&#xff0c;如下&#xff1a; bootloader的大小&#xff1a;0x3c0000转换成十进制&#xff0c;/2/1024/10241.5MB params (0x400000-0x3c0000)转换成十进制&#xff0c;/2/102496KB kernel 0x400000 转换成十进制…

9张图11个概念 学习linux 内存管理

原文链接&#xff1a;https://mp.weixin.qq.com/s/6kNJnVd1ZTng7nQ8zLyJvA 概念1 &#xff1a;虚拟地址 即使是现代操作系统中&#xff0c;内存依然是计算机中很宝贵的资源&#xff0c;看看你电脑几个T固态硬盘&#xff0c;再看看内存大小就知道了。 为了充分利用和管理系统…

虚拟文件系统几个好贴

其中最经典的还是内核示例&#xff1a; \kernel\linux\linux-4.4.39-cgel\samples\kobject-example.c \kernel\linux\linux-4.4.39-cgel\samples\kset-example.c 对着内核示例操作一遍&#xff0c;再看下面帖子&#xff0c;应该会有所感悟吧。 https://www.cnblogs.com/hell…

深入理解Linux网络技术内幕——协议处理函数

网络帧在进入网络层时&#xff0c;需要区分不同的网络协议进行处理&#xff0c;这就需要涉及协议处理函数。 首先我们从驱动接收到一个数据帧&#xff0c;分析数据帧在协议栈中自下而上的传输流程。 设备驱动程序在接收到一个数据帧时&#xff0c;会将其保存在一个sk_buff缓冲…

树莓派内核编译与升级-树莓派自身编译(四)

用树莓派自身进行编译&#xff0c;首先需要安装树莓派下缺少的库&#xff1a; sudo apt-get install git bc 安装git是为了可以用git获取源码&#xff0c;源码获取方式和上面一样。 配置 cd linux KERNELkernel7 make bcm2709_defconfig 编译与更新 make -j4 zImage mo…

树莓派内核交叉编译与升级(三)

内核下载&#xff1a; 官网下载 https://github.com/raspberrypi/linux/tree/rpi-4.9.y 下载后进行解压unzip rpi_xx.zip使用git git clone git://github.com/raspberrypi/linux/tree/rpi-4.9.y config配置 拷贝树莓派配置进行编译 将可运行的树莓派配置文件.config拷贝到…

深入剖析 split locks,i++ 可能导致的灾难

动手点关注 干货不迷路 &#x1f446;Split lock 是 CPU 为了支持跨 cache line 进行原子内存访问而支持的内存总线锁。有些处理器比如 ARM、RISC-V 不允许未对齐的内存访问&#xff0c;不会产生跨 cache line 的原子访问&#xff0c;所以不会产生 split lock&#xff0c;而 X8…

Nginx 性能优化(吐血总结)

文章目录一、性能优化考虑点1、当前系统结构瓶颈2、了解业务模式3、性能与安全二、系统与Nginx性能优化1、文件句柄&#xff08;1&#xff09;设置方式&#xff08;2&#xff09;系统全局性修改和用户局部性修改&#xff08;3&#xff09;进程局部性修改2、cpu的亲和配置&#…

4.2 linux文件系统-高速缓冲区

1&#xff1a;基本信息 代码&#xff1a;linux-0.11 2&#xff1a;高速缓冲区 高速缓冲区的管理要素 映射关系&#xff08;内存和磁盘之间的映射关系&#xff09;应用程序与高速缓冲区的交互API磁盘的交互API高速缓冲区的管理机制&#xff08;循环链表 哈希表 单链表&…

4.1 内核文件系统-busybox

1&#xff1a;信息 busybox版本&#xff1a;busybox-1.7.0 2&#xff1a;关于busybox busybox是一个集成了一百多个最常用linux命令和工具的软件,他甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小.我们平时用的那些linux命令就好比是…

进程中的线程究竟共享哪些资源,这些你真的了解了吗。

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动&#xff0c;进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体&#xff0c;是CPU调度和分派的基本单位&#xff0c;它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥…

printk调试信息无法打印到控制台

原因分析 一般这种情况出现在发行版Linux(如Ubuntu/Centos)驱动开发中&#xff0c;出现这个问题的原因是:printk默认的输出设备是/dev/console,而这个设备只能在内核中访问。我们用户使用的控制台&#xff0c;也叫终端&#xff0c;对应到的是/dev/tty*。 你可以通过tty命令来…

Linux和Ubuntu的区别

Linux和Ubuntu的区别 一、Linux 1、Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。 2、而严格来讲&#xff0c;Linux这个词本身只表示Linux内核&#xff0c;但实际上人们已经习惯了用Linu…

operating system-操作系统概述

operating system-操作系统概述An operating system (OS) is software that manages computer hardware and software resources and provides common services forcomputer programs. The operating system is an essential component of the system software in a computer s…

2.1 高版本内核初始化

1: 信息和文件 代码版本&#xff1a;Linux-3.4.2 2:板级信息传递 目的&#xff1a;板级信息如何传递到linux内核中去 文件&#xff1a; linux-3.4.2\arch\arm\kernel\head-common.S linux-3.4.2/arc/arm/kernel/vimlinux.lds.S : 链接文件 linux-3.4.2\arch\arm\include\asm…

LWN:查看5.17 的开发数据!

关注了就能看到更多这么棒的文章哦&#xff5e;A look at some 5.17 development statisticsBy Jonathan CorbetMarch 21, 2022DeepL assisted translationhttps://lwn.net/Articles/887559/在 5.17 开发周期结束时&#xff0c;13038 个 non-merging changeset 已经进入 mainli…

4.0 内核文件系统-kernel部分

1&#xff1a;信息 内核版本&#xff1a; Linux 2.6.22 busybox版本&#xff1a;busybox-1.7.0 2&#xff1a;文件系统的出现位置 板卡上电后先由UBOOT启动初始化办卡&#xff0c;将Linux移到内存中运行 由linux内核自行做初始化操作&#xff0c;挂载了第一个应用程序&…

LWN:5.15 开发周期数据统计!

关注了就能看到更多这么棒的文章哦&#xff5e;Some 5.15 development statisticsBy Jonathan CorbetNovember 1, 2021https://lwn.net/Articles/874283/5.15 内核在 10 月 31 日正式发布了&#xff0c;code name 也就顺利成章地起名为 "Trick or Treat" 了。当时&am…

LWN:GCC 中两个安全相关的改进!

关注了就能看到更多这么棒的文章哦&#xff5e;Two security improvements for GCCBy Jonathan CorbetSeptember 24, 2021LPCDeepL assisted translationhttps://lwn.net/Articles/870045/人们常说 GCC 和 LLVM 编译器之间的竞争对它们两者来说都是好事。竞争出现在多个方面&am…

2.0 Linux内核的引导与启动

1&#xff1a;主要文件 内核版本-0.11 主要文件位置 linux/boot/ bootsect.s setup.s head.s 2&#xff1a; CPU启动 cpu上电后会进入自动模式&#xff0c;并会从0xFFFF0 (x86 是 存储的总线地址&#xff09;开始自动执行代码&#xff0c;把bootsect从固定的地址拿到内存中的…

LWN:5.14合并窗口结束了!

关注了就能看到更多这么棒的文章哦&#xff5e;The conclusion of the 5.14 merge windowBy Jonathan CorbetJuly 12, 2021DeepL assisted translationhttps://lwn.net/Articles/861695/7 月 11 日&#xff0c;5.14 合并窗口随着 5.14-rc1 的发布而正式结束了。当时已经有约 12…

4.4 Linux文件系统-挂载卸载和超级块

1&#xff1a;基本信息 代码&#xff1a;linux-0.11 super.c : 含有处理超级快的代码 超级块是设备的映射&#xff0c;超级块的操作关系到设备文件系统操作 下面会解析&#xff1a; 对超级块进行操作&#xff08;创建&#xff0c;读取&#xff0c;释放&#xff09; get_supe…

如何写自己的sysfs接口

Linux设备模型之kobject 每个在内核中注册的kobject都对应于sysfs文件系统中的一个目录。所以要了解sysfs接口必须了解kobject。 随着Linux内核的发展壮大&#xff0c;其支持的设备也越来越多&#xff0c;但一直没有一个很好的方法来管理慢慢增多的设备驱动。为了能够在内核中…

arm-linux内核启动学习笔记(二)

版权声明&#xff1a;本文为CSDN博主「ashimida」的原创文章&#xff0c;遵循CC 4.0 BY-SA版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/lidan113lidan/article/details/46225209 更多内容可关注微信公众号 ##Part3[call_…

arm-linux内核启动学习笔记(一)

版权声明&#xff1a;本文为CSDN博主「ashimida」的原创文章&#xff0c;遵循CC 4.0 BY-SA版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/lidan113lidan/article/details/45043155 更多内容可关注微信公众号 ##arm-linux 内…

arm-linux内核启动学习笔记(二)(废弃)

更多内容可关注微信公众号 #已合并到arm-linux内核启动学习笔记(一) ###Part2:(cache_on,call_kernel] ####vmlinux(小)的链接脚本: //./arch/arm/boot/compressed/vmlinux.lds.in //这个脚本是用来链接vmlinux(小)的&#xff0c;故zImage代码执行时 //内核各个段的分布也是在…

systemtap工具使用介绍

简介 systemtap 是利用Kprobe 提供的API来实现动态地监控和跟踪运行中的Linux内核的工具&#xff0c;相比Kprobe&#xff0c;systemtap更加简单&#xff0c;提供给用户简单的命令行接口&#xff0c;以及编写内核指令的脚本语言。对于开发人员&#xff0c;systemtap是一款难得的…

4.3 Linux文件系统-inode

1&#xff1a;基本信息 代码&#xff1a;linux-0.11 2&#xff1a;linux文件系统的几部分 有关linux中高速缓冲区的管理部分。分页机制 buff.c文件系统的底层通用函数。&#xff08;对于硬盘的读写&#xff0c;分配&#xff0c;释放&#xff0c;对于目录的节点管理&#xff…

LWN:为什么RISC-V尚未支持KVM?

关注了就能看到更多这么棒的文章哦&#xff5e;Why RISC-V doesnt (yet) support KVMBy Jonathan CorbetMay 20, 2021DeepL assisted translationhttps://lwn.net/Articles/856685/近年来 RISC-V CPU 架构的地位日益突出。其相对开放的性质使其成为一个有吸引力的平台&#xff…

LWN: 5.13 合并窗口第二部分!

关注了就能看到更多这么棒的文章哦&#xff5e;The second half of the 5.13 merge windowBy Jonathan CorbetMay 10, 2021DeepL assisted translationhttps://lwn.net/Articles/855140/在最后一个 pull request 被合入以及发布 5.13-rc1 时&#xff0c;总共有 14,231 个 non-m…

1.1-内核的进程调度和进程切换

1&#xff1a;代码环境 linux 0.11 2: 其他函数 2.1 显示进程show_task&#xff08;&#xff09; void show_task(int nr,struct task_struct * p)//nr为pid&#xff0c;代表第几个进程 {int i,j 4096-sizeof(struct task_struct); //找到栈堆的大小printk("%d: pid%…

Linux内存域管理

Linux作为通用硬件内核&#xff0c;在内存管理上如何实现通用且高效。在前面Linux内存分段分页一篇我们主要讲解Linux内核进行物理地址逻辑地址线性地址的抽象映射&#xff0c;犹如在蛮荒之地为各家各户划分领土&#xff0c;像极了土地改革。考虑一个国家的土地治理过程&#x…

Linux内存分段分页

随着集成技术越来越精细&#xff0c;内存存储量从字节&#xff0c;千字节&#xff0c;兆字节&#xff0c;GB&#xff0c;…容量越来越大。如何有效地管理内存是一门艺术。在80X86体系中通过分段部件和分页部件提供内存管理的支持&#xff0c;由此从换分出实地址模式&#xff0c…

Linux内核中的FILE文件数据结构和dup,dup2函数

内核中的数据结构和dup,dup2函数 首先介绍一下内核数据结构&#xff1a; 一个打开的文件在内核中使用三种数据结构表示&#xff1a;文件描述符表文件描述符标识文件表项指针文件表项文件状态标志读写追加同步和非阻塞当前文件偏移量i节点表项指针引用计数器i节点文件类型和对…

STM32 低功耗和ADC

低功耗 stm32f103xc&#xff0c;stm32f103xd和stm32f103xE增强型产品支持三种低功耗模式&#xff0c;可以在要求低功耗&#xff0c;短启动时间和多种唤醒事件之间达到最佳的平衡。 睡眠模式 在睡眠模式&#xff0c;只有CPU停止&#xff0c;所有外设处于工作状态并可在发生中…

TCP/IP面试要点浅析

TCP/IP面试要点浅析 一.TCP基本认识 1.TCP头部格式 序列号 在建立连接时由计算机生成的随机数作为初始值&#xff0c;通过SYN包传输给接收端每发送一次数据&#xff0c;就累加一次该数据字节数的大小用来解决网络包乱序的问题 确认应答号 指下次期望收到数据的序列号发送端收到…

Golang-调度器原理解析

Golang调度器原理解析 本文主要介绍调度器的由来以及golang调度器为何要如此设计&#xff0c;以及GPM模型解析 一.调度器的由来 1.单进程时代 单进程时代不需要调度器&#xff0c;一切程序都是串行&#xff0c;所以单进程的操作系统会面临这样一个问题&#xff1a; 程序只能串行…

性能之网络篇

网络通讯的链路为&#xff1a;机器A-----》路由器----〉机器B如果我们站在本机机器作为参考物的话&#xff0c;应该拆分成下面三个阶段&#xff1a;1.消息入口流量部分的处理流程2.流量在本机上面的处理流程3.流量出口流量部分的处理流程在上面的这三个阶段&#xff0c;分别涉及…

【IMX6ULL驱动开发学习】10.设置uboot使用网络加载zImage和dtb

1. 在uboot中设置网络 首先启动自己的板子&#xff0c;使用 ifconfig 命令或者 ifconfig -a 命令查看自己网卡的地址 ifconfig ifconfig -a我的网卡地址是这个 52:15:66:2E:16:71接着设置自己的ip setenv ipaddr 192.168.1.100设置服务器ip setenv serverip 192.168.1.200保…

Linux内核TCP参数调优全面解读

Linux内核TCP参数调优全面解读 前言 TCP 性能的提升不仅考察 TCP 的理论知识&#xff0c;还考察了对于操心系统提供的内核参数的理解与应用。 TCP 协议是由操作系统实现&#xff0c;所以操作系统提供了不少调节 TCP 的参数。 如何正确有效的使用这些参数&#xff0c;来提高 T…

BootLoader——嵌入式系统的引导加载程序

BootLoader——嵌入式系统的引导加载程序一、BootLoader的简介1.1 BootLoader在固态存储设备中的位置1.2 BootLoader的启动过程1.3 BootLoader的操作模式二、BootLoader的启动过程2.1 BootLoader启动简介2.2 BootLoader启动的stage12.3 BootLoader启动的stage2引导加载程序&…

性能之cpu篇

对于性能来说&#xff0c;cpu的调度逻辑是影响性能的主要来源&#xff0c;本文主要来介绍下cpu跟性能相关的调度逻辑和排障工具。一、cpu调度逻辑介绍&#xff1a;Linux 是一个多任务操作系统&#xff0c;支持远大于 CPU 数量的任务同时运行&#xff0c;而这里的同时运行采用的…

《Linux内核分析》(一)——反汇编一个简单的C程序并分析其汇编代码的执行

作者&#xff1a;Sandy 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 实验环境&#xff1a;cLinux64位 &#xff08;32位系统可能结果会不同&#xff09; 依照学术诚信条款&#xff0c;我保证此回答为本人原创&am…

docker的宿主系统是centos,为什么可以运行ubuntu的镜像呢?

首先需要区分Linux内核与Linux发行版 Linux内核是Linux操作系统的核心, 负责硬件管理, 比如管理内存、管理磁盘&#xff08;文件系统&#xff09;、管理CPU(进程)等等… Linux发行版是在Linux内核的基础上添加了一些工具软件,比如图形界面、函数库、软件包管理系统等等… Cen…

最硬核的linux嵌入式根文件系统制作

使用Buildroot为I.MX6制作根文件系统 我的虚拟机版本是 1、 Buildroot&#xff0c;官方下载地址为&#xff1a; - https://buildroot.org/downloads/ 我使用的是buildroot-2019.02.tar.gz&#xff0c;较新的一个版本。大家可以根据需要自行下载。 2、工具链&#xff0c;我这里…

第四十二期-ARM Linux内核的系统调用(2)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期中我们介绍了ARM Linux内核中的系统调用和定义系统调用的流程&#xff0c;这一期我们将介绍系统调用的执行过程。 一、ARM Linux内核中系统调用的执行过程 在第二十九期和第三十期中&#xf…

FIN_WAIT2状态的弊端以及TIME_WAIT状态分析及作用

只有处于FIN_WAIT2状态的客户端等待到服务器的结束报文段&#xff0c;才能转移至TIME_WAIT状态&#xff0c;否则它将一直停留在这个状态&#xff0c;如果不是为了在半关闭状态下继续发送数据&#xff0c;连接长时间的停留在FIN_WAIT2状态并无益处&#xff0c;连接停留在FIN_WAI…

Linux块设备驱动详解

一、机械硬盘 1、磁盘结构 传统的机械硬盘一般为3.5英寸硬盘&#xff0c;并由多个圆形蝶片组成&#xff0c;每个蝶片拥有独立的机械臂和磁头&#xff0c;每个堞片的圆形平面被划分了不同的同心圆&#xff0c;每一个同心圆称为一个磁道&#xff0c;位于最外面的道的周长最长称为…

给初学Linux的朋友分享一些心得总结

很多同学接触linux不多&#xff0c;对linux平台的开发更是一无所知。 而现在的趋势越来越表明&#xff0c;作为一个优秀的软件开发人员&#xff0c;或计算机it行业从业人员&#xff0c;"" 掌握linux是一种很重要的谋生资源与手段。 下来我将会结合自己的几年的个人…

再见了SpringBoot!高并发的王永远是ReentrantLock + Synchronized!

这段时间&#xff0c;公司拓了一条新业务线&#xff0c;我也在马不停蹄地面试候选人。招聘的职位是高级开发工程师&#xff0c;期望有独当一面的开发能力&#xff08;也就是阿里的P6&#xff09;&#xff0c;技术面当然是最重要的筛选。话说回来&#xff0c;Java 语言发展到今天…

linux用户态和内核态理解

1、特权级 Intel x86架构的cpu一共有0&#xff5e;4四个特权级&#xff0c;0级最高&#xff0c;3级最低&#xff0c;硬件上在执行每条指令时都会对指令所具有的特权级做相应的检查。硬件已经提供了一套特权级使用的相关机制&#xff0c;软件自然要好好利用&#xff0c;这属于操…

第十四期-Linux内核的分布式编译(2)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期中我们介绍了用源码包安装 distcc 的方法&#xff0c;这一期我们尝试用 distcc 对 Linux 4.19.90 内核进行分布式编译。 一、Linux内核的分布式编译 我们尝试用同一个子网中的三台服务器对 L…

Linux过来人帮你理清学习思路

很多同学接触linux不多&#xff0c;对linux平台的开发更是一无所知。 而现在的趋势越来越表明&#xff0c;作为一个优秀的软件开发人员&#xff0c;或计算机it行业从业人员&#xff0c;"" 掌握linux是一种很重要的谋生资源与手段。 下来我将会结合自己的几年的个人…

零基础学习Linux必须要有的清晰思路

很多同学接触linux不多&#xff0c;对linux平台的开发更是一无所知。 而现在的趋势越来越表明&#xff0c;作为一个优秀的软件开发人员&#xff0c;或计算机it行业从业人员&#xff0c;"" 掌握linux是一种很重要的谋生资源与手段。 下来我将会结合自己的几年的个人开…

比较Docker与虚拟机性能

Docker与虚拟机实现原理比较 比较两图的差异&#xff0c;左图虚拟机的Guest OS层和Hypervisor层在Docker中被Docker Engine层所替代。虚拟机的Guest OS即为虚拟机安装的操作系统&#xff0c;它是一个完整操作系统内核&#xff1b;虚拟机的Hypervisor层可以简单理解为一个硬件虚…

RK系列SDK -- I2S MCLK 一直保持开启状态

说明&#xff1a;本文适用于基于 linux 4.4 内核版本开发系列SDK。针对部分需要开机后就一直提供 I2S MCLK 才能正常工作的codec&#xff0c;软件端加下述patch即可。 代码路径&#xff1a;kernel/sound/soc/rockchip/rockchip_i2s.c diff --git a/sound/soc/rockchip/rockch…

第五期-Linux内核源码结构(1)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 在上一期中&#xff0c;我们介绍了Linux内核发展的历史&#xff0c;也介绍了与其相关的UNIX和GNU的相关知识。从这一期开始&#xff0c;我们将介绍Linux内核的源码结构。我们将先根据Linux源码的目录…

项目概览 输入 输出_由Jupyter提供支持:项目生态系统概览

项目概览 输入 输出Project Jupyter has a large and growing developer community, one that both includes and extends beyond the Jupyter org on GitHub. In this post, we’ll take a walk through the wonderful things people are building based on Jupyter technolog…

psutil 4.4.0发布–改进了Linux内存指标和OSX支持

OK, here’s another psutil release. Main highlights of this release are more accurate memory metrics on Linux and different OSX fixes. Here goes. 好&#xff0c;这是另一个psutil版本。 此版本的主要亮点是Linux上的内存指标更加准确以及OSX的不同修复。 开始。 Li…

Linux上TCP的几个内核参数调优

Linux作为一个强大的操作系统&#xff0c;提供了一系列内核参数供我们进行调优。光TCP的调优参数就有50多个。在和线上问题斗智斗勇的过程中&#xff0c;笔者积累了一些在内网环境应该进行调优的参数。在此分享出来&#xff0c;希望对大家有所帮助。 调优清单 好了&#xff0…

tcp拥塞算法分析四(bbr)

本文分析linux-4.14.69代码的bbr拥塞算法 bbr算是一个完全独立的拥塞算法&#xff0c;具有自己的拥塞状态机&#xff0e;tcp_cong_control函数已经被bbr_main函数接管了&#xff0e;() /* The "ultimate" congestion control function that aims to replace the ri…

项目一、Cobbler自动部署装机(实验)

一、Cobbler Cobbler是一个使用Python开发的开源项目&#xff0c;通过将部署系统所涉及的所有服务集中在一起&#xff0c;来提供一个全自动批量快速建立linux系统的网络安装环境。 &#xff08;1&#xff09;实验准备 一台Linux服务器 and 一台空白虚拟机本此实验本机使用配置…

技术文档:PXE自动化部署装机

PXE自动化部署装机一、PXE概述二、PXE的优点三、搭建PXE服务的条件四、配置PXE网络服务器实操4.1 安装并开启TFTP服务4.2 安装并开启 DHCP服务4.3 准备 Linux 内核、初始化镜像文件4.4 准备 PXE 引导程序4.5 安装FTP服务&#xff0c;准备CentOS 7 安装源4.6 配置启动菜单文件4.…

linux内核数据结构之链表

linux内核数据结构之链表 1、前言 最近写代码需用到链表结构&#xff0c;正好公共库有关于链表的。第一眼看时&#xff0c;觉得有点新鲜&#xff0c;和我之前见到的链表结构不一样&#xff0c;只有前驱和后继指针&#xff0c;而没有数据域。后来看代码注释发现该代码来自linux内…

Netfilter——Netfilter中的HOOK机制

Netfilter 是 Linux网络内核协议栈提供了报文过滤&#xff08;防火墙&#xff09;框架&#xff0c;HOOK机制是Netfilter的核心。 一、如何在协议栈中调用钩子函数 在协议栈中相应位置嵌入Netfilter的函数NF_HOOK&#xff0c;来拦截报文送到Netfilter中进行处理。   协议栈中…

Iptables 指南 1.1.19

转载自&#xff1a;Iptables 指南 1.1.19 Iptables 指南 1.1.19 Oskar Andreasson oanfrozentux.net Copyright © 2001-2003 by Oskar Andreasson 本文在符合 GNU Free Documentation 许可版本1.1的条件下&#xff0c;可以拷贝、分发、更改&#xff0c;但必须保留绪言…

中断详解(四) ——异常与异常处理

异常 8Ox86微处理器发布了大约20种不同的异常&#xff0c;内核必须为每一种异常提供一个异常处理程序。对于某些异常&#xff0c;CPU控制单元在开始执行异常处理程序前会产生一个硬件出错码(hardwar eerror code) &#xff0c; 并且压入内核态堆钱。&#xff08;见本文最后面的…

中断详解(三)——中断和异常的硬件处理

假定内核已被初始化&#xff0c;CPU在保护模式下运行当执行了一条指令后&#xff0c;CS和eip这对寄存器包含下一条将要执行的指令的逻辑地址.在处理那条指令之前&#xff0c;控制单元会检查在运行前一条指令时是否已经发生了一个中断或异常。如果发生了一个中断或异常&#xff…

树莓派Linux——内核源码配置、编译操作

先装好树莓派linux 编译工具&#xff0c;可翻看博文 内核源码的获取 &#xff1a;树莓派 具体使用的版本取决于树莓派的版本&#xff0c;" uname -r "可查看树莓派的版本&#xff0c;我这里是4.14的所以我下载的是4.14的 修改配置文件 配置config&#xff1a; cp 厂…

段错误(吐核)Segmentation fault该如何处理?

首先我们先来搞清楚什么会导致段错误(Segmentation fault)。段错误是指硬件设备MMU(内存管理单元)发现访问了一个非法的虚拟地址&#xff0c;通知操作系统内核给进程发送11号信号(SIGSEGV信号)&#xff0c;导致进程异常终止。 一般来说&#xff0c;段错误是由以下几个原因导致…

Ubuntu (Linux) 内核降级

1 修改软件源 备份源文件&#xff1a; sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak用编辑器打开源配置文件 sudo vim /etc/apt/sources.list在文件最后面增加一行并保存: deb http://security.ubuntu.com/ubuntu trusty-security main执行以下命令更新配置 …

内存紧缺回收情况分析

内存紧缺回收 页分配时内存紧缺 __alloc_pages()函数无法在给定的内存管理区&#xff08;memory zone&#xff09;中分配一组连续页框。 alloc_pages 用于分配2的order次方个连续的页框。它返回第一个所分配页描述符的地址&#xff0c;如果分配失败返回null。 #define all…

Linux进程调度0.11源码

小白对Linux进程调度0.11源码的解析//linux0.11/kernel/sched.c void schedule(void)//调度函数 {int i,next,c;//i表示当前进程数组下标&#xff0c;next表示下次切换的进程&#xff0c;c表示当前最大的时间片大小。struct task_struct ** p;//p是一个指向task_struct指针的指…

nio零拷贝解析

nio zero copy传统网络数据拷贝nio网络数据传递传统网络数据拷贝 传统的server和client之间的数据传输就是用一个while循环不断的读取和发送。 server&#xff1a; public class OldServer {public static void main(String[] args) throws Exception {ServerSocket serverS…

arm-linux内核编译过程小结

版权声明&#xff1a;本文为CSDN博主「ashimida」的原创文章&#xff0c;遵循CC 4.0 BY-SA版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/lidan113lidan/article/details/44981829 更多内容可关注微信公众号 #记在前面的杂…

Python内核编译

编译环境 Windows11&#xff0c;VMware16&#xff0c;Ubuntu20.04&#xff0c;虚拟环境。PC机&#xff0c;内存32G&#xff0c;CPU 16 核心&#xff0c;I7八代。Ubuntu20.04 虚拟机。 编译准备 下载Python源码&#xff0c;https://www.python.org/downloads/source/新建pyth…

Linux虚拟文件系统

前面四篇我们探索了Linux核心系统–内存管理系统。接下来我们探索Linux文件系统。文件系统提供了一种抽象机制&#xff0c;这种机制将二进制数据抽象为文件的概念&#xff0c;这些二进制数据可以是代码&#xff0c;元数据&#xff0c;音视频数据等。从这个层面看文件系统像是一…

Linux进程虚拟内存

到现在为止我们仍然在讨论Linux内存&#xff0c;最开始内存是一块荒漠&#xff0c;后来我们把Linux这架星际火箭着陆到这块荒漠&#xff0c;并开始对这块荒漠进行地址编排规划&#xff0c;这个规划粒度是细的&#xff0c;是以比特位为基础的划分,每个比特位都对应一个地址。有了…

Linux内存分配系统

上一篇我们从内存结点&#xff0c;内存域的维度查看了Linux内存管理。本篇接着从内存分配的维度来看Linux内存管理。到现在为止&#xff0c;内核建立起了节点&#xff0c;域&#xff0c;页三级管理结构&#xff0c;并完成了页表映射。但是这一切都是在启动期内存管理器的基础上…

阿里巴巴Java性能调优实战:深入了解NIO的优化实现原理

答疑课堂&#xff1a;深入了解NIO的优化实现原理 综合查看完近期的留言以后&#xff0c;我的第一篇答疑课堂就顺势诞生了。我将继续讲解 I/O 优化&#xff0c;对大家在 08 讲中提到的内容做重点补充&#xff0c;并延伸一些有关 I/O 的知识点&#xff0c;更多结合实 际场景进行…

第三十四期-ARM Linux内核的中断(4)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期中我们介绍了ARM Linux内核中外设中断处理的部分流程&#xff0c;这一期我们将继续介绍ARM Linux内核的外设中断处理流程中与中断描述符相关的部分。 一、ARM Linux内核的中断描述符 上一期我…

linux内核升级(2.6.18到3.9.3)

本文主要是记录&#xff0c;这几天升级linux内核&#xff0c;这个痛苦的过程。废话少说吧&#xff0c;进入正题吧&#xff01;&#xff01; 升级必备 1.本人使用的linux系统是&#xff1a;Red Hat Enterprise 5 (linux kernel -2.6.18) &#xff0c;vmware7.0 虚拟机。 2.li…

第三十期-Linux内核的异常(2)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期中我们介绍了 Linux 4.19 内核的异常向量表&#xff0c;这一期我们将介绍 Linux 4.19 内核在 ARM64 处理器上的异常处理。 一、Linux 4.19 内核在 ARM64 处理器上的异常处理 当异常发生时&am…

第二十九期-Linux内核的异常(1)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一章中我们介绍了与ARM64体系中的异常与中断。这一期我们将介绍Linux 4.19内核中的异常向量表。 一、Linux 4.19内核的异常向量表 上一期中我们提到&#xff0c;异常向量被保存在异常向量表中。在…

第十一期-Linux内核模块依赖关系图绘制(1)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 在上一期中&#xff0c;我们以 Linux 网络模块中的 CAKE 系统为例&#xff0c;介绍了对 Linux 补丁源码的分析方法&#xff0c;这一期中我们将介绍如何查看 Linux 内核中各模块的依赖关系。 一、查看…

ubuntu 16.04内核源码编译

原文地址 1.查看内核版本uname –r 2.查看适合的内核版本apt-cache search Linux-source 3.下载内核源码apt-get install linux-source-4.10.0 4.切换到源码cd /usr/src/linux-source-4.10.0 5、 输入cp /boot/config-&#xff0c;然后按下Tab键&#xff0c;系统会自动填上…

第十期-Linux内核补丁源码分析(2)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 在上一期中&#xff0c;我们通过CAKE系统的实例介绍了一种对Linux内核补丁的初步分析方法&#xff0c;这一期我们将继续通过CAKE系统的例子介绍一种对补丁文件源码的分析方法。 一、Linux内核补丁源…

第八期-Linux内核编程环境(2)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 在上一期中&#xff0c;我们介绍了Linux内核编译方法&#xff0c;这一期我们用一个例子来介绍如何向Linux内核中增加一个模块。 一、LKM内核模块 LKM是Loadable Kernel Module的缩写&#xff0c;意…

第七期-Linux内核编程环境(1)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 在上一期中&#xff0c;我们介绍了Linux内核的源码结构&#xff0c;这一期我们介绍Linux内核编程环境&#xff0c;首先介绍的是Linux内核的编译方法。 一、Linux内核编译方法 本期中我们以Linux 4.…

第四期-Linux内核发展史(3)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 这一小节我们主要介绍Linux系统应用程序的主要来源——GNU。 一、GNU Linux包含系统内核和提供系统服务和工具的应用程序两个部分。Linux所使用的应用程序是由许多程序元编写并自由发布的。Linux支…

请善用工具审核您的内核代码:)

在写内核代码时&#xff0c;代码风格&#xff08;coding style&#xff09;是一个很重要的部分&#xff0c;否则内核代码将变的混乱不堪。那么什么样的代码算漂亮的代码&#xff1f;什么样的代码符合c99这样的标准&#xff1f;此外&#xff0c;程序写完之后&#xff0c;有什么工…

第三十八期-ARM Linux内核的中断(8)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期中我们介绍了ARM Linux内核中的底半机制和软中断的处理流程&#xff0c;这一期我们将介绍ARM Linux内核中小任务的工作流程和与工作队列相关的关键数据结构。 一、ARM Linux内核中小任务的工作…

第三十五期-ARM Linux内核的中断(5)

作者&#xff1a;罗宇哲&#xff0c;中国科学院软件研究所智能软件研究中心 上一期我们中我们介绍了ARM Linux内核中外设中断的一般流程&#xff0c;这一期中我们将介绍软件产生的中断的处理流程。 一、ARM Linux内核中软件产生的中断的处理流程 软件产生的中断&#xff08;…

三代微内核及其IPC比较

目录 1. 微内核简要发展历程&#xff1a; 1.1 第一代微内核&#xff1a; 1.2 第二代微内核&#xff1a; 1.3 第三代微内核&#xff1a; 2. IPC通信机制的比较&#xff1a; 1. 微内核简要发展历程&#xff1a; 操作系统微内核技术起始于20世纪80年代&#xff0c;随着微内…

linux platform分离机制是如何运作的呢

文章目录platform设备驱动软硬件分离机制原理两个重要的结构体&#xff08;1&#xff09;platform_device结构体platform_device成员 —&#xff08;struct device&#xff09;dev结构体platform_device成员 —&#xff08;struct&#xff09;resource *resource结构体platform…

Android system.img ext4格式

Android system.img镜像文件为sparse ext4 image格式&#xff0c; sparse header格式&#xff1a; typedef struct sparse_header {__le32 magic; /* 0xed26ff3a */__le16 major_version; /* (0x1) - reject images with higher major versions */__le16 minor_version; /* (…

程序是怎么样运行的

程序是怎么样运行的 本文从一个最简单C程序&#xff08;hello&#xff09;是如何被编译和链接讲起&#xff0c;描述了一个程序运行的原理。 一、程序运行之前 使用 IDE&#xff08;集成开发环境&#xff09;的朋友们经常会有这样的疑问&#xff1a;代码是怎么从一个文本文件变成…

BPF设计问答

BPF在网络&#xff0c;跟踪&#xff0c;Linux内核中的安全性以及BPF虚拟机的几种用户空间实现中的可扩展性和适用性导致对BPF实际上是什么存在许多误解。简短的质量检查旨在解决这一# 问题&#xff0c;并概述BPF长期发展的方向。 # 问题和解答问&#xff1a;BPF是类似于x64和ar…

BPF类型格式BTF

[TOC]&#xff08;BPF&#xff09; 这是包含BPF&#xff08;Berkeley Packet Filter&#xff09;功能的文档&#xff0c;重点放在扩展的BPF版本&#xff08;eBPF&#xff09;上。 该内核方面的文档仍在开发中。 &#xff08;出于历史原因&#xff09;主要文本文档在Linux套接…

STM32菜鸟学习手册-底层架构

整理了一下STM32相关的底层结构&#xff0c;有助于消化理解 先上几张图片&#xff08;主要参照STM3210x系列&#xff09; 1.芯片结构组成图&#xff1a; 2.STM32内部结构&#xff1a; 3.Cortex-M3模块结构图&#xff1a; 4.STM3210X内部结构&#xff1a; 桥&#xff…

编译内核是需要签名

模块签名在编译5.4内核是需要签名文件&#xff0c;查了好久&#xff0c;解决了&#xff0c;记录下&#xff1a;环境是&#xff1a; Redhat8.2 kvm 虚拟机 make menuconfig 配置签名文件是这俩个 CONFIG_MODULE_SIG_KEY"certs/signing_key.pem" CONFIG_SYSTEM_TRUSTE…

Slab Allocator

SlabCachesunderstand是基于2.6的这本书比较有年代了&#xff0c;学习基本思想后看最新代码&#xff0c;应该会好点&#xff0c;记录下备用。在本章中&#xff0c;将描述通用分配器。它是一个slab分配器&#xff0c;在许多方面与Solaris [MM01]中使用的通用内核分配器非常相似。…

Waitqueue in Linux

本文是Linux设备驱动程序系列的续篇&#xff0c;并对字符驱动程序及其实现进行了讨论。这是Linux设备驱动程序教程的第10部分。现在&#xff0c;我们将讨论Linux中的Waitqueue。 Waitqueue in LinuxLinux中的等待队列介绍初始化等待队列静态方法动态方法排队wait_eventwait_eve…

linux之eventfd机制-epoll

eventfd机制机制结构体创建eventfdeventfd的操作集show_fdinfoeventfd_releaseeventfd_pollreadwritenoop_llseek最近在看linux内核驱动&#xff0c;想实现一个支持epoll的机制&#xff0c;看到了eventfd机制&#xff0c;所以就自己记录下eventfd的机制和心得。机制 eventfd是…

用户态进程的虚拟地址如何转换成物理地址

用户态进程的虚拟地址如何转换成物理地址用户态进程的虚拟地址如何转换成物理地址&#xff1f;mmapmmap基础概念mmap内存映射原理mmap详解UMA和NUMA&#xff1a;mmap优点总结mmap相关函数用户态进程的虚拟地址如何转换成物理地址&#xff1f; 区分一个进程&#xff0c;我们都知…

内存管理之remap_pfn_range

定义在v4.19.133 /mm/memory.c int remap_pfn_range(struct vm_area_struct *, unsigned long addr,unsigned long pfn, unsigned long size, pgprot_t);/*** remap_pfn_range - 映射内核内存到用户空间* vma: user vma to map to* addr: 目标用户地址开始于* pfn: 内核内存的…

GRUB简述

Thank Zhihao Tao for your hard work. The document spent countless nights and weekends, using his hard work to make it convenient for everyone. If you have any questions, please send a email to zhihao.taooutlook.com 目录1. 概述1.1 配置修改1.2 内核参数1.2.1 …

友善之臂NanoPC-T3 内核编译 遇到问题

对于菜鸟级别的我&#xff0c;一上来就编译内核&#xff0c;真是举步维艰&#xff0c;一个内核编译让我折腾了一星期&#xff0c;可怜我的win7系统&#xff0c;因为安装ubuntu不得不重装&#xff0c;最终电脑里资料也全被格式化了。记录一下我遇到的问题。 &#xff08;1&…

几个内核参数引起的 K8s 集群 Java 血案

❝本文转自博客园&#xff0c;原文&#xff1a;https://www.cnblogs.com/apink/p/15728381.html&#xff0c;版权归原作者所有。欢迎投稿&#xff0c;投稿请添加微信好友&#xff1a;cloud-native-yang背景说明运行环境信息&#xff1a;Kubernetes docker&#xff0c;应用程序…

内核——eCos内核概览

转载自&#xff1a;http://blog.csdn.net/bakiya/article/details/2329124&#xff0c;原文是对eCos参考手册内核简介部分的翻译&#xff0c;英文原文&#xff1a;http://ecos.sourceware.org/docs-latest/ref/kernel-overview.html。 eCos官网&#xff1a;http://ecos.sourcew…

Licheepi-zero uart高速时钟设置

项目使用到licheepi的uart接口&#xff0c;外接使用921600频率的uart设备&#xff0c;后应用程序中设置波特率后发现程序乱码&#xff0c;后查到内核uart时钟为24M导致分频后偏差比较大。 在V3S的uart是挂在APB2下面的&#xff0c;需修改APB2时钟&#xff0c;而目前的内核默认…

Linux内核内存检测工具KASan

一、简介 KASan&#xff0c;全称Kernel Address Sanitizer&#xff0c;它是一个动态检测内存错误的工具&#xff0c;主要功能是检查内存越界访问和使用已释放的内存等问题。KASan 集成在 Linux 内核中&#xff0c;随 Linux 内核代码一起发布&#xff0c;并由内核社区维护和发展…

【直播预告】 Greenplum 分布式数据库内核揭秘

熟悉Greenplum的小伙伴都知道&#xff0c;Greenplum是基于 PostgreSQL 所实现的&#xff0c;PostgreSQL 的内核文献以及参考文档众多&#xff0c;但如何将单节点的 PostgreSQL 改造成分布式数据库的参考资料却相对较少。 3月16日&#xff0c;同示说社区合作&#xff0c;我们将…

DataFunSummit:多维分析架构峰会本周开启!

了解更多Greenplum相关内容&#xff0c;欢迎访问Greenplum中文社区网站 2021年5月29日&#xff0c;9:00-18:50&#xff0c;DataFunSummit——多维分析架构峰会将如约而至&#xff0c;本次峰会由2位主席和10位出品人精心策划而来&#xff0c;邀请来自业界的50余位嘉宾从多维分析…

版本详解:Beta、Dev、Canary、Stable、Chromium等版本

以Edge浏览器为例&#xff0c;各个版本有着不同的区别&#xff0c;或者说各个版本是测试版&#xff1a; 以Edge浏览器来说&#xff1a; Canary(金丝雀)版本浏览器&#xff0c;命名金丝雀&#xff0c;以为着“版本金贵且易碎”&#xff0c;这意味着该版本会融入很多新功能或者说…

[解题报告]【第29题】给定一个 n 个元素的数组, 删除数组第一个位置上的数,然后再输出整个数组

全文目录☘前言☘&#x1f381;主要知识点删除第一个元素&#x1f4d3;课后习题1909. 删除一个元素使数组严格递增26. 删除有序数组中的重复项&#x1f4d1;写在最后☘前言☘ 今天是c语言基础打卡的第29天&#xff0c;今天这些题还是有点意思的。 相关链接&#xff1a; 【第29题…

基础架构的未来是 K8s,那么 K8s 的未来在何方?

随着容器技术大行其道&#xff0c;应用的复杂性只增不减&#xff0c;开发者们开始广泛使用更先进的工具&#xff0c;比如 Kubernetes。目前 Kubernetes 已经不年轻了&#xff0c;逐渐开始 boring&#xff0c;你可能会想问 Kubernetes 之后还有什么令人兴奋的新技术。但云计算是…

CentOS7 运维 - 引导过程及排除启动故障 | MBR扇区故障修复 | GRUB引导故障修复 | Linux管理员root账户密码忘记找回

CentOS7操作系统引导过程一、系统引导过程总览排除启动类故障修复MBR扇区故障故障的原因故障现象解决思路修复GRUB引导故障故障原因故障现象解决思路如果忘记root用户的密码进入急救模式&#xff0c;重设密码系统服务控制Linux系统的运行级别查看运行级别临时切换运行级别ntsys…

DPDK-传统网络设备驱动包处理的流程

网卡设备收包网卡设备依据配置进行DMA操作网卡发送中断&#xff0c;唤醒处理器驱动填充读写缓冲区数据结构数据报文到达内核协议栈&#xff0c;进行处理如果最终的应用在用户态&#xff0c;数据从内核搬移到用户态&#xff1b;如果最终应用在内核态&#xff0c;在内核继续处理。…

钻进 Linux 内核看个究竟

Linux 内核&#xff0c;这个经常听见&#xff0c;却不不知道它具体是干嘛的东西&#xff0c;是不是觉得非常神秘&#xff1f; Linux 内核看不见摸不着&#xff0c;而对于这类东西&#xff0c;我们经常无从下手。本文就以浅显易懂的语言&#xff0c;带你钻进 Linux 内核&#x…

1-Linux time system

Linux time system Linux中跟时间有关的函数变量有很多&#xff0c;但是对开发者来说无非就是用了计时/延时/挂起/获取时间等&#xff0c;下面列出自己所使用过的一些时间接口&#xff0c;供大家理解使用。 jiffies 在内核代码中&#xff0c;到处充斥着jiffies变量&#xff0c;…

001_Linux内核驱动之杂项设备(miscellaneous device)的misc.c源码解析

0、写在开头 在Linux系统中&#xff0c;存在一类字符设备&#xff0c;他们共享一个主设备号&#xff08;10&#xff09;&#xff0c;但次设备号不同&#xff0c;我们称这类设备为杂项设备&#xff08;miscdeivce&#xff09;。 查看/proc/device中可以看到一个名为misc…

2020-02-06-Linux设备驱动开发2-内核编译和加载

layouttitlesubtitledateauthorheader-imgcatalogtags postLinux设备驱动开发2-内核编译和加载如何编译内核&#xff0c;并让其启动起来2020-02-06Tupelo Shenimg/post-bg-re-vs-ng2.jpgtrueLinuxDriver1 配置内核 配置内核。在编译内核之前&#xff0c;必须根据实际情况对内核…

2020-03-30-Linux内核23-工作队列

layouttitlesubtitledateauthorheader-imgcatalogtags postLinux内核23-工作队列Linux内核是如何实现和处理工作队列的2020-03-30Tupelo Shenimg/post-bg-unix-linux.jpgtrueLinuxLinux内核工作队列1 工作队列 Linux2.6版本中引入了工作队列概念&#xff0c;代替Linux2.4版本中…

2020-04-05-Linux内核27-优化和内存屏障

layouttitlesubtitledateauthorheader-imgcatalogtags postLinux内核27-优化和内存屏障内核中优化和内存屏障的工作原理和使用场景2020-04-05Tupelo Shenimg/post-bg-unix-linux.jpgtrueLinuxLinux内核内存屏障1. 引言 我们都知道&#xff0c;带有优化的编译器&#xff0c;会尝…

Linux内核10-list_head和hlist_head的理解

原文地址&#xff1a;Linux内核10-list_head和hlist_head的理解 1 概述 在Linux内核中&#xff0c;对于数据的管理&#xff0c;提供了2种类型的双向链表&#xff1a;一种是使用list_head结构体构成的环形双向链表&#xff1b;另一种是使用hlist_head和hlist_node2个结构体构成…

linux内核1-GNU汇编入门_X86-64ARM

原文地址&#xff1a;linux内核1-GNU汇编入门_X86-64&ARM 1 引言 为了阅读Linux内核源代码&#xff0c;是需要一些汇编语言知识的。因为与架构相关的代码基本上都是用汇编语言编写的&#xff0c;所以掌握一些基本的汇编语言语法&#xff0c;能够更好地理解Linux内核源代码…

Linux内核0-使用QEMU和GDB调试Linux内核

原文地址&#xff1a;Linux内核0-使用QEMU和GDB调试Linux内核 &#xff08;文章大部分转载于&#xff1a;https://consen.github.io/2018/01/17/debug-linux-kernel-with-qemu-and-gdb/&#xff09; 排查Linux内核Bug&#xff0c;研究内核机制&#xff0c;除了查看资料阅读源…

Linux设备模型-1-主要概念

0 linux设备模型出现的背景 随着计算机的周边外设越来越丰富&#xff0c;设备管理已经成为现代操作系统的一项重要任务&#xff0c;这对于Linux来说也是同样的情况。每次Linux内核新版本的发布&#xff0c;都会伴随着一批设备驱动进入内核。在Linux内核里&#xff0c;驱动程序…

详解Linux2.6内核中基于platform机制的驱动模型

【摘要】本文以Linux 2.6.25 内核为例&#xff0c;分析了基于platform总线的驱动模型。首先介绍了Platform总线的基本概念&#xff0c;接着介绍了platform device和platform driver的定义和加载过程&#xff0c;分析了其与基类device 和driver的派生关系及在此过程中面向对象的…

关于字符驱动设备的一些概念理解

file结构体、inode结构体和dentry结构体 内核使用三种数据结构表示打开的文件&#xff1a; &#xff08;1&#xff09;每个进程在进程表中都有一个记录项&#xff0c;记录项包含一张打开的文件描述符表&#xff0c;可将视为矢量&#xff0c;每个描述符占用一项&#xff0c;与每…

Windows系统通用回调

本文将针对Windows操作系统所提供系统回调操作做逐一分析&#xff0c;以了解每个回调所能达成什么样的功能及效果。比如部分回调只是用于通知&#xff0c;我们只能通过此回调来了解某一类型事件的发生&#xff0c;只能做审计&#xff0c;拦截动作需要通过其它途径实现&#xff…

高危!!Kubernetes 新型容器逃逸漏洞预警

2022 年 1 月 18 日&#xff0c;Linux 维护人员和供应商在 Linux 内核&#xff08;5.1-rc1&#xff09;文件系统上下文功能的 legacy_parse_param 函数中发现一个堆缓冲区溢出[1]漏洞&#xff0c;该漏洞的 ID 编号为 CVE-2022-0185[2]&#xff0c;属于高危漏洞&#xff0c;严重…

彻底搞懂容器技术的基石:namespace(下)

大家好&#xff0c;我是张晋涛。目前我们所提到的容器技术、虚拟化技术&#xff08;不论何种抽象层次下的虚拟化技术&#xff09;都能做到资源层面上的隔离和限制。对于容器技术而言&#xff0c;它实现资源层面上的限制和隔离&#xff0c;依赖于 Linux 内核所提供的 cgroup 和 …

彻底搞懂容器技术的基石: namespace (上)

大家好&#xff0c;我是张晋涛。目前我们所提到的容器技术、虚拟化技术&#xff08;不论何种抽象层次下的虚拟化技术&#xff09;都能做到资源层面上的隔离和限制。对于容器技术而言&#xff0c;它实现资源层面上的限制和隔离&#xff0c;依赖于 Linux 内核所提供的 cgroup 和 …

Linux内核的五大组件

一个完整的Linux内核一般由5部分组成,它们分别是内存管理、进程管理、进程间通信、虚拟文件系统和网络接口。 1、内存管理 内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子系统对内存分配的请求。Linux内存管理支持虚拟内存,而多余出的这…

容器网络连接被重置?这篇文章教你如何去定位及分析

前段时间公司的安卓打包服务出现问题&#xff0c;现象是在上传 360 服务器进行加固的时候&#xff0c;非常大概率会卡在上传阶段&#xff0c;长时间重试最后失败。我对这个情况进行了一些排查分析&#xff0c;解决了这个问题&#xff0c;写了这篇长文复盘了排查的经历&#xff…

从Go的二进制文件中获取其依赖的模块信息

大家好&#xff0c;我是张晋涛。我们用 Go 构建的二进制文件中默认包含了很多有用的信息。例如&#xff0c;可以获取构建用的 Go 版本&#xff1a;(这里我使用我一直参与的一个开源项目 KIND[1] 为例)➜ kind git:(master) ✗ go version ./bin/kind ./bin/kind: go1.16或者也…

Linux内核链表原理和实例

深入分析Linux链表 链表的实例

Linux内核实现PE加载器——Longene源码分析

Longene是一个源自中国的自由、开源的操作系统项目&#xff0c;目的是要把Linux的内核扩充成一个既支持Linux应用、也支持Windows应用&#xff0c;既支持Linux设备驱动、也支持Windows设备驱动的兼容内核&#xff1b;使用户可以直接在Linux操作系统上高效运行Windows应用。2006…

彻底搞懂 Kubernetes 中的 Cgroup

❝本文转自田飞雨的博客&#xff0c;原文&#xff1a;https://www.jianshu.com/p/dd7b6b6fe1a0&#xff0c;版权归原作者所有。欢迎投稿&#xff0c;投稿请添加微信好友&#xff1a;cloud-native-yangcgroups 简介❝cgroups&#xff08;是 control groups 的简写&#xff09;是…

Linux 中断(IRQ/softirq)基础:原理及内核实现

❝本文转自赵亚楠的博客&#xff0c;原文&#xff1a;http://arthurchiao.art/blog/linux-irq-softirq-zh/&#xff0c;版权归原作者所有。欢迎投稿&#xff0c;投稿请添加微信好友&#xff1a;cloud-native-yang中断&#xff08;IRQ&#xff09;&#xff0c;尤其是软中断&…

使用 Go 语言开发 eBPF 程序

在 Introduction to eBPF[1] 这篇文章中介绍了基于内核源码开发并加载 eBPF 代码的过程。本文将介绍基于 Go 和对应的库开发 eBPF 程序&#xff0c;文中所有涉及的代码可以在我的 Github[2] 中找到。选择 eBPF 库当涉及到选择库和工具来与 eBPF 进行交互时&#xff0c;会让人有…

eBPF/Ftrace 双剑合璧:no space left on device 无处遁形

最近在生产环境中遇到了几次创建容器报错 ”no space left on device“ 失败的案例&#xff0c;但是排查过程中发现磁盘使用空间和 inode 都比较正常。在常规的排查方式都失效的情况下&#xff0c;有没有快速通用思路可以定位问题根源呢&#xff1f;本文是在单独环境中使用 eBP…

服务网格:棋到中盘方见势

一、服务网格&#xff1a;微服务框架 2.0 时代如果我们使用“微服务框架“作为关键字进行搜索时&#xff0c;它会关联到”服务治理”、“微服务框架 Spring Cloud“、”Dubbo“、”服务网格“等概念。虽然&#xff0c;它们都与微服务框架相关&#xff0c;但它们各有侧重&#x…

揭秘 BPF map 前生今世

1. 前言众所周知&#xff0c;map 可用于内核 BPF 程序和用户应用程序之间实现双向的数据交换&#xff0c; 为 BPF 技术中的重要基础数据结构。在 BPF 程序中可以通过声明 struct bpf_map_def 结构完成创建&#xff0c;这其实带给我们一种错觉&#xff0c;感觉这和普通的 C 语言…

TTY 的前世今生

译者序本文翻译自 2008 年的一篇帖子 The TTY demystified[1].由于译者水平有限&#xff0c;本文不免存在遗漏或错误之处。如有疑问&#xff0c;请查阅原文。以下是译文。TTY 子系统是 Linux 乃至 Unix 家族中最核心的设计之一。但不幸的是&#xff0c;TTY 的重要性经常被低估&…

使用 eBPF 技术跟踪 Netfilter 数据流

1. 网络层数据流向与 Netfilter 体系图 1-1 为网络层内核收发核心流程图&#xff0c;在函数流程图中我们可以看到 Netfliter 在其中的位置&#xff08;图中深色底纹圆角矩形&#xff09;。图中对应的 hook 点有 5 个&#xff0c;每个hook 点中保存一组按照优先级排序的函数列表…

深入kube-proxy ipvs模式的conn_reuse_mode问题

在高并发、短连接的场景下&#xff0c;kube-proxy ipvs 存在 rs 删除失败或是延迟高的问题&#xff0c;社区也有不少 Issue 反馈&#xff0c;比如kube-proxy ipvs conn_reuse_mode setting causes errors with high load from single client[1]。文本对这些问题进行了梳理&…

深入理解 tc ebpf 的 direct-action (da) 模式(2020)

前言本文翻译自 2020 年 Quentin Monnet 的一篇英文博客&#xff1a;Understanding tc “direct action” mode for BPF[1]。Quentin Monnet 是 Cilium 开发者之一。如作者所说&#xff0c;da 模式不仅是使用 tc ebpf 程序的推荐方式&#xff0c;而且&#xff08;据他所知&…

使用 GDB + Qemu 调试 Linux 内核

更多奇技淫巧欢迎订阅博客&#xff1a;https://fuckcloudnative.io1. 概述在某些情况下&#xff0c;我们需要对于内核中的流程进行分析&#xff0c;虽然通过 BPF 的技术可以对于函数传入的参数和返回结果进行展示&#xff0c;但是在流程的调试上还是不如直接 GDB 单步调试来的直…

centos7.6通过oracle-database-server-12cR2-preinstall安装oracle12R2官方建议参数

oracle-database-server-12cR2-preinstall安装oracle12R2官方建议参数 入职新坑使用的都是oracle12C,决定好好的研究下&#xff0c;oracle数据库版本升级太快&#xff0c;现在官网已经到了oracle 19C&#xff0c;现在oracle12c也慢慢的被大家认可&#xff0c;一些新特性也很实用…

操作系统面试题(一):什么是操作系统?

我通过四点来简单说一下吧&#xff1a; 操作系统&#xff08;Operating System&#xff09;简称OS&#xff0c;是管理计算机软件和硬件的一组程序 操作系统本质上是运行在计算机上的软件程序 操作系统为用户提供了一个与系统交互的操作界面 操作系统分为内核与外壳 内核&…

【操作系统】——认识一下线程

文章目录线程【1】程序并发要执行的操作【2】引入线程的目的【3】进程与线程【4】线程的类型【5】线程的控制块线程 线程作为调度和分派的基本单位&#xff08;取代进程部分功能&#xff09; 【1】程序并发要执行的操作 创建进程&#xff1a; 系统要为进程分配所需的资源&…

【操作系统】——认识一下进程

文章目录进程【1】程序的特点【2】为什么引入进程【3】进程的状态以及转换【4】进程控制【5】进程间的关系【6】进程的通信类型进程 进程的概述&#xff1a;程序不能独立运行&#xff0c;作为资源分配和独立运行的单元是进程 【1】程序的特点 顺序性 处理及严格按照程序所规定…

linux驱动开发----zynq----SPI驱动(总线框架)

注&#xff1a;本文针对linux-xlnx-xilinx-v2017.4版本进行介绍 一、引言 前面我们讲到了SPI的接口标准&#xff0c;以及SPI的工作模式&#xff0c;那么知道这些其实就可以进行SPI驱动的开发了&#xff0c;但是我们这里讲的是linux驱动开发&#xff0c;那么是不是掌握了…

操作系统基础知识:操作系统简介、Windows简介、Linux简介

文章目录操作系统定义操作系统主要功能处理器管理存储器管理设备管理文件管理作业管理操作系统分类Windows发展史版本更新Windows简易架构特点Linux发展史系统架构常见的Linux操作系统主要特点应用领域Windows与Linux对比操作系统定义 操作系统是管理计算机硬件与软件资源的计算…

利用 ebpf sockmap/redirection 提升 socket 性能(2020)

更多奇技淫巧欢迎订阅博客&#xff1a;https://fuckcloudnative.io译者序本文翻译自 2020 年的一篇英文博客 How to use eBPF for accelerating Cloud Native applications[1]。原文标题非常宽泛&#xff0c;但内容其实很技术&#xff1a;展示了如何编写简单的 BPF 程序做 sock…

百度云 | 招聘的脚步停不下来!

自从百度开放云正式更名百度云招聘的步伐就停不下来&#xff01;快来快来&#xff01;招人来这里&#xff0c;分分钟让你美成后厂一枝花因为&#xff0c;这里有最强百度大脑最炫程序研发最牛技术大拿最爽工作氛围最嗨团队活动出门左转你可能会遇到后厂静静出门右转你可能会看到…

Linux内核导出符号及引用示例

引用参考&#xff1a;Linux内核中导出符号及其引用 代码目录如下&#xff1a; Makefile obj-m calculate_lib.o obj-m test_demo.o obj-m com_lib.oKDIR :/lib/modules/$(shell uname -r)/build PWD$(shell pwd)modules:$(MAKE) -C $(KDIR) M$(PWD) modules clean:$(MAKE) -…

47 张图带你走进浏览器的世界!

点击上方“前端印象”&#xff0c;选择“设为星标”第一时间关注技术干货&#xff01;大家好&#xff0c;我是零一&#xff0c;每个开发者&#xff08;尤其是前端工程师&#xff09;或多或少会跟浏览器打交道&#xff0c;那么你们有没有想过去深入了解浏览器呢&#xff1f;无论…

网络socket编程--多路复用

一、五种网络I/O模型 1.什么是I/O I/O在计算机中指Input/Output&#xff0c;也就是输入和输出。由于程序和运行时数据是在内存中驻留&#xff0c;由CPU这个超快的计算核心来执行&#xff0c;涉及到数据交换的地方&#xff0c;通常是磁盘、网络等&#xff0c;就需要IO接口。 …

NVIDIA TX2 NX编译及更新设备树

在NVIDIA官网下载相关文件 官网网址:https://developer.nvidia.com/embedded/jetson-linux-archive 我选择的版本为R32.7.4 需要下载3个文件,BSP、根文件系统、BSP源码: 解压 将Tegra_Linux_Sample-Root-Filesystem_R32.7.4_aarch64文件夹下的内容提取到Jetson_Linux_R32.…

微内核与宏内核的爱恨情仇

核心模式与用户模式(Kernel Mode & User Mode) 我们都知道一台计算机或者手机都要有个操作系统&#xff08;Operating System简称OS&#xff09;&#xff0c;最常用的操作系统就是手机上的安卓(Android)和电脑上的Windows&#xff0c;其次还有苹果手机上的iOS和苹果笔记本…

操作系统概念学习笔记 1 加电引导过程

操作系统概念学习笔记 1 加电引导过程 加电-引导程序&#xff08;bootstrap program&#xff09; 引导程序通常位于ROM或EEPROM中&#xff0c;引导程序必须定位操作系统内核并把它装入内存&#xff0c;接着操作系统开始执行第一个进程如init并等待事件的发生。 简单来说即&a…

Python 不为人知的对象引用机制

众所周知, Python的对象中有一些以__双下划线开头的属性, 如调用函数的__call__属性, 和调用函数, 结果是相同的。 >>> def f(x):print(hello world,x)>>> f(1) hello world 1 >>> f.__call__(1) hello world 1 >>> f.__call__ <metho…

(L)ittle (K)ernelbootloader

http://blog.chinaunix.net/uid-27411029-id-3339059.html (L)ittle (K)ernelbootloader 1.主要功能,红色部分是android特有的一些功能&#xff0c;如fastboot&#xff0c;recovery模式等&#xff1a; * Variety of nand devices for bootup * USB driver to enable upgrading…

Android 开发之 ---- bootloader (LK)

LK 是 Little Kernel 它是 appsbl &#xff08;Applications ARM Boot Loader&#xff09;流程代码 &#xff0c;little kernel 是小内核小操作系统。LK 代码 在 bootable/bootloadler/lk 目录下LK 代码结构app // 应用相关 arch // arm 体系 dev …

Unix历史

Unix历史 Unix是从贝尔实验室的一个失败的多用户操作系统Multics中涅槃而生的。Multics项目终结之后&#xff0c;贝尔实验室发现自己处于一个没有操作系统可用的状态下。 1969年夏天&#xff0c;贝尔实验室设计出一个文件系统原型&#xff0c;而这个原型慢慢演化为Unix操作系…

挂载新型文件系统遇到的棘手问题

***挂载新型文件系统遇到的棘手问题* 最近为了毕设的问题忙的焦头烂额&#xff0c;其中就涉及到pramfs&#xff08;受保护的可持续的RAM文件系统&#xff09;挂载的问题。 在sourceforge上下载了linux3.11版本对应的pramfs源码&#xff0c;相应的&#xff0c;就需要对CentOS的…

一文理解Linux数据驱动

一. 说明 本文是对《存储技术原理分析&#xff1a;基于Linux_2.6内核源代码》部分章节学习总结&#xff0c;旨在对文中知识点的记录&#xff0c;缺少系统全局性的视图。书中对scsi驱动结构设计及代码细节分析很多&#xff0c;如果想系统性学习可以去查阅。    二. 文件系统层…

CentOS使用yum update更新时不升级内核的方法

引言&#xff1a;由于系统与硬件的兼容性问题&#xff0c;有可能升级内核后导致服务器不能正常启动&#xff0c;这是非常可怕的&#xff0c;没有特别的需要&#xff0c;建议不要随意升级内核。 CentOS使用yum update更新时不升级内核 cp /etc…

【Docker 内核详解】cgroups 资源限制(一):概念、作用、术语

cgroups 资源限制&#xff08;一&#xff09;&#xff1a;概念、作用、术语 1.cgroups 是什么2.cgroups 的作用3.cgroups 术语表 当谈论 Docker 时&#xff0c;常常会聊到 Docker 的实现方式。很多开发者都知道&#xff0c;Docker 容器本质上是宿主机上的进程&#xff08;容器所…

Linux Kernel Stack Overflow/Linux 内核栈溢出

不同于Linux应用程序的栈能够动态增长&#xff0c;Linux内核栈是固定的&#xff0c;并且比较小&#xff0c;比如Linux 2.6.x内核&#xff0c;在X86 32位架构上一般是4K或8K&#xff08;在进行内核编译时&#xff0c;Kernel hacking下进行配置&#xff0c;默认8K&#xff09;&am…

pthread_cond_wait内部逻辑

简单介绍 引入 pthread_cond_wait 函数的概念&#xff0c;它是 POSIX 线程库中用于条件变量等待的函数。一下是此函数运行时内部逻辑&#xff1a; 1. pthread_cond_wait 函数的调用过程 描述当程序调用 pthread_cond_wait 函数时会发生什么。包括将执行流放入 PCB 等待队列、解…

实验5-缺页中断次数统计

下载内核源码 当前我的内核版本是5.8.0&#xff0c;所以我下载了差不多的5.8.1。 解压 tar -xvf linux-5.8.1.tar.xz移动解压后的源码到对应目录下&#xff0c;位置如图所示 xsxs-virtual-machine:~/下载$ sudo mv linux-5.8.1 /usr/src在/usr/src/linux-5.8.1/arch/x86/mm/fa…

Linux内核之put_user与get_user实例用法(三十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

裸机和RTOS的MSP、PSP堆栈指针切换机制

0 前言 Cortex‐M3/M4/M7内核拥有MSP&#xff08;主堆栈指针&#xff09;、PSP&#xff08;进程堆栈指针&#xff09;2个堆栈指针&#xff0c;在裸机和RTOS下这2个堆栈是如何切换保证系统稳定运行的呢&#xff1f;本文将从裸机和RTOS这2个方面展开介绍。 1 裸机和RTOS的堆栈切…

【Linux】如何升级内核

文章目录 升级内核通过yum方式升级内核版本使用源代码编译安装内核删除旧内核升级内核 打开官网 在第一节中讲过内核版本,2.6以后不根据次版本来区分稳定版和不稳定版本了 mainline:最新版,可以尝试最新的一些特性 stable:稳定版本 Latest Stable Kernel:最新的稳定版 …

98DX3236内核编译过程小结

0.条件 (1)Marvell技术支持提供的压缩文件:GNU EABI:arm-mv5sft-linux-gnueabi_SW3.2.tar.bz2.tar.bz2armebv7-marvell-linux-gnueabi-softfp_i686_201201.tar.bz2CPSS代码:Cpss-PP-DxCh-4.2_012.zipLinux内核文件:lsp-4.2_012.zipLSP-Unified.zipLuaCLI:luaCli-4.2_01…

Marvell 98DX3236系列交换机Uboot及内核文件烧写

1. 开发环境 开发板硬件相关 (1)交换机开发板型号:RD-XC3-24G4XG-B (2)交换机CPU型号:98DX3236 (3)交换机PHY芯片型号:88E1680 开发板软件相关 (1)CPLD(LC4032V)程序:ac3_24p.jed (2)I2C存储芯片(AT24C128B)程序:EEPROM-Demo.bin (3)SPIflash芯片(MX25…

应用程序热补丁(一): 几行代码构造免重启修复补丁

作者简介&#xff1a;王超&#xff0c;UCloud内核团队 前言 热补丁是一种在程序运行时动态修复内存中代码bug的技术。在UCloud&#xff0c;我们使用内核热补丁和应用程序热补丁&#xff08;也就是进程热补丁&#xff09;来在线修复核心业务的缺陷和安全漏洞。 多年来我们使用内…

ARM内核架构

ARM架构详解 冯诺依曼架构&#xff1a;数据总线与地址总线共一条总线。 哈佛架构&#xff1a;数据总线与地址总线是分开的。 Cortex-A系列性能对比

Linux 内核与架构速查

Linux 内核与架构速查 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 本文主要记录查询 Linux 计算机的内核与架构&#xff0c; 用于下载对应架构的第三方软件。 一、查询内核版本 [rootnukix ~]# cat /proc/version Linux version 4.18.0-408.el8.x86…

Linux 内核第一版 (v0.01) 开源代码解读

探索Linux v0.01的内部结构&#xff0c;Linux内核经常被认为是一个庞大的开源软件。在撰写本文时&#xff0c;最新版本是v6.5-rc5&#xff0c;包含36M行代码。不用说&#xff0c;Linux是几十年来许多贡献者辛勤工作的成果。 Linux 内核首个开源版本 (v0.01) 的体积非常小&…

Linux Kernel的local_irq_enable()和local_irq_disable()函数

代码如下图所示&#xff0c;最终操作的是msr daifset, #3 和 msr daifclr, #3 寄存器。 (include/linux/irqflags.h) #define local_irq_enable() do { raw_local_irq_enable(); } while (0) #define local_irq_disable() do { raw_local_irq_disable(); } while (0)#define ra…

【IMX6ULL驱动开发学习】23.驱动模块开发之Makefile解析

编写完驱动代码后要编写Makefile&#xff0c;并使用make进行编译&#xff0c;这里举一个最经典的驱动模块的Makefile写法 KERN_DIR /home/me/内核路径PWD ? $(shell pwd)all: make -C $(KERN_DIR) M$(PWD) modules$(CROSS_COMPILE)gcc -o xxx_app xxx_app.cclean:make -C $(…

Linux page migration源码分析

目录 概述 __unmap_and_move函数 step1: Lock the page to be migrated step2: Insure that writeback is complete. step3: Lock the new page that we want to move to. step4: All the page table references to the page are converted to migration entries. st…

Linux 内存workingset Refault Distance算法源码及源码解析

概述 内核mm子系统中有一个workingset.c实现了refault distance算法&#xff0c;发现网络逻辑介绍该算法的文章主要是复制自奔跑吧内核一书中的内容&#xff0c;均比较雷同&#xff0c;讲述的角度比较难以理解&#xff0c;我第一看到的时候琢磨了2天才明白&#xff0c;本文希望…

Page Cache的产生和释放

Page Cache是如何产生和释放的&#xff0c;通俗一点&#xff0c;就是它的“生”&#xff08;分配&#xff09;与“死”&#xff08;释放&#xff09;&#xff0c;即 Page Cache 的生命周期。 Page Cache产生 Page Cache有两种产生的方式&#xff1a; Buffered I/O&#xff08…

multi-gneration lru系列 - workingset的适配

概述 Linux 内存workingset Refault Distance算法源码及源码解析-CSDN博wen 一文中我们分析了workingset算法的实现原理,内核引入mglru之后workingset算法也要做相应的适配,因为mglru算法使用了PID控制反馈算法,这其中就要统计refaulted次数和eviction次数,这些数据的统计…

添加驱动模块到内核的两种方法

添加驱动模块到内核的两种方法 1. 放在内核源代码树中 步骤总结&#xff1a; 新建文件夹编写Makefile、编写Kconfig修改上层Kconfig执行make menuconfig执行make zImage 或 make modules 1.1 源码放入文件夹 例如&#xff1a;添加一个按键字符设备模块 在内核目录下的 dri…

【Docker 内核详解】namespace 资源隔离(一):进行 namespace API 操作的 4 种方式

namespace 资源隔离&#xff08;一&#xff09;&#xff1a;进行 namespace API 操作的 4 种方式 1.通过 clone() 在创建新进程的同时创建 namespace2.查看 /proc/[pid]/ns 文件3.通过 setns() 加入一个已经存在的 namespace4.通过 unshare() 在原先进程上进行 namespace 隔离5…

Cloud Kernel SIG 月度动态:发布多个 ANCK 版本,引入多个第三方硬件驱动

Cloud Kernel SIG&#xff08;Special Interest Group&#xff09;&#xff1a;支撑龙蜥内核版本的研发、发布和服务&#xff0c;提供生产可用的高性价比内核产品。 01 SIG 整体进展 1. 龙蜥社区完成申威架构的 ISO 镜像制作&#xff0c;可正常安装启动运行。 2. 硬件驱动方面…

【Docker 内核详解】cgroups 资源限制(三):实现方式及工作原理简介

实现方式及工作原理简介 1.cgroups 如何判断资源超限及超出限额之后的措施2.cgroup 与任务之间的关联关系3.Docker 在使用 cgroup 时的注意事项4./sys/fs/cgroup/cpu/docker/[container-ID] 下文件的作用 在对 cgroups 规则和子系统有了一定了解以后&#xff0c;下面简单介绍操…

TP触摸屏调试

此处以MT6739 1g版本敦泰TP为例(kernel 4.19),主要修改点如下: 1. 两个配置文件defconfig: kernel-4.19\arch\arm\configs\k39tv1_bsp_1g_k419_debug_defconfig: kernel-4.19\arch\arm\configs\k39tv1_bsp_1g_k419_defconfig: CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCRE…

VS双机调试

文章目录 序言VM虚拟机配置VS配置进入双机调试 序言 相信很多朋友在进行驱动内核调试的时候是使用的Windbg进行的&#xff0c;在老版本系统使用 Windbg完全没问题随着VS的更新也可以使用VS进行双击调试不论是配置还是调试相比 Windbg都相当方便下面介绍下环境。 Microsoft Win…

linux task_struct中进程调度相关的变量记录

参考文章&#xff1a; Linux进程调度分析记录&#xff0c;进程优先级&#xff0c;隔离处理器&#xff0c;isolcpus - 知乎

open与openat的区别

Linux 中的 open 和 openat 系统调用都用于打开文件&#xff0c;但它们有一些区别。 一、函数原型 open 系统调用的原型 #include <fcntl.h>int open(const char *pathname, int flags, mode_t mode);pathname 是要打开的文件路径flags 是打开文件的标志mode 是文件的…

当内核有内存泄漏的时候

内存泄露是一个很容易出现的问题&#xff0c;尤其是对于测试不太充分的代码。怎么判断出现内存泄露了呢&#xff1f;很简单&#xff0c;就跑一些简单的测试&#xff0c;等待足够长时间即可。内存总有耗尽的时候&#xff0c;这时候内核会触发OOM&#xff0c;根据oom_score选择一…

jupyter notebook中添加内核kernel

step1 检查环境中是否有kernel python -m ipykernel --versionstep2 若没有kernel&#xff0c;则需要安装 kernel conda install ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simplestep3 查看已添加的内核 jupyter kernelspec liststep4 添加内核 python -m ipykerne…

养老院自助饮水机(字符设备驱动)

目录 1、项目背景 2、驱动程序 2.1 三层架构 2.2 驱动三要素 2.3 字符设备驱动 2.3.1 驱动模块 2.3.2 应用层 3、设计实现 3.1 项目设计 3.2 项目实现 3.2.1 驱动模块代码 3.2.2 用户层代码 4、功能特性 5、技术分析 6. 总结与未来展望 1、项目背景 养老院的老人…

[linux]编译一个ko文件并运行

一、需求 有一段代码需要在运行时加载注入内核中&#xff0c;当用户层需要访问时可以提供内核态环境去运行。 二、c代码构建 // #include <errno.h> // #include <string.h> // #include <stdio.h> // #include <fcntl.h> // #include <stdlib.h…

Linux:/proc/kmsg 与 /proc/sys/kernel/printk_xxx

目录 前言一、/proc/kmsg1、简介2、如何修改内核日志缓冲区3、dmesgklogctl 函数&#xff08;来源于 man 手册&#xff09; 4、扩展阅读 二、 /proc/sys/kernel/printk_xxx三、/dev/kmsg 前言 本篇文章将为大家介绍与 Linux 内核日志相关的一些控制文件&#xff0c;共同学习&am…

性能优化-OpenCL运行时API介绍

「发表于知乎专栏《移动端算法优化》」 本文首先给出 OpenCL 运行时 API 的整体编程流程图&#xff0c;然后针对每一步介绍使用的运行时 API&#xff0c;讲解 API 参数&#xff0c;并给出编程运行实例。总结运行时 API 使用的注意事项。最后展示基于 OpenCL 的图像转置代码。在…

初识eBPF

eBPF 是一项革命性的技术&#xff0c;它能在操作系统内核中运行沙箱程序。被用于安全并有效地扩展内核的能力而无需修改内核代码或者加载内核模块。 从古至今&#xff0c;由于内核有监视和控制整个系统的特权&#xff0c;操作系统一直都是实现可观察性、安全性和网络功能的理想…

OSDI 2023: Hyrax Fail-in-Place Server Operation in Cloud Platforms

我们使用以下6个分类标准对本文的研究选题进行分析: 1. 硬件故障类型 DRAM: 此类别涉及研究如何处理内存相关的错误。这包括单比特错误,使用传统 ECC 进行校正,以及需要冗余、修复技术或隔离故障内存区域的更广泛的故障。磁盘: 此处研究将解决存储故障,尤其是 SSD 中的故障…

理解Linux环境变量及export命令

主要看三个问题 在Linux和Unix系统中&#xff0c;环境变量对于管理系统和应用程序的行为至关重要。本文将介绍Linux环境变量的概念&#xff0c;以及使用export命令设置环境变量的原理和作用。 什么是环境变量&#xff1f; 在Linux和Unix系统中&#xff0c;环境变量是一种可以…

Linux 网络相关测试指令

1、连接网络后ping不通外网 1>ping不通外网IP&#xff0c;例如14.119.104.189 (www.baidu.com) route指令查看是否配置网关 添加网关 route add default gw 192.168.1.1 2>能ping通IP&#xff0c;但ping不通域名 添加DNS配置 /etc/resolv.conf 2、iptables NAT转换 …