搭建Linux虚拟机并编写简单程序

引言
  本篇文章基于教程目的,主要描述Linux的发展历程以及Linux虚拟机搭建、运行方式。

正文

  现在越来越多IT行业公司要求熟练使用Linux平台下的编程技术,因为目前大部分主机使用Linux相关系统(Linux称为内核更确切一些),并且逐年增加。造成这种现象的主要原因是:

    免费、开源:

      大多数服务器系统采用闭源形式或需要购买许可证,一般由官方团队维护,在特定情况下(比如需要系统增加某个硬件的支持)需要花费大量金钱提供技术支持、购买许可证或由官方团队开发,在这种条件下,产品的利润变得极低甚至不够开发成本。

     Linux内核采用GPL3.0协议,完全开源并允许修改内核源码,使用Linux内核的相关系统基本不会出现开发成本过高的问题,通常情况下产品商聘请Linux工程师来开发属于自己的产品支持,并且不用担心许可证问题。

    稳定、高效、可重复利用:

      Linux内核在成千上万编程爱好者经过数十年的努力下,变得非常健壮。内核由Linus(Linux内核创造者)亲自设计及指导,避免了杂乱而多余的代码垃圾,效率方面屈指可数。

      Linux内核采用抽象方式设计大部分内核结构,编写过的内核项目经过简单修改便可在新的项目上使用。

    安全性高:

      基于Linux内核的相关系统,较少出现系统漏洞等情况,Linux用户权限十分严格,一般情况不允使用Root权限运行linux(大部分公司内部规定)。

      Linux程序编译也有明文规范,为了避免gcc编译器记录下root级别隐藏信息(使用root权限编译过的项目留下的记录,对于之后编译这个项目存在一些影响),不允许使用root权限编译程序,程序执行及安装允许使用root级别权限。

    在上文中,我们了解了Linux的潜在优势,接下来我们去了解Linux的发展历程以及搭建Linux虚拟机(基于VMware)。

  一. linux介绍:

    上世纪八十年代,Unix开始向商业化方向发展,大部分学生由于支付不起昂贵的授权费用,不得不停止相关的研究。1987年,荷兰有一位大学教授编写了一个类Unix的应用系统并命名为Minix,用于教学使用。Linus Torvalds起初接触Minix是为了学术研究,接触一段时间发现Minix一些设计观念与自己的理解存在一些差异,但是他不能轻易修改和发布该系统的源码(由于Minix的许可证等问题)。

    1991年,Linux Torvalds为当时新推出使用Intel 80386微处理器的计算机开发了一款全新的操作系统,并命名为Linux。

    期初,Linux只是在自编写的内核中植入gcc编译器和Shell。由于Linux完全遵循GPL协议主题,发布到互联网后得到强烈的反响,很快吸引了众多开发者、黑客对其代码进行修改和维护。

    Linux内核从发布到现在经历了4个大版本以及众多小版本更新,linux发行版也从Slackware最初发布到后来的Debian、RedHat、Fedora、Ubuntu、LinuxMint等等。


  二. 虚拟机介绍:

    虚拟机采用虚拟化技术实现,在真实系统中通过虚拟机软件模拟的具有完整硬件功能、并运行在独立(隔离)环境的计算机系统。

    虚拟机通过虚拟机软件所在的系统中捕获到硬件触发信号,经过相关处理并模拟出底层的硬件触发指令,从效率来讲,虚拟机运行速度远低于真实系统。

    当然,虚拟机也有许多优点:

      1. 虚拟机软件可以同时启动多个虚拟机。模拟多台机器通讯(mac地址认证除外)可以采用这种方式。

      2. 使用虚拟机模拟服务器测试。比如从真实系统向虚拟机服务器发送数据并调试。

      3. 确认下载的程序是否安全。从网络中下载的执行程序可以放入虚拟机中运行,确认是否损害系统。

      4. 编写短期的跨平台项目。我们的真实系统是Windows,但需要在Linux相关系统下编写或调试执行程序,仅仅为此安装真实Linux相关系统稍有浪费,使用虚拟机是个不错选择。

      5. 虚拟机拥有较高的移植性。比如在学校或公司的电脑上安装虚拟机,可通过移动硬盘移植入个人电脑使用或在移动硬盘中直接使用。


  三. 安装虚拟机软件(VMware):

    目前主流的虚拟机软件有VMware、Virtual Box和Virtual PC,作者接触VMware较多一些,这里采用VMware系列作为示例。

    VMware12下载地址

      https://pan.baidu.com/s/1HXjnbsz7lJxhpV35O_9H-Q
      密码:9tm5
      说明:这个工具如果需要注册码请购买正版注册码,或百度搜索“VMware12注册码”。也可以从其他网站下载VMware12或更高的版本使用。

    VMware12安装

      这是VMware12安装向导界面,点击下一步(N),参考图1。
图1(VMware12安装向导界面)

图1(VMware12安装向导界面)

    选中“我接受许可协议中的条款(A)”,然后点击下一步(N),参考图2。
图2(VMware12协议条款界面)

图2(VMware12协议条款界面)

    这里可以修改安装路径和选中“增强型键盘驱动程序”,然后点击下一步(N),参考图3。
图3(VMware12自定义安装界面)

图3(VMware12自定义安装界面)

    这里有“启动时检查产品更新©”和“帮助完善VMware Workstation Pro(H)”选项,在这里我们可以取消这两项勾选,然后点击下一步(N),参考图4。
图4(VMware12用户体验设置界面)

图4(VMware12用户体验设置界面)

    这里有“桌面(D)”和“开始菜单程序文件夹(S)”选项,全部打勾,然后点击下一步(N),参考图5。
图5(VMware12快捷方式选择界面)

图5(VMware12快捷方式选择界面)

    点击安装(I),VMware12安装开始,参考图6。
图6(VMware12准备安装界面)

图6(VMware12准备安装界面)

    VMware已经安装完成,这里有“许可证(L)”和“完成(F)”选项,VMware12使用许可证注册后可以永久使用,拥有许可证的情况下选择“许可证选项”,未拥有许可证的情况下可使用百度搜索“VMware12许可证”获取到有效许可证或选择“完成(F)选项”,参考图7。
图7(VMware12安装完成界面)

图7(VMware12安装完成界面)

  四. 搭建虚拟机:

    本小节介绍虚拟机搭建,首先下载Ubuntu系统,这里推荐14.06桌面版。

    Ubuntu14.06下载地址:

      http://mirrors.neusoft.edu.cn/ubuntu-releases/14.04.6/ubuntu-14.04.6-desktop-amd64.iso
      VMware软件对Ubuntu14.XX系列的支持比较完善,其中包括真实系统与虚拟机双向传输功能(比如真实系统向虚拟机内传输文件)。

    Ubuntu官方下载网址:
      http://mirrors.neusoft.edu.cn/ubuntu-releases/
在这里可以看到Ubuntu大部分发布版本下载地址。

    下面开始搭建虚拟机:

      点击左上角“文件(F)”——> “新建虚拟机(N)”——> “典型安装(推荐)(T)”,然后点击下一步(N),参考图8。
图8(VMWare12新建虚拟机向导界面)

图8(VMWare12新建虚拟机向导界面)

     选择“安装程序光盘映像文件(iso)(M):”,然后点击“浏览®…”在这里找到我们下载的ubuntu系统文件,然后点击下一步(N),参考图9。
图9(VMware12安装客户端操作系统界面)

图9(VMware12安装客户端操作系统界面)

      参考图10,在这里设置我们的ubuntu信息用来登录使用:

        全名(F): ubuntu名称(允许任意起名),示例使用linux。
        用户名(U):登录账户(允许任意起名),示例使用linux。
        密码§:用户登录密码。
        确认©:再次属于用户登录密码。

        特别说明:这些输入项允许重复,比如全名与用户名允许相同。

      点击下一步(N)。
图10(VMware12新建虚拟机向导界面)

图10(VMware12新建虚拟机向导界面)

      “虚拟机名称”用来标记当前虚拟机的标志,允许任意输入,示例使用Ubuntu1404_64更容易分辨出这个虚拟机属于64位Ubuntu系统、14.04版本。“位置”选择为我们安装虚拟机的位置,记住安装位置可以方便移动这个虚拟机(比如拷贝虚拟机文件夹到移动硬盘上启动),点击下一步(N),参考图11。
图11(VMware12命名虚拟机界面)

图11(VMware12命名虚拟机界面)

      参考图12,这里可以设置磁盘大小,默认为20GB,我们使用默认值即可。再往下可以看到两个选项:

        1. 将虚拟磁盘存储为单个文件(O):
这种存储模式可以保持较高的磁盘读写速度,因为不需要多个文件之间频繁跳转读写,所以性能方面更优越。
        2. 将虚拟磁盘拆分成多个文件(M):
这种存储模式将虚拟磁盘拆分为多个小于4G的文件,更方便移植到新的设备上。

        本示例考虑移植到移动硬盘或别的电脑上,选择“将虚拟磁盘拆分成多个文件(M)”。然后点击下一步(N)。
图12(VMware12指定磁盘容量界面)

图12(VMware12指定磁盘容量界面)

      在编辑框中我们可以看到虚拟机相关信息,点击自定义硬件©,参考图13。
图13(VMware12准备就绪界面)

图13(VMware12准备就绪界面)

      参考图14,这里可以配置内存、处理器等信息,我们采用默认值即可(实现工作中会根据项目需要进行配置,比如处理器数量改为2,内存改为2048MB或更高),点击关闭回到“VMware12准备就绪界面”,然后点击完成,虚拟机开始安装,安装完成后就可以进入我们的Ubuntu系统啦!
图14(VMware12硬件选择界面)

图14(VMware12硬件选择界面)

  五. 在Ubuntu系统中使用终端:

    Linux相关系统和Windows系统差异之处不仅仅体现在实现方面,操作方面也模棱两可。初入Linux相关系统时会表现出诸多不适,主要体现在界面风格、终端使用以及程序编写。

    本小节讲述终端在Ubuntu中的用法,让我们慢慢走近Linux世界:

       在应用程序搜索中输入“terminal”出现三个终端,最左侧是Ubuntu默认终端,点击(不松开)“Terminnal”拉入左侧任务栏,我们使用这个来操作命令行,参考图15。
图15(Ubuntu应用搜索界面)

图15(Ubuntu应用搜索界面)

      参考图16,左键点击“Terminnal”进入终端界面,输入第一条指令“uname -a”,可以看到系统相关信息。然后输入指令“ls”,可以看到home路径当前的文件夹和文件。

      在终端中使用指令还是比较简单的,难点在于需要掌握大量指令用法,比如想要在home路径下创建“works”文件夹保存我们编写的项目,在不知道指令的情况下,会觉得非常困难。作者在这里向大家推荐一本书<Linux命令行与shell脚本编程大全>,这是一本权威著作,阅读这本书后基本会使用常见指令。当然,阅读这本书需要对计算机系统有一定了解,入门和初学者不建议阅读这本书。
图16(Ubuntu主界面)

图16(Ubuntu主界面)

      下面开始创建“works”文件夹,作为Ubuntu中项目保存使用:

        参考图17,我们在终端中输入“mkdir works”,然后打开文件夹可以看到在home下创建了works文件夹,到这里我们基本熟悉了命令行的使用方法。
图17(Ubuntu Home界面)

图17(Ubuntu Home界面)

  六. Ubuntu编译器介绍:

    Ubuntu系统下编译器主要分为两大部分,这里讲述最常用的文本编译器和IDE工具:

    1. 文件编译器
      Vim:
        Vim是一个功能强大、高度可定制的文本编译器,它的前身是Vi文本编译器。在Unix及类Unix系统中(比如Linux)Vi是最常用的编译器之一,由于脱离了鼠标操作,完全使用键盘命令进行编译,使得入门变得非常艰难。
        使用Vim文本编译器需要记住很多按键组合和命令,当克服这些困难之后,使用Vim文本编译器编写代码会有另外一种体验,这也是高手对Vim颇有偏爱的原因。

      2. IDE工具
        Ubuntu系统下C、C++常用的IDE工具有:Visual Studio Code、Eclipse、Qt creator,相比之下Visual Studio Code更灵活一些,它支持当前大部分编程语言、Markdown语法以及方便的文件搜索功能,也适用于单个文件的编写。

      Ubuntu系统下使用文本编译器编写的程序文件需要手动调用gcc或g++编译成可执行文件,然后运行程序,而IDE工具经由我们指定gcc或g++编译器后,不需要手动调用gcc或g++编译成可执行文件和运行程序。

  七. 使用记事本简单的项目(Hello World):

    在这里我们使用gcc编译器编译、执行我们的第一个linux程序。

      参考图18,进入works文件,在文件夹空白部分右键,选择“New Document”——>“Empty Document”,然后修改文件名为“test.c”。
图18(Ubuntu创建空文档界面)

图18(Ubuntu创建空文档界面)

      参考图19,我们在文本中写了“Hello World”执行程序,程序代码:

      #include <stdio.h>
      int main()
      {
          printf(“Hello World!\n”);
          return 0;
      }
图19(Ubuntu代码编写界面)

图19(Ubuntu代码编写界面)

  八. 使用gcc编译简单的项目(Hello World):

    打开终端,输入“cd works/”进入到works文件夹,下面开始编译程序:

      在终端中输入“gcc -o test test.c”,参考图20,gcc编译器编译出test可执行文件。
图20(Ubuntu程序编译界面)

图20(Ubuntu程序编译界面)

      参考图21,在终端中输入“./test”,程序执行成功并打印出Hello World!
图21(Ubuntu程序执行界面)

图21(Ubuntu程序执行界面)

    对于简单工程,直接使用gcc编译和执行程序比较简单,面对拥有多个源码文件的工程时,使用IDE工具更适合一些。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__0809 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值