一、写在最前面

在这里强烈推荐之前学长写得一篇文章,给我帮助很大,里面的内容也比我的这篇文章详细很多

链接放在这里

山东大学操作系统实验

我这篇文章主要提供一些最基础的操作说明,虚拟机下载等,主要是我自己遇到的一些问题

二、下载虚拟机并安装Ubuntu

操作系统实验使用的是Linux环境,首先需要在我们的电脑上安装虚拟机,之后再在虚拟机上安装Linux(Ubuntu版)操作系统

虚拟机我使用的是VMware Workstation 16.1.1
百度网盘链接放在这里:

链接:https://pan.baidu.com/s/1-0VeUG-fhiEFfF_NrmMOxQ
提取码:0m0z

使用需要密钥,各个版本的密钥的百度网盘链接放在这里:

链接:https://pan.baidu.com/s/1KfRDnDMxbPqatd8X80i-uw
提取码:t9xe

具体的虚拟机安装操作可以参照这篇博客或者b站上的一个教程,虽然版本不同,但是安装的基本步骤是一样的(链接附在下面)

https://blog.csdn.net/u013142781/article/details/50529030

b站上的Linux教程(附安装虚拟机内容)

https://www.bilibili.com/video/BV1Li4y1V7pG

安装完虚拟机之后要在虚拟机上安装Ubuntu
Ubuntu的具体镜像文件(.iso文件),在上面那篇文章的链接里有,大家可以上官网下载

三、Linux中下载gcc

由于操作系统实验要用C和C++写(前面几个实验用C语言,后面的用C++)

网上说有两种方法,但在我的机子上只有一种行得通
打开命令行敲就可以了

sudo apt-get  install  build-essential

另一种方法(我的机子上不行,其它的机子可能行)

sudo apt-get  build-dep  gcc

安装之后使用以下命令查看gcc的版本

gcc --version

输出如下
在这里插入图片描述

四、下载 Code::blocks

下载完Code::blocks之后就可以不用在记事本(vi编辑器)里敲程序了,会方便很多

在dos窗口中敲三行命令完成下载安装

第一步

sudo add-apt-repository ppa:damien-moore/codeblocks-stable

第二步

sudo apt-get update

第三步

sudo apt-get install codeblocks

安装后在系统软件上会出现Code::blocks的图标,打开后就可以使用了

在这里插入图片描述
打开code::blocks点击create a new project就可以写代码了
在这里插入图片描述

五、一个fork系统调用示例

全部安装完之后可以写一个小的程序测试一下

在code::block里写一个C程序,使用系统调用fork

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int staticNum = 0;
int main()
{
    pid_t pid;
    pid = fork();
    printf(staticNum);
    if(pid < 0)
    {
        printf("error");
        exit(-1);
    }
    else if(pid == 0)
    {
        staticNum += 5;
        printf("child staticNum = %d",staticNum);
        printf("\n");
        printf("child\n");
        execlp("/bin/ls","ls",NULL);
    }
    else if(pid > 0)
    {
        printf("staticNum = %d",staticNum);
        printf("\n");
        wait(NULL);
        printf("Child Complete!\n");
        printf("***staticNum*** = %d",staticNum);
        printf("\n");
        exit(0);
    }
}

输出结果如下
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐