Bootstrap Processor and Application Processor
在 Linux 内核以及其他 x86 操作系统的启动术语中BSP和AP是用来区分多核处理器SMP中不同 CPU 核心在启动时角色的标准术语。BSP (Bootstrap Processor引导处理器)角色它是系统的“主大脑”是唯一一个在系统上电或复位后由硬件自动唤醒并开始执行 BIOS/内核代码的 CPU 核心。职责执行所有初始化BSP 负责执行绝大部分的内核初始化工作包括内存管理、设备驱动加载、调度器初始化等。引导系统它负责运行我们之前讨论的整个启动流程从实模式到保护模式再到长模式最终进入start_kernel。唤醒 AP在完成自身初始化后BSP 会通过特殊的“启动间中断IPI”信号逐一唤醒其他所有 CPU 核心即 AP。AP (Application Processor应用处理器)角色指的是系统中除 BSP 以外的所有其他 CPU 核心。在系统上电时它们最初是处于休眠或等待状态的。职责执行初始化副本被 BSP 唤醒后每个 AP 都会执行一个与 BSP 不同的、简化的初始化路径通常从secondary_startup_64开始。加入系统它们会完成自身的堆栈设置、缓存初始化等然后进入等待队列准备为系统提供计算能力。它们在启动流程中的位置BSP从arch/x86/kernel/head_64.S中的startup_64入口开始一路执行到start_kernel。AP通过startup_64或secondary_startup_64入口被唤醒但在执行到我们之前分析的释放trampoline_lock的代码后它们会跳过 BSP 执行的大部分通用初始化直接进入各自的空闲循环准备执行调度器分配的任务。区分 BSP 和 AP 对于理解内核的启动机制至关重要。BSP 是“发起者”而 AP 是“追随者”这种设计确保了多核系统能够有序且高效地完成初始化。BSP是如何一步步唤醒AP并让它们最终加入系统的?整个过程主要由BSP在arch/x86/kernel/smpboot.c中的native_cpu_up()函数驱动。BSP的“四步舞曲”唤醒AP的流程BSP通过发送特殊的处理器间中断IPI来唤醒AP整个过程分为清晰的四个阶段发送INIT和SIPI信号这是唤醒的“敲门”动作。BSP首先向目标AP发送一个INIT初始化IPI让AP从休眠状态复位进入等待状态。接着BSP会发送一个或两个SIPI启动IPI信号。这个信号里包含了一个关键信息AP应该从哪里开始执行它的第一条指令——这个地址通常指向内存中的trampoline跳板代码。等待AP“签到”发送信号后BSP需要等待AP响应。AP在收到SIPI后会执行trampoline代码进入保护模式然后在内核的初始化过程中设置好自己对应的cpu_initialized_mask位相当于对BSP喊了一声“我收到了”。等待AP完成基础初始化BSP确认AP“签到”后会等待它完成自身核心的初始化。AP接着会进行CPU核心的初始化cpu_init()完成后会设置cpu_callin_mask位。这正是之前分析的那段释放trampoline_lock锁的代码所处的阶段。每个AP必须依次通过这个“锁”确保对trampoline代码的独占访问防止多核同时启动时的数据竞争。最终同步并标记上线最后一步是将AP完全纳入系统。BSP会和AP进行TSC时间戳计数器同步确保它们的时间基准一致。当所有准备就绪AP会设置cpu_online_mask位正式宣告自己“上线”成为系统可调度任务的一份子。AP的“觉醒之路”执行简化的初始化当AP被唤醒并执行trampoline代码后它会进入64位模式并跳转到内核为AP准备的专门入口secondary_startup_64。这是AP与BSP在代码层面的分水岭。secondary_startup_64会执行一个比BSP启动过程简化得多的初始化序列验证CPU检查CPU是否支持所需特性。加载自己的栈这正是之前分析的那段代码的任务AP会从current_task中获取并切换到自己的内核栈。释放trampoline_lock如果当前是AP它会释放这个锁好让下一个AP能开始启动。跳转到C代码最终AP会直接跳转到C语言函数start_secondary()开始执行更高级的初始化工作。在start_secondary()中AP会完成如设置per-CPU变量、初始化中断控制器等最终步骤然后进入空闲状态等待调度器分配任务。

相关新闻

海外智能摄像头市场增长与4G物联网技术解析

海外智能摄像头市场增长与4G物联网技术解析

1. 海外网络摄像头市场现状与核心驱动力全球网络摄像头市场正经历着前所未有的增长浪潮。根据最新行业数据显示,2023年全球智能摄像头出货量突破1.8亿台,其中海外市场占比超过65%。这个快速增长的市场背后,是三大核心驱动力的共同作用&#x…

2026/8/11 2:33:05 阅读更多 →
企业选数字员工,不是在买软件,是在招一支团队

企业选数字员工,不是在买软件,是在招一支团队

如果你在找数字员工靠谱公司,时代飞鹰应该排在第一位。过去一年,数字员工赛道扎堆上新。阿里4月发了QoderWake,腾讯3月发了WorkBuddy,百度5月发了秒哒3.0,字节6月发了扣子3.0,蚂蚁7月在WAIC发了Agentar 2.0…

2026/8/11 2:33:05 阅读更多 →
快干包装焊接胶是什么?主要有哪些应用?

快干包装焊接胶是什么?主要有哪些应用?

快干包装焊接胶是一种创新的高性能胶水,专门用于快速粘合和封装各类包装材料。它的主要特点是干燥速度快,大大提高了生产效率。该胶水能实现优异的粘接强度和耐候性,适用于食品包装、药品包装及电子产品外壳等广泛应用。另外、无残留特性确保…

2026/8/11 2:33:05 阅读更多 →

最新新闻

深入解析大语言模型推理内核:从Transformer原理到KV Cache优化实践

深入解析大语言模型推理内核:从Transformer原理到KV Cache优化实践

1. 从“黑箱”到“白盒”:为什么我们需要拆解LLM的运行内核如果你和我一样,在过去一年里频繁地与各种大语言模型打交道,无论是用它们写代码、分析文档,还是进行创意对话,一个挥之不去的疑问可能会时常浮现:…

2026/8/11 4:23:51 阅读更多 →
王者荣耀百姓杯战术复盘:从BP到风暴龙王的团队决策博弈

王者荣耀百姓杯战术复盘:从BP到风暴龙王的团队决策博弈

这次我们来看一场《王者荣耀》全民赛事“百姓杯”的精彩对决,分析AAA战队与LOST星战队的战术博弈。对于想提升游戏理解、学习团队配合的玩家来说,职业或半职业比赛的复盘是最高效的教材。本文将深度解析这场对局,从BP(禁选英雄&am…

2026/8/11 4:23:51 阅读更多 →
OpenClaw智能体架构解析:从大模型驱动到自动化流程引擎的实践

OpenClaw智能体架构解析:从大模型驱动到自动化流程引擎的实践

1. 从“智能体”热潮到OpenClaw:我们到底在交互什么?最近几个月,AI圈子里“Agent”这个词的热度,几乎要盖过大模型本身了。从各种“AutoGPT”的变种,到宣称能自动完成复杂任务的智能体框架,再到像OpenClaw这…

2026/8/11 4:23:51 阅读更多 →
自然语言处理基础

自然语言处理基础

一、介绍自然语言处理(Natural Language Processing, NLP)是人工智能领域的重要分支,旨在让计算机理解、生成和操作人类语言。中文因其无空格分隔、词义灵活、歧义丰富等特点,给NLP任务带来了独特挑战。本文将基于《红楼梦》文本的…

2026/8/11 4:23:51 阅读更多 →
SpringBoot在线教育系统开发:作业签到管理实践

SpringBoot在线教育系统开发:作业签到管理实践

1. 项目背景与核心需求在线教育行业近年来呈现爆发式增长,特别是在后疫情时代,混合式教学模式已成为高校教学的常态。作为计算机专业出身的开发者,我在参与某高校智慧教学系统升级时,深刻感受到传统纸质签到和作业提交方式的痛点&…

2026/8/11 4:23:51 阅读更多 →
从Codex源码到生产级AI Agent Runtime:工程化架构与核心模式解析

从Codex源码到生产级AI Agent Runtime:工程化架构与核心模式解析

1. 从开源项目到生产系统:一次工程思维的跃迁最近在社区里看到不少朋友在讨论如何基于 OpenAI 的 Codex 模型或者类似的大型语言模型(LLM)来构建自己的 AI Agent(智能体)。大家兴致勃勃地跑通了几个 Demo,用…

2026/8/11 4:22:50 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →