
硬件
文章平均质量分 76
底层硬件知识
程序员小迷
从前有只猫,它不去抓老鼠,而是想吃面包店的面包,最终它变成了人.
展开
-
编译器可以设定int和long的长度吗?int类型的长度为什么不统一?int类型和硬件寄存器有多统一?int类型长度由什么决定的?64位编译器int类型依然是32位?
这里的系统,并不是操作系统,也不是硬件平台,而是编译器。一些编译器是和系统位数统一,造成了假象,32位的硬件,32位的操作系统,编译器同样把int当成32位,以为int长度和硬件/OS真有关系。原创 2025-05-02 10:02:49 · 717 阅读 · 0 评论 -
int类型长度由什么决定的?64位编译器int类型依然是32位?究竟什么是32位什么是64位系统?int类型的长度为什么不统一?int类型和硬件寄存器有多统一?编译器可以设定int和long的长度吗?
一般而言,CPU位数是指CPU最轻松操作的寄存器大小。原创 2025-04-26 09:29:24 · 960 阅读 · 0 评论 -
为什么浮点数会搞出Infinity和NAN两种类型?浮点数的底层原理?IEEE 754标准揭秘?
NAN全称是NotaNumber,常在浮点数运算中使用,首次引入NaN的是1985年的IEEE 754浮点数标准。如除以零、求负数的平方根等错误的操作,会返回NAN. 例如可以求一个负数的平方根,结果用isnan函数(来自math.h)返回真。原创 2025-04-19 10:44:41 · 980 阅读 · 0 评论 -
如何分析Windows平台.exe文件是用什么语言编写?如何编译Windows版本JDK?为什么在Windows命令行输入shift执行shift.exe会没有任何输出?
Windows平台有包罗万象的可执行文件和动态链接库,五花八门的编程语言可能会让你感到困扰。某个应用程序是用什么语言编写的呢?C、C++、C#还是Java?原创 2025-02-23 11:55:57 · 1204 阅读 · 0 评论 -
C和C++性能对比?什么是AOT技术?编程语言的性能?高性能?Open JDK和Oracle JDK的区别?
人类对性能的期望永无止境。尽管早期用编译型语言C/C++已经达到性能要求,中间件语言Java/C#也随着硬件性能提升施展拳脚,人类发现,字节码或者中间语言代码完全可以直接转换成机器码,岂不实现了C/C++的性能?AOT技术应运而生。AOT(Ahead-Of-Time)编译是一种编译技术,它将程序源代码或中间表示(如 Java 字节码或 .NET 的 IL 代码)直接编译成目标平台的机器代码。这与 JIT(Just-In-Time)编译相对,JIT 编译是在程序运行时进行的,将中间代码转换成机器代码。原创 2024-12-15 08:22:57 · 808 阅读 · 0 评论 -
苹果电脑可以安装windows操作系统吗?Mac OS X/OS X/macOS傻傻分不清?macOS系统的Java支持?什么是macOS的五大API法王?
Cocoa、Carbon、POSIX、X11和Java并称为苹果平台的五大API.Cocoa最早从NeXPSTEP类库发展而来,之后又变身为用于移动平台的Cocoa Touch. 它最早是为macOS 开发的一套应用程序框架,它基于 Objective-C.Carbon 曾经是 macOS 应用程序开发的主要框架之一,但随着 Cocoa 的成熟,Carbon 的使用逐渐减少。原创 2024-12-15 08:11:34 · 1081 阅读 · 0 评论 -
iOS和macOS内核的关系?内核只用C语言,可以完成吗?内核代码只有用C语言这种高级语言吗?内核和驱动的关系?
iOS和macOS的内核都基于XNU(X is Not Unix),早期是一个混合内核,结合了微内核和宏内核的特性。底层微内核架构MACH作为内核的核心,内核需要向它发送消息完成底层调度,但是,这种效率不高。新版本都已经改成宏内核,和Windows内核、Linux内核一样的宏内核。原创 2024-12-14 10:20:16 · 771 阅读 · 0 评论 -
存在用户态驱动吗?DRAM有驱动吗?
驱动指的是驱动程序(Driver),它是计算机硬件和操作系统之间的接口,允许硬件设备与操作系统进行通信。原创 2024-11-27 10:45:54 · 648 阅读 · 0 评论 -
内核和驱动的关系?Windows内核--源代码在哪里?(1.1)
有时为了方便说明,提到内核其实默认包含驱动。但,内核(Kernel)和驱动(Driver)是操作系统中的两个核心组件,它们是不同的,是共同工作以管理和控制计算机的硬件资源。内核是操作系统的核心部分,负责管理系统的所有资源,包括进程管理、内存管理、文件系统、设备控制和网络通信等。内核直接与计算机的硬件交互,并提供一个抽象层,使得应用程序和用户无需关心硬件的具体细节就能使用计算机资源。驱动,也称为设备驱动程序,是一种特殊的软件,它允许内核与计算机的硬件设备进行通信。原创 2024-11-27 10:28:15 · 670 阅读 · 0 评论 -
有Bootloader,为什么还要BROM?
不少硬件平台都提供类似Boot ROM或者PBL(高通平台)固化的一段程序,出厂后用户一定不能修改。BROM可以引导Bootloader程序。大家知道,每个可启动的平台都会在存储设备,例如EMMC/NAND/UFS保存Bootloader程序,它负责初始化硬件并引导操作系统,既然有它了,为什么还需要BROM呢?设想一种情况,当EMMC/UFS保存的Bootloader内容被意外改变了,无法启动了,还有没有机会救平台了?这个时候只有BROM或PBL提供的紧急下载功能可以恢复Bootloader.原创 2024-11-07 10:48:47 · 954 阅读 · 0 评论 -
EFI和UEFI的起源及Romstage和Ramstage有什么区别?
随着时代发展,的劣势逐渐凸显,尤以分区支持局限、分辨率不足和驱动支持有限而突出。Intel于2001年推出EFI(Extensible Firmware Interface), 构建了DXE虚拟环境中,EFI程序采用字节码,运行于此。EFI用C语言编写,抛弃BIOS的实模式,可运行32位或64位。EFI访问内存前先跑通DRAM Calibration或DRAM参数加载,确认DRAM可访问后,EFI环境可访问所有内存空间,这在BIOS时代是不可想象的。原创 2024-11-07 10:45:02 · 567 阅读 · 0 评论 -
Windows内核--DMA
DMA工作期间,占用内存访问总线,和CPU访问内存总线是冲突的。DMA并不是完全和CPU工作并行,如果CPU只是在对内部寄存器操作,没有访问内存,CPU可以和DMA同时工作。一旦CPU也需要访问内存,就必须等DMA放开对内存总线的占用才能继续。原创 2024-05-23 19:09:11 · 292 阅读 · 0 评论 -
你真的懂CPU多核多线程吗
2.超线程技术(Hyper-Threading, HT):Intel引入超线程技术后,允许一个物理核心同时处理2个逻辑线程,使核心数与线程数形成1:2的关系,提高了系统的整体处理性能。指的是一个处理器核心能够在同一时间执行两个或更多的线程。原创 2024-04-26 15:49:46 · 650 阅读 · 0 评论