腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
人人都是极客
专栏作者
举报
490
文章
803277
阅读量
173
订阅数
订阅专栏
申请加入专栏
全部文章
linux
编程算法
其他
kernel
单片机
缓存
arm
node.js
人工智能
机器学习
深度学习
嵌入式
自动驾驶
数据结构
android
打包
物联网
硬件开发
网络安全
神经网络
安全
c++
api
存储
数据
ide
unix
开源
无人驾驶
https
tcp/ip
内核
tensorflow
函数
虚拟化
系统
html
ios
python
网站
数据分析
mqtt
内存
配置
图像处理
http
腾讯云开发者社区
网络
硬件
人脸识别
java
汇编语言
文件存储
面向对象编程
微信
windows
程序
进程
线程
负载均衡缓存
数据处理
chatgpt
cpu
操作系统
工作
软件
负载均衡
语音识别
NLP 服务
c 语言
javascript
opengl
git
github
命令行工具
分布式
爬虫
图像识别
卷积神经网络
numpy
opencv
监督学习
决策树
flash
机器人
系统架构
云计算
任务调度
汽车
队列
调试
协议
虚拟机
原理
android studio
makefile
数据库
sql
apache
消息队列 CMQ 版
物联网通信
腾讯云测试服务
视频处理
企业
工业物联
游戏
自动化
黑客
shell
强化学习
gui
pytorch
udp
gcc
socket编程
小程序
kafka
sdk
迁移
rust
buffer
gpu
init
变量
程序员
工具
后端
交换机
接口
连接
模型
视频
同步
统计
通信
网关
研发
异常
音频
语音
云点播
ruby
go
bash
bootstrap
json
textview
云数据库 Redis
access
matlab
bash 指令
apt-get
批量计算
日志服务
音视频点播加速
全站加速网络
DevOps 解决方案
智能安防监控
智能交通
容器
parcel
推荐系统
线性回归
unity
无监督学习
大数据
架构设计
fpga
nat
flutter
5g
性能测试
智能推荐平台
智能制造
alsa
arm64
audio
block
config
count
display
dt
framebuffer
gpt
input
load
rtc
set
size
std
struct
time
usb
video
xor
编程
部署
产品
定时器
二进制
二维码
行业
基础
计算机
脚本
教程
框架
链表
模块化
设计
摄像头
事件
数组
算法
文件系统
效率
消息队列
芯片
学习笔记
语法
指针
搜索文章
搜索
搜索
关闭
构建RTOS Kernel指南 (下)
kernel
数据
同步
线程
消息队列
单单具有任务切换功能自然不能称之为RTOS Kernel,一个任务往往具有多个重要的属性,优先级就是其中之一。一个任务的优先级决定了它的“尊贵”程度,越尊贵的任务越有优先占用CPU运行的权力。
刘盼
2023-08-22
171
0
构建RTOS Kernel指南 (上)
kernel
程序
线程
异常
指针
试想与我们相伴的MCU如若只存在裸机程序,那么运行到一个包含延时的线程时,我们的CPU就开始“摸鱼”了。为了最大化运行CPU,就需要用到RTOS(Real Time Operating System). 简单来说,RTOS是一个调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统,或者说,其内核是一个任务管理的框架。
刘盼
2023-08-22
236
0
深入理解 kernel panic 的流程
编程算法
kernel
arm
我们在项目开发过程中,很多时候会出现由于某种原因经常会导致手机系统死机重启的情况(重启分Android重启跟kernel重启,而我们这里只讨论kernel重启也就是 kernel panic 的情况),死机重启基本算是影响最严重的系统问题了,有稳定复现的,也有概率出现的,解题难度也千差万别,出现问题后,通常我们会拿到类似这样的kernel log信息(下面log仅以调用BUG()为例,其它异常所致的死机log信息会有一些不同之处):
刘盼
2023-01-05
1.5K
0
引导内存分配器
kernel
linux
编程算法
1.引导内存分配器的作用因为内核里面有很多内存结构体,不可能在静态编译阶段就静态初始化所有的这些内存结构体。另外,在系统启动过程中,系统启动后的物理内存分配器本身也需要初始化,如伙伴分配器,那么伙伴分配器如何获取内存来初始化自己呢 ?为了达到这个目标,我们先实现一个满足要求的但是可能效率不高的笨家伙,引导内存分配器。用它来负责系统初始化初期的内存管理, 最重要的, 用它来初始化我们内存的数据结构, 直到我们真正的内存管理器被初始化完成并能投入使用, 我们将旧的内存管理器丢掉。
刘盼
2023-01-05
765
0
mmap的系统调用
编程算法
kernel
linux
mmap:进程创建匿名的内存映射,把内存的物理页映射到进程的虚拟地址空间。进程把文件映射到进程的虚拟地址空间,可以像访问内存一样访问文件,不需要调用系统调用read()/write()访问文件,从而避免用户模式和内核模式之间的切换,提高读写文件速度。两个进程针对同一个文件创建共享的内存映射,实现共享内存。2.删除内存映射
刘盼
2023-01-05
1.2K
0
Linux内存管理:memblock
kernel
数据结构
打包
内存管理是操作系统内核中最复杂的部分之一, start_kernel函数在内核启动第一个init进程前初始化了所有的内核特性(包括那些依赖于不同架构的特性),你也许还记得引导时创立的临时页表,但复杂的内存管理部分还没有开始,当start_kernel函数被调用时,我们会看到初期内存管理到更复杂的内存管理数据结构和技术的转变,为了更好的理解内核的初始化过程,我们需要对这些技术有更清晰的理解,今天我们会着重讨论这个过程,主要针对初期的内存管理memblock的介绍。
刘盼
2023-01-05
1.7K
0
万字整理 | 深入理解工作队列
kernel
node.js
伟林,中年码农,从事过电信、手机、安全、芯片等行业,目前依旧从事Linux方向开发工作,个人爱好Linux相关知识分享,个人微博CSDN pwl999,欢迎大家关注! 1.1 worker_pool 1.1.1 normal worker_pool 1.1.2 unbound worker_pool 1.2 worker 1.2.1 worker处理work 1.2.2 worker_pool动态管理worker 1.2.3 cpu hotplug处理 1.3 workqueue 1.3.1 系统workq
刘盼
2022-08-26
1K
0
实例演示 | 用Kdump分析内核奔溃原因
kernel
虚拟化
linux
本文主要介绍kdump服务和crash的使用,并结合一个简单的实例演示如何分析内核奔溃的原因。本文基于linux kernel 4.19, 体系结构为aarch64。 kdump概述 kdump kdump 是一种先进的基于 kexec 的内核崩溃转储机制,用来捕获kernel crash(内核崩溃)的时候产生的crash dump。当内核产生错误时,kdump会将内存导出为vmcore保存到磁盘。 kdump流程 当系统崩溃时,kdump 使用 kexec 启动到第二个内核。第二个内核通常叫做捕获内核,以
刘盼
2022-07-27
2.5K
1
训练营:ARM安全架构之Trustzone-TEE实战
arm
安全
网络安全
kernel
01 讲师介绍 baron,九年手机安全/SOC底层安全开发经验。擅长trustzone/tee安全产品的设计和开发。是国内较早一批做TEE的,对商用TEE、开源TEE研究也比较深入,对未来的安全架构/安全趋势也有着明确的看法... 02 课程背景 2021年ARM又推出了ARMv9架构,系统软件架构也在悄无声息地发生变化。在这种架构中,强调的是隔离技术,包括资源的隔离、运行时隔离,特权操作系统的权限也变得越来越小… 不管您是什么领域,ARM服务器、汽车电子、手机或者是其它设备终端,安全都是其中的一个重要环
刘盼
2022-07-12
1.1K
0
使用 Ftrace 分析函数性能
命令行工具
node.js
kernel
爬虫
作者简介:伟林,中年码农,从事过电信、手机、安全、芯片等行业,目前依旧从事Linux方向开发工作,个人爱好Linux相关知识分享。 0.背景 ftrace的功能非常强大,可以在系统的各个关键点上采集数据用以追踪系统的运行情况。既支持预设的静态插桩点(trace event),也支持每个函数的动态插桩(function tracer)。还可以利用动态插桩来测量函数的执行时间(function graph tracer)。关于ftrace的详细操作和原理分析可以参考Linux ftrace一文。 本文的主要目的
刘盼
2022-06-07
1.2K
0
用 Trace32 分析内核死机
arm
汇编语言
kernel
dmesg 初步分析 [ 423.400073] Unable to handle kernel NULL pointer dereference at virtual address 00000008 [ 423.400075] [silead finger_interrupt_handler 505]:S IRQ 19 , GPIO 12 state is 0 [ 423.400083] [silead finger_interrupt_handler 506]:state is 0 [ 42
刘盼
2022-06-07
1.9K
0
Linux Kdump 机制详解
kernel
html
linux
作者简介:中年码农,做过电信、手机、安全、芯片等行业,靠Linux混饭吃。 简介 Kdump 提供了一种机制在内核出现故障的时候把系统的所有内存信息和寄存器信息 dump 出来成一个文件,后续通过 gdb/crash 等工具进行分析和调试。和用户态程序的 coredump 机制类似。它的主要流程如下图所示: 可以看到它的核心原理是保留一段内存并且预先加载了一个备用的 kernel,在主 kernel 出现故障时跳转到备用 kernel,在备用 kernel 中把主 kernel 使用的内存和发生故障时的寄
刘盼
2022-05-30
5.6K
0
万字连载(上):如何 Bringup SoC 芯片
html
kernel
linux
我一直认为战略上蔑视技术,战术上重视技术是很有必要的学习态度。这是一篇 Bringup SoC 芯片的指导手册,更是一篇了解整个系统流程的地图。不会深入了解每个模块的细节,但提供了整个系统的宏观描述,让你站在上帝视角俯视每个知识点,为了对读者更负责,我打算以付费的方式和大家见面,对技术细节有需求的小伙伴欢迎加我微信(rrjike)交流,保证超有所值。 系统在启动的时候,无论是 ROM 加载 Uboot(SPL + Bootloader),还是 Uboot 加载 Kernel,都是把相关的镜像放到对应的内存不
刘盼
2022-05-09
1.4K
0
Linux 启动时间优化实战,2.41 秒启动应用!
node.js
arm
linux
kernel
视频处理
劳动节,更个文吧,祝大家都劳有所获。 今天看了一个关于启动优化的讲座,简单总结一下。 本文的目标是尝试一些比较简单有效的方法,并不会覆盖所有的优化技巧。感兴趣的伙伴可以关注我视频号,后面准备用直播的方式和大家交流。 目标系统 硬件: Beagle Bone Black (Cortex A8) USB 摄像头 + LCD 软件: Linux 5.1 + Buildroot rootfs FFmpeg,用于采集视频并解码到 LCD。 点击查看大图 当前启动时间: 从上电到 LCD 显示第一帧图像:9.4
刘盼
2022-05-05
2.6K
0
ARM64 的多核启动流程分析
kernel
arm
linux
工作中遇到的多核 ARM CPU 越来越多,总结分享一些多核启动的知识,希望能帮助更多小伙伴。 在 ARM64 架构下如果想要启动多核,有 spin-table 和 psci 两种方式,下面针对这两种启动流程进行分析。 代码版本 boot-wrapper-aarch64 version : 28932c41e14d730b8b9a7310071384178611fb32 linux v5.14 多核 CPU 的启动方式 嵌入式系统的启动的基本流程是先运行 bootloader ,然后由 bootloade
刘盼
2022-03-10
2K
0
Kernel同步机制的底层实现
kernel
原子操作 通常我们代码中的a = a + 1这样的一行语句,翻译成汇编后蕴含着3条指令: ldr x0, &a add x0,x0,#1 str x0,&a 即 (1)从内存中读取a变量到X0寄存器 (2)X0寄存器加1 (3)将X0写入到内存a中 既然是3条指令,那么就有可能并发,也就意味着返回的结果可能不是预期的。 然后在linux kernel的操作系统中,提供访问原子变量的函数,用来解决上述问题。其中部分原子操作的API如下: atomic_read atomic_add_return(i,v) a
刘盼
2022-03-04
785
0
Linux 进程管理之CFS负载均衡
负载均衡
负载均衡缓存
编程算法
kernel
前面的调度学习都是默认在单个CPU上的调度策略。我们知道为了CPU之间减少“干扰”,每个CPU上都有一个任务队列。运行的过程种可能会出现有的CPU“忙的一笔”,有的CPU“闲的蛋疼”,于是便需要负载均衡。
刘盼
2022-01-27
1.1K
0
一文搞懂 | 内核的启动
kernel
网络安全
linux
vmlinux 属于 ELF 文件,要想了解如何启动 vmlinux,首先需要知道 ELF 的格式。
刘盼
2021-12-01
1.3K
0
Linux 内核的网络协议栈
tcp/ip
udp
socket编程
kernel
数据结构
封装:当应用程序用 TCP 协议传送数据时,数据首先进入内核网络协议栈中,然后逐一通过 TCP/IP 协议族的每层直到被当作一串比特流送入网络。对于每一层而言,对收到的数据都会封装相应的协议首部信息(有时还会增加尾部信息)。TCP 协议传给 IP 协议的数据单元称作 TCP 报文段,或简称 TCP 段(TCP segment)。IP 传给数据链路层的数据单元称作 IP 数据报(IP datagram),最后通过以太网传输的比特流称作帧(Frame)。
刘盼
2021-11-23
2.6K
0
一文搞懂 | Linux互连子系统
kernel
api
node.js
该框架旨在提供标准内核接口来控制 SoC 上的互连设置。这些设置可以是多个互连设备或功能块之间的吞吐量、延迟和优先级。这可以动态控制以节省功率或提供最大性能。
刘盼
2021-11-15
869
0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
点击查看
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
立即参加
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档