Implement EDKII maintain old directory

FAT32学习笔记(三)文件的删除,目录的删除,FAT32表的用途,FsInfo的作用 文件的删除 在前面已经说过如何通过BPB里的各项参数去找到Data Area,从而得到文件对应的Directory Entry,最后找到文件的内容;对于目录,也是大同小异,不同之处只是更“曲折”一点,会先找到目录,去目录的“内容”里找到文件的Directory Entry,进一步,才可以找到文件内容。那么,在FAT32里,文件如何删除? 实际上非常简单,FAT32文件系统在删除文件的时候,仅仅 阅读详情

EDKII中的shell在执行起来的时候,并不会去检测当前的image(即shell.efi)是从哪个路径invoke起来的,我想是因为Intel在porting EDKII的时候就没想到会有人在shell的基础上去修改成另外一个程序,默认的就是BIOS POST结束,接着invoke这个shell.efi,从而不需要考虑当前的shell.efi是从哪里执行起来的。

但在我们实际使用时,是把shell改成另外一个程序,然后在shell下执行,即BIOS POST-> shell ->我们的程序。此时,如果不考虑image load的路径,就会出现与file access相关的问题,例如屏幕输出不能重定向到一个文件(即 command >> test.log),或者无法读取文件,因为根本就不知道从哪里去读。

在UEFI的标准下,每个image执行起来之后,shell都会为它新建一个ImageHandle传进来,在这个handle上会挂有LoadedImageProtocol,这个protocol里能找到File path,同时,该protocol里有一个DeviceHandle,在DeviceHandle上会挂有DevicePathProtocol,从这个DevicePathProtocol里可以找到image device path。

具体细节请参考shell.c, GetDevicePathsForImageAndFile


X86架构下Intel CPU的power management 这里不提power management的重要性,只说如何理解Intel CPU所提供的对于power management的支持。 在计算机系统里,几乎所有的设备在工作的时候都需要一个时钟频率,即clock,对于CPU来说也不例外。在Intel CPU里,和clock相关的东西有以下几个: core clock:这个是CPU中运算单元实际运行的频率;core refere 阅读详情

相关推荐

FAT32学习笔记(二)长文件名的处理,文件内容的查找,目录的处理

长文件名的处理 在FAT32的directory entry里,所预留的文件名的长度是8.3格式的,也就是说,文件名是8个字符,后缀名是3个字符,长于这个的就被认为不合法。不太确定这个规定是从FAT12开始的,还是从FAT16开始的,总之在FAT32里依旧有这个限制的影子,但FAT32同样也有机制去处理更长的文件名。 下面是按照第一篇文章一样的方式创建出来的FAT32文件格式的image文件,

zeewee1986的专栏 4740

什么是IO

CPU发出来的指令请求有memory和IO,对于memory请求,很容易理解,对应的有实际的线路,那么IO的话我就搞不明白到底是什么了。 为什么发出一个IO请求,就能知道某个device需要回应?为什么是这个device响应,不是那个device呢? 一个device如果有两个IO port,为什么是这个port而不是那个port? port address到底是如何发挥作用的? http

zeewee1986的专栏 5129

PCIE初始化时,下游设备还未分配到bus,如何访问它们?

学BIOS的都知道,访问PCI设备是通过bus:device:function来访问的。如果是CF8/CFC的方式,bus:device:function是向CF8里写,然后从CFC里读,或者向CFC里写数据;如果是memory map的方式,则直接去PCIEBase+bus:device:function的方式去读写。这里的访问是在设备已经初始化,分配了bus之后,那么,在整个系统刚启动时,是如

zeewee1986的专栏 3194

x86架构下Intel CPU里的Multi Processor的学习记录

X86架构下的产品包括Notebook, Desktop,Server,Workstation等。Notebook和Desktop里一般都只有一颗CPU,Server和Workstation则会有多颗。而随着生活水平的提高,对于CPU速度的要求越来越高,但由于工艺的原因,速度提升到一定阶段之后就无法再提升,此时,工业界想出了另外一个办法:集成多个核。这就是多核CPU的来历。这里的核称作core。

zeewee1986的专栏 3118

Intel x86服务器架构中的memory访问之旅

在X86

zeewee1986的专栏 2336

VSCode CMake 安装与配置详解

概述 在windows上使用cmake编译C/C++程序时,首先需要CMake,安装gcc/g++编译环境,然后使用VSCode 以及配置下CMakelist.txt。 所需工具: VSCode (需要安装以下插件) C/C++ C++ Intellisense CMake CMake tools CMake Tools Helper CMake MinGW 安装CMake 下载链接:...

Markus 8万+

EDKII中的memset

最近遇到了好几次这样的问题:unresolved external symbol memset 但在程序体中又没有使用memset这个函数。第一次的时候mark掉一个while函数后不报错了,百思不得其解为什么while循环会和memset有关,但事情紧急,也就让它先过去了。今天又出现了,注释while循环已经无济于事,看来非得把它解决掉不可,就到网上搜索“edkii memset”,没想到还真

zeewee1986的专栏 2226

CNC雕刻与VCarve Pro实战:将三维地形数据转化为木质景观时钟

计算机辅助制造(CAM)是现代数字制造的核心技术之一,它通过软件将设计模型转化为机床可执行的指令,驱动设备进行精准加工。其原理在于将三维模型离散为刀具运动路径(G代码),控制铣刀等执行机构进行“减材”成型。这项技术的价值在于实现了复杂三维形体的高精度、可重复制造,极大地拓展了创意实现的边界。在应用场景上,CAM广泛应用于模具加工、原型制作、个性化工艺品制造等领域。本文聚焦于一个具体实践:利用VCarve Pro软件,结合从在线地图服务获取的真实地形STL数据,通过CNC雕刻机在硬木上加工出具有真实地理特征的

weixin_30651345的博客 376

FAT32学习笔记(一)

从最简单的开始,如何在FAT32格式的U盘里找到一个文件? 如果有U盘,那么可以拿实际的U盘做试验,这里可以使用一个image文件来做试验,效果一样。 在整个实验过程当中,会不停的用到如下几条命令: mount test.img /mnt/ umount /mnt hexdump -C -s xxxx -n xxxx test.img 具体含义请自行man。 1 首先,创建一个FAT

zeewee1986的专栏 2055

【数据清洗】数据清洗流程及经验

预处理阶段 预处理阶段主要做两件事情: 一是将数据导入处理工具。 二是看数据。包含两个部分:一是看元数据,包括字段解释、数据来源、代码表等等一切描述数据的信息;二是抽取一部分数据,对数据本身有一个直观的了解,并且初步发现一些问题,为之后的处理做准备。 第一步:缺失值清洗 四个步骤: 1、确定缺失值范围:对每个字段都计算其缺失值比例,然后按照缺失比例和字段重要性,分别制定策略。 2、去除不需要的...

JoJo93723的博客 6497

用户消费行为分析(MapReduce实现,Hive分析)

一、题目要求 数据来自CDNow网站的一份用户购买CD明细,本数据集共有 6 万条 左右数据,数据为 CDNow 网站 1997年1月至1998年6月的用户行为 数据

紫烟的博客 3013

Implement EDKII internal command(一)

最近在EDK II的基础上开发一个程序,实际上是把现有的基于EDK的代码移植到EDK II上。稍微写点心得。 第一步,当然就是搭环境。EDK II申明的是可以在Windows,Linux下编译,支持的编译工具则非常多,在tools_def.txt 里可以看到分别的名称,例如VS2003, VS2005, GCC, DDK3790等,找到自己喜欢的,改到target.txt里的TOOL_C

zeewee1986的专栏 1554

SDIO_WiFi驱动学习之SDIO架构介绍及源码分析

一、引言 因为WiFi驱动比较复杂,所以WiFi驱动的博客将分为两篇来写。 本篇博客主要介绍Linux下的SDIO架构及源码分析。 二、SDIO WiFi SDIO-Wifi模块是基于SDIO接口的符合wifi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户主平台数据通过SDIO口到无线网络之间的转换。SDIO具有传输数据快,兼容SD、MMC接口等特点。 对于SDIO接口的WiFi,首先,它是一个SDIO的卡设备,然后具备了WiFi的功能。所

陈子陌的博客 1万+

Linux 进程控制:fork、exit、wait、exec 与手写一个 mini shell

讲清进程控制的四个动作:fork 创建(内核四件事与写时拷贝)、exit/_exit/return 终止与 8 位退出码、wait/waitpid 等待与 status 位图、exec 七接口与唯一系统调用 execve,最后用这些零件拼出一个支持 cd/export/echo 的 mini shell,并解释环境变量两张表与 putenv 浅拷贝坑。附速查表与 14 道自测题。

BIII__的博客 186

Uni-App 使用极光推送完整指南

Uni-App集成极光推送的完整指南:从注册极光账号到代码实现。包含前期准备(获取AppKey、注册厂商账号)、Uni-App配置(插件导入、初始化代码)、高级功能(角标设置、Java后台接口)及常见问题排查。详细说明了推送监听、registrationID获取、消息接收处理等核心功能实现步骤,并提供两种推送接口示例(按平台推送和统一推送)。适合需要在Uni-App项目中实现推送功能的开发者参考。

cyj0919的博客 427

【Unity实战】实现最完美最简单的UI适配方案,背景压缩或者拉伸变形解决方案,手机刘海屏适配,适配不同分辨率,不同尺寸,不同设备。

这期来讲一个简单的UI设计方案,很多同学可能搞不懂锚点、轴心这些概念,导致做好的UI在别人的设备上,乱跑或者是重叠,或者是参加游戏老发时间比较紧来不及做适配,都可以来试试这个方法,通过填充边框来保持游戏画面的原始比例,所以它的缺点也很明显,在一些移动设备上会浪费比较大的显示面积。 unity不同设备UI变形? UI在不同设备上如何适配?

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3650

第一章 Shell 概述

本文介绍了Shell编程的基础知识,包括Shell的起源与发展、常见Shell类型及查看方式,阐述了Shell作为命令解释器连接用户与操作系统内核的作用。强调其作为解释型脚本语言的优势,适用于系统管理自动化任务。内容涵盖Shell脚本基本结构、注释规范、编写风格、执行方法及常用命令(如echo、printf、history、管道等),并讲解了命令执行顺序、退出状态码等核心概念,为初学者提供系统学习路径。

sbjdhjd的博客 295

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

DeepAgents框架构建一个带有严格安全护栏的本地 Shell 执行环境。

核心亮点在于:通过精心设计的 System Prompt(系统提示词)强制约束大模型的行为,防止其通过操作系统底层的 Shell 命令绕过框架的虚拟沙箱,从而确保本地物理磁盘的绝对安全。DeepAgents 框架接入 DeepSeek 模型并构建一个带有严格安全护栏的本地 Shell 执行环境。

qq_42092076的博客 71

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Linux、Shell、MySQL 测试卷逐题细讲(下篇:MySQL)

本文为Linux、Shell、MySQL测试卷下半段MySQL部分逐题讲解,包含填空、选择与SQL分析三类题型。填空题覆盖COUNT、HAVING、DISTINCT、事务、约束、索引等核心语法;选择题辨析存储过程、索引类型、ACID、存储引擎、用户管理等考点。SQL大题围绕员工、部门、职位、地点四张关联表,考察多表连接、分组聚合、自连接、相关子查询、NULL处理等高频写法,标注LEFT JOIN统计计数、NULL判断、子查询别名等易错坑点,同时梳理试卷OCR识别带来的干扰问题,重点提示SQL实操中的常见失误

dongziwen1的博客 185

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

CST如何通过Shell Solid or Thicken Sheet对模型进行挖空及加厚

在CST建模中,ShellSolid可对实体模型挖空,形成壁厚为指定值的封闭或开放壳体,通过选择不同面可控制开口位置;ThickenSheet则用于将无厚度二维片体加厚为三维实体。操作时需在导航树中选中模型,调用ShapeTools中的相应功能,设置厚度并预览确认。两者结合可高效实现复杂结构建模,适用于电磁仿真前处理。

a18665053298的博客 133

抖音_libsscronet_证书校验绕过

代理(Reqable)进行中间人后换发的证书,系统信任库是认的,但还要过这层自定义校验:最终落到 Java 的。,纯 Python 标准库,不需要 IDA / Ghidra / capstone。是安装时随机生成的,每台设备、每次重装都不同,换设备或重装后需重新查一次并替换。so 已被映射进运行中的进程,覆盖磁盘不会影响内存里的旧映像,不杀进程等于没改。,抖音所有网络请求的底层,自带 BoringSSL(同目录。关掉开关后,回调根本不执行,下面的 JNI、,Python 3.6+,仅用标准库。

qq_44990881的博客 182

Create gitlab-runner

GitLab Runner 支持指定 Windows 服务账户。指定 gitlab runner 运行的 shell 为。

JQ软件前沿 182

论开发与应用的差异--以office利用与MySQL安装设置为例

本文对比了传统Excel数据绑定Word生成通知的模板化操作与现代前后端开发中数据库驱动页面渲染的差异。早期依赖Excel(容量有限)实现批量生成,现发展为用数据库替代Excel,通过前端绑定数据实现动态页面渲染,形成前后端分离模式。以淘宝初期招聘为例,强调页面开发能力的重要性。同时指出,掌握MySQL、Workbench、Shell等数据库相关工具及概念,是专业开发能力的关键,需熟练运用报告中涉及的所有技术术语,以弥补与Office操作的差距。

mewowaBc的博客 146

CTF 命令执行题学习笔记:终端特殊字符 $IFS 与 %09 的用法(HelloCTF RCE-labs)

空格被过滤时:用%09(TAB)或$IFS代替空格关键词被过滤时:用通配符?或字符类[f]拼出被禁的词,让 WAF 在原始字符串里看不到它,shell 在执行时再展开这类技巧在后续的命令执行题里会反复用到,建议亲手在靶机上敲一遍感受一下。

YY888888_的博客 542
上一篇: EDKII中的memset
下一篇: X86架构下Intel CPU的power management
郑炜
博客等级 码龄18年 21粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值