提交 98316b4c 创建 作者: 宋海霞's avatar 宋海霞

Initial commit

上级
/*.img
/bochs
/Debug
/Release
/sdk
*.bak
*.lst
*.o
\ No newline at end of file
EOS 核心源代码协议
允许所有人复制和发布本协议文件的完整版本,但不允许对它进行任何修改。
该协议用于控制与之配套的软件,并且管理您使用遵守该协议软件的方法。下面授予
您的各项权利受限于该协议。只有当您是合格的教育机构并且从北京英真时代科技有限
公司购买了该软件授权时才能够享有这些权利。
在您的教育机构中,您可以为了任何非商业的目的来使用、修改该软件,包括制作合理
数量的拷贝。非商业的目的可以是教学、科研以及个人的实验行为。您可以将拷贝发布
到机构内部安全的服务器上,并且可以在合格用户的个人主机上安装。
您可以在研究论文、书籍或者其他教育资料中使用该软件的代码片断,或者在以教学和
研究为目的的网站、在线公共论坛中发布该软件的代码片断。在您使用的单个代码片断
中源代码的数量不能超过 50 行。如您想使用该软件中的大量源代码,
请联系 support@tevation.com。
您不能为了商业目的使用或者分发该软件以及从该软件衍生出的任何形式的任何产品。
商业目的可以是经营、许可、出售该软件或者为了在商业产品中使用该软件而分发该软件。
如果您希望将您的与该软件有关的产品商业化,或者希望与工业伙伴合作研究,您需要
联系 sales@tevation.com 来咨询商业授权协议。
您可以为了非商业的目的分发该软件并且修改该软件,但是只能是对于其他该软件的合法
用户(例如,将修改的版本分发给其他大学的学生或者教授进行联合学术研究)。只有从
北京英真时代科技有限公司购买了该软件授权的合格教育机构,才是合法用户。您不能为
该软件或者该软件的衍生产品授予比该协议所提供的更加广泛的权利。
您还必须遵守下面的条款:
1. 您不会从该软件中移除任何版权信息或者布告,也不会对该软件中的二进制部分进行
逆向工程或者反编译。
2. 无论您以任何形式分发该软件,您都必须同时分发该协议。
3. 如果您修改了该软件或者创造了该软件的衍生产品,并且分发了修改后的版本或者衍生
产品,您需要在被修改文件中的显著位置添加布告来说明您修改的内容和修改日期,这样
接收者就会知道他们收到的不是原始的软件。
4. 该软件没有任何担保,包括明示的、暗喻的。在适用法律所允许的最大范围
内,北京英真时代科技有限公司或其供应商绝不就因使用或不能使用本“软件”所引起的或
有关的任何间接的、意外的、直接的、非直接的、特殊的、惩罚性的或其它任何损害赔偿
(包括但不限于因人身伤害或财产损坏而造成的损害赔偿,因利润损失、营业中断、商业
信息的遗失而造成的损害赔偿,因未能履行包括诚信或相当注意在内的任何责任致使隐私
泄露而造成的损害赔偿,因疏忽而造成的损害赔偿,或因任何金钱上的损失或任何其它损失
而造成的损害赔偿)承担赔偿责任,即使北京英真时代科技有限公司或其任何供应商事先被
告知该损害发生的可能性。即使补救措施未能达到预定目的,本损害赔偿排除条款将仍然有
效。
5. 您不能使用该软件来帮助开发任何为下列目的而设计的软件程序: (a) 对计算机系统有害
的或者故意干扰操作的,包括计算机系统中的任何数据和信息;(b) 秘密获取或者维持对计算
机系统高级访问权限,有自我繁殖能力,能够在不被发现的情况下执行,包括但不限于所谓
的 "rootkit" 软件程序,病毒或者蠕虫。
6. 如果您以任何方式违背了此协议,此协议赋予您的权利就会立即终止。
7. 北京英真时代科技有限公司保留在此协议中明确授予您的权利之外的所有权利。
版本: 2008.09.16
(C) 2008 北京英真时代科技有限公司(http://www.engintime.com)。保留所有权利。
差异被折叠。
<?xml version="1.0" encoding="gb2312"?>
<OSLProject Version="1.00" Name="kernel" ProjectType="kernel" SubjectID="1580a23c-aa04-4cf3-8cca-488dc577df8d" IncrementalUpload="-1">
<Configurations>
<Configuration Name="Debug" ConfigurationType="1" DebuggerFlavor="1" RemoteMachine="5" PreDebugCommand="echo 制作软盘镜像...&#xA;echo 将引导扇区程序 boot.bin 写入软盘镜像...&#xA;FloppyImageEditor.exe Floppy.img /mbr &quot;$(OutDir)\boot.bin&quot;&#xA;echo 将加载程序 loader.bin 写入软盘镜像...&#xA;FloppyImageEditor.exe Floppy.img /copy &quot;$(OutDir)\loader.bin&quot; /y&#xA;echo 将 EOS 内核程序 $(TargetFileName) 写入软盘镜像...&#xA;FloppyImageEditor.exe Floppy.img /copy &quot;$(TargetPath)&quot; /y">
<Tool Name="PreBuildEventTool"/>
<Tool Name="CustomBuildTool"/>
<Tool Name="GCCCompilerTool" PreprocessorDefinitions="_I386;_DEBUG;_KERNEL_;" GenerateDebugInformation="-1" CompileAs="1"/>
<Tool Name="NASMAssemblerTool" PreprocessorDefinitions="_DEBUG"/>
<Tool Name="PreLinkEventTool"/>
<Tool Name="GCCLinkerTool" OutputFile="$(OutDir)\kernel.dll" AdditionalDependencies="" IgnoreStandardLibraries="-1" EntryPointSymbol="_KiSystemStartup" BaseAddress="0x80010000"/>
<Tool Name="PostBuildEventTool" CommandLine=""/>
</Configuration>
<Configuration Name="Release" ConfigurationType="1" DebuggerFlavor="1" RemoteMachine="5" PreDebugCommand="echo 制作软盘镜像...&#xA;echo 将引导扇区程序 boot.bin 写入软盘镜像...&#xA;FloppyImageEditor.exe Floppy.img /mbr &quot;$(OutDir)\boot.bin&quot;&#xA;echo 将加载程序 loader.bin 写入软盘镜像...&#xA;FloppyImageEditor.exe Floppy.img /copy &quot;$(OutDir)\loader.bin&quot; /y&#xA;echo 将 EOS 内核程序 $(TargetFileName) 写入软盘镜像...&#xA;FloppyImageEditor.exe Floppy.img /copy &quot;$(TargetPath)&quot; /y&#xA;">
<Tool Name="PreBuildEventTool"/>
<Tool Name="CustomBuildTool"/>
<Tool Name="GCCCompilerTool" PreprocessorDefinitions="_I386;_KERNEL_;" CompileAs="1"/>
<Tool Name="NASMAssemblerTool"/>
<Tool Name="PreLinkEventTool"/>
<Tool Name="GCCLinkerTool" OutputFile="$(OutDir)\kernel.dll" AdditionalDependencies="" IgnoreStandardLibraries="-1" EntryPointSymbol="_KiSystemStartup" BaseAddress="0x80010000"/>
<Tool Name="PostBuildEventTool" CommandLine=""/>
</Configuration>
</Configurations>
<Files>
<Filter Name="bochs">
<File RelativePath=".\bochs\BIOS-bochs-latest" NoUpload="-1">
</File>
<File RelativePath=".\bochs\bochs.exe" NoUpload="-1">
</File>
<File RelativePath=".\bochs\bochsdbg.exe" NoUpload="-1">
</File>
<File RelativePath=".\bochs\bochsrc.bxrc" NoUpload="-1">
</File>
<File RelativePath=".\bochs\bochsrcdbg.bxrc" NoUpload="-1">
</File>
<File RelativePath=".\bochs\VGABIOS-lgpl-latest" NoUpload="-1">
</File>
</Filter>
<Filter Name="boot">
<File RelativePath=".\boot.asm">
<FileConfiguration Name="Debug">
<Tool Name="NASMAssemblerTool" ObjectFile="$(OutDir)\$(InputName).bin" ObjectFormate="bin"/>
</FileConfiguration>
<FileConfiguration Name="Release">
<Tool Name="NASMAssemblerTool" ObjectFile="$(OutDir)\$(InputName).bin" ObjectFormate="bin"/>
</FileConfiguration>
</File>
<File RelativePath=".\loader.asm">
<FileConfiguration Name="Debug">
<Tool Name="NASMAssemblerTool" ObjectFile="$(OutDir)\$(InputName).bin" ObjectFormate="bin"/>
</FileConfiguration>
<FileConfiguration Name="Release">
<Tool Name="NASMAssemblerTool" ObjectFile="$(OutDir)\$(InputName).bin" ObjectFormate="bin"/>
</FileConfiguration>
</File>
</Filter>
<Filter Name="ke" Filter="h;hpp;hxx;inc;c;cpp;cxx;asm">
<File RelativePath=".\start.c">
</File>
</Filter>
<File RelativePath=".\Floppy.img">
</File>
<File RelativePath=".\License.txt">
</File>
</Files>
</OSLProject>
添加文件
差异被折叠。
/***
Copyright (c) 2008 北京英真时代科技有限公司。保留所有权利。
只有您接受 EOS 核心源代码协议(参见 License.txt)中的条款才能使用这些代码。
如果您不接受,不能使用这些代码。
文件名: start.c
描述: EOS 内核的入口函数。
*******************************************************************************/
//
// VGA 缓冲位置,和内存映射相关。
//
#define VGA_BUFFER 0x800B8000
//
// 输出 log 信息
//
void KeLog(char* msg)
{
char* SrcPtr;
char* LogDestPtr = (char*)VGA_BUFFER;
//
// 显示标题。
//
for (SrcPtr = (char*)msg; *SrcPtr!=0; SrcPtr++)
{
if ('\n' == *SrcPtr)
{
LogDestPtr = LogDestPtr - (LogDestPtr - (char*)VGA_BUFFER) % 160 + 160;
}
else
{
*LogDestPtr = *SrcPtr;
LogDestPtr += 2;
}
}
}
void KiSystemStartup(void* LoaderBlock)
/*
功能描述:
系统的入口点,Kernel.dll被Loader加载到内存后从这里开始执行。
参数:
LoaderBlock - Loader传递的加载参数块结构体指针,内存管理器要使用。
返回值:
无(这个函数永远不会返回)。
注意:
KiSystemStartup在Loader构造的ISR栈中执行,不存在当前线程,所以不能调用任何可
能导致阻塞的函数,只能对各个模块进行简单的初始化。
*/
{
KeLog("Welcome to EOS kernel!");
while(1){}
}
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论