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. Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解(转)

    转自:https://www.jb51.net/article/120018.htm

  2. hdu 6185 递推+矩阵快速幂

    思路:考虑全部铺满时,前2列的放法.有如下5种情况:(转自http://blog.csdn.net/elbadaernu/article/details/77825979 写的很详细 膜一下)  假设 ...

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

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

  4. SQL Server存储过程中字符串前加N的含义

    使用方法: N'字符串' 解释: 意思为后面的数据类型为NChar或者NVarchar 使用N前缀 在服务器上执行的代码中(例如在存储过程和触发器中)显示的Unicode字符串常量必须以大写字母N为前 ...

  5. springboot_4 spring boot 使用servlet,filter,listener和interceptor

    上一篇我们学习了 spring boot 利用Controller响应数据与响应页面. 一般的Web开发使用 Controller 基本上可以完成大部分需求,但是有的时候我们还是会用到 Servlet ...

  6. 你不知道的JSON.stringify知识点

    1. 定义 stringify 函数的定义: JSON.stringify(value [, replacer [, space]]) 参数: value : 将要转为JSON字符串的javascri ...

  7. python 复制列表

    python的变量仅仅是指向对象的标签,所以在操作列表的时候,list1 = list2这种做法只会复制一个标签,然后指向对象,并非生成一个新的对象. 大致有5中方法可以复制列表: a = [1,2, ...

  8. TCP与UDP协议必知必会

    TCP协议 一个工作在传输层的传输控制协议,面向连接.可靠的流式协议,HTTP协议建立在TCP基础上.每个TCP报文,实际在网络层进行封装成IP数据报,会进行IP分片(受限于MTU). 头部(20字节 ...

  9. Spring Boot 揭秘与实战之RabbitMQ

    Spring Boot 整合 RabbitMQ Spring Boot 整合 RabbitMQ 是非常容易,只需要两个步骤. 首先,在 pom.xml 中增加 RabbitMQ 依赖. <dep ...

  10. python之匿名函数、递归与二分法

    一.匿名函数 什么是匿名函数? 顾名思义就是没有名字的函数,在我们声明一个函数时会想起个什么函数名好,这个问题我想有时候会困惑大家的吧?   def func(): #正常函数声明 pass prin ...