相当于 .sh 或 make 文件为 .BAT 文件

相当于 .sh 或 make 文件为 .BAT 文件

我昨天买了一本关于操作系统开发的书,但是这本书是为 Windows 系统编写的,而描述中没有提到这一点。我需要将 .BAT 文件转换为等效的 shell 脚本或 makefile,但不知道如何解决一个错误。

这是我的目录结构:

OsDev
--src/
----Boot.asm
----Kernel_Entry.asm
----main.c
--bin/

本书的源代码可以在这里找到https://github.com/TINU-2000/OS-DEV/tree/main/Beginning-OS-DEV/Entering%20c

我将.bat 文件重写为这个.sh 文件:

#!/bin/sh

nasm src/Boot.asm -f bin -o bin\bootsect.bin
nasm src/Kernel_Entry.asm -f elf -o bin\Entry.bin

gcc -m32 -ffreestanding -c src/main.c -o bin\kernel.o

ld -T NUL -o bin\Kernel.img -Ttext 0x1000 bin\Entry.bin bin\kernel.o

objcopy -O binary -j .text  bin\kernel.img bin\kernel.bin
copy /b /Y bin\bootsect.bin+bin\kernel.bin bin\os-image

qemu-system-i386 -drive format=raw,file=bin\os-image

但我收到一个错误:

ld: cannot open linker script file NUL: No such file or directory
objcopy: 'binkernel.img': No such file
./make.sh: 11: copy: not found

有人能告诉我需要做什么才能让它在 ubuntu 22.04 上运行吗?非常感谢!

相关内容