自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lrcno6的编程世界

编程不只是编程,更是一种人生

  • 博客(107)
  • 资源 (1)
  • 收藏
  • 关注

翻译 OSDev——主页

欢迎来到OSDev.org这个网站提供有关创建一个操作系统的信息,并为那些对操作系统开发感兴趣的人提供了一个社区,其中包含692篇wiki文章OSDev Wiki需要你的帮助!有关更多信息,请参阅愿望清单介绍基本信息介绍所需知识初学者易犯错误入门如何提问GCC交叉编译器学习顺序许可证教程常见问题环境内核、编译器和C库如何协同工作使用C以外的其他语言UEFI和legacy BIOS内联汇编内联汇编示例目标文件与重定位Bare Bones这个标题有亿点难翻……大

2022-01-20 18:14:21 394

原创 lrcno6的一些作品

这些都是个人平时没事干写的一些作品都托管在GitHubC++ 语言都是GPL-3.0或LGPL-3.0许可证lib4console一个管理图书馆借书还书的没有用的命令行软件(跨平台)libcorelib4console的核心功能类库(跨平台)MySQLClass一个用来使用MySQL的类库(linux)欢迎大家来帮忙将MySQLClass移植到Windows上!DPCL一...

2019-02-17 19:34:29 292 2

翻译 Direct3D(0th) 目录

您可以使用Direct3D绘制3D图形。在这个部分Direct3D入门介绍如何开始使用Direct3D。Direct3D 12图形提供有关使用Direct3D 12进行编程的信息。Direct3D 11图形提供有关使用Direct3D 11进行编程的信息。DXGI提供有关使用DXGI进行编程的信息。HLSL提供有关使用HLSL for DirectX进行编程的信息。通过使用...

2018-12-12 13:26:16 165

翻译 Windows桌面应用程序(0th) 目录

入门\桌面编程 使用DirectX创建您的第一个Windows应用程序 使用DirectX进行开发的先决条件 使用DirectX设备资源了解Direct3D 11渲染管道使用着色器和着色器资源开始使用DirectX for WindowsDirectX桌面应用程序的路线图开始使用Win32和C ++ 用C++进行Windows编程简介 准备你的开发环境Windows编码约定...

2018-07-07 20:46:05 775 1

翻译 C99标准翻译 4. 一致性

条件包含(6.10.1)、error 指令(6.10.5)、浮点类型特征(7.7)、替代拼写(7.9)、整型大小(7.10)、可变参数(7.15)、布尔类型及其值(7.16)、通用定义(7.17)、整型(7.18)。如果一个程序在所有其他方面都是正确的,在正确的数据上运行,即使包含未指定的行为,它也应该是一个正确的程序,其行为应符合 5.1.2.3 的规定。注:严格一致性程序旨在在不同的一致实现中获得最大的可移植性,而一致性程序可以依赖特定一致环境的不可移植特性。指某个一致实现能接受的程序。

2024-01-22 21:23:33 27

翻译 C99标准翻译 3. 术语、定义与符号

未指定的行为,每个实现都会规定其行为例:有符号整数右移时最高位(符号位)的传播就是实现定义行为的一个例子。在使用非可移植的或错误的程序结构或错误数据时出现的行为,本国际标准对此不作要求。

2024-01-22 20:25:22 32

翻译 C99标准翻译 1. 标准规定范围

注:本国际标准旨在促进 C 程序在各种数据处理系统之间的可移植性。它可供实现者和程序员使用。本国际标准规定了用 C 编程语言编写的程序的形式并确定了其解释。

2023-12-27 12:05:28 43

翻译 C99标准翻译——目录

附录G (内容) IEC 60559兼容复数算数。附录F (规范) IEC 60559 浮点算数。附录D (规范) 标识符可用通用字符。附录A (内容) 语言语法汇总。附录H (内容) 语言独立算数。附录J (内容) 移植性问题。附录E (内容) 实现限制。附录I (内容) 常见警告。附录B (内容) 库汇总。附录C (内容) 序列点。

2023-12-27 11:49:55 45

翻译 关于C语言的独立(freestanding)和托管(hosted)环境

4. 一致性(节选)两种形式的一致性实现是托管(hosted)的和独立(freestanding)的。符合要求的托管实现应接受任何严格符合要求的程序。符合标准的独立实现应接受任何严格符合标准的程序,其中库条款(第 7 条)中指定的功能的使用仅限于标准头文件<float.h>、<iso646.h>、<limits.h>、<stdalign.h>、<stdarg.h>、<stdbool.h>、<stddef.h>、<stdint.h>和<stdnoreturn.h>。一个符合要求的实现可能有扩展(包括额外的库

2022-02-22 17:50:42 713

翻译 OSDev——Bare Bones

等等!你是否阅读过入门、初学者易犯错误和一些相关的操作系统理论?难度等级:入门在本教程中,你将为32位x86编写一个简单的内核并启动它。这是创建自己的操作系统的第一步。本教程作为如何创建最小系统的示例,而不是作为如何正确构建项目的示例。这些说明经过社区审查,并出于充分的理由遵循当前的建议。请注意许多在线提供的其他教程,因为它们不遵循现代建议并且是由没有经验的人编写的你即将开始开发新的操作系统。也许有一天,你的新操作系统可以在它自己之下开发。这是一个称为自托管的过程。今天,你将简单地设置一个可以从

2022-02-01 17:11:20 613

翻译 OSDev——教程

这个wiki上有一些与操作系统开发相关的教程。此页面是这些教程的概述,按主题领域和难度排序入门——非常基础或易于理解的教程。先试试这些中等——一些更难的主题的教程,但仍然很好学。先做一些简单的事情可能是个好主意进阶——高级科目教程。不建议初学者学习大师——非常困难的主题教程。大师级别。祝你好运!未评级——尚未评级内核基础Bare Bones这些bare bones教程将为你提供一个足够安全的基本内核,可以作为你自己的起点入门——Bare Bones——用C语言为x86编写一个基本的32

2022-01-30 21:00:42 403

翻译 OSDev——许可证

“阅读法律糊状物可以让你的大脑变成鳄梨酱!”——Amiga ROM内核参考手册:Includes & Autodocs,第2版介绍当一个出色的新软件的想法一闪而过时,许可问题通常是你最不想考虑的事情。但是许可问题可能会在之后狠狠地给你一个教训。所以最好花点时间考虑一下。这篇文章实际上不仅适用于操作系统开发,也适用于一般的软件软件许可证最可怕的地方可能是没完没了的法律术语;我们尽量使文本保持简洁明了主流许可证以下是最受欢迎的许可证,以及它们的简短描述(来为你提供帮助):GNU通用公共许可证

2022-01-30 19:37:30 137

翻译 OSDev——学习顺序

以什么顺序学习是风格问题。你可以从头开始直接深入研究,编写引导扇区,然后编写最小内核,然后从那里构建。你可以跳过引导扇区,并使用像GRUB这样现成的引导加载程序(使用自己的引导加载程序是一种宝贵的经验还是浪费时间是个值得讨论的问题)。你也可以不按特定顺序写一些零碎的东西,最后把它们组合到一起。这里可能没有正确或错误的方法。如果你想了解一些易于使用的东西(实际上对于每个操作系统都必须的),你可以继续阅读对于初学者在屏幕上打印字符串和整数(十进制和十六进制)当然是必须的。这是最基本的调试方法之一,我们几乎

2022-01-28 21:58:13 139

翻译 OSDev——没有“红色区域“的libgcc

主条目:libgcc本文讨论了如何构建libgcc而无需在内核中支持红色区域。如果您的目标平台不是X86-64,你就不需要它,因为i*86没有这样的要求什么是"红色区域"红色区域是x86-64 ABI中描述的功能红色区域是堆栈指针(rsp)以下的128字节区域(rsp-128 ~ rsp)。该区域可供编译器自由使用,无需通知应用程序/操作系统或任何正在运行的中断处理程序对于用户应用程序这没有问题,因为中断和其他内核相关代码不会干扰用户堆栈。然而,在您的内核中,事情可能会变得很糟糕,特别是如

2022-01-27 22:08:49 154

翻译 OSDev——GCC交叉编译器

本教程的重点是为您自己的操作系统创建GCC交叉编译器。我们在这里构建的这个编译器会生成统一的目标架构(i686-elf),它让你可以编译时无视当前的操作系统,这意味着不会使用您的主机操作系统的任何头文件和库。你需要一个用于操作系统开发的交叉编译器,否则会发生很多意想不到的事情,因为编译器假定你的代码在你的主机操作系统上运行介绍一般来说,交叉编译器是在平台 A(主机平台)上运行,但为平台 B(目标平台)生成可执行文件的编译器。这两个平台可能(但不一定)在CPU、操作系统和/或可执行文件格式方面有所不同。

2022-01-26 22:05:16 847

翻译 OSDev——入门

首先,开发操作系统可能是您可以在计算机上完成的最具挑战性的事情之一(仅次于在噩梦难度级别杀死末日末日的最终 Boss)。编写一个操作系统需要大量关于计算机科学中几个复杂领域的知识。您需要了解硬件的工作原理,并能够读写复杂的汇编语言以及高级语言(例如 C、C++ 或Pascal)。你的头脑必须能够将自己包裹在抽象的理论中,并拥有无数的想法。感到气馁了吗?不要害怕!因为所有这些东西也是使 OS 编程变得有趣和有趣的东西...

2022-01-24 22:15:16 307

翻译 OSDev——初学者易犯错误

“编写自己的操作系统”的想法把你带到了这里。本Wiki旨在为你的操作系统开发提供帮助、指导和参考然而,新手犯某些错误或对该主题所涉及的内容有共同的误解是很常见的。这不算什么坏事——许多人以前也犯过这些初学者易犯错误,而且很多人将来也会犯。这篇文章旨在确保你在深入了解所提供的信息之前知道自己在做什么这个Wiki不是这可能看起来像是一组可以直接复制和粘贴的教程,外加一个在你遇到困难时提出问题的论坛。事实并非如此。在开始编写自己的操作系统之前,我们非常希望你能知道自己的水平,并先做一名经验丰富的用户空间应用

2022-01-23 21:30:10 207

翻译 OSDev——所需知识

原文链接:https://wiki.osdev.org/Required_Knowledge主页:https://blog.csdn.net/qq_37422196/article/details/122591214下面的链接如果指向原网站的话,大概是还没有翻译在赶了在赶了……如果你认为你可以跳过这篇文章的话,它正是为你而写的编写操作系统不是初学者的任务。事实上,编写操作系统通常被认为是最困难的编程任务。在考虑这样的项目之前,您将需要高于平均水平的编程技能。不遵守这个忠告会让你看起来很傻你会需

2022-01-22 19:47:58 124

翻译 OSDev——介绍

原文链接:https://wiki.osdev.org/Introduction主页:https://blog.csdn.net/qq_37422196/article/details/122591214下面的链接如果指向原网站的话,大概是还没有翻译在赶了在赶了……欢迎欢迎来到操作系统开发——编程的最前沿不是所有人都会在这个领域成功——甚至很多人连操作系统开发的Hello World都写不出来;但你也有可能会深入探究,创造出下一个Linux或Windows;或者设定个更低的目标,MenuetO

2022-01-20 20:44:32 441

原创 HWS 2021 冬令营选拔赛 部分WP

比完后速度开肝WP总分: 850 排名: 33第一次这么长(shuang)时间肝比赛3整天+1晚(理论上来说还有一早但我没用)不得不说还是挺有意思的目录:PWN2 ememarmPWN2 ememarmaarch64架构上网搜到了环境配置:socat tcp-l:$port,fork exec:"$command",reuseaddr譬如:socat tcp-l:10002,fork exec:"qemu-aarch64 -g 1234 ememarm",reusea

2021-02-01 12:39:49 2632 4

原创 *CTF 2021 PWN babyheap WriteUp

前言比赛的时候看到这道题就放弃了(哭~~)主要还是堆学艺不精 (畏难)赛后认真思考,其实很快就出来了我们可怜的FPGA:惨没办法我们真的太菜了说实话我觉得赛后能做出来也很给队伍长脸了*CTF 2021 PWN babyheap WriteUpPWN中的全场最水题(但像我这种菜鸡比赛时都没做出来)程序分析全保护常规堆题的菜单式一些奇奇怪怪的地方:add功能可以覆盖之前的指针delete有UAFedit功能居然是从+8偏移开始写的!(这里一开始让我人都傻了)

2021-01-19 18:49:59 928

翻译 Direct3D(3-1-1st) 创建参考设备

本主题说明如何创建实现运行时的高度准确的软件实现的参考设备。要创建参考设备,只需指定要创建的设备将使用参考驱动程序。此示例同时创建设备和交换链。创建参考设备定义交换链的初始参数。DXGI_SWAP_CHAIN_DESC sd;ZeroMemory(&amp;sd,sizeof(sd));sd.BufferCount=1;sd.BufferDesc.Width=640;sd.Buf...

2018-12-13 13:37:04 187

翻译 Direct3D(3-1st) 如何使用Direct3D 11

本节演示如何使用Microsoft Direct3D 11 API完成几个常见任务。话题描述创建参考设备本主题说明如何创建实现运行时的高度准确的软件实现的参考设备。创建WARP设备本主题说明如何创建实现高速软件光栅化器的WARP设备。创建交换链本主题说明如何创建一个交换链,该交换链封装了两个或多个用于呈现和显示的缓冲区。枚举适配器本主题说明如何使用M...

2018-12-13 13:22:45 384

翻译 Direct3D(3rd) Direct3D 11图形

您可以使用Microsoft Direct3D 11图形为游戏和科学和桌面应用程序创建3D图形。本节包含有关使用Direct3D 11图形进行编程的信息。有关更多信息,请参阅Direct3D 11功能。..支持的运行环境Windows / C ++推荐的编程语言C / C ++最低支持客户端Windows 7支持的最低服务器Windows Ser...

2018-12-13 13:15:24 938

翻译 Direct3D(2nd) Direct3D 12图形

本编程指南包含有关如何使用Direct3D 12可编程管道创建自定义图形引擎的信息。Direct3D 12标头和库是Windows 10 SDK的一部分。使用Direct3D 12无需单独下载或安装。在这个部分话题描述Direct3D 12编程指南Direct3D 12提供了一个API和平台,允许应用程序利用配备一个或多个Direct3D 12兼容GPU的PC的图形和计...

2018-12-13 12:41:38 800

翻译 Direct3D(1st) Direct3D入门

Direct3D是一个低级API,用于使用渲染管道绘制基元或使用计算着色器执行并行操作。什么是Direct3D?Direct3D是一个低级API,可用于每帧绘制三角形,线条或点,或在GPU上启动高度并行操作。Direct3D:在连贯的抽象背后隐藏不同的GPU实现。但是你仍然需要知道如何绘制3D图形。旨在驱动单独的图形专用处理器。较新的GPU具有数百或数千个并行处理器。强调并行处理。您...

2018-12-13 12:38:32 363

翻译 Windows桌面应用程序(2-2nd) 指南

这些部分包含基于Windows的桌面应用程序的详细用户体验指南。在这个部分话题描述控件控件是用户在应用程序主窗口区域上与之交互的UI元素。查看基于Windows的桌面应用程序中控件的可视示例,并获取每个控件指南的链接。命令命令是用户在使用您的应用程序时可以执行的操作。了解向应用程序的菜单,功能区和工具栏添加命令的准则。文本文字包含用户可在您的应用中看到的任...

2018-10-28 15:01:51 209

翻译 Windows桌面应用程序(2-1-1st) 如何为桌面应用程序设计出色的用户体验

一个出色的桌面应用程序功能强大,同时也很简单。通过精心平衡的功能选择和演示,您可以实现功能和简单性。强大:功能强大而简单:理想的基于Windows的应用程序既强大又简单。当然,您希望您的应用程序功能强大,当然您希望它变得简单,但是您能同时实现它们吗?这些目标之间存在着自然的紧张关系,但这种紧张关系远非不可调和。通过精心平衡的功能选择和演示,您可以实现功能和简单性。什么使应用程序功能强大...

2018-10-27 21:53:43 2378

翻译 Windows桌面应用程序(2-1st) 设计桌面应用程序的基础知识

使用这些文章可帮助您设计Windows桌面应用程序的用户体验:如何设计出色的用户体验通过精心平衡的功能选择和演示实现功能和简单性的建议。用户体验清单在用户界面设计中需要注意的一些常见错误和不一致之处。(有关设计通用Windows平台(UWP)应用程序的信息,请参阅UWP应用程序的设计基础知识。)原文链接:Design basics for Desktop applicat...

2018-10-27 21:08:17 277

翻译 Windows桌面应用程序(1-4th) 使用Windows头文件

Windows API的头文件使您可以创建32位和64位应用程序。它们包括API的Unicode和ANSI版本的声明。有关更多信息,请参阅Windows API中的Unicode。它们使用的数据类型使您能够从单个源代码库构建应用程序的32位和64位版本。有关更多信息,请参阅为64位Windows做好准备。其他功能包括头文件注释和严格类型检查。Visual C ++和Windows头文件Micr...

2018-10-27 21:00:46 412

翻译 Windows桌面应用程序(1-3-3-3-1st) 注册表映射

[本主题中的信息适用于Windows Server 2008,Windows Vista,Windows Server 2003和Windows XP。从Windows 7和Windows Server 2008 R2开始,WOW64不再使用注册表映射,而是以前共享的映射键。有关更多信息,请参阅受WOW64影响的注册表项。注册表重定向器通过在WOW64上提供注册表某些部分的单独逻辑视图来隔离32...

2018-10-26 22:24:10 389

翻译 Windows桌面应用程序(1-3-3-3rd) 注册表重定向器

注册表重定向器通过在WOW64上提供注册表某些部分的单独逻辑视图来隔离32位和64位应用程序。注册表重定向器拦截对其各自逻辑注册表视图的32位和64位注册表调用,并将它们映射到相应的物理注册表位置。重定向过程对应用程序是透明的。因此,32位应用程序可以访问注册表数据,就像它在32位Windows上运行一样,即使数据存储在64位Windows上的其他位置也是如此。ARM上的Windows 10:除...

2018-09-24 14:00:04 312

翻译 Windows桌面应用程序(1-3-3-2nd) WOW64实现细节

WOW64仿真器以用户模式运行。它提供32位版本的Ntdll.dll与处理器内核之间的接口,并拦截内核调用。 WOW64模拟器包含以下DLL:Wow64.dll提供核心仿真基础结构和Ntoskrnl.exe入口点函数的thunk。Wow64Win.dll为Win32k.sys入口点函数提供了thunk。(仅限x64)Wow64Cpu.dll支持在x64上运行x86程序。(仅限Intel ...

2018-09-24 13:35:28 1011

翻译 Windows桌面应用程序(1-3-3-1st) WOW64下的性能和内存消耗

WOW64下的性能和内存消耗由以下因素决定:处理器硬件。指令仿真在芯片上执行。在x64处理器上,x86指令由处理器本机执行。因此,x64下WOW64下的执行速度与32位Windows下的速度相似。在Intel Itanium处理器和任何ARM64处理器上,仿真中涉及更多软件,因此性能受损。API thunk开销。与对NT内核的系统调用相比,这种开销很小。 NT内核函数不经常被调用。虚拟内存...

2018-09-24 12:07:31 363

翻译 Windows桌面应用程序(1-3-3rd) 运行32位应用程序

a

2018-09-23 22:03:48 317

原创 个人收集的资源(0th) IDM绿化版(免费免积分)

这可是百度网盘资源下载神器,怎能不要? 百度网盘下载链接:密码: vi6g(5.99MB) 下载完解压后运行批处理文件”!绿化.bat”即可 运行”!卸载.bat”即可卸载...

2018-08-19 18:37:10 2550

原创 个人收集的资源(1st) Orange'S:一个操作系统的实现及光盘源代码(免费免积分)

说句实话,这本书很容易找到,但光盘源代码却找了我整整两天的时间 现在贴上百度网盘链接:https://pan.baidu.com/s/1VxkZL-LvRQrYNLd_ZUGl4Q (密码:acih) 不谢~~

2018-08-19 18:28:03 5694 39

翻译 Windows桌面应用程序(1-3-2-5th) 准备64位Windows的应用程序

有几个功能可以让您更轻松地开发可在32位和64位Windows上运行的应用程序。其中大多数(如新数据类型)在为64位Windows做好准备中进行了描述。Windows SDK附带的64位工具包包括一个64位MIDL编译器Midl.exe,用于生成本机64位存根以及32位存根。 使用/ env win64开关仅生成64位存根。 默认设置是生成在两个平台上运行的双存根。请注意,64位MIDL仅...

2018-07-31 21:56:42 211

翻译 Windows桌面应用程序(1-3-2-4th) 在IDL文件中使用新数据类型

Basetsd.h头文件定义了编写在32位和64位Windows上运行的应用程序所需的新数据类型。 要在接口中使用这些数据类型,请将Basetsd.h导入IDL文件。 不要#include文件,否则在编译时最终会有多个定义。或者,您可以将Basetsd.idl文件包含或导入到IDL文件中。有关将系统头文件添加到IDL文件的更多信息,请参阅导入文件和类型库和导入系统头文件。原文链接:...

2018-07-31 21:47:34 254

翻译 Windows桌面应用程序(1-3-2-3rd) 避免多态性

新数据类型包括两种多态类型,INT_PTR和LONG_PTR。在32位Windows上,INT_PTR映射到int,LONG_PTR映射到long。在64位Windows上,两种类型都映射到__int64内在类型。 MIDL编译器支持这些类型用于远程过程调用,但是在分布式环境中使用它们时必须牢记一个固有的限制。请务必相应地评论您的代码。无论平台大小如何,这些多态类型的线缆大小始终为32位。在6...

2018-07-31 21:42:49 245

WACL(beta 0.1)

Windows Application Class Library 第一版,支持edit(输入框),button(按钮),输出文本

2017-02-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除