• JOS环境搭建


    想写一个OS很久了,今天开始正式动工了!!
    大家都知道操作系统是计算机科学中十分重要的一门基础学科。但是以前在学习这门课时,仅仅只是把目光停留在课本上一些关于操作系统概念上的叙述,并不能对操作系统有着深层次的理解。毕竟实践出真理。 MIT的操作系统课程6.828是一门被广泛好评的入门课程。它最重要的特点就是它实践第一的教学原则。在这门课程中会涉及到非常丰富的实验,也会有非常多的动手机会。而且授课者更是亲自构建了一个简化的基于Unix内核的操作系统xv6。所有的实验都是在这个操作系统上完成。虽然它功能很简单,但是它能够帮助我们真正的了解操作系统在做什么。 这一系列博文就是用来记录我学习JOS的过程的!

    废话不多说。

    在开始做lab之前的第一件事当然是搭建开发环境了。
    本文就来简单说明一下开发环境的搭建过程。

    我是采用Parallels Desktop来运行linux ubuntu 12.04。开发环境也都是在这个上面搭建的。

    首先我们需要安装git和QEMU,用以下命令就可以安装QEMU

     $ sudo apt-get install git
     $ git clone git://git.qemu-project.org/qemu.git
     Cloning into 'qemu'...
     remote: Counting objects: 131834, done.
     remote: Compressing objects: 100% (29320/29320), done.
     remote: Total 131834 (delta 104345), reused 129302 (delta 102090)
     Receiving objects: 100% (131834/131834), 45.42 MiB | 300 KiB/s, done.
     Resolving deltas: 100% (104345/104345), done.
     Checking out files: 100% (2849/2849), done.
     $ cd qemu/
     $ ./configure
     $ make
     $ sudo make install
    

    这中间会出现很多问题,下面大致说一下
    在运行./configure时,会出现缺少一些程序的问题,显示如下

    Error: zlib check failed
    Make sure to have the zlib libs and headers installed.

    其实需要安装的远不止上面的显示信息。
    下面大致罗列一些需要安装的软件和相应解决的命令

      c++ compiler: sudo apt-get install g++
      libtool : sudo apt-get install libtool
      glib: sudo apt-get install libglib2.0-dev
      pixman: sudo apt-get install libpixman-1-dev  
      zlib: sudo apt-get intall zlib1g-dev
      
    dtc:
    git submodule update --init dtc
    cd dtc
    git fetch origin #
    git rebase origin/master
    make
    这中间有一个先后顺序,记得不要搞混
    到这里运行./configure就可以成功显示一些配置信息,接下来,make一下就可以了。虽然这个过程有点点长、

    编译完成后运行sudo make install ,此时qemu就已经安装上了。

    接下来就是将xv6在qemu上运行起来了。

    git clone https://github.com/fatsheepzzq/6.828mit.git
    cd lab
    make

    这样xv6就开始编译了。我们可以看一下它生成的最后一个信息 mk obj/kern/kernel.img,这个kernel.img就是内核映像文件,另外obj目录在make之前是没有的,它是make指令生成的,它里面将会有许多的文件我们之后会重点观察。

    最后运行make qemu,此时qemu就开始自动加载我们的操作系统内核映像文件了。

    本章完结

  • 相关阅读:
    HDU-3065-病毒侵袭持续中(AC自动机)
    HDU-2896-病毒侵袭(AC自动机)
    HDU
    Codeforces Round #591 (Div. 2, based on Technocup 2020 Elimination Round 1) D. Sequence Sorting
    Codeforces Round #591 (Div. 2, based on Technocup 2020 Elimination Round 1) B. Strings Equalization
    Codeforces Round #591 (Div. 2, based on Technocup 2020 Elimination Round 1) C. Save the Nature
    Codeforces Round #591 (Div. 2, based on Technocup 2020 Elimination Round 1) A. CME
    Codeforces Round #586 (Div. 1 + Div. 2) E. Tourism
    Codeforces Round #586 (Div. 1 + Div. 2) D. Alex and Julian
    jsp内置对象
  • 原文地址:https://www.cnblogs.com/zhousysu/p/5503857.html
Copyright © 2020-2023  润新知