新页面

跳到导航 跳到搜索
新页面
隐藏注册用户 | 隐藏机器人 | 显示重定向
最新 | 最旧) 查看( | 后50个)(20 | 50 | 100 | 250 | 500
  • 2022年3月17日 (四) 07:57User Interface历史 | 编辑) ‎[861字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} <b>用户界面-User Interface</b> 或 <b>UI</b> 是人机(human-machine)界面的子类别,在操作系统项目中起着重要作用。 术语“UI”描述操作系统或应用程序与用户的交互。 另一方面,用户与OS或更确切地说是应用程序的交互是人机界面的另一个子类别。 如今,此界面是视觉的,也有一些OS的触觉支持,例如振动或听觉的用于通知和反馈。 该界面将形成用户…”)
  • 2022年3月17日 (四) 07:42Formatted Printing历史 | 编辑) ‎[3,051字节]Zhang3讨论 | 贡献 (创建页面,内容为“本文将介绍格式化打印的概念(即 ''printf()'')。 ==''printf()''是如何工作的?== 你迈向获得可靠的 ''printf()'' 功能的第一步是对其工作的理解。 你有没有试过模仿“va_list”(参数列表)并且带''void**'',比如说一种特定的语言,(译者注:这里原作者似乎使用特殊排版格式,打乱了原句单词的位置,无法正确翻译)比如... ‎总原则和目标 - ‎本地化 -…”)
  • 2022年3月17日 (四) 07:11Calling Global Constructors历史 | 编辑) ‎[17,707字节]Zhang3讨论 | 贡献 (创建页面,内容为“本教程讨论如何正确调用全局构造函数,例如全局C++对象上的构造函数。 这些应该在你的main函数之前运行,这就是为什么程序入口点通常是一个名为 _start的函数。 此函数负责解析命令行参数,初始化标准库(内存分配、信号等),运行全局构造函数并最终exit(main(argc, argv))。 如果你更改编译器,自制操作系统上的情况可能会有所不同,但是如果你使…”)
  • 2022年3月16日 (三) 12:19Shutdown历史 | 编辑) ‎[2,112字节]Zhang3讨论 | 贡献 (创建页面,内容为“为了关闭计算机,你需要使用某种电源管理。 要么是APM要么是ACPI。 == APM == 这是关闭计算机必须给出的APM命令的基本序列。 有关如何实施这些步骤的详细信息,请参阅 APM 文章。 * 执行安装检查。 *检查APM版本是否至少为‘1.1 * 断开任何现有的APM接口。 * 连接实模式接口。 * 告诉APM你的驱动支持1.1版 * 为所有设备启用电源管理。 * 将所有设…”)
  • 2022年3月16日 (三) 08:25ACPI历史 | 编辑) ‎[2,998字节]Zhang3讨论 | 贡献 (创建页面,内容为“ACPI(Advanced Configuration and Power Interface,高级配置和电源接口)是由Intel、Microsoft和Toshiba联合开发的PC电源管理和配置标准。 ACPI允许操作系统控制每个设备的电量 (例如,允许其使某些设备处于待机状态或断电状态)。 它还用于控制和/或检查热区(温度传感器、风扇速度等)、电池电量、PCI IRQ路由、CPU、NUMA域和许多其他内容。 ==…”)
  • 2022年3月16日 (三) 06:32I Can't Get Interrupts Working历史 | 编辑) ‎[9,522字节]Zhang3讨论 | 贡献 (创建页面,内容为“此页面是一种故障排除手册,可帮助您解决论坛来宾和成员在论坛上遇到的常见中断框架问题 请确保你收集了关于自己情况的足够信息(例如在Bochs中运行代码)。 == ISR问题 == === 我的处理程序没有被调用?!(汇编) === 对于这个测试,你需要通过软件自己调用中断。 在确定IDT设置正确之前,不要尝试从一开始就处理IRQ。 你需要有: *…”)
  • 2022年3月16日 (三) 02:13Interrupt Descriptor Table历史 | 编辑) ‎[14,526字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''中断描述符表'''('''IDT-Interrupt Descriptor Table''')是特定于IA-32x86-64体系结构的二进制数据结构。 它是实模式里中断向量表(IVT)的保护模式和长模式对应物,用以告诉CPU中断服务例程 (ISR-Interrupt Service Routines) 所在的位置 (一个中断向量代表一个例程)。 它在结构上类似于G…”)
  • 2022年3月15日 (二) 12:18CMOS历史 | 编辑) ‎[20,077字节]Zhang3讨论 | 贡献 (创建页面,内容为““CMOS”是一种极低功耗的静态存储器,与实时时钟(RTC)位于同一芯片上。 它于1984年引入IBM PC AT,使用摩托罗拉MC146818A实时时钟。 CMOS (和实时时钟) 只能通过IO端口0x70和0x71访问。 CMOS存储器的功能是在计算机关闭时为BIOS存储50(或114)字节的“设置”信息 -- 因为有一个单独的电池,可以使时钟和CMOS信息长期保持激活状态。 CMOS值一次访问一个字节…”)
  • 2022年3月15日 (二) 09:08RTC历史 | 编辑) ‎[6,865字节]Zhang3讨论 | 贡献 (创建页面,内容为“==导言== 典型的操作系统会使用APICPIT进行计时。 但是,RTC的工作原理也一样。 RTC代表实时时钟-Real Time Clock。 它是使你的计算机时钟保持更新的芯片。 芯片内也有64字节的 CMOS RAM。 如果你只是想从RTC中读取日期/时间的信息,请参阅 CMOS 文章。 本文其余部分介绍了RTC中断的使用。 ==能力== RTC能够支持多个…”)
  • 2022年3月15日 (二) 05:55Programmable Interval Timer历史 | 编辑) ‎[35,858字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''可编程间隔定时器'''('''PIT-Programmable Interval Timer''')芯片(Intel 8253/8254)基本上由一个振荡器(oscillator)、一个预分频器(prescaler)和3个独立的分频器(frequency dividers)组成。 (译者注:Timer一词可以翻译为计时器或定时器,译者以后打算尽量翻译为”定时器“。Timer的核心功能是周期性的发出Tick信号。) 每个分频器都有一个…”)
  • 2022年3月14日 (一) 07:18PC Speaker历史 | 编辑) ‎[4,841字节]Zhang3讨论 | 贡献 (创建页面,内容为“PC扬声器是PC兼容系统上可用的最原始的声音设备。 它的特点是可以发出独特的“哔哔声”和“吱吱声”,因此有时被称为“PC Beeper”或“PC Squeaker” - 蜂鸣器。 == 原始硬件 == 扬声器本身有两种可能的位置,“in”和“out”。 此位置可通过键盘控制器上端口0x61的位1来设置。 如果设置此位 (=1),则扬声器将移至 “out” 位置,如果清…”)
  • 2022年3月14日 (一) 05:05Deadlock历史 | 编辑) ‎[5,800字节]Zhang3讨论 | 贡献 (创建页面,内容为“==定义== {{Quotation| 如果一组进程中的每个进程都在等待该组进程中只有其它进程会引起的事件,则该组进程将死锁。 |Andrew Tanenbaum}} 更简单地说,当两个或多个进程相互阻塞时,就会出现死锁,因为没有人愿意“让步”让其他进程继续进行 - 导致所有进程都将无限期地保持僵局。 一个典型的例子是在资源管理中,例如当两个进程试图获得对一对文件…”)
  • 2022年3月14日 (一) 03:01Semaphore历史 | 编辑) ‎[4,007字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''信号量(semaphore)''' 是一种同步原始数据类型。 从程序员的角度来看,它是一种不透明的数据类型,有两个定义的操作,通常称为'''wait'''和'''signal'''。(译者注:可以理解为和PV操作对应,wait是P操作-尝试申请资源,signal是V操作-释放资源) 有两种类型的信号量--“二进制信号量”和“计数信号量”。 == 计数信号量 == 最常…”)
  • 2022年3月14日 (一) 02:27Spinlock历史 | 编辑) ‎[9,300字节]Zhang3讨论 | 贡献 (创建页面,内容为“==概述== 与所有形式的可重入锁(reentrancy locks)一样,自旋锁(spinlocks)用于确保对资源(例如,数据结构、硬件等)的有序访问,以便在一个上下文中运行的软件不会获得该资源的不一致视图,因为在另一个上下文中运行的软件正在修改资源。 例如,想象一个包含一个人的名字和姓氏的结构,该结构当前包含数据 “Fred” 和 “Smith”。 如果一个CPU将…”)
  • 2022年3月13日 (日) 08:45GCC Canadian Cross历史 | 编辑) ‎[784字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} Canadian Cross指首先在系统X(构建系统)上为系统Y(主机)构建一个交叉编译器。 然后,将对该交叉编译器,设置三个参数 <code>--build=<该编译器运行的位置>-host=<正在构建的编译器将运行的位置>-target=<正在构建的编译器将运行的可执行文件></code>。 单凭这一解释就足以说明为什么这一点既重要又容易出错。 ==="Minor" Canadian Cross=== 构建交叉编译器需要…”)
  • 2022年3月12日 (六) 13:06How do I set a graphics mode历史 | 编辑) ‎[3,141字节]Zhang3讨论 | 贡献 (创建页面,内容为“当PC第一次启动时,它被设置为标准的已知VGA文本模式。 但是在某些时候,你将希望开始在屏幕上绘制像素而不是文本。 这要求你从文本模式切换到“图形”模式。 在16位模式下,通过调用中断0x10的不同函数,你可以轻松地使用BIOS在不同图形模式之间切换。 但是,一旦进入保护模式,事情就会变得更加困难。 ==使用UEFI== 对于EFI,标准是通用图形适…”)
  • 2022年3月12日 (六) 12:48Hard Build System历史 | 编辑) ‎[11,631字节]Zhang3讨论 | 贡献 (创建页面,内容为“:''Everything should be made as simple as possible, but not simpler.'' (译者注:这句话是爱因斯坦的名言,其实本身的含义也仁者见仁智者见智。可以理解为:凡事尽可能简洁,但不能太过简单;也可以理解为:任何事情都应该做到最简单,而不是相对简单。总的来说应该是提醒读者要简化问题,但是不能太过个人理想化。) 自制操作系统的构…”)
  • 2022年3月12日 (六) 11:09Grub Error 13历史 | 编辑) ‎[3,954字节]Zhang3讨论 | 贡献 (创建页面,内容为“== GRUB Error 13: Invalid or unsupported executable format: == GRUB 是GNU Multiboot规范的参考实现,通常被大多数32位OS开发人员使用。 它的优点是作为一个(显然)预先编写的引导程序,有更多的代码来处理各种BIOS的怪癖,而不是任何个人都值得自己去做。 有关更多信息,请参阅以下帖子: http://forum.osdev.org/viewtopic.php?f=1&t=21158&start=0. 但是,许多人在使GRUB识别…”)
  • 2022年3月12日 (六) 06:19Port IO历史 | 编辑) ‎[2,430字节]Zhang3讨论 | 贡献 (创建页面,内容为“x86体系结构将地址空间分为两个编程上不同的两组: 内存(memory)和端口(ports)。 在早古时代上,内存被用作数据存储,读写操作不会产生副作用,而端口被用来控制外部硬件,这些硬件需要不同的计时方式来工作。 这也是访问端口比访问内存慢得多的原因。 而许多其他常见的计算机体系结构具有统一的空间,其中设备以与内存相同的速度运行,…”)
  • 2022年3月12日 (六) 06:01Brokenthorn's Known Bugs历史 | 编辑) ‎[1,144字节]Zhang3讨论 | 贡献 (创建页面,内容为“Category:FAQBrokenthorn的系列教程是更好的一些OSDev教程。 它们教授更好的编码实践,并且非常深入。 像所有教程一样,其中也有一些错误。 以下是最常见的: == CR0.PE描述错误 == 在OSDev8中,CR0.PE(位0)被错误地描述为将处理器设置为32位模式。 设置CR0的位0不会将处理器置于32位模式。 对32位代码段执行远跳将使处理器处于32位模式。 跳远本身仍将以…”)
  • 2022年3月12日 (六) 05:51Bran's Kernel Development Tutorial Known Bugs历史 | 编辑) ‎[3,400字节]Zhang3讨论 | 贡献 (创建页面,内容为“从好几个地方-包括这个Wiki-都指向 [http://osdever.net/bkerndev/Docs/basickernel.htm Bran的内核开发教程] 作为起点。 但该教程存在一些问题,通常会让人们出现在论坛上,再次提出相同的问题。 这篇文章旨在先发制人地回答这些问题,就像是“Bran的常见问题”,希望对你有用。 注意: 包含Bran教程的网站osdever.net最近关闭了很长时间。 你可以在网上这里找到它…”)
  • 2022年3月12日 (六) 04:00Where Can I Find Information About Ports历史 | 编辑) ‎[6,869字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Tone}} {{FirstPerson}} 译者注:这里的端口指的是IO端口(Port),一般CPU通过IO端口操作设备,本文主要解答了自制操作系统时,开发爱好者是怎么知道外部设备:电源、显卡、网卡等应该如何对接的。 == 问题:我在哪里可以找到有关端口的信息() == <div style="font-size:8pt"> : 我一直在尝试编写内核(从Brandon在osdever的教程开始)。 我很幸运地找到了在屏幕上…”)
  • 2022年3月12日 (六) 03:09Sound历史 | 编辑) ‎[6,102字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{In Progress}} right|frame|An example of an older-style PCI sound card 当声音没有出现时被用户才会注意到它。 它构成了用户反馈体验的一个组成部分。 例如,当用户点击错误的东西时,Windows资源管理器、KDE和其他桌面环境会发出哔哔声。 它也正在游戏和多媒体体验中更占主导的地位;许多游戏和电影现在都有5.1个通道的配乐。 因此,越来…”)
  • 2022年3月12日 (六) 00:28Serial Ports历史 | 编辑) ‎[20,164字节]Zhang3讨论 | 贡献 (创建页面,内容为“串口(串行端口-Serial ports)是IBM-PC兼容计算机上常见的传统通信端口。 PC上连接外围设备的串口在很大程度上已经被弃用,而推荐使用USB和其它现代外围接口, 然而,在某些行业中,它仍然普遍用于与工业硬件 (例如CNC机器) 或商业设备 (例如POS终端) 进行接口连接。 历史上,拨号调制解调器通过计算机的串行端口连接是很常见的,而底层UART硬…”)
  • 2022年3月10日 (四) 12:43ISA DMA历史 | 编辑) ‎[21,532字节]Zhang3讨论 | 贡献 (创建页面,内容为“;有关ISA DMA的要点有: * ISA DMA与PCI总线主控DMA不是一回事; * ISA DMA通道1、2和3可用于8位传输到ISA外围设备; * ISA DMA通道5、6和7可用于向ISA外围设备进行16位传输; * 传输不得跨越物理64KB边界,且不得大于64KB; * 传输必须是物理上连续的,并且只能针对最低的16 MB物理内存; * ISA DMA速度很慢——理论上是4.77 MB/秒,但由于ISA总线协议,速度更接近400 KB/秒…”)
  • 2022年3月8日 (二) 12:57PS/2 Keyboard历史 | 编辑) ‎[64,799字节]Zhang3讨论 | 贡献 (创建页面,内容为“== 概述 == PS/2键盘是一种使用 串行通信 与PS/2控制器对话的设备。 理想情况下,每种不同类型的PS/2控制器驱动程序都应提供某种标准/简单的 “发送字节/接收字节” 接口,PS/2键盘驱动程序将使用此接口,而无需关心较低级别的详细信息 (例如设备插入的PS/2控制器类型)。 PS/2键盘接受命令并发送对这些命令的响应,还发送指示何时按下或释放…”)
  • 2022年3月8日 (二) 08:27DMA历史 | 编辑) ‎[21,532字节]Zhang3讨论 | 贡献 (创建页面,内容为“;有关ISA DMA的要点有: * ISA DMA与PCI总线主控DMA不是一回事; * ISA DMA通道1、2和3可用于8位传输到ISA外围设备; * ISA DMA通道5、6和7可用于向ISA外围设备进行16位传输; * 传输不得跨越物理64KB边界,且不得大于64KB; * 传输必须是物理上连续的,并且只能针对最低的16 MB物理内存; * ISA DMA速度很慢——理论上是4.77 MB/秒,但由于ISA总线协议,速度更接近400 KB/秒…”)
  • 2022年3月8日 (二) 05:44ISA历史 | 编辑) ‎[1,367字节]Zhang3讨论 | 贡献 (创建页面,内容为“-Industry Standard Architecture(行业标准架构),ISA也可以指一种指令集体系架构。 <b>行业标准体系结构(Industry Standard Architecture)</b>(ISA)总线是在1981年为最初的IBM PC创建的。 在那个阶段,它是8位5MHz总线 (2.39 mb/s),但后来在8MHz (8.33 mb/s) 下升级为16位。 如今,ISA总线已经过时,速度非常慢,但它仍然普遍存在于较旧的机器中,许…”)
  • 2022年3月7日 (一) 08:11Text Mode Cursor历史 | 编辑) ‎[6,914字节]Zhang3讨论 | 贡献 (创建页面,内容为“光标会自动移动到最后一个书写字符之后的一个位置。在文本模式中,光标的工作方式与高级语言中不同。 它只是一个可由操作系统调整大小、显示、隐藏和移动的闪烁区域。 == 通过BIOS== 要使用BIOS操作光标,请使用int 0x10,屏幕功能的中断。 ===启用游标=== 启用光标功能还允许您设置开始和结束扫描线,即光标开始和结束的行。 最…”)
  • 2022年3月5日 (六) 01:49FAT历史 | 编辑) ‎[108,684字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Filesystems}} DOS V1.0(可能是CP/M)引入了'''File Allocation Table''' ('''FAT''')文件系统。 FAT应该是由比尔·盖茨编写的,是一个非常简单的文件系统-- 只不过是一个巨大表格中的一个单链接的簇列表。 FAT文件系统使用的内存非常少(除非操作系统将整个分配表缓存在内存中),它即使不是现在使用的最基本的文件系统,也肯定是其中之一。 ==概述== FAT文件系…”)
  • 2022年3月4日 (五) 09:33Thread Local Storage历史 | 编辑) ‎[7,365字节]Zhang3讨论 | 贡献 (创建页面,内容为“线程本地存储(Thread Local Storage - TLS)是针对每个线程的全局变量。 像GCC这样的编译器提供了一个<tt>__thread</tt>关键字来按照线程标记全局变量。 这一特性需要程序加载器和线程创建者的支持。 <source lang="c"> __thread int errno; int get_errno() { return errno; } </source> x86-64System V ABI编译器会将此代码编译成如下汇编程序集: <pre> .globl errno .section .tbss,…”)
  • 2022年3月4日 (五) 06:18Loading a Process历史 | 编辑) ‎[5,997字节]Zhang3讨论 | 贡献 (创建页面,内容为“加载和启动进程可以通过多种方式完成。 == 载入器功能 == 在[http://forum.osdev.org/viewtopic.php?p=112592#p112592 这篇文章]Brendan描述了创建的进程执行加载功能的方式,该功能可以将可执行文件加载到其地址空间中。 只有当进程获得其时间片时,此加载程序函数才处于活动状态。 这样,生成新进程的进程就不会被阻止。 *创建一个新的页面目录(映射到内核…”)
  • 2022年3月4日 (五) 03:40Continuation Systems历史 | 编辑) ‎[4,265字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Tone}} 分时工作原理是中断正在运行的程序,并将其运行时状态(如程序计数器和寄存器)保存到数据结构(通常是内核级堆栈)中。 从理论上讲,保存的状态构成了中断程序的'''one-shot continuation'''。 (译者注:这里continuation可以翻译为'''名词'''-延续,但是中文延续有动词的意像,容易产生误解,所以以下不翻译了。这里的意思有点…”)
  • 2022年3月4日 (五) 02:48Thread历史 | 编辑) ‎[9,081字节]Zhang3讨论 | 贡献 (创建页面,内容为“==导言== 在操作系统中,线程是执行和并发系统中挂起的各种任务的基本单元。 它们通常是进程的内部组件,共享同一组资源,即文件句柄、共享内存句柄、POSIX信号、消息传递缓冲区等。 但在Windows NT这样的体系结构中,它们可以拥有特定的特殊资源集,内核可以销毁''线程终止时对应的一些资源'' 当调度程序选择线程时,线程可以看到彼此以并行…”)
  • 2022年3月3日 (四) 09:22Julian Day Number历史 | 编辑) ‎[3,652字节]Zhang3讨论 | 贡献 (创建页面,内容为“任何操作系统都需要“时间”格式。 对于操作系统何时开始测量“时间的开始”,似乎没有真正的标准。 但事实上,有一个接近标准。 ==基本定义== 天文学中有一种测量时间的方法,叫做儒略日数(Julian Day Number-JDN)。 出于历史日历系统的原因,它从UTC正午(公元前4713年1月1日)开始测量时间,并使用浮点值以天为单位测量时间。 因为它是一种标…”)
  • 2022年3月3日 (四) 09:10Time And Date历史 | 编辑) ‎[16,212字节]Zhang3讨论 | 贡献 (创建页面,内容为“用户、文件系统、调度器、系统应用程序和一些用户应用程序都需要知道日期和/或时间,以达到不同的精度。 当时钟敲响某个时间时,一些应用程序需要启动、发送信号或发送消息。 为了提供这些服务,操作系统需要获取引导期间的当前时间,并维护该时间。 在一个系统中,“时间”有三个重要的细分: 人工时间、文件系统时间和调度程序时间片…”)
  • 2022年3月3日 (四) 07:23Hexadecimal Notation历史 | 编辑) ‎[1,944字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''十六进制表示法(Hexadecimal notation)'''只是表示数字的另一个进制(Base),同样的还比如二进制。 十六进制中有16位数字:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E和F。 0到9保留其正常含义,十六进制中的A到F在十进制表示法中是10到15。 作为任何进制,我们都可以通过通用地写出整个数来计算给定数字的值,比如1CA。 十六进制的1CA…”)
  • 2022年3月3日 (四) 07:11Binary Notation历史 | 编辑) ‎[1,146字节]Zhang3讨论 | 贡献 (创建页面,内容为“==导言== '''二进制表示法(Binary notation)'''是表示数字的另一种基数(Base),比如十六进制表示法。 ==表达方式== 二进制只有两个数字,0和1。每个位置是二的幂。 101101 = 1*1 + 0*2 + 1*4 + 1*8 + 0*16 + 1*32 = 45 (10进制) 它也是计算机使用的基础,因为它可以用数字表示为开或关。 然而,人类很难解码1和0的长字符串,因此它通常用十六进制…”)
  • 2022年3月3日 (四) 02:19NE历史 | 编辑) ‎[5,132字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} {{File formats}} =NE= ==导言== WIN-NE可执行格式,专为Windows 3.x设计、 称为“NE”或“New Executable”格式。同样是16位格式,它去除了MZ格式的最大大小限制。 ==Support== 使用它的操作系统:Windows 1.01到3.xx。 该格式'''can'''在以后的32位windows系统(在VDM中)上运行,但不是本机格式<br/> 由于v8086缺少64位,因此放弃了对64位windows的支持。 =深入NE文件= ==…”)
  • 2022年3月2日 (三) 08:59Internet Control Message Protocol历史 | 编辑) ‎[4,977字节]Zhang3讨论 | 贡献 (创建页面,内容为“Internet控制消息协议(Internet Control Message Protocol 通常称为ICMP)是典型的支持IPv4的网络栈中的基本协议之一。 该协议使网络上的节点能够共享信息和错误,而无需使用可能已被破坏的上层协议。 例如,如果TCP连接由于数据包的生存时间太短而导致数据包被丢弃,则两台主机都无法确定故障。 想要任何一个主机都可以解决这个问题的唯一方法是向它…”)
  • 2022年3月2日 (三) 07:46Address Resolution Protocol历史 | 编辑) ‎[2,583字节]Zhang3讨论 | 贡献 (创建页面,内容为“地址解析协议(Address Resolution Protocol),通常称为“ARP”,是一种允许主机在只有IPv4地址时获取远程主机的以太网地址(MAC)的协议。 从技术上讲,由于数据格式大小可变,ARP支持其它地址格式,但通常与Ethernet和IP地址一起使用。 应该注意的是,IPv6中通过不同的协议提供了类似的功能。 ==背景== ARP定义于[http://tools.ietf.org/html/rfc826 RFC826]。…”)
  • 2022年3月2日 (三) 06:45Network Stack历史 | 编辑) ‎[16,529字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{In_Progress}} 本文是关于编写TCP/IP协议栈的,即使用链路层(如以太网卡)来处理IP、ARP、TCP、UDP等协议的数据包的子系统。 ==扫描PCI设备== 首先要做的是扫描安装在机器上的PCI设备,以便通过查看特定的供应商ID和设备ID来检测以太网卡。 有关更多详细信息,请参见PCI页面。 ==为NIC编写驱动程序== 找到以太网卡后,需要实…”)
  • 2022年3月1日 (二) 07:53Drawing In a Linear Framebuffer历史 | 编辑) ‎[9,327字节]Zhang3讨论 | 贡献 (创建页面,内容为“现在,你已经知道如何使用硬件VGA支持轻松地将文本写入屏幕,你可能想知道如何能够显示漂亮的图像、窗口、菜单、图标、漂亮的光标和按钮等。 本页介绍如何在线性帧缓冲区中显示图形,线性帧缓冲区是在内存中映射的一个简单数组,代表屏幕。 ==图形模式== {{Main|Getting VBE Mode Info}} {{Main|GOP}} VGA和VBE模式可以使用BIOS中断0x10选择(在实模式下)。…”)
  • 2022年3月1日 (二) 07:07Colour Quantisation历史 | 编辑) ‎[7,579字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} Category:Graphical UI 在图形操作系统环境中,有时需要在显示设备上显示图像。 如果显示设备无法表示图像中的所有颜色,则必须有一种机制,将图像中的颜色映射到设备调色板中最接近的可显示颜色。 这种颜色映射的一般术语是颜色量化(色彩量化,Colour Quantisation)。 颜色量化器是系统中负责执行此操作的部分。 在本文中,源图像被认…”)
  • 2022年3月1日 (二) 06:10ELF Tutorial历史 | 编辑) ‎[26,603字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{In_Progress}} {{Rating|2}}{{File formats}} 本教程介绍了加载针对i386(32位体系结构,小端字节顺序)的ELF文件的步骤。 教程中的所有代码都是C兼容C++的形式,并通过示例使用简化的(有时是过于简化的)、整洁的和功能性的代码片段来尝试教学。 它以后可能会扩展到其他类型的ELF文件,或针对其他体系结构或机器类型的格式。 ==ELF数据类型== <source lang="cp…”)
  • 2022年2月28日 (一) 08:17COM历史 | 编辑) ‎[1,599字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''这里是关于可执行文件的格式,而不是微软的Component Object Model''' {{Stub}} {{File formats}} ==COM文件== ===导言=== COM文件是非常简单的可执行文件。 它们在加载程序时非常有用,不会出现诸如重新定位符号、读取文件头等复杂情况。 然而,它们的简单性可能会使它们的实用性受到限制,因此一旦操作系统升级,您可能希望支持更复杂但有用的东西,比…”)
  • 2022年2月28日 (一) 08:03MZ历史 | 编辑) ‎[5,907字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{File formats}} MS-DOS EXE格式,以MZ签名开头(微软工程师马克·兹比科夫斯基-Mark Zbykowski的首字母缩写),是在MS-DOS 2.0中引入的(1.0版仅采用简单的COM格式)。 它被设计成在实模式下运行的可重新定位的可执行文件。 因此,只有DOS和Windows 9x可以本机使用这种格式,但通过几个自由的DOS模拟器(例如[http://www.dosbox.com/ DOSBox]),可实现在各种操作系统…”)
  • 2022年2月28日 (一) 06:36Random Number Generator历史 | 编辑) ‎[19,210字节]Zhang3讨论 | 贡献 (创建页面,内容为“随机数生成器(RNG)可以用很多不同的方式实现。 本文解释了其中一些方式。 ==熵(Entropy)== 计算机是确定性设备。 如果程序相同且所有输入相同,则每次计算的结果都相同。 那么,计算机如何生成随机数呢? 计算机不可以是随机的,但它周围的物理世界可以。 许多物理事件在某种程度上是随机的,或者更严格地说,具有某种程度的熵。 即使在…”)
  • 2022年2月28日 (一) 03:41CRC32历史 | 编辑) ‎[7,753字节]Zhang3讨论 | 贡献 (创建页面,内容为“CRC32是一种校验和哈希算法,在内核和互联网校验和中非常常用。 它与MD5校验和算法非常相似。 ===基本算法=== 从一个32bit的校验和(checksum)开始,所有位设置为(0xffffffff)。 这有助于当输入流为“0”时提供除0以外的字节输出值。 在循环中:根据下一段输入数据(通常是一个字节)和前一个CRC值的低N位,在一张表中查找“多项式(polynomial 译…”)
  • 2022年2月25日 (五) 05:26Lexer-rules.md历史 | 编辑) ‎[12,571字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{MARKDOWN}} # Lexer Rules 一个lexer grammar由lexer rules组成,可以选择分为多个modes。 Lexical modes允许我们将单个lexer grammar拆分为多个sublexers。 lexer只能返回与当前mode中的规则匹配的Token。 Lexer规则指定Token定义,并且或多或少遵循parser rules的语法,只是lexer rules不能有参数、返回值或局部变量。 Lexer规则名称必须以大写字母开头,这将它们与parser rule名称区…”)
最新 | 最旧) 查看( | 后50个)(20 | 50 | 100 | 250 | 500