学习操作系统原理最好的方法是自己写一个简单的操作系统。
之前讲解开发环境时并没有介绍具体的安装过程,有网友反应CentOS的安装配置有问题,尤其是共享文件夹。本讲我们就来补充介绍一下在VirtualBox中安装配置CentOS的具体过程,彻底解决GrapeOS开发环境问题。
1.在VirtulBox中点击新建按钮。

2.名称和文件夹都可以自己定,我这里名称填写为CentOS7,类型选Linux,版本选Red Had (64-bit)。点击“下一步”按钮。

3.内存大小就填写默认的1024MB,够用了。如果不够用后面也可以改。点击“下一步”按钮。

4.虚拟硬盘选默认的“现在创建虚拟硬盘”。点击“创建”按钮。

5.虚拟硬盘文件类型选默认的VDI。点击“下一步”按钮。

6.存储在物理硬盘上选默认的“动态分配”。点击“下一步”按钮。

7.文件位置就用默认的。文件大小也用默认的8GB,对本教程来说够用了。点击“创建”按钮。

8.一台虚拟裸机就配好了,具体配置如下截图:

裸机配好了,下面我们就该装操作系统了。鼠标点击虚拟光驱,选择虚拟盘。选择我们之前已经下载好的CentOS安装文件CentOS-7-x86_64-Minimal-2009.iso,iso文件相当于虚拟光盘。

点击绿色的启动按钮,启动虚拟机。

启动后会显示一个安装选项,可以用键盘上下键选择,选第一项或第二项都可以,同时停止倒计时。如果不做选择的话,倒计时结束会自动安装。

倒计时时间比较长,我这里选默认的第二项,然后回车。需要注意的是如果你第一次使用会发现鼠标进去虚拟机里出不来,此时按一下键盘上的右Ctrl键鼠标就出来了。

过一会儿会出现图形安装界面,语言选中文:

点击“安装位置”:

单击本地标准磁盘下的磁盘图标2次,然后点击“完成”按钮:

点击“开始安装”:

安装过程大概5分钟:

安装完需要设置一下root密码,点击“ROOT密码”:

设置好密码点击“完成按钮”:

继续点击“完成配置”按钮:

稍等片刻:

安装过程结束,点击“重启”按钮即可启动安装好的CentOS,同时虚拟机会自动弹出虚拟安装光盘,防止重新从光盘启动。

登录:

虽然网络服务已经开机自动启动,但此时并不能上网:

原因是网卡没有启动,下面我们来启动网卡。修改文件/etc/sysconfig/netwrok-scripts/ifcfg-enp0s3

只要把最后一行“ONBOOT=no”改成“ONBOOT=yes”即可。


重启网络服务就可以ping通百度了:

此时CentOS虚拟机已经可以访问外网了,但是和宿主机Windows之间还不能相互通信,需要再加一个网卡才行,下面我们就来配置。
用poweroff命令关闭CentOS虚拟机:

在VirtualBox管理器中点击“网络”:

弹出网络设置窗口:

点击选项卡“网卡2”:

勾选“启用网络连接”,连接方式选“仅主机(Host-Only)网络”,界面名称选默认的“VirtualBox Host-Only Ethernet Adapter”。

点击“OK”按钮,在VirtualBox管理器中可以看到多个一个网卡2:

启动并登录CentOS虚拟机,通过ip a命令可以看到此时多了一个enp0s8的网卡。此时该网卡上的IP地址是动态分配的,每次启动都有可能不同。

为了方便使用,我们需要设置静态IP,下面就来设置。
新建并编辑文件/etc/sysconfig/netwrok-scripts/ifcfg-enp0s8

在ifcfg-enp0s8中输入如下内容:
TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.56.2
NETMASK=255.255.255.0
GATEWAY=192.168.56.1
DNS1=114.114.114.114

关于网关地址和网络掩码可以通过如下方式查看到。
在VirtualBox管理器菜单中点击“管理”->“主机网络管理器”:

可以看到默认有一个网络适配器“VirtualBox Host-Only Ethernet Adapter”,如果没有可以点击“创建”按钮创建一个。

点击“属性”按钮就可以看到网关地址和网络掩码了。

保存好ifcfg-enp0s8文件,然后通过reboot 命令重启CentOS虚拟机。

可以看到我们设置的静态IP生效了:

此后我们就可以方便的通过SSH从PowerShell登录到CentOS虚拟机了。
Windows键+R键打开运行小窗口,输入“powershell”:

通过SSH登录:

设置共享文件夹前必须先安装增强功能,下面我们来安装。
首先需要安装几个前置软件:
yum install -y kernel-devel-$(uname -r) bzip2 gcc make perl

前置软件安装完毕:

在CentOS虚拟机窗口的菜单栏中点击“设备”->“安装增强功能”

点击之后的作用就是VirtualBox将自带的增强功能iso光盘文件放入到CentOS虚拟机的虚拟光驱中。

挂载后就可以看到光盘中的内容,我们要运行的是“VBoxLinuxAdditions.run”这个文件。

大约一分钟增强功能安装完毕:

首先在CentOS虚拟机中创建共享文件夹/media/VMShare

在VirtualBox管理器中点击“共享文件夹”:

点击“添加共享文件夹”

然后填写相应的内容并点击“OK”按钮:

再点击“OK”按钮:

可以看到共享文件夹数量为1:

此时在PowerShell中再查看文件夹/media/VMShare,已经能看到共享的内容了:

如果看不到共享的内容,重启一下CentOS虚拟机就能了。
共享文件夹设置完毕。
视频版地址:https://www.bilibili.com/video/BV1nX4y1r7U4/
配套的代码和资料:https://gitee.com/jackchengyujia/grapeos-course
GrapeOS操作系统QQ群:643474045
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"
是否有self验证的问题列表。看着那个,我可以确定我知道。我应该复习一下。在学习的过程中,我列了一个这样的list,但它只包含我在某处听说过的项目。我需要一段时间才能找到新的东西。 最佳答案 以下是针对ruby和Rails的一些测试列表。证书名称:RubyonRails谁提供:oDeskIncorporation认证费用:免费网站:https://www.odesk.com/tests/985?pos=0证书名称:RubyonRails提供者:Techgig.com(TimesBusinessSolutionsLimited(T
我是mac的新手,尝试bundleinstall一个克隆的railsrepo。我在安装libv8gem时遇到错误,google并找到了解决方案并做了brewinstalllibv8geminstalllibv8----with-system-v8接下来我中了thyreracergem,完整trace如下Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./Users/anand/.rvm/rubies/
我正在尝试消除使用Bootstrap3的Rails4元素中的glyphicon错误。我没有使用任何Bootstrapgem将其添加到Assets管道中。我手动将bootstrap.css和bootstrap.js添加到各自的app/assets目录下,分别添加到application.css和application.js什么的我现在在网络浏览器的控制台中看到以下内容:GEThttp://localhost:3000/fonts/glyphicons-halflings-regular.woff404(NotFound)localhost/:1GEThttp://localhost:30
我想通过控制台手动创建一个用户:User.find_or_create_by(email:"user@mail.com",first_name:"Stan",last_name:"Smith",password:"password",password_confirmation:"password",confirmed_at:Time.now)我在过去的项目中多次这样做,但这次没有用。它没有获取Devise密码模型属性,所以这是我得到的错误:PG::UndefinedColumn:ERROR:columnusers.passworddoesnotexist我有Rails4.1.4和Dev
我刚刚使用以下命令在我的机器上安装了rvmbash在我的终端里得到了这个InstallationofRVMto/home/rahul/.rvm/iscomplete.当我转到/home/rahul/.rvm/时,我能够看到所有必要的文件夹,但是当我在终端中输入rvm命令时,出现此错误rvm--versionNocommand'rvm'found,butthereare19similaronesrvm:commandnotfound我该如何解决?编辑我还在我的bashrc中添加了以下几行if[[-n"$PS1"]];thenif[[-s$HOME/.rvm/scripts/rvm]];t