Zhang3的用户贡献

跳到导航 跳到搜索
搜索贡献展开折叠
⧼contribs-top⧽
⧼contribs-date⧽

最新 | 最旧) 查看( | )(20 | 50 | 100 | 250 | 500

  • 2022年2月11日 (五) 03:04 差异 历史 −11 GAS
  • 2022年2月11日 (五) 03:02 差异 历史 +2,483 GAS创建页面,内容为“{{Stub}} {{Infobox_Tool |name=GNU Assembler |website=http://www.gnu.org/software/binutils/ }} “'''GNU 汇编器'''(简称'''GAS''',可执行文件名也是'gas')是binutils包的一部分。 GCC 生成 汇编 源代码,并自动调用GAS,该GAS将代码汇编为 目标文件 中的机器代码。 GCC允许开发人员使用内联汇编功能将汇编直接转发给汇编程序。 GAS不是 '一个' 单独的汇…”
  • 2022年2月10日 (四) 03:22 差异 历史 −6 Expanded Main Page
  • 2022年2月10日 (四) 03:21 差异 历史 −5 模板:Main2/Introduction
  • 2022年2月10日 (四) 03:20 差异 历史 +13 模板:Main2/Introduction
  • 2022年2月10日 (四) 03:20 差异 历史 +14 Required Knowledge
  • 2022年2月10日 (四) 03:16 差异 历史 +224 Required Knowledge
  • 2022年2月10日 (四) 02:31 差异 历史 +56 Introduction
  • 2022年2月10日 (四) 02:24 差异 历史 +183 Introduction
  • 2022年2月10日 (四) 02:24 差异 历史 +7 模板:Main2/Introduction
  • 2022年2月8日 (二) 09:44 差异 历史 +2,077 ARM System Calls创建页面,内容为“{{Template:In Progress}} ==System Calls== <pre>swi 0x420000</pre> 这里向你介绍如何在ARM上做System Call。 指令 <span style="font-family:monospace">swi</span> 跳转到预定义的地址,该地址又跳转到System Call处理程序。 System Call处理程序执行特定函数,并返回用户代码: <pre>mov pc, lr</pre> 在大多数情况下,您无需担心从中断返回,因为GCC设置为针对ARM交叉编译,可以在C中编写中断…” 当前
  • 2022年2月8日 (二) 09:26 差异 历史 −2 模板:Welcome
  • 2022年2月8日 (二) 09:25 差异 历史 +1 模板:Welcome
  • 2022年2月8日 (二) 09:23 差异 历史 +86 OSDev Wiki CN
  • 2022年2月8日 (二) 09:15 差异 历史 +21 OSDev Wiki CN
  • 2022年2月8日 (二) 09:14 差异 历史 +1,506 OSDev Wiki CN创建页面,内容为“== 使用建议 == https://wiki.osdev.org/ 原站是一个关于操作系统开发的WIKI知识库,所以整体风格并不是一个导师编写的教材指南,而是由很多创作者觉得可能需要的'''词条'''组成的一个手册。 如果你是第一次来可以选择随便看看,或者从介绍和基础理论、Bare BonesMeaty_SkeletonBabystep这几个教程看看。 也可以买本《30天开发操…”
  • 2022年2月8日 (二) 08:53 差异 历史 −628 模板:Welcome
  • 2022年2月8日 (二) 08:49 差异 历史 +561 Tail Recursion and Tail Call Optimization创建页面,内容为“== 我很懒 == 这个页面以前的信息被简单地放错了。 所以我删除了它。 我想我应该写正确的信息,但是我现在有点懒,你能自己去看看维基百科吗?谢谢。(译者注:这篇文章应该是原计划介绍“尾递归和尾调用优化”,但是原文就是这样的) (https://en.wikipedia.org/wiki/Tail_call) 我也碰巧在论坛上做了一个关于这个的话题。不过还是由于懒耽误了。 (http…” 当前
  • 2022年2月8日 (二) 08:43 差异 历史 +7,711 CompilerDev/Implementing Conditional Statements And Loops创建页面,内容为“= 一般概念 = 对于传统的指令集体系结构,例如x86,ARM,8051,MIPS或目前广泛使用的大多数其他CPU类型 (2016),条件语句 (例如 '''if' ''/'''elsif'''/'''else'''),以及循环构造 (例如 '''for''' 或 '''while'''),通常是通过组合测试来实现的,条件跳跃/分支 (jz,beq等) 和无条件分支 (jmp,bra,j等)。 虽然某些常见的ISA(指令集架构)具有用于重复或循环的专用指令 (例如x…”
  • 2022年2月8日 (二) 08:43 差异 历史 −7,640 Implementing Conditional Statements And Loops重定向页面至CompilerDev/Implementing Conditional Statements And Loops 当前 标签新建重定向
  • 2022年2月8日 (二) 08:41 差异 历史 +7,711 Implementing Conditional Statements And Loops创建页面,内容为“= 一般概念 = 对于传统的指令集体系结构,例如x86,ARM,8051,MIPS或目前广泛使用的大多数其他CPU类型 (2016),条件语句 (例如 '''if' ''/'''elsif'''/'''else'''),以及循环构造 (例如 '''for''' 或 '''while'''),通常是通过组合测试来实现的,条件跳跃/分支 (jz,beq等) 和无条件分支 (jmp,bra,j等)。 虽然某些常见的ISA(指令集架构)具有用于重复或循环的专用指令 (例如x…”
  • 2022年2月8日 (二) 07:36 差异 历史 +14,789 Kernel Debugging创建页面,内容为“人都会犯错。 其中一些错误可能最终成为你的操作系统的一部分。 由于找到错误比修复错误更难,因此本页面提供了可用于定位操作系统中的错误的常用技术列表。 == 调试语句和日志文件 == 第一个解决方案可能是最简单的,并且取决于你想要从调试器中获取什么样的信息。 使用诸如DDD或GDB之类的调试器的问题是它们需要操作系统才能运行...当你…”
  • 2022年2月8日 (二) 05:51 差异 历史 +47 How Do I Use A Debugger With My OS重定向页面至Kernel Debugging 当前 标签新建重定向
  • 2022年2月8日 (二) 05:47 差异 历史 +12,389 Interrupts
  • 2022年2月8日 (二) 03:20 差异 历史 +13,853 PIC创建页面,内容为“8259的 “可编程中断控制器” (PIC) 是组成x86架构的最重要的芯片之一。 没有它,x86体系结构就不会是中断驱动的体系结构。 8259A的功能是管理硬件中断,并将其发送到适当的系统 中断。 这允许系统响应设备需求而不损失时间 (相较于轮询设备)。 重要的是要注意,APIC 已经在更现代的系统中取代了8259的PIC,尤其是那些具有多核/处理器…” 当前
  • 2022年2月7日 (一) 03:58 差异 历史 +46,074 PCI创建页面,内容为“== PCI总线 == PCI ([https://en.wikipedia.org/wiki/Conventional_PCI Peripheral Component Interconnect]) 总线被定义为建立高性能和低成本的本地总线,该总线在几代产品中都会持续保留。 通过结合从132 MB/s (33 MHz时32位) 到528 MB/s (66 MHz时64位) 以及5伏和3.3伏信令环境的透明升级路径,PCI总线同时满足低端桌面系统和高端局域网服务器的需求。 PCI总线组件和附加卡接口是独立…” 当前
  • 2022年2月6日 (日) 14:00 差异 历史 +5,647 Opcode syntax创建页面,内容为“AT&T语法 (如GAS所理解的,GNU汇编器) 是大多数非Intel平台上的标准语法,但在x86平台上仍然很少见。 但是,AT&T语法是GCC 内联汇编 的默认语法,这是objdump在调试内核时将为你提供的语法。 NASM和FASM使用Intel语法,Intel语法是 Bochs 调试器在调试你的内核时提供的。 == 重要细节 == AT&T语法和Intel语法之间存在一些实质性差异,打算使用GN…” 当前
  • 2022年2月6日 (日) 13:01 差异 历史 −2 Expanded Main Page
  • 2022年2月6日 (日) 12:55 差异 历史 +40 Semaphores重定向页面至Synchronization Primitives 当前 标签新建重定向
  • 2022年2月6日 (日) 12:51 差异 历史 +2,241 Unit Testing创建页面,内容为“'''单元测试(Unit testing)''' 意味着,除了实现代码之外,你还要编写一个 “测试驱动程序(test driver)”,该 “测试驱动程序” 将实现代码进行一组试验,检查返回结果的正确性。 请注意,这是在开发/测试期间完成的-“测试驱动程序” 不随发布代码一起提供。 == 出发点想法是... == * 如果以后更改实现代码中的内容,则测试驱动程序会告诉你结果…” 当前
  • 2022年2月6日 (日) 12:41 差异 历史 −12 Testing
  • 2022年2月6日 (日) 12:40 差异 历史 +34 USB重定向页面至Universal Serial Bus 当前 标签新建重定向
  • 2022年2月6日 (日) 12:39 差异 历史 +6,285 Testing创建页面,内容为“除非有一种方法可以测试新版本的操作系统或内核,否则开发操作系统几乎是完全无用的练习。 设置测试环境有许多不同的方法。 广义上,它们可以分为两种方法: * 物理机器 * virtual machine == 作为成功的测试环境要达到的要求 == * ''' 速度。''' 你希望能够重新启动你的 (可能是虚拟的) 测试机,并在输入完命令之前将其准备好与新内…”
  • 2022年2月6日 (日) 10:38 差异 历史 +53 MMU重定向页面至Memory Management Unit 当前 标签新建重定向
  • 2022年2月6日 (日) 10:37 差异 历史 +2,057 Remote Procedure Call创建页面,内容为“== 什么是RPC(远程过程调用) == 远程过程调用(Remote Procedure Call),简称RPC,是一种让某些服务由位于不同进程 (甚至可能在网络中某个位置的机器上) 而不是在本地可用的代码执行的手段。 这是一种常见的做法,例如由应用程序服务器或web应用程序采用。 RPC的流行协议是COM、Corba或SOAP。 == RPC简而言之 == 一个RPC系统依赖于一个编译器,该编译器将从高…” 当前
  • 2022年2月6日 (日) 10:24 差异 历史 +1,853 Shared Memory创建页面,内容为“共享内存允许其他程序通过共享一块内存来相互影响 == 概念 == 内存保护的概念已成为操作系统设计中公认的概念。 一个特殊的CPU组件,即 MMU (内存管理单元),为每个用户空间应用程序提供 “虚拟” 地址空间。 每个应用程序 “认为” 它都有自己的整个地址空间。 实际上,MMU将每个 “虚拟” 地址映射到 “物理” 地址,通常以 “页面” 为单…” 当前
  • 2022年2月6日 (日) 09:51 差异 历史 +6,528 Message Passing创建页面,内容为“如果你考虑写一个 微内核,你需要布局如何管理消息传递。 此页面收集了有关如何执行此操作的注意事项。 == 可靠vs尽力而为 == ; 可靠 : 除非收件人不存在,否则保证会传递消息。 并且失败时,会通知发件人。 为了提供可靠性,消息传递系统确保消息在传输和接收过程中没有被更改或损坏。 乱序消息块被重新排序,重复的消息块被删…” 当前
  • 2022年2月5日 (六) 15:06 差异 历史 −15 Atomic operation当前
  • 2022年2月5日 (六) 15:03 差异 历史 +2,228 Atomic operation创建页面,内容为“'''原子操作''' 是指一种没有任何其他进程能够在自身操作过程中被读取或更改状态的操作。 它可以作为单步骤有效地执行,并且是处理多个独立进程或更新共享数据的算法中的重要特性,无论是在同步还是在不需要同步的情况的算法中。 == 确保操作是原子的方法 == === 单处理器-单核系统 === 在单个处理器系统上,如果一个操作是在单个CPU指令中实…”
  • 2022年2月5日 (六) 14:40 差异 历史 +1,301 Mutual Exclusion创建页面,内容为“互斥是在同步上下文中 (例如线程之间) 常用的词。 它用于确保只有一个实例可以访问一个资源。 == 它是什么 == 互斥是指多个实例可以尝试访问一个资源,但一次只能授予其中一个访问权限。 这里的 “实例” 一词指的是那些试图获得对资源访问的东西,例如线程。 == 互斥体 Mutex == 互斥原则常用于 ''' 互斥 ''' 锁定机制。 互斥体也被称为 “二进制…” 当前
  • 2022年2月5日 (六) 14:27 差异 历史 +160 Synchronization Primitives当前
  • 2022年2月5日 (六) 14:15 差异 历史 +5,721 Synchronization Primitives创建页面,内容为“这里介绍的所有技术都是解决 ''进程同步'' 问题的基本构建块。 例如,给定在同一台机器上彼此独立运行的程序,如何实现一些特性确保允许哪些操作组合和不允许哪些操作组合。 在现实世界问题的其他示例中,我们正在寻找可以授予以下功能的技术: * 进程的互斥: 一部分代码不能同时由两个进程执行。 * 会合: 在其他进程完成其操作之前,一个进…”
  • 2022年2月3日 (四) 12:49 差异 历史 +1,243 Signals创建页面,内容为“{{Stub}} 信号量(Signa)是Unix发明的用于异步信令的一种同步机制,并已集成到C标准 (<signal.h>) 中。 当进程接收到信号 (通过硬件发送,或另一个进程使用 <tt>raise()</tt> 发送) 时,将调用 “信号处理句柄(signal handler)”。 信号处理句柄是指一个处理信号量的C函数; 这个函数作为函数指针传递给<tt>signal()</tt> 函数。 (如果没有为给定信号定义信号处理句…” 当前
  • 2022年2月2日 (三) 13:26 差异 历史 +6,669 Multiprocessor Scheduling创建页面,内容为“Category:Processes and Threads{{Stub}} == 简介 == 当涉及多个CPU时,调度算法 可能会变得棘手,由于英特尔的超线程技术 (一个复杂的CPU显示为多个CPU),多处理器的操作系统开发也成为了爱好者可以接触的内容... 突然之间,多CPU体系结构的细节变得比单处理器系统更加重要。 内存管理单元 (MMU) 是如何设计的?一些CPU能够在其翻译后备…” 当前
  • 2022年2月2日 (三) 11:49 差异 历史 +11,657 Scheduling Algorithms创建页面,内容为“调度算法(scheduling algorithm)是指示分配给 进程和线程CPU时间的算法。 任何调度算法的目标都是满足许多标准: * 任何任务都不能缺乏资源 - 所有任务都必须在CPU时间获得机会; * 如果使用优先级,则低优先级任务不得阻止高优先级任务; * 调度程序必须随着越来越多的任务而很好地扩展,理想情况下时间复杂度是O(1)。例如,在linux内核…” 当前
  • 2022年2月2日 (三) 05:29 差异 历史 +7,853 Context Switching创建页面,内容为“在普遍受内存保护的环境中,“上下文(context)” 是虚拟地址空间,其中包含的可执行文件,其数据等。 发生 “上下文切换” 的原因多种多样-因为调用了内核函数,应用程序已被抢占,或者因为它产生了时间片。 上下文切换涉及存储旧状态和检索新状态。 存储和检索的实际信息可以包括EIP、一般寄存器、段寄存器、CR3 (和分页结构) 、FPU/MMX寄存…” 当前
  • 2022年2月2日 (三) 01:48 差异 历史 +4,110 Modular Kernel创建页面,内容为“{{Template:Kernel designs}} 模块化内核是一种合并内核级驱动程序和第三方驱动程序优点的尝试。 在模块化内核中,系统核心的某些部分将位于称为 “模块” 的独立文件中,这些文件可以在运行时添加到系统中。 根据这些模块的内容,目标可能会有所不同,例如: * 仅在实际找到设备时才加载驱动程序 * 仅在实际请求时加载文件系统 * 仅在应评估特定 (调…” 当前
  • 2022年2月2日 (三) 01:22 差异 历史 0 文件:Microkernel.png当前
  • 2022年2月2日 (三) 01:22 差异 历史 +3,652 Microkernel创建页面,内容为“{{Template:Kernel designs}} == 设计 == frame|right|Basic overview of a microkernel 微内核尝试将大多数服务 - 例如网络,文件系统等 - 作为用户空间中的守护程序/服务器运行。 剩下的内核要做的就是基本服务,例如物理内存分配 (实际内存 “管理器” 可以在用户空间中实现),调度和消息传递 (进程间通信)。 从理论上讲,这个概念使内核更具响应…”
  • 2022年2月2日 (三) 01:01 差异 历史 −14 模板:Kernel designs标签手工回退

最新 | 最旧) 查看( | )(20 | 50 | 100 | 250 | 500