游戏|传奇操作系统的源代码设计和实现

1.将游戏传奇的操作系统客户端和操作系统的源代码结合,因为都是出c++的缘故,所以先写操作系统,再进行游戏传奇的耦合。

我们需要先来用出c++写一个操作系统。

2.首先我们需要的文件是(包括一下源代码):

link.ld

ENTRY(loader)
OUTPUT_FORMAT(elf32-i386)
OUTPUT_ARCH(i386:i386)

SECTIONS
{

    .=0X0100000;

    .text :
    {
        *(.multiboot)
        *(.text*)
        *(.rodata)



    }
    .data :
    {

        start_ctors = .;
        *(.ctor*)
        KEEP(*(.init_array));
        KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*)));


        end_ctors = .;
        start_dtors = .;
        *(.dtor*)
        end_dtors = .;

        *(.data)

    }

    .bss :
    {

        *(.bss)


    }

    /DISCARD/:
    {
        *(.fini_array*)
        *(.comment)



    }


}

kernel.cpp

extern "C" void kernelMain(void* multiboot_structure,uint32_t)
{

    printf("123");

    

    while(1);

}

loader.s

.set MAGIC, 0x1badd002
.set FLAGS, (1<<0 |1<<1)
.set CHECKSUM, -(MAGIC+FLAGS)
 .text
 .align 4



.multiboot:
    .long MAGIC
    .long FLAGS
    .long CHECKSUM




 .text
 .text
 .align 4
 .extern callConstructors
 .globl kernelMain
 kernelMain:
    .globl loader
loader:
    mov $kernel_stack, %esp
    call callConstructors
    push %rax
    push %rax
call kernelMain

 _stop:
    cli
    hlt
    jmp _stop
    .text
    .bss
    .space 2*1024*1024

Makefile

GPPPARAMS = -m32 -fno-use-cxa-atexit -fleading-underscore -fno-exceptions -fno-builtin -nostdlib -fno-rtti -fno-pie
ASPARAMS = -m64 #有的版本是--32
LDPARAMS = -elf_i386 -no-pieo

objects = loader.o kernel.o

%.o: %.cpp
   g++ $(GPPPARAMS) -o $@ -c $<

%.o: %.s
   as $(ASPARAMS) -o $@ $<

mykernel.bin:linker.ld $(objects)
      ld $(LDPARAMS) -T $< -o $@ $(objects)

install: mykernel.bin
         sudo cp $< /boot/mykernel.bin


mykernel.iso: mykernel.bin
      sudo mkdir iso
      sudo mkdir iso/boot
      sudo mkdir iso/boot/grub
      sudo cp $< iso/boot/
      sudo echo 'set timeout=0' >> iso/boot/grub/grub.cfg
      sudo echo 'set default=0' >> iso/boot/grub/grub.cfg
      sudo echo '' iso/boot/grub/grub.cfg
      sudo echo 'menuentry "My Operating System"' >> iso/boot/grub/grub.cfg
      sudo echo 'multiboot /boot/kernel.bin' >> iso/boot/grub/grub.cfg
      sudo echo 'boot' >> iso/boot/grub/grub.cfg
      sudo echo '}' >> iso/boot/grub/grub.cfg
      sudo grub -mkrescue --output=$@ iso

2.调出命令框,切换到目标文件下。

make mykernel.iso

3.只要弹出printf报错就行了。

4.附上我自己的github仓库,欢迎大家来逛。

我会持续更新,各种内容。

Sml511 (Apophis) · GitHub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
传奇源代码 05 delphi 是一个编程工具,主要用于开发传奇游戏相关的项目。Delphi 是一种基于 Object Pascal 的面向对象的编程语言,是 Borland(现在是 Embarcadero Technologies)公司开发的一种可视化编程环境。传奇源代码 05 delphi 通过使用 Delphi 开发环境,为开发人员提供了一种简单而强大的方式来创建传奇游戏传奇游戏是一种非常受欢迎的在线多人游戏,它具有丰富的角色扮演和冒险元素。传奇源代码 05 delphi 提供了一些基本的游戏框架和模块,开发人员可以根据自己的需求进行修改和定制,以创建独特而引人入胜的游戏体验。 通过传奇源代码 05 delphi,开发人员可以使用 Delphi 的强大功能来设计实现游戏角色、地图、任务和故事情节等元素。他们可以利用 Delphi 的面向对象编程特性,创建各种各样的角色类和技能类,以及游戏中的交互和战斗系统。 除了游戏内容的开发,传奇源代码 05 delphi 还提供了一些网络和数据库的支持。开发人员可以利用 Delphi 的网络编程库和数据库连接组件,实现游戏服务器和客户端之间的通信和数据存储。这样,他们可以轻松地创建一个稳定和可靠的传奇游戏网络环境。 总之,传奇源代码 05 delphi 是一个强大的开发工具,为开发人员提供了丰富的功能和灵活的定制选项来创建传奇游戏。无论是开发个人项目还是商业产品,传奇源代码 05 delphi 都是一个值得考虑的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Magnum Lehar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值