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= conv=notrunc

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

dd if=  seek= 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

经常用到(创建OS)的命令的更多相关文章

  1. 在 Mac OS X 上创建的 .NET 命令行程序访问数据库 (使用Entity Framework 7 )

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  2. linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)

    linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...

  3. mongodb创建副本集命令

    mongodb创建副本集命令 ./mongod --replSet spock --dbpath ../data --smallfiles > config ={... "_id&qu ...

  4. 一起来学习linux创建用户useradd命令

    linux创建用户useradd命令 原文地址:linux创建用户useradd命令 http://www.xfcodes.com/linuxcmd/user/24308.htm 一,adduser与 ...

  5. 如何创建一个基于命令行工具的跨平台的 NuGet 工具包

    命令行可是跨进程通信的一种非常方便的手段呢,只需启动一个进程传入一些参数即可完成一些很复杂的任务.NuGet 为我们提供了一种自动导入 .props 和 .targets 的方法,同时还是一个 .NE ...

  6. 什么是git subcommand,如何创建git子命令?

    大多数git用户知道如何在git中创建一个alias以便更便利地使用相关命令.很少有人知道至少不会好好利用的是:你实际上可以为Git创建扩展或者plugin,以便上git完成任何你希望完成的工作.这就 ...

  7. LINUX创建用户的命令

    LINUX创建用户的命令useradd -g test -d /home/test1 -s /etc/bash -m test1注解:-g 所属组 -d 家目录 -s 所用的SHELL 删除用户命令u ...

  8. Mac OS X 命令行用户应当知道的八个终端工具

    原文链接:Eight Terminal Utilities Every OS X Command Line User Should Know OS X  的Terminal 终端开辟了强大的UNIX实 ...

  9. Azure上批量创建OS Disk大于30G的Linux VM

    Azure上VM的OS盘的大小在创建时是固定的.Windows是127G,Linux是30G.如果需要批量创建的VM的OS Disk有更大的容量.可以考虑用下面的方法实现. 1 创建一台有Data-d ...

随机推荐

  1. 怎样查看系统安装的python版本

    方法一:  在命令行下使用python -V 方法二:  在命令行下进入python交互模式, 可以在第一行看到python的版本信息

  2. hdu1171 灵活的运用背包问题咯。。。 还有!!!! 合理的计算数组的范围!! wa了好多次!

    Problem Description Nowadays, we all know that Computer College is the biggest department in HDU. Bu ...

  3. CCF 2017-03-1 分蛋糕

    CCF 2017-03-1 分蛋糕 题目 问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, -, an.小明想分给每个朋友至少重量为k的蛋糕.小 ...

  4. Dev GridControl 子集合标题

    显示效果: 设置: this.gridView3.OptionsView.ShowViewCaption = true; this.gridView3.ViewCaption = "资产明细 ...

  5. Visual Studio中找不到.Net Core SDK

    在win 7 64位上安装了.Net Core 2.1 x86 SDK后,又卸载重新安装了.Net Core 3/2 x64 SDK.结果在VS中新建项目时没有.Net Core 3.1 SDK. 在 ...

  6. 13 个 JS 数组精简技巧

    来自 https://juejin.im/post/5db62f1bf265da4d560906ab 侵删 数组是 JS 最常见的一种数据结构,咱们在开发中也经常用到,在这篇文章中,提供一些小技巧,帮 ...

  7. 易优cms后台RCE以及任意文件上传漏洞

    前言 EyouCms是基于TP5.0框架为核心开发的免费+开源的企业内容管理系统,专注企业建站用户需求提供海量各行业模板,降低中小企业网站建设.网络营销成本,致力于打造用户舒适的建站体验.易优cms ...

  8. shell 脚本总结

    一.SHELL脚本是什么?它是必需的吗? 一个SHELL脚本就是一个文本文件,它包含一个或多个命令.系统管理员会经常需要使用多个命令来完成一项任务,此时可以添加这些所有命令在一个文本文件(SHELL脚 ...

  9. docker linux下配置加速器

    [root@foundation83 ~]# cd /etc/docker/[root@foundation83 docker]# vim daemon.json{ "registry-mi ...

  10. python selectors模块实现 IO多路复用机制的上传下载

    import selectorsimport socketimport os,time BASE_DIR = os.path.dirname(os.path.abspath(__file__))''' ...