新页面

跳到导航 跳到搜索
新页面
隐藏注册用户 | 隐藏机器人 | 显示重定向
  • 2022年5月24日 (二) 00:43SWARM历史 | 编辑) ‎[55,881字节]Zhang3讨论 | 贡献 (创建页面,内容为“SWARM First published in The Magazine of Fantasy & Science Fiction, April 1982. "I will miss your conversation during the rest of the voyage," the alien said. Captain-Doctor Simon Afriel folded his jeweled hands over his gold-embroidered waistcoat. "I regret it also, ensign," he said in the alien's own hissing language. "Our talks together have been very useful to me, I would have paid to learn so much, but you gave it freely." "But that was only informatio…”)
  • 2022年4月30日 (六) 12:31Control Systems/Realizations历史 | 编辑) ‎[4,377字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|MIMO Systems|Gain}} == Realization == '''Realization''' is the process of taking a mathematical model of a system (either in the Laplace domain or the State-Space domain), and creating a physical system. Some systems are not realizable. An important point to keep in mind is that the Laplace domain representation, and the state-space representations are equivalent, and both representations describe the same physical systems. We want, th…”)
  • 2022年4月30日 (六) 12:30Control Systems/MIMO Systems历史 | 编辑) ‎[9,008字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|Standard Forms|Realizations}} == Multi-Input, Multi-Output == Systems with more than one input and/or more than one output are known as '''Multi-Input Multi-Output''' systems, or they are frequently known by the abbreviation '''MIMO'''. This is in contrast to systems that have only a single input and a single output (SISO), like we have been discussing previously. == State-Space Representation == {{SideBox|See the Control Systems/Int…”)
  • 2022年4月30日 (六) 12:29Control Systems/Standard Forms历史 | 编辑) ‎[7,813字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|Eigenvalues and Eigenvectors|MIMO Systems}} == Companion Form == A '''companion form''' contains the coefficients of a corresponding characteristic polynomial along one of its far rows or columns. For example, one companion form matrix is: :<math>\begin{bmatrix} 0 & 0 & 0 & \cdots & 0 & -a_0 \\ 1 & 0 & 0 & \cdots & 0 & -a_1 \\ 0 & 1 & 0 & \cdots & 0 & -a_2 \\ 0 & 0 &…”)
  • 2022年4月30日 (六) 12:29Control Systems/Eigenvalues and Eigenvectors历史 | 编辑) ‎[15,636字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems Page|Time Variant System Solutions|Standard Forms}} == Eigenvalues and Eigenvectors == {{SideBox|Eigenvalues and Eigenvectors cannot be calculated from time-variant matrices. If the system is time-variant, the methods described in this chapter will not produce valid results.}} The eigenvalues and eigenvectors of the system matrix play a key role in determining the response of the system. It is important to note that only square matrices hav…”)
  • 2022年4月30日 (六) 12:28Control Systems/Digital State Space历史 | 编辑) ‎[9,936字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|Time Variant System Solutions|Eigenvalues and Eigenvectors}} == Digital Systems == Digital systems, expressed previously as difference equations or Z-Transform transfer functions, can also be used with the state-space representation. All the same techniques for dealing with analog systems can be applied to digital systems with only minor changes. == Digital Systems == For digital systems, we can write similar equations using discrete…”)
  • 2022年4月30日 (六) 12:27Control Systems/Time Variant System Solutions历史 | 编辑) ‎[10,333字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|Linear System Solutions|Digital State Space}} == General Time Variant Solution == The state-space equations can be solved for time-variant systems, but the solution is significantly more complicated than the time-invariant case. Our time-variant state equation is given as follows: :<math>x'(t) = A(t)x(t) + B(t)u(t)</math> We can say that the general solution to time-variant state-equation is defined as: {{eqn|Time-Variant General Sol…”)
  • 2022年4月30日 (六) 12:27Control Systems/Linear System Solutions历史 | 编辑) ‎[13,290字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|State-Space Equations|Time Variant System Solutions}} == State Equation Solutions == {{SideBox|The solutions in this chapter are heavily rooted in prior knowledge of Ordinary Differential Equations. Readers should have a prior knowledge of that subject before reading this chapter.}} The state equation is a first-order linear differential equation, or (more precisely) a system of linear differential equations. Because this is a firs…”)
  • 2022年4月30日 (六) 12:27Control Systems/State-Space Equations历史 | 编辑) ‎[24,604字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|Poles and Zeros|Linear System Solutions}} == Time-Domain Approach == The "Classical" method of controls (what we have been studying so far) has been based mostly in the transform domain. When we want to control the system in general, we represent it using the Laplace transform (Z-Transform for digital systems) and when we want to examine the frequency characteristics of a system we use the Fourier Transform. The question arises, why do…”)
  • 2022年4月30日 (六) 12:26Control Systems/Poles and Zeros历史 | 编辑) ‎[7,008字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|System Delays|State-Space Equations}} == Poles and Zeros == '''Poles''' and '''Zeros''' of a transfer function are the frequencies for which the value of the denominator and numerator of transfer function becomes zero respectively. The values of the poles and the zeros of a system determine whether the system is stable, and how well the system performs. Control systems, in the most simple sense, can be designed simply by assigning spec…”)
  • 2022年4月30日 (六) 12:25Control Systems/Transfer Functions历史 | 编辑) ‎[8,601字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|Transforms|Sampled Data Systems}} == Transfer Functions == {{MATLAB CMD|tf|Control Systems/MATLAB}} A '''Transfer Function''' is the ratio of the output of a system to the input of a system, in the Laplace domain considering its initial conditions and equilibrium point to be zero. This assumption is relaxed for systems observing transience. If we have an input function of ''X(s)'', and an output function ''Y(s)'', we define the transfe…”)
  • 2022年4月30日 (六) 12:25Control Systems/Transforms历史 | 编辑) ‎[16,494字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|System Modeling|Transfer Functions}} == Transforms == There are a number of transforms that we will be discussing throughout this book, and the reader is assumed to have at least a small prior knowledge of them. It is not the intention of this book to teach the topic of transforms to an audience that has had no previous exposure to them. However, we will include a brief refresher here to refamiliarize people who maybe cannot remember th…”)
  • 2022年4月30日 (六) 12:23Control Systems/System Modeling历史 | 编辑) ‎[7,228字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|System Metrics|Transforms}} == The Control Process == It is the job of a control engineer to analyze existing systems, and to design new systems to meet specific needs. Sometimes new systems need to be designed, but more frequently a controller unit needs to be designed to improve the performance of existing systems. When designing a system, or implementing a controller to augment an existing system, we need to follow some basic steps:…”)
  • 2022年4月30日 (六) 12:23Control Systems/System Metrics历史 | 编辑) ‎[12,797字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|Digital and Analog|System Modeling}} == System Metrics == When a system is being designed and analyzed, it doesn't make any sense to test the system with all manner of strange input functions, or to measure all sorts of arbitrary performance metrics. Instead, it is in everybody's best interest to test the system with a set of standard, simple reference functions. Once the system is tested with the reference functions, there are a number…”)
  • 2022年4月30日 (六) 12:22Control Systems/Digital and Analog历史 | 编辑) ‎[8,564字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|System Identification|System Metrics}} == Digital and Analog == There is a significant distinction between an '''analog system''' and a '''digital system''', in the same way that there is a significant difference between analog and digital data. This book is going to consider both analog and digital topics, so it is worth taking some time to discuss the differences, and to display the different notations that will be used with each. ==…”)
  • 2022年4月30日 (六) 12:22Control Systems/System Identification历史 | 编辑) ‎[11,776字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page|Introduction|Digital and Analog}} == Systems == Systems, in one sense, are devices that take input and produce an output. A system can be thought to '''operate''' on the input to produce the output. The output is related to the input by a certain relationship known as the '''system response'''. The system response usually can be modeled with a mathematical relationship between the system input and the system output. == System Properti…”)
  • 2022年4月30日 (六) 12:21Control Systems/Introduction历史 | 编辑) ‎[20,592字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Control Systems/Page||System Identification}} == This Wikibook == This book was written at '''Wikibooks''', a free online community where people write open-content textbooks. Any person with internet access is welcome to participate in the creation and improvement of this book. Because this book is continuously evolving, there are no finite "versions" or "editions" of this book. Permanent links to known good versions of the pages may be provided. == What a…”)
  • 2022年4月30日 (六) 00:55Control Systems/Preface历史 | 编辑) ‎[1,002字节]Zhang3讨论 | 贡献 (创建页面,内容为“This book will discuss the topic of Control Systems, which is an interdisciplinary engineering topic. Methods considered here will consist of both "Classical" control methods, and "Modern" control methods. Also, discretely sampled systems (digital/computer systems) will be considered in parallel with the more common analog methods. This book will not focus on any single engineering discipline (electrical, mechanical, chemical, etc.), although readers should hav…”)
  • 2022年4月30日 (六) 00:42Control Systems历史 | 编辑) ‎[5,406字节]Zhang3讨论 | 贡献 (创建页面,内容为“<noinclude> {{Featured book}} {{Control Systems/Page}} {| width=100% |- | valign=top width=30% | __TOC__ | valign=top | {{Goodbook/Control Systems|edit=1}} | valign=top | {{Print version}} {{PDF version|Control Systems}} {{Collection}} |} == Preface == {{Prerequisite|Signals and Systems}} {{Reading level|Professional}} {{:Control Systems/Preface}} </noinclude> {{-}} == Table of Contents == === Special Pages === {{RenderPNG}} {{Engineering Tables/Use}} {| |…”)
  • 2022年4月23日 (六) 12:44Libgcc历史 | 编辑) ‎[8,373字节]Zhang3讨论 | 贡献 (创建页面,内容为“GNU Compiler Collection在代码生成过程中使用了一个名为<tt>libgcc</tt>的特殊库,其中包含共享代码,每次重复这些代码都会降低效率,还包含辅助辅助程序例程和运行时支持。 其确切内容取决于特定的目标、配置,甚至取决于命令行选项。 GCC无条件地假设它可以安全地发出对它认为合适的 <tt>libgcc</tt> 符号的调用,因此GCC编译的所有代码都必须与 <tt…”)
  • 2022年4月23日 (六) 11:50List of editors历史 | 编辑) ‎[1,069字节]Zhang3讨论 | 贡献 (创建页面,内容为“== Windows下的编辑器 == * [http://gonix.ten.lt/ SEG] * [http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] * [http://www.flos-freeware.ch/notepad2.html Notepad2] * [http://syn.sourceforge.net/ Syn Text Editor] ==OS X编辑器== * [https://developer.apple.com/xcode/ Xcode] == 跨平台编辑器 == === GTK === * [http://www.gnome.org/projects/gedit/ Gedit] * [http://geany.uvena.de/ Geany] * [https://tarot.freeshell.org/leafpad/ Leafpad] * [https://gi…”)
  • 2022年4月23日 (六) 11:46Which assembler should I use?(x86)历史 | 编辑) ‎[1,805字节]Zhang3讨论 | 贡献 (创建页面,内容为“==导言== 汇编器(assembler)是将汇编语言代码转换成机器代码的程序。 即使你没有使用汇编语言作为操作系统的主要编程语言,你仍然必须编写一些汇编语言。 本文讨论了用于操作系统开发的常用汇编程序的优缺点。 == GAS == GNU汇编程序或GAS是GNU二进制文件中包含的汇编程序。 它也是紧密集成在GNU工具链中的汇编器,因此与之交互效果最好。 GAS…”)
  • 2022年4月23日 (六) 11:37Unreal Mode历史 | 编辑) ‎[5,969字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''Unreal mode(“非实模式)'''包括通过调整描述符缓存来打破实模式段的64KiB限制(同时保留16位指令和<tt>段*16+偏移量<tt>寻址模式)。 ==用途== 非实模式通常在以下两种情况下被推荐使用: * 你正在尝试扩展传统的16位DOS程序,以便它可以处理更大的数据,Virtual 8086 Mode和xms都不适合你的需要。 * 你正在尝试加载将在大于640K的32位模式下…”)
  • 2022年4月23日 (六) 00:58Pascal历史 | 编辑) ‎[3,824字节]Zhang3讨论 | 贡献 (创建页面,内容为“== 历史说明 == 最初的标准Pascal语言在很多方面都不同于今天大多数人所熟悉的Object Pascal语言,它简单得多,但也更有限。 Wirth博士本人并不打算将Pascal用于系统编程,他正在进行的语言进化研究是MODLA-2和OBERON语言。 两种语言都与Pascal以与C相似的方式相关,C# 和Java与C相关。 Oberon-2支持面向对象编程的所有概念。 与C语言家族相比,在从Pascal到Oberon…”)
  • 2022年4月23日 (六) 00:46FreeBASIC历史 | 编辑) ‎[2,392字节]Zhang3讨论 | 贡献 (创建页面,内容为“FreeBASIC是现代BASIC语言变体的名称,以及相应的编译器名称。 传统Basic无法进行本机操作系统开发,而Freebasic具有许多对操作系统开发有用的功能。 ==概述== 除了与QuickBasic基本兼容外,它还提供了以下有用的功能: * 无符号数据类型 * 内联汇编 * 指针 * 回调 * 一个可移植的运行时。 最大的缺点是,大多数特定于Basic的指令需要运行时,而在独立的环…”)
  • 2022年4月23日 (六) 00:37GDB历史 | 编辑) ‎[4,571字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''GDB''' 已经成为Linux和其他免费Unices上的标准调试器。 它是源代码级调试器,而不是机器级调试器,如Bochs调试器;这可能是优点,也可能是优点,这取决于你的视角。 虽然调试系统代码不是其预期用途,但它做得很好; 它可以直接与一些模拟器一起使用,根本不需要修改你的代码,也可以在串行线上使用。 其中一些选项涉及在操作系统中实现远…”)
  • 2022年4月22日 (五) 12:11PowerPC Overview历史 | 编辑) ‎[2,360字节]Zhang3讨论 | 贡献 (创建页面,内容为“PowerPC的CPU体系结构与IA32有很大不同。 不过,你的操作系统的体系结构不需要有太大差异: 虽然你在最低级别上寻址内存的方式可能不同,或者你的SIMD单元的操作方式不同,但你仍然有一个引导加载程序(bootloader),一个调度程序(scheduler),一个分配程序(dispatcher),一个内存管理器(memory manager)等。 你将能够以1:1的比例将大多数文档抄写到PowerPC,除非…”)
  • 2022年4月22日 (五) 12:03Emulators历史 | 编辑) ‎[2,725字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Emulators}} 模拟器(emulator-仿真器)是一种设备、计算机程序或系统,它接受和其他设备、计算机程序或系统的相同输入并产生和其他设备相同输出。 从在Mac OS上运行Windows到在PS3上运行Game Boy游戏,都可以使用模拟器。 但是,在内核开发的上下文中,我们需要一个通用的仿真器来模拟你希望内核在其中运行的环境。 == 模拟器包 == === QEMU === 从命令行使…”)
  • 2022年4月21日 (四) 05:30Makefile历史 | 编辑) ‎[17,966字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Rating|1}} Makefile是控制“make”命令的文件。 Make在几乎所有平台上都可用,并用于控制项目的构建过程。 为项目编写Makefile后,make可以轻松有效地构建项目并创建所需的输出文件。 Make从Makefile中读取依赖项信息,找出哪些输出文件需要(重新)构建(因为它们缺少或比相应的输入文件旧),执行必要的命令来实际“重新”构建。 与总是重新构建…”)
  • 2022年4月7日 (四) 11:48About Why U历史 | 编辑) ‎[3,076字节]Zhang3讨论 | 贡献 (创建页面,内容为“About Why U Why U, Inc. is a non-profit 501(c)(3) educational organization funded by the Goldman Charitable Foundation. Why U is dedicated to exploration through the use of digital media, of new education paradigms for the STEM subjects: Science, Technology, Engineering, and Mathematics. Why U's goal is to remove barriers to learning in the STEM subjects, and increase the public's depth of knowledge of STEM. Why U develops and provides worldwide access to fr…”)
  • 2022年4月7日 (四) 11:46Algebra历史 | 编辑) ‎[31,235字节]Zhang3讨论 | 贡献 (创建页面,内容为“= Algebra = 1. Defining Sets One of the most fundamental concepts in Algebra is the concept of a set. This video introduces the concept of a set and various methods for defining sets. 2. Set Equality and Subsets Sets can be related to each other in different ways. This chapter describes the set relations of equality, subset, superset, proper subset, and proper superset. 3. Venn Diagrams, Unions, and Intersections Venn diagrams are an important tool allowi…”)
  • 2022年4月7日 (四) 11:40Pre-Algebra历史 | 编辑) ‎[5,537字节]Zhang3讨论 | 贡献 (创建页面,内容为“= 代数预科 = 1. 数字的黎明 幽默地回顾了早期创造数字系统的尝试,最终形成了现代的10进制十进制系统,它使用“基于位置的符号”思想。 故事发生在虚构的可可岛上。 2. 罗马数字:符号值与位置符号 罗马数字是一种古老的以10为基数的自然数系统。 了解罗马数字 (符号值符号) 可以阐明我们使用位置符号的现代数字系统。 3. 十进制、二进…”)
  • 2022年4月7日 (四) 07:46Welcome to Why U历史 | 编辑) ‎[1,860字节]Zhang3讨论 | 贡献 (创建页面,内容为“== Welcome to WhyU == [http://www.whyu.org WhyU原始站点] Why U animated videos are designed for mathematics courses on the K-12 and college levels, and as a resource for informal independent study. Rather than focusing on problem solving, the objective is to give insight into the concepts on which the rules of mathematics are based. Why U creators are currently working on the series of animated lectures entitled "Algebra". This series examines the concep…”) 最初创建为“Welcome to WhyU”
  • 2022年4月7日 (四) 07:17Why u video list历史 | 编辑) ‎[5,454字节]Zhang3讨论 | 贡献 (创建页面,内容为“==代数预科== * 1 - 数字的黎明 (273,968 KB) * 2 - 罗马数字:符号值与位置符号(171255,KB) * 3 - 十进制、二进制、八进制和十六进制(432,655 KB) * 4 - 整数,整数和数轴 (80,458 KB) * 5 - 加法的交换和结合律(105865 KB) * 6 - 乘法的交换律(90305KB) * 7 - * 乘法的交换律和分配律 (245,576 KB) * 8 - 负数相乘(55245KB) * 9 - 除法和质数(800,076 KB) * 10 - 因数 (57,122 KB) *…”)
  • 2022年4月6日 (三) 09:09Video Signals And Timing历史 | 编辑) ‎[25,968字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Video warning}} 为了使显卡和显示器相互独立,在通信方面有一个标准。 本页描述了该链接的技术部分,并提供了对视频卡进行编程并使其在所附屏幕上正确渲染的必要信息。 ==显示信号== 标准VGA电缆中有15个针脚。 当你的视频卡将其视频数据发送到显示器时,它使用5个数据通道: * Analog Red * Analog Green * Analog Blue * Horizontal Sync * Vertical Sync 通过在连接…”)
  • 2022年4月6日 (三) 06:19VGA Hardware历史 | 编辑) ‎[32,643字节]Zhang3讨论 | 贡献 (创建页面,内容为“即使VGA已经过时,但许多现代显卡都与之兼容,包括NVidia和ATI卡。 这可以让编写VGA驱动程序变得相当有吸引力。 但是,兼容性的大小各不相同,因此在没有适当的硬件检测的情况下,千万不要假设一个设备卡是兼容的。 除了真实的机器,还有几个模拟器和虚拟机提供VGA仿真: BochsQEMUMicrosoft Virtual PC等等。 2011年后,显卡制造商开始放弃V…”)
  • 2022年4月2日 (六) 08:42Broken UEFI implementations历史 | 编辑) ‎[9,334字节]Zhang3讨论 | 贡献 (创建页面,内容为“本页面用于记录UEFI机器上不正确的系统固件的任何方面的信息,尤其是与UEFI本身直接相关的信息。 = El Torito boot = UEFI从CD引导使用CD头中的El Torito引导记录进行控制。 有些机器弄错了。 特别是,一组常见的已知问题源于早期的CSM包,这些包无法正确解释多个El Torito引导目录条目。 最常见的故障是CSM的解析器无法识别0xEF平台ID,当有多个引导条目…”)
  • 2022年4月2日 (六) 08:10APIC timer历史 | 编辑) ‎[12,577字节]Zhang3讨论 | 贡献 (创建页面,内容为“本地APIC定时器的最大好处是,它与每个CPU核心都是硬连线的,而PIT(Programmable Interval Timer - 可编程间隔定时器是一个单独的电路。 因此,不需要任何资源管理,这使得事情变得更容易。 缺点是它以CPU的频率之一振荡,该频率因机器而异,而PIT使用标准频率 (1,193,182Hz)。 要利用它,你必须知道它每秒能中断多少次。 ==APIC定时器模式== 定时器…”)
  • 2022年4月2日 (六) 07:19A20 Line历史 | 编辑) ‎[10,548字节]Zhang3讨论 | 贡献 (创建页面,内容为“A20地址线是任何内存访问的第21位 (从0开始计数到数字20) 物理表示。(译者注:A20 Address Line启用设置是一种为了兼容而保留的技术,一般使用需要设置1启用) 当IBM-AT(Intel 286)推出时,它能够访问多达16兆字节的内存(而不是8086的1兆字节)。 但为了保持与8086的兼容性,必须在AT中复制8086体系结构中的一个怪癖(内存地址折回-memory wraparound)。 为此,…”)
  • 2022年4月1日 (五) 14:10Writing a memory manager历史 | 编辑) ‎[6,568字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Rating|2}} {{In_Progress}} == 首个够用的内存管理 == 实施首个基本够用的内存管理并不难。 我所说的内存管理器并不是指分页管理,而是一个简单的库(我们只需要保存一个空闲/已用页面的列表),您可以在用户空间和内核中使用它(如果您的内存模型是flat的,则可以全局使用)。 我要说的假设你已知道你可以摆弄的空闲内存块在哪里。 对于flat内存…”)
  • 2022年3月31日 (四) 13:44CPU Bugs历史 | 编辑) ‎[11,525字节]Zhang3讨论 | 贡献 (创建页面,内容为“计算机是由人类制造的,因此天生容易出错。 本页描述了各种型号和品牌的已知错误。 == 影响几乎所有现代架构 == === Spectre === SPECTE漏洞会影响1995年后制造的大多数现代CPU,这些CPU实现了无序执行(x86、x86_64、ARM、AMD,可能还有更多),并允许用户代码读取物理内存。 没有针对此问题的最佳软件修复程序。 有关更多详细信息,请参阅(https://spectreattac…”)
  • 2022年3月31日 (四) 09:58SFS历史 | 编辑) ‎[4,254字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Filesystems}} 有多个现有的文件系统缩写为'''SFS''',但这里讨论的是Brendan Trotter的'''Simple File System''',其设计非常易于实现。 它有一组最小的功能。 按官方说法,它仍处于起草阶段,但已经有一段时间没有改变了。 SFS旨在用作简单的文件系统,用于软盘和其它可移动介质上,以在计算机之间传输数据。 ==格式详细信息== === 布局 === SimpleFS分区中有五…”)
  • 2022年3月31日 (四) 08:59Visual C++ Runtime历史 | 编辑) ‎[3,983字节]Zhang3讨论 | 贡献 (创建页面,内容为“由于不能将标准C++运行时链接到内核,所以需要几个函数来替换它的功能。 本文提供有关如何为Visual C++编译器实现你自己的C++运行库的信息。 == 调用全局静态变量的构造函数 == 这段代码将有助于调用全局静态变量的所有构造函数。 <source lang="c">// 构造函数原型 typedef void (__cdecl *_PVFV)(void); typedef int (__cdecl *_PIFV)(void); // 链接器将构造函数放在这些…”)
  • 2022年3月31日 (四) 08:01Other Compilers历史 | 编辑) ‎[3,031字节]Zhang3讨论 | 贡献 (创建页面,内容为“其它可用于操作系统开发的编译器: * Active Oberon - 完整的A2-System已在Oberon中实现,请参阅 [http://www.ocp.inf.ethz.ch/wiki/OCP/Home Oberon社区平台] 中的 [http://www.ocp.inf.ethz.ch/wiki/Documentation/Language 语言信息]。 另见:[http://en.wikipedia.org/wiki/Oberon_(operating_system)Oberon 维基百科中的Oberon操作系统]和[http://ignorethecode.net/blog/2009/04/22/oberon/ Lukas Mathis的博客:Ignore the Code]。…”)
  • 2022年3月31日 (四) 08:01TCC历史 | 编辑) ‎[9,113字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{In Progress}} 本文描述了如何使用FASMTiny C Compiler(又名TCC)制作一个示例ELF内核。 也可以使用NASM(Bare_Bones_With_NASM)。 TCC是一个小型且快速的C编译器,它产生x86,x86_64或ARM代码,并生成PE或ELF可执行文件。 TCC正朝着完全符合ISOC99的方向发展,并且可以像FASM一样自我编译。(译者注:自我编译,指用自身的源代码和编译器可以编译出一…”)
  • 2022年3月31日 (四) 00:58Smaller C历史 | 编辑) ‎[1,960字节]Zhang3讨论 | 贡献 (创建页面,内容为“Smaller C是一个简单且小型的单通道(single-pass)C编译器,目前支持C89/ANSI C和C99之间常见的大部分C语言(减去一些C89,再加上一些C99功能)。 该编译器可以在DOS、Windows、Linux和Mac OS X上自托管,这意味着它可以在所有四个操作系统下编译,还可以用来编写引导加载程序和其他部分操作系统,这些操作系统在实模式、Virtual 8086 Mode|虚拟8086模…”)
  • 2022年3月31日 (四) 00:50Cygwin历史 | 编辑) ‎[3,114字节]Zhang3讨论 | 贡献 (创建页面,内容为““Cygwin”是两个东西。 首先,它是在Windows之上实现大部分POSIX API的一些DLL,因此可以轻松地将GNU/Linux工具移植到Windows。 但从更广泛的意义上讲,它也是一个安装程序,用于在你的Windows机器上下载和安装各种此类移植工具,包括bash shell,GCC工具链,Apache,PostgreSQL和许多其他有价值的程序。 因此,它使Windows的操作系统开发人员能够使用与Linux下的操…”)
  • 2022年3月30日 (三) 23:27YASM历史 | 编辑) ‎[419字节]Zhang3讨论 | 贡献 (创建页面,内容为“YASM模块化汇编程序(Modular Assembler)是一个相对较新的汇编程序,旨在支持许多指令集和语法格式。 目前,它可以汇编intel语法和AT&T语法,并支持64位指令,并且几乎与 NASMGAS 完全兼容。 ==另见== ===文章=== * Assembly * Tool Comparison === 外部链接 === * [http://www.tortall.net/projects/yasm/ YASM Homepage] Category:Assemblers”)
  • 2022年3月30日 (三) 23:25Watcom历史 | 编辑) ‎[3,595字节]Zhang3讨论 | 贡献 (创建页面,内容为“Watcom编译器套件是一个功能强大的编译器/汇编/生成/链接器套件,它附带了用于二进制文件操作的工具。 == 关于使用编译器的几句警告 == 用于测试此编译器的第三方商业测试在编译器向开源的过渡过程中没有幸存下来。 换句话说,对于大多数实际用途来说,它们已经丢失了。 因此,并且由于当前的支持有限,因此编译器如今尚未得到彻底测试,并…”)
  • 2022年3月30日 (三) 23:11DJGPP历史 | 编辑) ‎[4,206字节]Zhang3讨论 | 贡献 (创建页面,内容为“DJGPP工具包是几个基本GNU实用程序到MS-DOS的端口,使用DJ Delorie创建的32位DPMI系统扩展器。 它包括GCC、binutils和Emacs的版本。 它还包括几个DOS和Windows特定的实用程序。 虽然DJGPP在过去被广泛用于操作系统开发,但它与MS-DOS的紧密联系以及与Windows XP的兼容性问题已导致大多数Windows用户转向CygwinMinGW。 DJGPP现在肯定被认为已经过时了。 == ELF文件 =…”)
  • 2022年3月30日 (三) 13:33Windows Tools历史 | 编辑) ‎[5,943字节]Zhang3讨论 | 贡献 (创建页面,内容为“Windows为使用Loopback devices和操作文件的操作系统开发人员提供了一些应该都知道的有用实用程序; 可惜大多数时候,他们并不知道这一点,因此去下载工具为他们提供他们已经拥有的功能。 本文试图描述Windows实用程序以及如何使用它们。 注: 只要在示例中看到驱动器号后跟分号,请记住,您也可以改为指定GUID。 == copy == 除了其明…”)
  • 2022年3月30日 (三) 10:47WebAssembly历史 | 编辑) ‎[9,644字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''WebAssembly''' 是一个相对较新的标准,主要是在网页上支持与体系结构无关的可执行文件。 但它远不止这些,而且它的特定规范方式造成了它独特的特性,适合于语言、操作系统和机器独立的可执行格式。 ==基本原理== 您可能会问,任何Web技术与OS内核有什么关系。 事实上,WebAssembly(简称'''WASM''')这个名称很容易引起误解,其实它是一种非常明确…”)
  • 2022年3月30日 (三) 09:45FASM历史 | 编辑) ‎[1,260字节]Zhang3讨论 | 贡献 (创建页面,内容为“(FASM - flat assembler)是用于DOS、Windows和 *nix(Linux、BSD、MacOS等)操作系统的快速高效的自汇编(self-assembling)x86汇编器。 目前它支持所有x86/x64指令与MMX,3DNow!,SSE高达SSE4,AVX,AVX2和XOP扩展,可以产生二进制,MZ,PE,COFF或ELF格式的输出。 它包括一种功能强大但易于使用的宏语言,并通过多次编译来优化指令代码的大小。 flat assembler是可自编译的,并…”)
  • 2022年3月30日 (三) 09:37Hdiutil历史 | 编辑) ‎[1,144字节]Zhang3讨论 | 贡献 (创建页面,内容为“Hdiutil是苹果公司提供的处理磁盘镜像的程序 == 支持 == hdiutil支持以下文件系统类型: * HFS+ * HFS+J * HFSX * HFS * MS-DOS * UFS ==创建映像== 创建DOS磁盘映像: hdiutil create -fs ms-dos -sectors 2880 floppy (2880 sectors = 1.44mb floppy disk image) 如果映像已经存在,则必须通过-ov选项,否则hdiutil将失败。 要创建非Apple分区映像,请使用: -layout NONE 要使用apple分区布局创…”)
  • 2022年3月30日 (三) 09:25Dev-C++历史 | 编辑) ‎[1,427字节]Zhang3讨论 | 贡献 (创建页面,内容为“Dev-C++是一个先进的、自由发布的Windows集成开发环境,由Bloodshed Software创建。 它基于GCCMinGW实现。 有一个类似的IDE [http://www.bloodshed.net/devpascal.html Dev-Pascal] 可用,并且可以与Free Pascal和GNU Pascal一起使用。 对于OSDev来说,Dev-C++最大的特点可能是它可以与Cygwin工具集以及(或代替)MinGW工具集一起使用。 Bloodshed Software对Dev-C++的最后一次更新…”)
  • 2022年3月30日 (三) 09:11Boot Magic历史 | 编辑) ‎[211字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} '''BootMagic''' 是Norton PartitionMagic套件附带的 bootloader。 ==另见== ===外部链接=== * About [http://www.symantec.com/norton/partitionmagic PartitionMagic] Category:Bootloaders”)
  • 2022年3月30日 (三) 09:09System Commander历史 | 编辑) ‎[818字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} System Commander是一个引导菜单程序。 它最初由V-Communications编写,现在由Avanquest Software拥有。 它已经演变成一个相当复杂的启动菜单(boot menu),可以进行自动分区和其他一些漂亮的技巧。 它的特点是: * 它可以引导BeOS,FreeBSD,Windows '98到最新GNU/Linux系统任何东西。 *它支持各种操作系统和文件系统。 *它与复杂的分区工具Partition Commander打包在一…”)
  • 2022年3月30日 (三) 09:05XOSL历史 | 编辑) ‎[415字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} XOSL(Extended Operating System Loader - 扩展操作系统加载程序)是Geurt Vos在GPL下发布的图形引导管理器。 XOSL可以在一张磁盘上同时启动30多个不同的操作系统。 ==另见== * [http://www.ranish.com/part/xosl.htm Homepage] * [http://groups.yahoo.com/group/xosl/ XOSL Yahoo Group] * [http://www2.arnes.si/~fkomar/xosl.org/ Historical Mirror] Category:Bootloaders”)
  • 2022年3月30日 (三) 09:02LILO历史 | 编辑) ‎[685字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} LILO (LInux LOader) 可能是身边最知名的引导加载程序,因为它作为 [https://en.wikipedia.org/wiki/Linux Linux] 引导加载程序很受欢迎。 它的设计目的是允许Linux多引导并与其他操作系统(如DOS和Windows)共存。 在很大程度上,它被设计用来处理Linux及其initrd,以及“链式加载”其他引导加载程序。 据作者所知,尚未有任何 “自定义” 内核设置由LILO引导。…”)
  • 2022年3月30日 (三) 08:55Limine历史 | 编辑) ‎[1,769字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''Limine'''是一种高级多协议x86/x86_64BIOSUEFI引导加载程序,支持Linux、multiboot1和2stivale1和2引导协议(并作为后两种协议的参考实现)。 ==历史== Limine被作为stivale引导协议的参考实现创建。 这些协议被认为是对Multiboot缺点的回应。 它最初只支持BIOS和stivale1协议,但后来扩展到也支持UEFI以及Linux和MultiBoot协…”)
  • 2022年3月30日 (三) 06:54MinGW历史 | 编辑) ‎[435字节]Zhang3讨论 | 贡献 (创建页面,内容为“测试”)
  • 2022年3月30日 (三) 02:41System V ABI历史 | 编辑) ‎[7,700字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''System V Application Binary Interface''' 是一组规范,详细介绍了 调用约定 目标文件格式 可执行文件格式、动态链接语义,对于符合 “X/Open通用应用程序环境规范” 和 “系统V接口定义” 的系统,以及还有更多内容。 如今,它是主要Unix操作系统(如Linux、BSD系统和许多其他系统)使用的标准ABI。 Execut…”)
  • 2022年3月30日 (三) 02:13Calling Conventions历史 | 编辑) ‎[7,901字节]Zhang3讨论 | 贡献 (创建页面,内容为“在C中调用外部函数,并从其他语言调用C函数,是OS编程中的常见问题,尤其是在其他语言是汇编的情况下。(译者注:本页其实讨论了汇编和C语言的互操作问题,但是对其它不同语言间的互操作问题也有一些启发,) 本页将主要关注后一种情况,但也会考虑其他语言。 这里描述的一些内容是由x86架构强加的,有些是GNUGCC工具链所特有的。 有些是可…”)
  • 2022年3月29日 (二) 07:40SimICS历史 | 编辑) ‎[509字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''SimICS''' 是用于各种架构的指令集模拟器和操作系统模拟器,包括PowerPC,Sparc,x86,MIPS和ARM。 它是计算机体系结构研究、程序调试和软件系统性能分析的强大工具。 曾经有一个较老的版本是免费提供的;不幸的是,这个版本现在已经消失了。 商业版的网站是 http://www.windriver.com/products/simics/index.html. 的 大学教师可以免费获得一份,见 http://www.windrive…”)
  • 2022年3月29日 (二) 07:37VirtualBox历史 | 编辑) ‎[3,856字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Emulators}} '''VirtualBox'''是由Oracle(以前的Sun Microsystems)制作的虚拟机监控器(virtual machine monitor)。 它在很大程度上是开源的(GPL),有一些功能包是闭源的。 它非常易于使用,并且对许多主机和来宾平台都有很好的支持。 ==功能== * 它有非常好的文档,因此非常容易开箱即用。 * VirtualBox支持从真实媒体或软盘和光盘映像启动。 *它也[http://www.virtualbox.org…”)
  • 2022年3月29日 (二) 06:34VMware历史 | 编辑) ‎[5,031字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Emulators}} '''VMware''' 基本上是有钱人用的 “虚拟机”。 它可以运行任意数量的“来宾操作系统(Guest Operating Systems)”,并可以从真实媒体或映像文件启动。 它带有一个图形用户界面,比BochsQEMU更容易配置。 请注意: VMware不是模拟器(emulator)。 模拟器(emulator)和虚拟机监控器(virtual machine monitor)之间有很大的区别。 模拟器,如Bochs,…”)
  • 2022年3月29日 (二) 06:05Microsoft Virtual PC历史 | 编辑) ‎[2,744字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Emulators}} Microsoft Virtual PC是微软于2003年2月从Connectix收购的产品线而发布。 它本机提供了对Windows操作系统的支持,但是使用 “其他” 选项,几乎可以安装和运行任何操作系统。 (使用Linux和几款业余操作系统进行了测试。) 它的感觉与VMwarePC模拟器非常相似,并且提供了大部分相同的功能,而且是免费的。 可从Microsoft网站获得VPC的免费下载版…”)
  • 2022年3月28日 (一) 07:50Detecting CPU Speed历史 | 编辑) ‎[11,876字节]Zhang3讨论 | 贡献 (创建页面,内容为“== 什么是CPU速度 == “CPU速度”有几种不同的定义: # 处理器执行代码的速度(例如每秒指令数) # 处理器的时钟运行速度有多快 (例如每秒周期) 其中CPU执行代码的速度对于确定CPU的性能很重要。 而CPU时钟的运行速度仅在特定情况下有用(例如,校准CPU的TSC以用于测量时间)。 对于这些不同的 “CPU速度” 也有几种不同的测量: # 最佳情况(Best case) # 一…”)
  • 2022年3月28日 (一) 06:52PNP Calls In Protected Mode历史 | 编辑) ‎[1,143字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} 是的,就像PCI bios32调用一样,你可以在保护模式(pmode)下进行PNP调用。 一旦有了BIOS32服务目录(参见PCI示例例程),就可以使用PnP自动配置魔术调用它。再次注意寄存器接口的串联组件。 <source lang="C"> void bios32_scan_pnp_entry(void) { uint32_t cseg_size, offset, base_addr; →‎调用PCI地址的BIOS32 BSD BSD调用以RETF而非RET终止…”
  • 2022年3月28日 (一) 06:41Plug-and-Play历史 | 编辑) ‎[879字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub} ==资源== 你可以从Microsoft FTP站点的存档中获取官方的即插即用文档 (原始文档自2015年以来已关闭): https://web.archive.org/web/20180116205211/http://ftpmirror.your.org/pub/misc/ftp.microsoft.com/developr/drg/Plug-and-Play/Pnpspecs/ 这些文档是自解压的MS-Word文件,描述BIOS、SCSI、外围设备等上的PNP行业(MS)规范。 你可以将其与本页上的链接结合起来,来自Microsoft大约2003: https…”)
  • 2022年3月28日 (一) 06:35NFS历史 | 编辑) ‎[1,626字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Filesystems}} {{Stub}} '''NFS''' 是Sun Microsystems公司发明的。 它之所以普及,主要是因为它很容易实现。 作为其简单性的回报,它往往性能相对较差,几乎完全缺乏安全性。 这些都很大程度上是由于其无连接的性质。 当您从文件中请求数据时,服务器会向您发送请求的信息,但不会跟踪哪些客户端打开了哪些文件。 为了防止您从文件中看到(非常)过时的…”)
  • 2022年3月28日 (一) 06:28NTFS历史 | 编辑) ‎[4,873字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Filesystems}} NTFS ('''New Technology File System''') 是Windows NT的原生文件系统。 它不仅基于HPFS,还支持访问控制等安全功能。 因为Windows NT完全是Unicode,所以NTFS是Unicode文件系统,每个字符(例如名称)是16位而不是8位。 == 关于 == NTFS不仅为HPFS添加了安全功能。 在NTFS中,有更多的内置冗余。 例如: 在 HPFS 中,清除错误位置的扇区会使整个卷无法访问…”)
  • 2022年3月28日 (一) 06:06Ext2历史 | 编辑) ‎[23,531字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Filesystems}} '''Second Extended Filesystem'''('''ext2fs''')是对原始“扩展文件系统(Extended Filesystem)”的重写,因此也基于“inodes”的概念从20世纪90年代初到21世纪初,Ext2作为Linux事实上的文件系统存在了近十年,目前它被日志文件系统Ext3ReiserFS取代。 它具有对UNIX所有权/访问权限、符号和硬链接以及类UNIX操作系统中常见的其他属性的本机支持…”)
  • 2022年3月28日 (一) 02:45COFF历史 | 编辑) ‎[19,394字节]Zhang3讨论 | 贡献 (创建页面,内容为“COFF代表通用对象文件格式(Common Object File Format)。 它是一种用于存储编译代码的文件格式,例如编译器或链接器输出的代码。 与大多数编译器文件格式一样,COFF在文件中定义了结构,用于存储有关程序各个部分的信息,例如.text和.data,以及关于程序声明或定义的符号。 COFF可用于存储单个函数或符号、程序片段、库或整个可执行文件。 Microsoft P…”)
  • 2022年3月27日 (日) 23:25CPUID历史 | 编辑) ‎[10,217字节]Zhang3讨论 | 贡献 (创建页面,内容为“CPUID指令可用于检索有关cpu的各种信息,如供应商字符串和型号、内部缓存的大小以及(更有趣的是)支持的cpu功能列表。 ==如何使用CPUID== === 检查CPUID可用性 === 在使用CPUID指令之前,还应该通过测试eflags中的“ID”位(0x200000)来确保处理器支持该指令。 此位仅在支持CPUID指令时才可修改。 对于不支持CPUID的系统,更改 'ID' 位不会有任何影响。 '''注…”)
  • 2022年3月25日 (五) 06:21Open Programmable Interrupt Controller历史 | 编辑) ‎[2,097字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''开放式可编程中断控制器(OPIC-Open Programmable Interrupt Controller)'''是具有8-16个输入的中断控制器,与PIC非常相似,它为PCI设备提供了触发中断的方法。 在索引的互联网上可以找到关于OPIC的有限信息。 ==历史== OPIC,也称为OpenPIC,是一种SMP控制器,类似于现代APIC,最多支持32个处理器。 它还有8-16条中断输入线,允许PCI设备触发CPU中断。 它是由AMD/Cyrix…”)
  • 2022年3月25日 (五) 06:08Loopback Device历史 | 编辑) ‎[11,935字节]Zhang3讨论 | 贡献 (创建页面,内容为“环回设备(Loopback Device)是一种用于将文件解释为真实设备的机制。 这种方法的主要优点是,在真实磁盘上使用的所有工具都可以与环回设备一起使用。 注意:本文仅介绍UNIX环境(包括Cygwin)。 有关如何在Windows上使用环回设备的信息,请参阅 diskpart。 ==Linux下的环回设备== Linux环回设备只能由root使用,在使用之前需要在内核…”)
  • 2022年3月25日 (五) 02:55Printing To Screen历史 | 编辑) ‎[7,052字节]Zhang3讨论 | 贡献 (创建页面,内容为“==基础知识== 假设您处于 保护模式 并且不使用 BIOS 将文本写入屏幕,则您将直接写入 “视频” 存储器。 这很容易。 彩色显示器的文本屏幕视频存储器位于<tt>0xB8000</tt>,单色显示器的文本屏幕视频存储器位于地址<tt>0xB0000</tt> (有关更多信息,请参见 检测彩色和单色显示器)。 文本模式内存对屏幕…”)
  • 2022年3月25日 (五) 02:34Detecting Colour and Monochrome Monitors历史 | 编辑) ‎[701字节]Zhang3讨论 | 贡献 (创建页面,内容为“检测用户是否拥有彩色或单色视频卡是一项微不足道的任务。 BIOS 数据段中包含此信息的值。 下面是一个来检索这个的函数 (在ISO C中) : == 函数== <source lang="c"> #include <stdint.h> enum video_type { VIDEO_TYPE_NONE = 0x00, VIDEO_TYPE_COLOUR = 0x20, VIDEO_TYPE_MONOCHROME = 0x30, }; uint16_t detect_bios_area_hardware(void) { const uint16_t* bda_de…”)
  • 2022年3月25日 (五) 02:30Binutils历史 | 编辑) ‎[620字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{In Progress}} {{Stub}} GNU二进制实用程序 (通常称为binutils) 是一组用于创建和处理二进制文件的工具。 交叉编译binutils的说明可以在GCC交叉编译器页面上找到。 == Binutils Applications == 请注意,此列表并不完整。 {| {{wikitable}} |- | as || GNU Assembler |- | ld || GNU Linker |- | ar || 归档器(Archiver),用于创建库 |- | objdump || 显示有…”)
  • 2022年3月25日 (五) 02:27Link Archiver历史 | 编辑) ‎[1,148字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} {{Infobox_Tool |name=GNU Archiver |website=http://www.gnu.org/software/binutils/ }} GNU '''ar'''是一个存档多个文件的实用程序,是binutils包的一部分。 它用于将一组文件合并为一个文件。 这样就可以压缩、发送文件,或者最重要、最常见的是将文件链接到程序中。 ==用法== 这个工具本身就像它的目的一样简单。用于存档一系列目标文件: <source lang="bash">ar -rcs a…”)
  • 2022年3月25日 (五) 01:36802.11历史 | 编辑) ‎[1,484字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} '''IEEE 802.11'''标准是一套描述无线局域网通信的标准。 这802.11个频段目前为2.4GHz、3.6GHz和5GHz。 该标准主要由IEEE 802.11工作组开发。 ==协议和修订== === 802.11 (1997 original) === 802.11标准的第一个版本于1997年发布,现在称为802.11 Legacy标准,规定在2.4GHz范围内以每秒1或2兆比特(Mbps)的速度传输无线信息。 === 802.11a === 1999年发布的802.11a标准规定了在5GHZ…”)
  • 2022年3月24日 (四) 12:07NVMe历史 | 编辑) ‎[8,129字节]Zhang3讨论 | 贡献 (创建页面,内容为“[https://nvmexpress.org/resources/specifications/ NVMe规范] 可以在这里找到。 关于这个页面的论坛帖子[https://forum.osdev.org/viewtopic.php?f=8&t=36366 在这里]。 ==概述== * NVMe控制器可以作为具有类代码1和子类代码8的PCI设备找到。 * 它的寄存器可以通过BAR 0进行访问(应该是64位内存IO)。 * 控制器处理从“submission queues(提交队列)”提交给它的命令(commands)。 驱动…”)
  • 2022年3月24日 (四) 09:14SSE历史 | 编辑) ‎[6,818字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Floats}} ''' 流式单指令多数据扩展 (SSE-Streaming SIMD Extensions) ''' == Streaming SIMD Extensions (SSE) == === 简介 === 奔腾III中引入了SSE,并为英特尔指令集额外提供了70条指令。 SSE指令可以帮助增加由于单指令,多数据 (SIMD) 指令的数据。 这些指令可以在多个数据上并行执行公共表达式。 SSE附带8个(64位模式下为16个)XMM寄存器(XMM0-7(15)),它们是128位寄存器。…”)
  • 2022年3月24日 (四) 08:31Porting GCC to your OS历史 | 编辑) ‎[1,601字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Rating|4}} {{In Progress}} * 阅读GCC交叉编译器。 * 制作一个特定于操作系统的工具链。 * 阅读自托管GCC交叉编译(Hosted GCC Cross-Compiler)。 * 有完备的 C Library。 GCC是相当可移植的,需要C标准库和POSIX的一些扩展。 例如,它需要fork和exec来运行汇编器和链接器。 你将需要一个C++标准库 (例如libst…”)
  • 2022年3月24日 (四) 08:09Cross-Compiler Successful Builds历史 | 编辑) ‎[28,472字节]Zhang3讨论 | 贡献 (创建页面,内容为“此页面是OSDev.org成员成功构建GCC交叉编译器的摘要。 这些数字指的是正在构建(译者注:应该指的是交叉编译器)的版本,而不是执行构建的主机编译器。 == GCC Version 11.x.x == {| {{wikitable}} |- style="height: 6em;" ! ↓ GCC / Binutils → ! style="transform: rotate(-90deg);max-width: 2em;" | 2.37 ! style="transform: rotate(-90deg);max-width: 2em;" | 2.36.1 ! style="…”)
  • 2022年3月24日 (四) 07:58Raspberry Pi历史 | 编辑) ‎[12,978字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{In Progress}} {{FirstPerson}} {{Sole Editor}} 这是关于Raspberry Pi上裸机[OS]开发的教程。 本教程是专门为Raspberry PI Model B Rev2编写的,因为作者没有其他硬件可以测试。 但是到目前为止,从本教程的目的出发,这些型号基本上是相同的 (Rev 1有256MB ram,Model A没有以太网)。 这是作者的第一个ARM系统,我们在写作时学习,没有任何关于ARM的知识。 假定并要求具备Li…”)
  • 2022年3月24日 (四) 05:29IA32 Architecture Family历史 | 编辑) ‎[11,613字节]Zhang3讨论 | 贡献 (创建页面,内容为“下表和注释概述了所生产的基于x86的处理器(其中大多数处理器至今仍以某种形式提供)。 这些表仅供参考,确定CPU功能(至少在较新的CPU中)的最可靠方法是使用CPUID。 该表相当容易阅读,但还是对某些值进行了帮助注释。 标有 '''Yes''' 的值在该系列的所有CPU中都可用,没有例外。 标有 '''No''' 的项目根本不可用。 在某些cpu (可能是更高规格的计…”)
  • 2022年3月24日 (四) 02:38Virtual Monitor历史 | 编辑) ‎[5,299字节]Zhang3讨论 | 贡献 (创建页面,内容为“Virtual Monitor是在虚拟8086模式中设置和控制任务所需的一段代码。 == 要求 == * 必须启用保护模式 * 必须支持中断服务例程,更具体地说,必须支持GPF(一般保护异常)的工作异常处理程序。 == 相关工作 == 嗯,你主要有两种风格: 要么你可以创建一个独立的任务,它将在你的操作系统中在V86模式下…”)
  • 2022年3月24日 (四) 01:48Virtual 8086 Mode历史 | 编辑) ‎[4,914字节]Zhang3讨论 | 贡献 (创建页面,内容为“虚拟8086模式是保护模式的子模式。 简而言之,虚拟8086模式是在保护模式下运行的CPU“模拟(Emulated)”得到的16位实模式机器。 == 进入V86 == 当在EFLAGS寄存器中设置VM位(位17)为1时,CPU在虚拟86模式下执行。 如果要进入虚拟86模式,则必须将此位设置为1。 修改EFLAG寄存器的一种方法是使用pushf和popf指令。 这些指令分别推送和弹出堆栈…”)
  • 2022年3月23日 (三) 11:35X86-64历史 | 编辑) ‎[8,960字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{DISPLAYTITLE:x86-64}} 本文讨论'''x86-64'''CPU(AMD64和Intel的等效EM64T实现)。 IA-64 (Itanium) 是 '''真的'''比较独特,这里不讨论。 ==特性== ===长模式=== 长模式将通用寄存器扩展到64位 (RAX,RBX,RIP,RSP,RFLAGS等),并添加了八个额外的整数寄存器 (R8,R9,...,R15) 以及八个SSE寄存器 (XMM8至XMM15) 到CPU。 线性地址扩展到64位(然而,特定的CPU可能实现的小于64位…”)
  • 2022年3月23日 (三) 11:31CPU Registers x86-64历史 | 编辑) ‎[11,616字节]Zhang3讨论 | 贡献 (创建页面,内容为“Category:CPU_Registers {{Disputed|Talk:CPU_Registers_x86-64}} == 通用寄存器 == {| class="wikitable" border="1" |- ! colspan=5 | 名称(Monikers) ! rowspan=2 | 描述 |- ! 64-bit ! 32-bit ! 16-bit ! 低16位中的8高位 ! 8-bit |- | RAX | EAX | AX | AH | AL | 累加器(Accumulator) |- | RBX | EBX | BX | BH | BL | 基址(Base) |- | RCX | ECX | CX | CH | CL | 计数器(Counter) |- | RDX | EDX | DX | DH | DL | 数据(Data - 通常用于扩展A寄…”)
  • 2022年3月23日 (三) 08:06VGA Fonts历史 | 编辑) ‎[9,678字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{TutorialTone}} 你已知道如何在文本模式下显示字符,现在你想要在图形模式下执行此操作。(译者注:内核中文本模式的显示方式是使用BIOS软中断INT指令,调用BIOS功能) 这并不复杂,但绝对比在内存中的特定偏移量下编写ASCII代码更复杂。 你必须逐像素地绘制。 但是你怎么知道该画什么呢? 它存储在称为位图字体(bitmap fonts)的数据矩阵中。 ==…”)
  • 2022年3月23日 (三) 07:04VGA Resources历史 | 编辑) ‎[2,163字节]Zhang3讨论 | 贡献 (创建页面,内容为“Category:VGA == VGA 资源 == * 本Wiki * [http://www.google.com/search?hl=en&ie=UTF-8&q=VGA+registers+programming&btnG=Google+Search 谷歌搜索“VGA寄存器编程”], * [http://files.osdev.org/mirrors/geezer/osd/graphics/index.htm OSD: Graphics] 来自Chris Giese,包含许多代码片段。 * [http://web.archive.org/web/20140218012818/http://atschool.eduweb.co.uk/camdean/pupils/amac/vga.htm Tutorial on VGA graphics] 包括字体…”)
  • 2022年3月23日 (三) 06:18Multiboot历史 | 编辑) ‎[6,135字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''Multiboot'''多重引导规范是一个开放标准,它为内核提供了一种由兼容Multiboot的引导加载程序引导的统一方式。 多引导规范的参考实现由GRUB提供。 == Multiboot 1 == 最初的Multiboot是由布莱恩·福特和埃里希·斯特凡·博林·1995年创建的。 从那时起,它就已经被自由软件基金会发展和更新。 与Multiboot 1兼容的内核使用幻数0x1BADB002,而与Multiboot兼容的引…”)
  • 2022年3月23日 (三) 05:49GRUB历史 | 编辑) ‎[18,568字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{TutorialTone}} '''GRUB''' 是GNU项目的bootloader。(译者注:以后计划不再翻译Bootloader,英文来看是一个很明确的名词,但是翻译成“引导加载程序”以后像一个动词开头,译者的脑子经常要额外反应一下。) 当前版本2系列具有比 GRUB 0.97 (通常称为 “GRUB Legacy”) 更完整的功能集。 == 历史 == GRUB版本2以 [http://www.nongnu.org/pupa/ PUPA] (PUPA也有蛹的…”)
  • 2022年3月22日 (二) 09:05Detecting Memory (x86)历史 | 编辑) ‎[44,579字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Bias}} 操作系统初始化自身所需的最重要信息之一是对于机器上可用RAM的映射。(译者注:本文讨论了操作系统如何检测计算机有多少实际物理内存,并找到它们的访问地址的实现,建议同时参考阅读x86内存映射。本文分成了独立的全部原理讲解和全部代码示例两部分,如果你只关心一种做法,可以跳过一部分,前后结合着读。) 从…”)
  • 2022年3月22日 (二) 06:45Memory Map (x86)历史 | 编辑) ‎[7,604字节]Zhang3讨论 | 贡献 (创建页面,内容为“本文描述BIOS跳转到自制bootloader代码时计算机物理内存的内容。(译者注:Bootloader可以翻译为引导加载程序,但是这样翻译很容易把前面的“引导”当作单个动词理解,引起误解,所以本文不再翻译了) == 实模式地址空间 (< 1 MiB)== 当一台典型的x86 PC启动时,它将处于实模式,带有一个活动的BIOS。 在CPU保持在实模式期间,IRQ0(时钟)将重…”)
  • 2022年3月21日 (一) 07:41ELF历史 | 编辑) ‎[15,998字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{File formats}} ELF (可执行和可链接格式-Executable and Linkable Format) 是由Unix系统实验室在SVR4上与Sun Microsystems一起工作时设计的 (UNIX System V Release 4.0)。 因此,ELF最早出现在基于SVR4的Solaris 2.0(又名SunOS 5.0)中。 格式在System V ABI中规范化。 它是一种非常通用的文件格式,后来被许多其他操作系统用作可执行文件和共享库文件。 它确实区分了TEXT、DATA和B…”)
  • 2022年3月21日 (一) 05:29HPET历史 | 编辑) ‎[13,061字节]Zhang3讨论 | 贡献 (创建页面,内容为“:''本页不是对HPET的完整描述,只是一个轻量级的介绍。 如果你需要本文未涵盖的任何信息,请参考[http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/software-developers-hpet-spec-1-0a.pdf HPET规范]。'' '''HPET'''或高精度事件定时器(High Precision Event Timer),是英特尔和微软设计的一款硬件,用于取代较旧的 PITRTC。 它由(通常为64位)主…”)
  • 2022年3月20日 (日) 15:10APIC历史 | 编辑) ‎[18,426字节]Zhang3讨论 | 贡献 (创建页面,内容为“APIC(“高级可编程中断控制器-Advanced Programmable Interrupt Controller”)是针对旧版PIC的最新英特尔标准。 它用于多处理器系统,是所有最新的英特尔(和兼容的)处理器的组成部分。 APIC用于复杂的中断重定向,以及在处理器之间发送中断。 使用旧的PIC规范无法实现这些功能。 ==检测== CPUID.01h:EDX [位9] 标志指定CPU是否具有内置的本地APIC。 通过解析[…”)
  • 2022年3月20日 (日) 11:03RTL8169历史 | 编辑) ‎[12,075字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''RTL8169(S)-32/64网络接口芯片组编程指南''' RTL8169是Realtek的下一代高性能网卡。 这种特殊的芯片组被设计为以10/100/1000 Mbps的速度运行。 ==识别== RTL8169系列的基本接口在几个Realtek网卡中是通用的。 这适用于以下来自FreeBSD的re驱动程序的PCI供应商和设备id的非全面列表: * 10ec:8161 * 10ec:8168 * 10ec:8169 * 1259:c107 * 1737:1032 * 16ec:0116 ==基本启动== ===获取MAC…”)
  • 2022年3月20日 (日) 10:36Building GCC历史 | 编辑) ‎[9,684字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Rating|1}} 在本教程中,我们将你的系统 GCC 升级到最新版本。(译者注:本文主要说明了从源代码构建GCC的过程,这个过程中通过现有GCC构建GCC,是一个Bootstrap自举过程。注意这里不是要构建交叉编译器,就是构建一个普通主机Host编译器) 这将帮助你构建GCC交叉编译器,在构建交叉编译器时更建议你使用相同版本的编译器。 其…”)
  • 2022年3月19日 (六) 23:55Model Specific Registers历史 | 编辑) ‎[2,245字节]Zhang3讨论 | 贡献 (创建页面,内容为“P6系列以后的处理器(包括PentiumPro、Pentium II、III、4和Intel Core)有一组寄存器,允许配置与操作系统相关的内容,如内存类型范围、syscenter/sysexit、本地APIC等。 可以使用RDMSR(读MSR)、WRMSR(写MSR)和RDTSC等特殊指令访问这些'''MSRs'''。 == 访问特定模型寄存器(Model Specific Registers) == RDMSR和WRMSR指令组访问的每个MSR都由一个32位整数标识。 MSR是64位宽的。 你…”)
  • 2022年3月19日 (六) 12:52Interrupt Service Routines历史 | 编辑) ‎[8,418字节]Zhang3讨论 | 贡献 (创建页面,内容为“x86体系结构是一个中断驱动的系统。 外部事件触发中断 - 中断正常控制流,并调用'''中断服务例程'''(ISR-Interrupt Service Routine)。 这样的事件可以由硬件或软件触发。 硬件中断的一个例子是键盘: 每按一次键,键盘就会触发IRQ1(中断请求1),并调用相应的中断处理程序。 定时器和磁盘请求完成是硬件中断的其他可能来源。 软件…”)
  • 2022年3月19日 (六) 12:14Non Maskable Interrupt历史 | 编辑) ‎[4,379字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''不可屏蔽中断''' ('''NMI-Non-Maskable Interrupt''')是硬件驱动的中断,与PIC中断非常相似,但NMI要么直接进入CPU,要么通过另一个控制器(例如ISP)---在这种情况下,它可以被屏蔽。 == 关于 == NMI用于RAM错误和不可恢复的硬件问题。 对于较新的计算机,可以使用机器检查异常和(或)SMI来处理这些事情。 对于最新的芯片组 (至少对于英特尔而言),还有一堆TCO…”)
  • 2022年3月19日 (六) 11:49RSDP历史 | 编辑) ‎[3,609字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''RSDP''' (根系统描述指针-Root System Description Pointer) 是 ACPI 编程接口中使用的数据结构。 在ACPI版本1.0中,它具有以下结构: <source lang="c"> struct RSDPDescriptor { char Signature[8]; uint8_t Checksum; char OEMID[6]; uint8_t Revision; uint32_t RsdtAddress; } __attribute__ ((packed)); </source> 从2.0版开始,对其进行了扩展,并添加了以下新字段: <source lang="c"> struct RSDPDescriptor20 {…”)
  • 2022年3月19日 (六) 10:01AML历史 | 编辑) ‎[10,127字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{stub}} ACPI机器语言(AML)是ACPI使用的与平台无关的代码。 甚至需要关闭计算机的知识。 它可以在DSDTSSDT表中找到,这两个表依次通过解析RSDTXSDT来找到。 AML代码是在读取每个表时从该表的开头开始解析的字节代码。 它包含ACPI命名空间内的设备和对象的定义。 通过解析代码,注意所有适当的控制流语句,AML解释器可以建立系统内所有…”)
  • 2022年3月19日 (六) 09:43PCI Express历史 | 编辑) ‎[7,780字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{In Progress}} PCI Express总线是一种向后兼容的高性能通用I/O互连总线,专为一系列计算平台设计。 与PCI本地总线相比,PCI Express的主要改进之一是它现在使用串行接口(与PCI使用的并行接口相比)。 这种改进可以与ATA接口的类似序列化进行比较。 ==PCI Express链接== PCI Express总线通过一对高速单向差分链路(分别为发送和接收)将每个设备直接连接到CPU和…”)
  • 2022年3月18日 (五) 10:04Task State Segment历史 | 编辑) ‎[8,969字节]Zhang3讨论 | 贡献 (创建页面,内容为“'''任务状态段''' ('''TSS-Task State Segment''') 是特定于IA-32X86-64体系结构的二进制数据结构。 它保存有关任务的信息。 在 '''保护模式''' 中,'''TTS'''; 主要适用于 '''硬件任务切换''',其中每个单独的 '''任务''' 都有自己的 '''TSS'''。 在软件多任务…”)
  • 2022年3月18日 (五) 09:29Physical Address Extension历史 | 编辑) ‎[1,823字节]Zhang3讨论 | 贡献 (创建页面,内容为“本文讨论了许多x86处理器上可用的物理地址扩展(PAE-Physical Address Extension)。 本文假设您对虚拟内存有很好的理解(如分页中所讨论的)。 本文还讨论了特定于x86的功能,尽管其他体系结构很容易具有非常相似的机制。 ==历史== PAE位是在Intel Pentium Pro处理器中引入的。 它专门旨在允许32位操作系统使用超过4 GB的内存。 ==工作原理== 当PAE位关闭…”)
  • 2022年3月18日 (五) 09:11Higher Half Kernel历史 | 编辑) ‎[2,927字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} {{Template:Kernel designs}} 向每个用户进程中映射内核是传统做法的,通常也是比较好的做法。 例如,Linux和许多其它类Unix系统内核驻留在每个地址空间的虚拟地址 “0XC0000000-0XFFFFFFFF”,用户代码、数据、堆栈、库等的范围为 “0x00000000-0xbffffff”。 有这种设计的内核因为相对与应用程序,内核使用了“higher half(高一半)”的虚拟地址空间。(译…”)
  • 2022年3月18日 (五) 07:17Heap历史 | 编辑) ‎[1,956字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} Category:Memory management = 堆(Heap) = 堆是应用程序和内核的重要组成部分。 它通常还被更高级别的内存管理所取代,后者处理更大的内存块。 对于大多数操作系统,内存将基于页面或其他大块分配。 X86和X64体系结构上的页面通常为4KB,但也可以更大。 但是,对于较小的分配,整个页面都会被浪费。 例如,如果您只需要24个字节,并且分配了…”)
  • 2022年3月18日 (五) 07:03Exceptions历史 | 编辑) ‎[16,053字节]Zhang3讨论 | 贡献 (创建页面,内容为“{| align="right" | __TOC__ |} 如本文所述'''异常(Exceptions)''',是CPU在发生 “错误” 时生成的一种中断。 在大多数情况下,有些异常并不是真正的错误,例如页面错误。 例外情况分类为: * '''错误(故障)-Faults''': 这些可以更正,程序可能会像什么都没发生一样继续进行。 * '''陷阱-Traps''': 陷阱在执行陷阱指令后立即报告。 * ''…”)
  • 2022年3月18日 (五) 03:14Uniform Driver Interface历史 | 编辑) ‎[15,319字节]Zhang3讨论 | 贡献 (创建页面,内容为“Category:Uniform Driver Interface Category:Drivers Category:Driver Interfaces thumb|alt=Logo|The official Project UDI logo '''UDI复兴计划在Freenode(irc.freenode.net)上维护一个名为#udi的IRC频道'''。 欢迎加入并提出问题。 UDI代表“统一驱动程序接口(Uniform Driver Interface)”。 它是框架和驱动程序API/ABI的规范,使不同的操作系统(实现UDI框架)能够…”)
  • 2022年3月17日 (四) 15:22Hardware Abstraction Layer历史 | 编辑) ‎[1,200字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{Stub}} == 硬件抽象层 == “硬件抽象层”或HAL(Hardware Abstraction Layer)是对实际硬件的抽象, 以便即使底层硬件改变或同一设备类别的不同型号在它们的实现和实际接口上有很大变化,也向软件呈现一致的接口。 HAL允许程序员以一致且基本上与型号/品牌无关的方式编写设备驱动程序,它甚至可能将内核与许多已安装的硬件隔离开来。 使用HAL的操作…”)
  • 2022年3月17日 (四) 15:02Compositing历史 | 编辑) ‎[4,149字节]Zhang3讨论 | 贡献 (创建页面,内容为“{{In Progress}} '''Compositing'''是一种提供窗口化GUI的方法,其中每个应用程序窗口都有自己的专用缓冲区 - 有时称为''surface''或''canvas'' - 它可以随心所欲地画画。(译者注:好像在应用层开发中不怎么这样用这些术语,所以保留原文了。或者翻译为“图形复合功能”) 然后,“合成器(compositor)”将这些缓冲区组合在一起,以生成最终图像并显示在屏幕…”)
  • 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名称区…”)