经常用到(创建OS)的命令

1. 将汇编代码编译为二进制模块文件

    nasm mbr.asm -o mbr                   
     nasm loader.asm -o loader 

2. 将wirte.c文件编译为二进制模块文件 

   gcc -m32 -fno-asynchronous-unwind-tables -s -c -o write.o write.c     

    //再将wirte.o二进制模块文件转换为汇编代码,使用objconv工具
    objconv -fnasm write.o -o write.asm     

3.将mbr.bin文件写入虚拟磁盘boot.img,实际写入512字节。

   dd if=mbr.bin of=boot.img bs=512 count=1 conv=notrunc   

   将loader.bin文件写入虚拟磁盘boot.img,写入第1个扇区,共4块大小文件,文件不足填充0

   dd if=loader.bin of=boot.img bs=512 count=4  seek=1 conv=notrunc

4.ld kernel/main.o -Ttext 0xc0001500 -e main -o kernel/kernel.bin

5.远程linux下载到本地文件

   (从192.168.13.133主机上下载/home/jadeshu/kernel.bin文件保存到本机目录/home/Administrator/)

scp root@192.168.13.133:/home/jadeshu/kernel.bin /home/Administrator/

6.64位linux编译32位注意:

  6.1 nasm汇编   nasm -f elf    纯二进制文件  nasm -f bin 也是默认选项

  6.2 gcc编译  gcc -m32

  6.3 ld连接   ld -m elf_i386


 

posted @ 2019-06-19 21:00  jadeshu  阅读(145)  评论(0编辑  收藏  举报