上一讲,我们配置完Bochs环境后,还试着体验了一把开机,结果不出所料地被BIOS干了下来。接下来,我们就来探索开机之后的步骤,计算机是如何进入操作系统的。  本文将从传统的Legacy启动模式(MBR)探究操作系统启动的基本过程以及部分细节,如有不严谨处请见谅并指出,欢迎指教。启动步骤概述  在计算机看来,操作系统本身也是一个运行在硬件平台上的软件,它的成功运行也脱不开装载和执行。那么,是谁            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-26 15:37:41
                            
                                86阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            linux0.11源码分析1 bootsect.s文件分析从开机加电到执行main函数的过程由于linux0.11系统当时存储在软盘上,所以其加电过程主要目的就是从启动盘加载操作系统程序,完成执行main函数的准备工作。从开机到mian函数的启动共分三部分: 第一部分是启动bios,准备实模式下的中断向量表和中断服务程序。 第二部分是从启动盘加载操作系统到内存第三部分为执行32位的main函数做过            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-19 09:31:06
                            
                                89阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # BIOS 程序源码的探索
## 引言
BIOS(基本输入输出系统)是计算机启动和硬件管理的关键组件。它是计算机中的一种固件,在主板上存储,负责初始化硬件和加载操作系统。本文将探索BIOS程序的源码,了解其基本结构和功能,以及演示一些关键的代码示例,并通过类图和状态图进行直观展示。
## BIOS的基本结构
BIOS的源码结构通常包含多个模块,每个模块负责不同的功能,如硬件初始化、启动引            
                
         
            
            
            
            ## 开源BIOS源码及其应用
BIOS (Basic Input/Output System) 是计算机系统中一种固化程序,用于初始化硬件设备并加载操作系统。BIOS通常是闭源的,但是也有一些开源的BIOS源码,例如Coreboot、OpenBIOS等。开源BIOS源码可以让用户自由修改和定制BIOS,增加系统的可定制性和安全性。
### 什么是开源BIOS源码?
开源BIOS源码是指可以            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-05-14 04:53:52
                            
                                175阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 8086 BIOS 源码解析与示例
## 引言
8086 BIOS(基本输入输出系统)是早期计算机系统中的重要组成部分,它负责自检、硬件初始化、操作系统引导和基础硬件控制等功能。本文将深入探讨8086 BIOS的源码结构,通过示例代码帮助读者理解其工作原理,以及如何在实际应用中进行使用。
## BIOS源码结构
在深入具体源码之前,我们首先了解一下8086 BIOS的基本结构。通常,一            
                
         
            
            
            
            # 学习实现“昆仑BIOS源码”的指南
作为新入行的开发者,实现“昆仑BIOS源码”可能会看起来复杂,但只要你按照步骤进行,逐步学习,就能够完成这项任务。下面将为你提供一个完整的流程、每一步的具体操作,以及相关的代码示例。
## 流程概述
首先,我们需要了解整个项目的流程。以下是实现“昆仑BIOS源码”的步骤:
| 步骤        | 描述            
                
         
            
            
            
            8086汇编内存寻址方式  前面的博客都多少提到了8086汇编的内存寻址,例如mov ax [2345H]。而8086汇编还提供了更多、更灵活的寻址方式,以满足多种需求。  需要强调的是,无论何种寻址方式,内存寻址的地址总是由基础地址+偏移地址(段基址+偏移量)组合而成,不同之处在于基础地址与偏移地址应该从何处获得。8086汇编提供寻址段基址的方式  在示例mov ax [2345H]中,并没有显            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-25 21:34:38
                            
                                39阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            0. 序这个系列主要分析generic平台下fw_jump.elf这个文件对应的源码(主要我觉得相比于fw_payload和fw_dynamic,这个最简单),基于版本0.8(因为qemu5.2.0默认使用的这个版本作为bios,并且能够boot最新版的riscv-linux)1. 关于gdb的多线程调试为了揭示opensbi在多核模式下的启动行为,我们使用qemu模拟两个cpu,因此涉及到多线程            
                
         
            
            
            
            市面上关于Linux源码的数据很少提及从系统启动到Linux内核接管cpu这部分源码的解读。但是这部分内核做的时对一些诸如内存管理,进程创建的细节很重要。一、BIOS阶段在计算机加电的一瞬间,cpu通过硬件电路将一些关键处理器设置成固定的值(包括cs和eip指针寄存器),同时执行物理地址0xffffff0处的代码。硬件将这个地址映射到某个只读、持久的存储芯片上。该芯片通常为ROM(只读内存),这个            
                
         
            
            
            
            想要把ISO文件拷贝到U盘里就可以启动?并且可以同时拷贝多个不同种类的OS镜像?启动时通过菜单选择就可以?并且支持Legacy + UEFI双模式?Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘,你只需要把ISO文件拷贝到U盘里面就可以启动了,无需其他操作。 你可以一次性拷贝很多个不同类型的ISO文件,在启动时Ventoy会显示一个菜单来选择(截图)。 无差异            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-21 13:42:06
                            
                                38阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # 编译 BIOS 源码的科普介绍
## 引言
BIOS(基本输入输出系统)是计算机硬件与操作系统之间的桥梁,负责初始化硬件、加载操作系统及进行基本的硬件自检。对于一些开发者来说,自定义或编译 BIOS 源码是一个极具挑战性和技术性的任务。本文将为您介绍 BIOS 编译的基本流程,涉及一些代码示例,以及它们的状态和类图。
## BIOS 编译的准备工作
在编译 BIOS 源码之前,您需要一            
                
         
            
            
            
            七月底,一种名为“异鬼Ⅱ”的木马在全网大肆传播。一个多月过去了,风声渐渐平息,之前本来准备专门就这个木马写一篇博客的,结果拖到现在,幸好时间隔得还不算太久。闲话不多说,回到正题。   虽然腾讯电脑管家已经很早就做出了相应的更新,并同时推出了“异鬼Ⅱ”病毒的专杀固件,但还是有不少电脑中招,所幸因为该病毒的特殊属性,没有造成太大的经济损失。下面我就详细介绍一下这种病毒。&            
                
         
            
            
            
            注:以下程序系由相应的Intel格式汇编改编而来,略有修改,若发现bug,欢迎指正。若有问题,欢迎交流。若能帮助一二访客,幸甚。一年前仿照Skelix 写过一个简单的内核,并命名为BabyOS。当时代码大部分用的Skelix的,终究有些遗憾,所以想趁今年寒假--工作前最后一个假期,重新实现一下BabyOS,力求尽量用自己的代码实现。所以前几天学习了一下AT&T 汇编、内联汇编及C与汇编的相            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-11 08:39:49
                            
                                140阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录最开始的两行代码自己给自己挪个地做好最基础的准备工作硬盘里其他部分也放到内存资料 最开始的两行代码话不多说,直奔主题。当你按下开机键的那一刻,在主板上提前写死的固件程序 BIOS 会将硬盘中启动区的 512 字节的数据,原封不动复制到内存中的 0x7c00 这个位置,并跳转到那个位置进行执行。启动区的定义非常简单,只要硬盘中的 0 盘 0 道 1 扇区的 512 个字节的最后两个字节分别            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-23 08:51:44
                            
                                286阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             裸机程序跑来跑去,都是一个样,不同的就是对应的外设初始化不同,但SYSBIOS对于我来说是一个比较新鲜的东西,感觉与cos ii等其他系统还是有区别的,所以主要就学习SYSBIOS了。 对于SYSBIOS的工程有很多函数是找不到源码的,这与现在的cos iii差不多,不开源。但是可以找到对应函数的说明与用法。现在就以GPIO_LED_clock为例讲解一下。 首先是导入工程到CCS中。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-03 16:21:21
                            
                                368阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            今天,我不求助——详细分析优龙BIOS代码(ADS编写) 
  看了一段时间BIOS。从周立功BSP下的eboot到优龙的BIOS,问过不少弱智问题(通常是我自己没有找到就说XXX很奇怪就来问),幸好有eeworld前辈指点,我才慢慢积累经验。优龙的BIOS我已经了解大概,在功成身退之时拿出来分享,免得以后有人走弯路。 
  ============== 
  首先是汇编部分2440init.s,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-18 15:54:39
                            
                                134阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            第1步:先从官网(www.boost.org)下载最新版的BOOST源码,如图所示我这里下的是zip的那个第2步:编译源代码(放心.这里是傻瓜式的操作,很容易操作)(1)先把源代码放在E盘,例如 E:\boost_1_53_0(2)在源代码中找到一个批处理bootstrap.bat,运行即可此时会弹出Building Boost.Jam之类,过一会之后,源代码中新增了1个文件bjam.exe(3)            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-29 18:46:25
                            
                                152阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录功能作用使用方式方式一:添加 spring.factories 配置文件配置文件代码运行结果源码解析方式二:手动添加初始化器方式代码运行结果源码解析方式三:利用 ApplicationContextInitializer 接口的实现类 DelegatingApplicationContextInitializer代码运行结果源码解析  最近在看springboot 源码;在网上找到一些视            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-15 09:13:44
                            
                                27阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
                   作为一个BIOS开发工程师,很多时候,会接触到OS相关的问题,特别是系统下的压力测试。有的时候,系统莫名其妙就挂掉了,为了定位问题,一定的OS定位技巧是必须的,现在主要以Linux系统为例进行说明。       定位问题,可能需要内核源码,查看内核bug,具体的OS            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-02 22:28:43
                            
                                146阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录BIO编程初体验服务端客户端结果展示客户端:服务端存在的问题用浏览器访问服务端Http协议 - 请求数据包解析第一部分第二部分第三部分第四部分http响应状态码BIO -阻塞IO的含义阻塞(blocking)IO非阻塞(non-blocking)IO同步(syschronous)IO异步(asynchronous)IO总结 BIO编程初体验服务端先写一段服务端代码,用于接收客户端信息:p            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-15 13:01:14
                            
                                131阅读
                            
                                                                             
                 
                
                                
                    