<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Where_Can_I_Find_Information_About_Ports</id>
	<title>Where Can I Find Information About Ports - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Where_Can_I_Find_Information_About_Ports"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Where_Can_I_Find_Information_About_Ports&amp;action=history"/>
	<updated>2026-04-06T08:09:24Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Where_Can_I_Find_Information_About_Ports&amp;diff=830&amp;oldid=prev</id>
		<title>2022年3月12日 (六) 05:03 Zhang3</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Where_Can_I_Find_Information_About_Ports&amp;diff=830&amp;oldid=prev"/>
		<updated>2022-03-12T05:03:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2022年3月12日 (六) 05:03的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;第5行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第5行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 问题：我在哪里可以找到有关端口的信息？ ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 问题：我在哪里可以找到有关端口的信息？ ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div style=&amp;quot;font-size:8pt&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div style=&amp;quot;font-size:8pt&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: 我一直在尝试编写内核(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;从Brandon在osdever网站的教程开始&lt;/del&gt;)。 我很幸运地找到了在屏幕上显示数据、从扇区读取数据、读取时间 ([[CMOS]]) 和重新启动的端口。 我在哪里可以找到更多信息？ 我想进入图形模式，这样我就可以显示图像了。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: 我一直在尝试编写内核(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;从[http://www.osdever.net/bkerndev/Docs/basickernel.htm Brandon]在osdever网站的教程开始&lt;/ins&gt;)。 我很幸运地找到了在屏幕上显示数据、从扇区读取数据、读取时间 ([[CMOS]]) 和重新启动的端口。 我在哪里可以找到更多信息？ 我想进入图形模式，这样我就可以显示图像了。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: 比较长的问题: 是这样的，我从 [[Tutorials|教程]] 开始，编写hello world很容易。 早些时候，我在[[Assembly|汇编]]上工作，并使用[[BIOS]]和[[Interrupts|中断]]编写了一个简单的文本绘制程序。 但是，这一次我面对的是[[kernels|kernel]]内容，它使用[[ports|端口]]来显示数据(“Hello World”)。 我还没有通盘阅读[[Documentation|文档]]。 但是，无论如何，我继续搜索，我能够用磁盘上的一些数据替换“Hello World”，这需要[[LBA]]的知识。 我被柱面（cylinder）之类的东西难住了。早先的阅读方式对我不起作用。 在了解了 [[LBA]] 端口并理解 [[Ext2]] [[Documentation|文档]] 之后，我能够读取磁盘上的一个小文件。 后来，通过查看其他人的代码，我发现了访问[[CMOS]]时间和如何重新启动的代码。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: 比较长的问题: 是这样的，我从 [[Tutorials|教程]] 开始，编写hello world很容易。 早些时候，我在[[Assembly|汇编]]上工作，并使用[[BIOS]]和[[Interrupts|中断]]编写了一个简单的文本绘制程序。 但是，这一次我面对的是[[kernels|kernel]]内容，它使用[[ports|端口]]来显示数据(“Hello World”)。 我还没有通盘阅读[[Documentation|文档]]。 但是，无论如何，我继续搜索，我能够用磁盘上的一些数据替换“Hello World”，这需要[[LBA]]的知识。 我被柱面（cylinder）之类的东西难住了。早先的阅读方式对我不起作用。 在了解了 [[LBA]] 端口并理解 [[Ext2]] [[Documentation|文档]] 之后，我能够读取磁盘上的一个小文件。 后来，通过查看其他人的代码，我发现了访问[[CMOS]]时间和如何重新启动的代码。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Where_Can_I_Find_Information_About_Ports&amp;diff=825&amp;oldid=prev</id>
		<title>2022年3月12日 (六) 04:03 Zhang3</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Where_Can_I_Find_Information_About_Ports&amp;diff=825&amp;oldid=prev"/>
		<updated>2022-03-12T04:03:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2022年3月12日 (六) 04:03的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;第3行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第3行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;译者注：这里的端口指的是IO端口（Port），一般CPU通过IO端口操作设备，本文主要解答了自制操作系统时，开发爱好者是怎么知道外部设备：电源、显卡、网卡等应该如何对接的。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;译者注：这里的端口指的是IO端口（Port），一般CPU通过IO端口操作设备，本文主要解答了自制操作系统时，开发爱好者是怎么知道外部设备：电源、显卡、网卡等应该如何对接的。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;问题：我在哪里可以找到有关端口的信息() &lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;问题：我在哪里可以找到有关端口的信息？ &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div style=&amp;quot;font-size:8pt&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div style=&amp;quot;font-size:8pt&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: 我一直在尝试编写内核(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;从Brandon在osdever的教程开始&lt;/del&gt;)。 我很幸运地找到了在屏幕上显示数据、从扇区读取数据、读取时间 ([[CMOS]]) 和重新启动的端口。 我在哪里可以找到更多信息？ 我想进入图形模式，这样我就可以显示图像了。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: 我一直在尝试编写内核(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;从Brandon在osdever网站的教程开始&lt;/ins&gt;)。 我很幸运地找到了在屏幕上显示数据、从扇区读取数据、读取时间 ([[CMOS]]) 和重新启动的端口。 我在哪里可以找到更多信息？ 我想进入图形模式，这样我就可以显示图像了。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: 比较长的问题: 是这样的，我从 [[Tutorials|教程]] 开始，编写hello world很容易。 早些时候，我在[[Assembly|汇编]]上工作，并使用[[BIOS]]和[[Interrupts|中断]]编写了一个简单的文本绘制程序。 但是，这一次我面对的是[[kernels|kernel]]内容，它使用[[ports|端口]]来显示数据(“Hello World”)。 我还没有通盘阅读[[Documentation|文档]]。 但是，无论如何，我继续搜索，我能够用磁盘上的一些数据替换“Hello World”，这需要[[LBA]]的知识。 我被柱面（cylinder）之类的东西难住了。早先的阅读方式对我不起作用。 在了解了 [[LBA]] 端口并理解 [[Ext2]] [[Documentation|文档]] 之后，我能够读取磁盘上的一个小文件。 后来，通过查看其他人的代码，我发现了访问[[CMOS]]时间和如何重新启动的代码。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: 比较长的问题: 是这样的，我从 [[Tutorials|教程]] 开始，编写hello world很容易。 早些时候，我在[[Assembly|汇编]]上工作，并使用[[BIOS]]和[[Interrupts|中断]]编写了一个简单的文本绘制程序。 但是，这一次我面对的是[[kernels|kernel]]内容，它使用[[ports|端口]]来显示数据(“Hello World”)。 我还没有通盘阅读[[Documentation|文档]]。 但是，无论如何，我继续搜索，我能够用磁盘上的一些数据替换“Hello World”，这需要[[LBA]]的知识。 我被柱面（cylinder）之类的东西难住了。早先的阅读方式对我不起作用。 在了解了 [[LBA]] 端口并理解 [[Ext2]] [[Documentation|文档]] 之后，我能够读取磁盘上的一个小文件。 后来，通过查看其他人的代码，我发现了访问[[CMOS]]时间和如何重新启动的代码。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Where_Can_I_Find_Information_About_Ports&amp;diff=824&amp;oldid=prev</id>
		<title>Zhang3：创建页面，内容为“{{Tone}} {{FirstPerson}} 译者注：这里的端口指的是IO端口（Port），一般CPU通过IO端口操作设备，本文主要解答了自制操作系统时，开发爱好者是怎么知道外部设备：电源、显卡、网卡等应该如何对接的。  == 问题：我在哪里可以找到有关端口的信息() == &lt;div style=&quot;font-size:8pt&quot;&gt; : 我一直在尝试编写内核(从Brandon在osdever的教程开始)。 我很幸运地找到了在屏幕上…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Where_Can_I_Find_Information_About_Ports&amp;diff=824&amp;oldid=prev"/>
		<updated>2022-03-12T04:00:48Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“{{Tone}} {{FirstPerson}} 译者注：这里的端口指的是IO端口（Port），一般CPU通过IO端口操作设备，本文主要解答了自制操作系统时，开发爱好者是怎么知道外部设备：电源、显卡、网卡等应该如何对接的。  == 问题：我在哪里可以找到有关端口的信息() == &amp;lt;div style=&amp;quot;font-size:8pt&amp;quot;&amp;gt; : 我一直在尝试编写内核(从Brandon在osdever的教程开始)。 我很幸运地找到了在屏幕上…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Tone}}&lt;br /&gt;
{{FirstPerson}}&lt;br /&gt;
译者注：这里的端口指的是IO端口（Port），一般CPU通过IO端口操作设备，本文主要解答了自制操作系统时，开发爱好者是怎么知道外部设备：电源、显卡、网卡等应该如何对接的。&lt;br /&gt;
&lt;br /&gt;
== 问题：我在哪里可以找到有关端口的信息() ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:8pt&amp;quot;&amp;gt;&lt;br /&gt;
: 我一直在尝试编写内核(从Brandon在osdever的教程开始)。 我很幸运地找到了在屏幕上显示数据、从扇区读取数据、读取时间 ([[CMOS]]) 和重新启动的端口。 我在哪里可以找到更多信息？ 我想进入图形模式，这样我就可以显示图像了。&lt;br /&gt;
&lt;br /&gt;
: 比较长的问题: 是这样的，我从 [[Tutorials|教程]] 开始，编写hello world很容易。 早些时候，我在[[Assembly|汇编]]上工作，并使用[[BIOS]]和[[Interrupts|中断]]编写了一个简单的文本绘制程序。 但是，这一次我面对的是[[kernels|kernel]]内容，它使用[[ports|端口]]来显示数据(“Hello World”)。 我还没有通盘阅读[[Documentation|文档]]。 但是，无论如何，我继续搜索，我能够用磁盘上的一些数据替换“Hello World”，这需要[[LBA]]的知识。 我被柱面（cylinder）之类的东西难住了。早先的阅读方式对我不起作用。 在了解了 [[LBA]] 端口并理解 [[Ext2]] [[Documentation|文档]] 之后，我能够读取磁盘上的一个小文件。 后来，通过查看其他人的代码，我发现了访问[[CMOS]]时间和如何重新启动的代码。&lt;br /&gt;
&lt;br /&gt;
: 但是，现在当我想添加[[Shutdown|关机-Shutdown]]、[[How_do_I_Set_a_Graphics_Mode|图形]]模式、[[Networking|网络]]和其他东西时，会有点痛苦。 我觉得需要一个向导。&lt;br /&gt;
&lt;br /&gt;
: 请帮忙！&lt;br /&gt;
: 谢谢。&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
你好,&lt;br /&gt;
&lt;br /&gt;
一般情况下，所有I/O端口要么是传统的[[ISA]]设备的一部分（[[Serial_ports|串口]]，[[Parallel_port|并口]]，[[PS2_Keyboard|PS/2键盘]]，[[Floppy_Disk_Controller|软盘-Floppy]]，[[CMOS]]芯片组的一部分，要么是[[PCI]]设备的一部分。 不管是什么，您都需要特定内容的文档 (例如，对于 “XYZ以太网卡”，您需要 “XYZ以太网卡” 的文档，而不是 “ABC以太网卡” 的文档)。&lt;br /&gt;
&lt;br /&gt;
===== 传统硬件和向后兼容性=====&lt;br /&gt;
在某些情况下，存在用于向后兼容的传统硬件接口 - 例如，大多数视频卡都支持旧的 [[VGA]] I/O端口 (直到您将它们置于 “native mode（原生模式）”，以便您可以实际使用其大部分功能)。 在您拥有合适的设备驱动程序之前，这些遗留接口也完全值得支持。 在这种情况下，您需要传统设备的文档(而不是正确/实际设备的文档)。 例如，哪怕对于 “顶级” ATI视频卡，您还是需要IBM的原始 [[VGA]] 文档 (或等效信息)。&lt;br /&gt;
&lt;br /&gt;
=====遗留软件接口=====&lt;br /&gt;
另外，对于某些设备来说，有一个传统的软件接口。 这主要限于视频卡 ([[VGA_Resources|VESA/VBE]] 接口)，而其它遗留软件接口太糟糕了 {{how}} (现在一般不考虑BIOS上的[[Serial_ports|串口]]，[[Parallel_port|并口]]，[[PS2_Keyboard|PS/2键盘]]、[[Floppy_Disk_Controller|软盘]] 或 [[ATA_PIO_Mode|硬盘]]{{why}}，尽管理论上是可能的)。 与“遗留硬件接口”一样，这主要只是一个短期解决方案（基本功能没有额外功能，性能也差{{how}}）。&lt;br /&gt;
&lt;br /&gt;
=====标准接口=====&lt;br /&gt;
最后，对于某些设备类型，有一个标准接口。 这包括[[USB]]控制器（AFAIK只有4种不同的标准） - [[UHCI]]、[[EHCI]]、[[XHCI]]和[[OHCI]])和[[IDE]]/[[ATAPI]]硬盘控制器(但不是[[SCSI]]控制器)，其他并不多。 这些标准接口实际上是很好的接口 (不是遗留接口)。&lt;br /&gt;
&lt;br /&gt;
=====支持设备很难=====&lt;br /&gt;
大多数情况下，要正确支持所有设备(而不使用遗留接口)，您需要阅读数千篇文档并编写数千个不同的设备驱动程序 (也没有成千上万的指南这么多，每个设备，其他 “手把手的指导” - 需要您去查找，阅读和理解制造商的文档)。&lt;br /&gt;
&lt;br /&gt;
=====尽量少用=====&lt;br /&gt;
幸运的是(依本人愚见)，对于一个好的操作系统设计，您实际上不需要编写很多设备驱动程序{{according_to_who}}(可能需要几个常用的驱动程序来启动)。 您只需要真正设计，实现和记录合适的设备驱动程序接口，以便其他程序员以后可以轻松编写设备驱动程序。 例如，您可能会为一张[[ethernet|以太网]]卡编写一个设备驱动程序，并且（希望有一天）可能会有20多人使用您的[[documentation|文档]]（以及您的第一个设备驱动程序作为参考）为50多张[[ethernet|以太网]]卡实现50多个设备[[drivers|驱动]]。&lt;br /&gt;
&lt;br /&gt;
基本上，我要说的是(个人观点)理智的操作系统开发人员实际上并不编写操作系统。 相反，他们编写 [[Bootloader|引导加载程序]] 、 [[kernels|内核]] 和 [[documentation|文档]]。 只有在[[kernels|内核]]和[[documentation|文档]]完全完成之后，他们才会担心设备[[drivers|驱动程序]]、[[File_Systems | 文件系统]]、[[applications|应用程序]]等（除了测试内核和内核接口所需的一些常见/特殊情况）。&lt;br /&gt;
&lt;br /&gt;
== 问题：关机、图形、网络和其他 ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:8pt&amp;quot;&amp;gt;&lt;br /&gt;
: 但是，现在当我想添加关机，图形模式，网络和其他功能时，它会变得有些痛苦。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 关机（APM或ACPI）=====&lt;br /&gt;
对于关机，有两种不同的“传统软件接口”([[APM]]和[[ACPI]])。 [[APM]] 是古老但简单的，而 [[ACPI]] 是新的但因其过度复杂，让人颈部痛疼。 要做到软件关机，而没有这些遗留软件接口，您需要查看每个主板/芯片组的文档。&lt;br /&gt;
&lt;br /&gt;
===== 视频(BIOS、VESA/VBE、VGA接口或本机) =====&lt;br /&gt;
对于视频，有2个传统软件接口 (原始的 [[BIOS]] Int 0x10接口和 [[VGA_Resources|VESA/VBE]] 扩展)，以及一个传统硬件接口 (“[[VGA_Resources | VGA标准]]”)。 要正确操作，您需要每个视频卡的编程信息（在某些情况下很难获得）。 即使您有很好的信息，现代视频，设备驱动程序也很复杂 （尤其是当你开始研究3D特效，并为着色器语言实现JIT编译器时。 - 例如实现与DirectX 10 相似的功能和性能）， 而且，为一块视频卡实现一个好的设备驱动程序很容易就需要一年多的时间。&lt;br /&gt;
&lt;br /&gt;
===== 网卡 =====&lt;br /&gt;
对于[[:Category:Network Hardware|网卡]]来说，没有遗留软件接口，也没有遗留硬件接口 - 要正确执行操作，您需要制造商的文档(或等效文档)。&lt;br /&gt;
&lt;br /&gt;
===== 本文来源 =====&lt;br /&gt;
这里包含的信息是根据这里论坛上的帖子粗略整理而成的， http://forum.osdev.org/viewtopic.php?f=15&amp;amp;t=17704.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
</feed>