Linux操作系统7:文件系统及磁盘管理(二)

简介: Linux操作系统7:文件系统及磁盘管理(二)

写在最前面

原文发布时间:2022/11/13 12:23:04

由于质量分过低,因此进行完善更新

原文

一、实验目的

掌握Linux ubuntu系统软件包安装方法

掌握用make进行编译的方法和技能

二、实验内容

练习Linux Ubuntu系统中软件包的安装方法

在Linux系统下用make进行源码编译。

1.查看系统是否安装vim,若有,则先卸载该软件,然后重新安装vim(注意update)。

2.利用vim编写如下c语言程序:一个main.c代码完成两个数字的输入及四个子程序:add.c、subtract.c, multiply.c 和 divide.c的调用。其中,这四个子程序分别完成对main.c中输入数字的加、减、乘、除运算。完成源码文件的编写后,编写makefile文件描述各源码文件间的依赖关系及最终生成可执行文件main的编译规则。通过make工具将源码编译生成可执行文件main,并运行main文件。

根据实验练习1和2完成实验报告。

三、实验结果

我们发现,需要安装vim。因此我们先进入root模式,安装vim。

因为虚拟机不是最新的,所以安装失败了。所以,我们在安装之前先更新。

这样就是更新成功了,我们再次进行vim的安装。

下载成功后,可以在图形界面看到vim图标。并且,可以通过版本查看是否安装。

进入vim界面后,按i进入编辑模式(可以看到,左下角有INSERT)

写完之后,按esc :wq

先下载gcc

完善

分为两个部分来完成这次实验。

实验一:Linux软件包安装

实验目的

  • 掌握Linux Ubuntu系统软件包的安装方法。

实验内容

步骤1:检查并重新安装vim

首先,我们将检查系统是否安装了vim编辑器。如果已安装,我们将卸载它,然后重新安装。这将有助于熟悉软件包的安装和卸载过程。

  1. 打开终端,检查是否已安装vim
vim --version
  1. 如果vim已经安装,将显示VIM - Vi IMproved以及相关信息。
  2. 如果vim已安装,卸载它:
sudo apt remove vim
  1. 输入管理员密码确认卸载。
  2. 现在重新安装vim
sudo apt update
sudo apt install vim
  1. 这将更新软件包信息并重新安装vim

现在,我们已经重新安装了vim,接下来,我们将进行第二部分的实验。

实验二:使用make进行源码编译

实验目的

  • 掌握使用make进行源码编译的方法和技能。

实验内容

步骤1:编写C语言程序

在这一部分,我们将使用vim编辑器编写一个简单的C语言程序。这个程序将包括一个main.c文件,以及四个子程序:add.csubtract.cmultiply.cdivide.cmain.c将接收两个数字的输入,并调用这四个子程序完成加法、减法、乘法和除法运算。

// main.c
#include <stdio.h>
#include "add.h"
#include "subtract.h"
#include "multiply.h"
#include "divide.h"
int main() {
    double num1, num2;
    printf("Enter two numbers: ");
    scanf("%lf %lf", &num1, &num2);
    printf("Sum: %lf\n", add(num1, num2));
    printf("Difference: %lf\n", subtract(num1, num2));
    printf("Product: %lf\n", multiply(num1, num2));
    printf("Quotient: %lf\n", divide(num1, num2));
    return 0;
}
步骤2:编写makefile文件

为了使用make工具编译这些源码文件,我们需要编写一个makefile文件,描述各源码文件之间的依赖关系和最终生成可执行文件main的编译规则。

# makefile
CC = gcc
CFLAGS = -Wall
all: main
main: main.o add.o subtract.o multiply.o divide.o
  $(CC) $(CFLAGS) -o main main.o add.o subtract.o multiply.o divide.o
main.o: main.c
  $(CC) $(CFLAGS) -c main.c
add.o: add.c
  $(CC) $(CFLAGS) -c add.c
subtract.o: subtract.c
  $(CC) $(CFLAGS) -c subtract.c
multiply.o: multiply.c
  $(CC) $(CFLAGS) -c multiply.c
divide.o: divide.c
  $(CC) $(CFLAGS) -c divide.c
clean:
  rm -f main main.o add.o subtract.o multiply.o divide.o

这个makefile文件指定了各个源码文件之间的依赖关系,以及如何编译它们并生成可执行文件main

步骤3:使用make编译源码

现在,我们可以使用make工具编译这些源码文件并生成可执行文件main。在终端中,进入源码文件所在的目录,并运行以下命令:

make

make将按照makefile文件中定义的规则进行编译。

步骤4:运行可执行文件

编译成功后,你可以运行生成的可执行文件main

./main

然后输入两个数字,并得到它们的加法、减法、乘法和除法运算结果。

实验报告

本次实验我们完成了两个主要目标。首先,我们掌握了Linux Ubuntu系统中软件包的安装方法,包括安装和卸载软件包。其次,我们学习了如何使用make进行源码编译,包括编写makefile文件,定义依赖关系和编译规则,以及使用make工具编译源码文件。

通过这次实验,我们深入了解了Linux操作系统的一些高级主题,包括软件包管理和源码编译。这些技能对于Linux系统管理和开发非常重要。

希望本次实验对你的Linux学习之路有所帮助。

目录
相关文章
|
17天前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
43 1
|
18天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
19天前
|
搜索推荐 Linux
深入理解Linux操作系统的启动过程
本文旨在揭示Linux操作系统从开机到完全启动的神秘面纱,通过逐步解析BIOS、引导加载程序、内核初始化等关键步骤,帮助读者建立对Linux启动流程的清晰认识。我们将探讨如何自定义和优化这一过程,以实现更高效、更稳定的系统运行。
|
17天前
|
存储 缓存 网络协议
Linux操作系统的内核优化与性能调优####
本文深入探讨了Linux操作系统内核的优化策略与性能调优方法,旨在为系统管理员和高级用户提供一套实用的指南。通过分析内核参数调整、文件系统选择、内存管理及网络配置等关键方面,本文揭示了如何有效提升Linux系统的稳定性和运行效率。不同于常规摘要仅概述内容的做法,本摘要直接指出文章的核心价值——提供具体可行的优化措施,助力读者实现系统性能的飞跃。 ####
|
18天前
|
缓存 监控 网络协议
Linux操作系统的内核优化与实践####
本文旨在探讨Linux操作系统内核的优化策略与实际应用案例,深入分析内核参数调优、编译选项配置及实时性能监控的方法。通过具体实例讲解如何根据不同应用场景调整内核设置,以提升系统性能和稳定性,为系统管理员和技术爱好者提供实用的优化指南。 ####
|
1月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
59 0
Vanilla OS:下一代安全 Linux 发行版
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
59 4
|
1月前
|
人工智能 安全 Linux
|
2月前
|
Unix 物联网 大数据
操作系统的演化与比较:从Unix到Linux
本文将探讨操作系统的历史发展,重点关注Unix和Linux两个主要的操作系统分支。通过分析它们的起源、设计哲学、技术特点以及在现代计算中的影响,我们可以更好地理解操作系统在计算机科学中的核心地位及其未来发展趋势。
|
4月前
|
编解码 安全 Linux
基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究
这段内容讲述了国产操作系统背景下,大牛直播SDK针对国产操作系统与Linux平台发布的RTMP/RTSP直播播放SDK。此SDK支持arm64架构,基于X协议输出视频,采用PulseAudio和Alsa Lib处理音频,具备实时静音、快照、缓冲时间设定等功能,并支持H.265编码格式。此外,提供了示例代码展示如何实现多实例播放器的创建与管理,包括窗口布局调整、事件监听、视频分辨率变化和实时快照回调等关键功能。这一技术实现有助于提高直播服务的稳定性和响应速度,适应国产操作系统在各行业中的应用需求。
141 3