马哥教育74期Linux云计算SRE-第03周作业

N74072-北京-岳帅

1. 尝试基于gcc命令说明 c语言编译过程。

答:C语言的程序编译主要经过四个过程:C程序源代码-->预处理-->编译-->汇编-->链接

预处理:将所有的#define删除,并且展开所有的宏定义;处理所有的条件预编译指令,比如#if #ifdef #elif #else #endif等;处理#include预编译指令,将被包含的文件插入到该预编译指令的位置;删除所有注释"//"和"/**/";添加行号和文件标识,以便编译时产生调试用的行号及编译错误警告行号;保留所有的#pragma编译指令,因为编译器需要使用它们

编译:编译过程就是把预处理完的文件进行一系列的词法分析,语法分析,语义分析及优化后,最后生成向相应的汇编代码

汇编:汇编器是将汇编代码转变成机器可以执行的命令,每一个汇编语句几乎都对应一条机器指令。汇编相对于编译过程比较简单,根据汇编指令和机器指令的对照表一一翻译即可

链接:通过调用链接器id来链接程序运行需要的一大堆目标文件,以及所依赖的其它库文件,最后生成可执行文件

2. 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt

答:rpm包管理:安装不自动解决依赖关系,比较麻烦,所以主推荐使用查询功能

CentOS使用yum,dnf解决rpm的包依赖关系

yum:Yellowdog Update Modifier,rpm包管理器的前端程序,通用性强,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具,CentOS8用dnf代替了yum,不过保留了和yum的兼容性,配置也是通用的;yum服务器存放rpm包和相关包的元数据库,yum客户端访问yum服务器进行安装或查询等

dnf:Fedora18+rpm包管理器前端管理工具,CentOS8版代替yum

apt:Advanced Packaging Tool,Ubuntu系统使用,deb包管理器前端工具,功能强大的软件管理工具,甚至可升级整个Ubuntu的系统,基于客户/服务器架构,类似于yum

3. 总结程序包获取途径,以及rpm, yum, apt命令选项示例。

答:软件包需要事先将源码进行编译后打包形成,获取包的途径如下:

系统发版的光盘或官方网站

第三方组织提供

软件项目官方站点

搜索引擎

 

rpm选项示例:-ivh安装

-e 卸载

-q 包名

-qa 列出所有安装好的包

-ql 包名,列出此包包括的文件列表

-qc 包名,只列出此包中的配置文件

-qi 包名,包的说明:版本,安装时间,发行者,功能

-qf 文件名 查询此文件来自于哪个包

 

yum选项示例:yum install 安装

yum remove 卸载

yum list 列出所有的包

yum info 显示指定包的详细信息

yum provides 文件名路径 没有安装好的文件来自于哪个包

yum history 历史安装信息

yum -y install --downloadonly --downloaddir=/data/httpd httpd 只下载httpd不安装 文件夹自动生成  yum -y install /data/httpd/*.rpm安装

 

apt选项示例:apt install 安装

apt remove 卸载

apt purge 卸载软件包及配置文件

apt autoremove 自动删除不需要的包

apt search 搜索应用程序

4. 简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用。

答:yum/dnf是基于C/S模式

yum服务器存放rpm包和相关包的元数据

yum客户端访问yum服务器进行安装或查询等

yum实现过程:

现在yum服务器上创建yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

 

[root@rocky ~]# cd /etc/yum.repos.d/

[root@rocky yum.repos.d]# vim test.repo

[baseOS]
name=baseos
baseurl=https://mirror.nju.edu.cn/rocky/8/BaseOS/x86_64/os/
enabled=1
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

[AppStream]
name=AppStream
baseurl=https://mirror.nju.edu.cn/rocky/8/AppStream/x86_64/os/
enabled=1
gpgcheck=0

[epel]
name=epel repo
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/8/Everything/x86_64/
enabled=1
gpgcheck=0

[root@rocky yum.repos.d]# yum repolist
repo id                     repo name
AppStream              AppStream
appstream               Rocky Linux 8 - AppStream
baseOS                   baseos
baseos                    Rocky Linux 8 - BaseOS
epel                         epel repo
extras                      Rocky Linux 8 - Extras

[root@rocky yum.repos.d]# yum -y install httpd

[root@rocky yum.repos.d]# systemctl enable --now httpd

root@rocky yum.repos.d]# cd /var/www/html

[root@rocky html]# vim index.html

<h1> welcome </h1>

[root@rocky yum.repos.d]# ip a

 

 

 

[root@rocky html]# dnf reposync --repoid=epel --download-metadata -p /var/www/html/

 

 

[root@rocky html]# dnf reposync --repoid=baseos --download-metadata -p /var/www/html/

 

 5. 总结系统安装之后的常用初始化步骤。rocky/ubuntu

#关闭SELinux

sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config

#关闭防火墙

systemctl disable --now firewalld

#支持光盘,/misc/cd对应就是光盘内容

yum -y install autofs

systemctl enable --now autofs

#修改网卡名称

sed -ri '/GRUB_CMDLINE_LINUX=/s#(.*)"$#\1 IFNAMES=0"#' /etc/default/grub

grub2 -mkconfig -o /boot/grub2/grub.cfg ;reboot

#配置yum仓库

系统源,EPEL源

#最小化安装系统后,安装常用软件

yum install gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree tmux lsof tcpdump wget net-tools iotop bc bzip2 zip unzip nfs-utils man-pages -y

#Ubuntu开启root远程登录功能

sudo -i

passwd root

sed -i '/PermitRootLogin/c PermitRootLogin yes' /etc/ssh/sshd_config

systemctl restart sshd

7. 总结开放系统互联OSI模型,每层作用及对应的协议

答:第1层 物理层(Physical Layer)在局部局域网上传送数据帧,它负责管理电脑通信设备和网络媒体之间的互通。包括了针脚,电压,线缆规范,集线器,中继器,主机接口卡等

第2层 数据链路层(Data Link Layer)负责网络寻址,错误侦测和改错。当表头和表尾被加至数据包时,会形成信息框。数据链表头是包含了物理地址和错误侦测及改错的方法。数据链表尾是一串指示数据包末端的字符串。例如以太网,无线局域网和通用分组无线服务等。分为两个子层:逻辑链路控制子层和介质访问控制子层

第3层 网络层(Network Layer)决定数据的路径选择和转寄,将网络表头加至数据包,已形成报文。网络表头包含了网络数据。例如:互联网协议(IP)等

第4层 传输层(Transport Layer)把传输表头加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。例如:传输控制协议(TCP)等

第5层 会话层(Session Layer)负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接

第6层 表示层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式

第7层 应用层(Application Layer)提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如:HTTP ,HTTPS,FTP,TELNET,SSH,SMTP,POP3,MYSQL等

posted @ 2023-03-19 19:32  YueShuai6  阅读(105)  评论(0)    收藏  举报