关键词:
软件运行和编译
ABI:Application Binary Interface
Windows与Linux不兼容
ELF(Executable and Linkable Format)
PE(Portable Executable)
库级别的虚拟化:
Linux: WINE
Windows: Cygwin
API:Application Programming Interface
POSIX:Portable OS
程序源代码-->预处理-->编译-->汇编-->链接
静态编译:.a
动态编译:.so
c程序编译过程:
静态和动态链接:
链接主要作用是把各个模块之间相互引用的部分处理好,使得各个模块之间能 够正确地衔接,分为静态链接和动态链接 静态链接 把程序对应的依赖库复制一份到包 libxxx.a 嵌入程序包 升级难,需重新编译 占用较多空间,迁移容易 动态链接 只把依赖加做一个动态链接 libxxx.so 连接指向 占用较少空间,升级方便
静态和动态链接:
c程序静态链接
包和包管理器:
最初只有.tar.gz的打包的源码文件,用户必须编译每个他想在GNU/Linux 上运行的软件。用户们急需系统提供一种方法来管理这些安装在机器上的 软件,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为 dpkg。从而著名的“package”概念第一次出现在GNU/Linux系统中, 稍后Red Hat才开发自己的“rpm”包管理系统 包的组成: 二进制文件、库文件、配置文件、帮助文件 程序包管理器: debian: deb文件, dpkg包管理器 redhat: rpm文件, rpm包管理器 rpm:Redhat Package Manager RPM Package Manager
rpm包管理:
CentOS系统上使用rpm命令管理程序包: 安装、卸载、升级、查询、校验、数据库维护 安装: rpm -i|--install [install-options] PACKAGE_FILE… -v: verbose -vv: -h: 以#显示程序包管理执行进度 rpm -ivh PACKAGE_FILE ...
rpm包安装:
[install-options] --test: 测试安装,但不真正执行安装,即dry run模式 --nodeps:忽略依赖关系 --replacepkgs | replacefiles --nosignature: 不检查来源合法性 --nodigest:不检查包完整性 --noscripts:不执行程序包脚本 %pre: 安装前脚本 --nopre %post: 安装后脚本 --nopost %preun: 卸载前脚本 --nopreun %postun: 卸载后脚本 --nopostun
rpm包升级:
升级: rpm -U|--upgrade [install-options] PACKAGE_FILE... rpm -F|--freshen [install-options] PACKAGE_FILE... upgrade:安装有旧版程序包,则“升级” 如果不存在旧版程序包,则“安装” freshen:安装有旧版程序包,则“升级” 如果不存在旧版程序包,则不执行升级操作 rpm -Uvh PACKAGE_FILE ... rpm -Fvh PACKAGE_FILE ... --oldpackage:降级 --force: 强制安装
yum:
CentOS: yum, dnf YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具 yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下) 文件服务器: http:// https:// ftp:// file://
yum配置文件:
yum客户端配置文件: /etc/yum.conf:为所有仓库提供公共配置 /etc/yum.repos.d/*.repo:为仓库的指向提供配置 仓库指向的定义: [repositoryID] name=Some name for this repository baseurl=url://path/to/repository/ enabled=1|0 gpgcheck=1|0 gpgkey=URL enablegroups=1|0 failovermethod=roundrobin|priority roundrobin:意为随机挑选,默认值 priority:按顺序访问 cost= 默认为1000
yum仓库:
yum的repo配置文件中可用的变量: $releasever: 当前OS的发行版的主版本号 $arch: 平台,i386,i486,i586,x86_64等 $basearch:基础平台;i386, x86_64 $YUM0-$YUM9:自定义变量 示例: http://server/centos/$releasever/$basearch/ http://server/centos/7/x86_64 http://server/centos/6/i386
yum源:
阿里云repo文件 http://mirrors.aliyun.com/repo/ CentOS系统的yum源 阿里云:https://mirrors.aliyun.com/centos/$releasever/os/x86_64/ 清华大学:https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/x86_64/ EPEL的yum源 阿里云:https://mirrors.aliyun.com/epel/$releasever/x86_64 阿里巴巴开源软件 https://opsx.alibaba.com/
yum命令:
yum命令的用法: yum [options] [command] [package ...] 显示仓库列表: yum repolist [all|enabled|disabled] 显示程序包: yum list yum list [all | glob_exp1] [glob_exp2] [...] yum list available|installed|updates [glob_exp1] [...] 安装程序包: yum install package1 [package2] [...] yum reinstall package1 [package2] [...] (重新安装)
升级程序包:
yum update [package1] [package2] [...]
yum downgrade package1 [package2] [...] (降级)
检查可用升级:
yum check-update
卸载程序包:
yum remove | erase package1 [package2] [...]
系统光盘yum仓库:
系统安装光盘作为本地yum仓库: (1) 挂载光盘至某目录,例如/mnt/cdrom mount /dev/cdrom /mnt/cdrom (2) 创建配置文件 [CentOS7] name= baseurl= gpgcheck= enabled= 创建yum仓库: createrepo [options] <directory>
设置文件:
I/O Ports: I/O设备地址 一切皆文件:open(), read(), write(), close() 设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位“字符”,键盘 设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信 设备号码: 主设备号:major number, 标识设备类型 次设备号:minor number, 标识同一类型下的不同设备
设备文件:
磁盘设备的设备文件命名:/dev/DEV_FILE SCSI, SATA, SAS, IDE,USB: /dev/sd 虚拟磁盘:/dev/vd 、/dev/xvd 不同磁盘标识:a-z,aa,ab… /dev/sda, /dev/sdb, ... 同一设备上的不同分区:1,2, ... /dev/sda1, /dev/sda5 硬盘存储术语 head:磁头 track:磁道 cylinder:柱面 sector:扇区,512bytes
文件系统类型:
Linux文件系统: ext2(Extended file system) :适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区 ext3:是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复。它通常被用作通用的文件系统 ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升 xfs:SGI,支持最大8EB的文件系统 btrfs(Oracle), reiserfs, jfs(AIX), swap 光盘:iso9660 Windows:FAT32, exFAT,NTFS Unix: FFS(fast), UFS(unix), JFS2 网络文件系统:NFS, CIFS 集群文件系统:GFS2, OCFS2(oracle) 分布式文件系统: fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre RAW:未经处理或者未经格式化产生的文件系统
linux磁盘管理的linux管理命令
磁盘空间管理系统软件和应用软件,都要以文件的形式存储在计算机的磁盘空间中。因此,应该随时监视磁盘空间的使用情况。Linux系统提供了一组有关磁盘空间管理的命令。df命令功能:检查文件系统的磁盘空间占用情况。可... 查看详情
linux篇|磁盘存储和文件系统(代码片段)
磁盘存储和文件系统分区文件系统挂载设备管理虚拟内存RAID管理LVM管理我们从一个新硬盘安装到Linux系统,期间的配置,一直到正常使用的角度,来学习磁盘存储和文件系统,过程如下:选择分区类型(MBR或GPT)-->创建分区-->... 查看详情
linux磁盘管理(代码片段)
...到哪个盘哪个盘,这就是现在的硬盘。二、Linux磁盘管理Linux磁盘管理通常分为五个步骤,添加磁盘,用RAID或者逻辑卷LVM,然后进行分区,接着对分区格式化,最后载到文件系统中。2.1添加磁盘RAID(Redu... 查看详情
挂载的意思
...的磁盘分区)分配一个盘符。这个操作可以通过“计算机管理”中的“磁盘管理”来进行。第三方软件,如磁盘分区管理软件、虚拟磁盘软件等,通常也附带挂载功能。 在linux操作系统中,挂载是一个非常重要的功能,使用... 查看详情
linux磁盘,进程,软件安装(代码片段)
1、磁盘管理1.1、概述Linux磁盘管理好坏直接关系到整个系统的性能问题。Linux磁盘管理常用命令为df、du。df:列出文件系统的整体磁盘使用量du:检查磁盘空间使用量1.2、dfdf命令参数功能:检查文件系统的磁盘空间占用情况。可... 查看详情
linux文件系统
...格式化的时候就是创建文件系统的过程。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统文件系统的核心功能:提供对文件的管理功能,没有文件系统就没有文件,就只是0101这种形式体现。文... 查看详情
挂载是啥意思
...的磁盘分区)分配一个盘符。这个操作可以通过“计算机管理”中的“磁盘管理”来进行。第三方软件,如磁盘分区管理软件、虚拟磁盘软件等,通常也附带挂载功能。在linux操作系统中,挂载是一个非常重要的功能,使用非常... 查看详情
挂载怎么理解
...的磁盘分区)分配一个盘符。这个操作可以通过“计算机管理”中的“磁盘管理”来进行。第三方软件,如磁盘分区管理软件、虚拟磁盘软件等,通常也附带挂载功能。在linux操作系统中,挂载是一个非常重要的功能,使用非常... 查看详情
大数据学习之_01_linux学习_02_组管理和权限管理+定时任务调度+linux磁盘分区挂载+linux的网络配置+进程管理(重点)+软件包管理+大厂面试题+感悟分享+资料附录(代码片段)
...(runlevel)14.5chkconfig指令14.5动态监控进程14.6监控网络状态15软件包管理15.1rpm包的管理15.2卸载rpm包15.3安装rpm包15.4yum包的管理16大厂面试题16.1百度面试题16.2 查看详情
linux磁盘管理(代码片段)
一、什么是磁盘磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(FloppyDisk,简称软盘),如今常用的磁盘是硬磁盘(Harddi... 查看详情
linux磁盘管理(代码片段)
一、什么是磁盘磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(FloppyDisk,简称软盘),如今常用的磁盘是硬磁盘(Harddi... 查看详情
linux系统中lvm是啥?有啥作用?
...比如:LVM。那么Linux系统中lvm是什么?LVM中文意思为逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制,接下来我们来看看详细的内容介绍。 Linux系统中lvm是什么? LVM,全称LogicalVolumeManager,即逻辑卷管理,是Linux环... 查看详情
linux操作系统的磁盘存储管理中第二环是啥
.../dev/hdb1,/dev/hdb2,/dev/hdb3。。。sd:SCSI.逻辑卷LVM1.创建LVM2.VG管理3.LV扩容4.删除逻辑卷2.高级存储管理1.文件系统详解2.文件链接3.创建软RAID总结前言CSDN编程社区Linux操作系统之存储管理2-yiweii的博客-CSDN博客1.文件系统详解1、简... 查看详情
linux磁盘管理详解--企业实战篇(代码片段)
...的文件最终都是存储在硬盘上的,都是在用文件系统管理,要想彻底搞清楚文件系统的管理机制,对磁盘的了解是必不可少的。 一、磁盘的认识磁盘的分类如果从存储数据的介质上来区分,硬盘可分为机械... 查看详情
linux磁盘管理详解--企业实战篇(代码片段)
...的文件最终都是存储在硬盘上的,都是在用文件系统管理,要想彻底搞清楚文件系统的管理机制,对磁盘的了解是必不可少的。 一、磁盘的认识磁盘的分类如果从存储数据的介质上来区分,硬盘可分为机械... 查看详情
linux实验报告——磁盘存储管理——2021.5.22(代码片段)
Linux实验报告(2)——磁盘存储管理一丶配置要求:二丶实验目的三丶实验要求四丶上一篇:Linux实验报告(1)——文件权限与管理五丶下一篇:Linux实验报告(3)——计划任务管理一丶配置要... 查看详情
linux的磁盘管理和文件系统
一、磁盘结构1.1、硬盘的物理结构盘头:硬盘有多个盘片,每盘片2面磁头:每面一个磁头 1.2、硬盘的数据结构扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位磁道:同一盘片不同半径的... 查看详情
linux磁盘管理基础
Linux磁盘管理基础硬盘结构文件系统与MBR、GTP磁盘管理三步骤:分区、格式化、挂载mount硬盘结构硬盘的基本组成材质是盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。盘片表面上以盘片中心为圆心,不同... 查看详情