Linux 中的各种事物比如像文档、目录(Mac OS X 和 Windows 系统下称之为文件夹)、键盘、监视器、硬盘、可移动媒体设备、打印机、调制解调器、虚拟终端,还有进程间通信(IPC)和网络通信等输入/输出资源都是定义在文件系统空间下的字节流。 一切都可看作是文件,其最显著的好处是对于上面所列出的输入/输出资源,只需要相同的一套 Linux 工具、实用程序和 API。你可以使用同一套api(read, write)和工具(cat , 重定向, 管道)来处理unix中大多数的资源. 设计一个系统的终极目标往往就是要找到原子操作,一旦锁定了原子操作,设计工作就会变得简单而有序。“文件”作为一个抽象概念,其原子操作非常简单,只有读和写,这无疑是一个非常好的模型。通过这个模型,API的设计可以化繁为简,用户可以使用通用的方式去访问任何资源,自有相应的中间件做好对底层的适配。 现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用。在 UNIX 系统中,操作系统为磁盘上的文本与图像、鼠标与键盘等输入设备及网络交互等 I/O 操作设计了一组通用 API,使他们被处理时均可统一使用字节流方式。换言之,UNIX 系统中除进程之外的一切皆是文件,而 Linux 保持了这一特性。为了便于文件的管理,Linux 还引入了目录(有时亦被称为文件夹)这一概念。目录使文件可被分类管理,且目录的引入使 Linux 的文件系统形成一个层级结构的目录树
不管是Windows还是Linux操作系统,底层设备一般均为物理硬件,操作系统启动之前会对硬件进行检测,然后硬盘引导启动操作系统,如下为操作系统启动相关的各个概念:
软件运行时输入单元输入内容,进入内存,CPU由控制单元和算术逻辑单元组成,控制单元控制算术逻辑单元从内存中读取数据,内存和外部存储设备进行交互,运算完毕以后输出到输出单元,完成软件的运行。
Linux上的文件系统一般来说就是EXT2或EXT3,但这篇文章并不准备一上来就直接讲它们,而希望结合Linux操作系统并从文件系统建立的基础——硬盘开始,一步步认识Linux的文件系统。
来源:Linux爱好者 ID:LinuxHub Linux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/),节点为目录,而末端的叶子为包含数据的文件。当我们给出一个文件的完整路径时,我们从根目录出发,经过沿途各个目录,最终到达文件。 我们可以对文件进行许多操作,比如打开和读写。在Linux文件管理相关命令中,我们看到许多对文件进行操作的命令。它们大都基于对文件的打开和读写操作。比如cat可以打开文件,读取数据,最后在终端显示: $cat test
Linux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/),节点为目录,而末端的叶子为包含数据的文件。当我们给出一个文件的完整路径时,我们从根目录出发,经过沿途各个目录,最终到达文件。 我们可以对文件进行许多操作,比如打开和读写。在Linux文件管理相关命令中,我们看到许多对文件进行操作的命令。它们大都基于对文件的打开和读写操作。比如cat可以打开文件,读取数据,最后在终端显示: $cat test.txt 对于Linux下的程序员来说,了解文件
在LINUX系统中有一个重要的概念:一切都是文件。 其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。
电脑启动后,CPU逻辑电路被设计为只能运行内存中的程序,没有能力直接运行存在于软盘或硬盘中的操作系统,如果想要运行,必须要加载到内存(RAM)中。
磁盘的组成:主要由盘片、机械手臂、磁头、与主轴马达所组成。而数据的写入其实是在盘片上面。盘片上面又可细分出扇区(Sector)与柱面(Cylinder)两种单位,其中扇区每个为512bytes那么大。假设磁盘只有一个盘片,那么盘片如图所示:
我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。 作为物理内存的扩展,linux会在物理内存不足时,使用交换分区的虚拟内存,更详细的说,就是内核会将暂时不用的内存块信息写到交换空间,这样以来,物理内存得到了释放,这块内存就可以用于其它目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。 Linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。
服务是什么?先来看一下服务的定义:一台主机上提供的、运行的各种功能统称为服务。有本机内服务,如:at,cron,有对外的网络服务,如:web、ftp等,又称为业务、应用。下面我们来分析一下Linux中服务的具体管理。
本文介绍linux内存机制、虚拟内存swap、buffer/cache释放等原理及实操。
Centos系统备份与恢复教程 tar: 特点 1、保留权限 2、适合备份整个目录 3、可以选择不同的压缩方式 4、如果选择不压缩还能实现增量备份,部份还原,参考man tar dd 特点 1、对块进行操作,能备份整个硬盘(包括分区表、MBR,其他Linux不能很好支持的文件系统) 2、可以进行压缩(麻烦一点) 3、由于是备份整个硬盘,文件系统上没有使用的“空白”空间也会被保存起来,备份文件比较大 备份 备份硬盘sda,放到/backup(/backup挂载在其他硬盘如sdb) tar方法教程 Linux不像windows,它不限制根用户存取任何东西,因此,你完全可以把一个分区上每一个的文件放入一个TAR文件中。 使用root用户切换到根目录 然后,使用下面的命令备份完整的系统: tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys 或者 tar cvpzf /state/partition1/home/backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys 说明: tar 部分就是我们将要使用的软件。 'cvpfz'是我们给tar加的选项,像“创建一个压缩文档”(这是显然的),“保存权限”(以便使每一个相同的文件有相同的权限),以及“gzip”(缩减大小)。接下来,是压缩文档将获得的名称,在我们的例子中是backup.tgz。 紧随其后的是我们想要备份的根目录。既然我们想备份所有东西:/。接着就是我们要剔除的目录了:我们不想备份每一样东西,因为包括有些目录不是非常有用。同时确保你没有把备份文件本身也加进去了,否则,你会得到怪异的结 果的。你也许同样不打算把/mnt文件夹包括进来——如果你在那儿挂载了其他分区——否则最终你会把那些也备份的。同时确保你没有任何东西挂载在 /media(即没有挂载任何cd或可移动介质)。否则,剔除/media。 在进程的最后,你也许会得到一条信息,写着“tar:由于先前错误的耽搁而存在错误”或者其他什么,不过大多数情况下你可以仅仅忽略它。 作为选择,你可以使用Bzip来压缩你的备份。这意味着较高的压缩比但是也意味着较低的速度。如果压缩比对你很重要,只需用“j”替换命令中的“z”,同时给备份命一个相应的扩展名。这些会使命令变成这样: tar cvpjf backup.tar.bz2 / --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys 恢复: 如果系统被毁坏,那么我们就可以用备份好的tar包进行恢复。 在分区的根目录下的backup.tgz文件 再一次确保你是根用户以及备份文件在文件系统的根目录。 Linux美妙的地方之一就是这一项工作甚至可以在一个正在运行的系统上进行;没必要被引导cd或者任何东西搞得晕头转向。当然,如果你使你的系统 无法被引导了。你也许别无选择,只能使用一张live-cd了,但是结果是一样的。你甚至可以在Linux系统正在运行的时候,移除它里面所有文件。可是 我不告诉你那个命令! 这是我要用的命令: tar xvpfz backup.tgz -C / 如果你使用 bz2: tar xvpfj backup.tar.bz2 -C / 警告:这会把你分区里所有文件替换成压缩文档里的文件! 确保在你做其他任何事情之前,重新创建你剔除的目录: mkdir proc mkdir lost+found mkdir mnt mkdir sys /proc 权限:文件所有者:root群组:root 所有者:读取 执行 群组:读取 执行 其它:读取 执行 /lost+found 权限:文件所有者:root群组:root 所有者:读取 写入 执行 群组:读取 执行 其它:读取 执行 /mnt 权限:文件所有者:root群组:root 所有者:读取 写入 执行 群组:读取 执行 其它:读取 执行 /sys 权限:文件所有者:root群组:root 所有者:读取 写入 执行 群组:读取 执行 其它:读取 执行 当你重启以后,所以的事情都会和你备份的时候一模一样。 用户参照了上面的教程做的备份和恢复,普遍反映:重启电脑后还是会一直提示用户名和密码 输入以后一闪还是提示用户名
我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。
操作系统的启动是个很令人好奇的话题,从按下计算机电源的那一刻,计算机从裸机开始呈现一个丰富的系统界面,这个从只有硬件逻辑到软件逻辑的过程是如何完成的?这里我们将从硬盘分区,三方协议,grub引导启动程序进行讲述,首先介绍硬盘MBR分区形式,然后介绍CPU,BIOS,系统的三方协议,讲述从CPU的硬件逻辑最终运行内核的软件逻辑的过程,最后介绍一下引导启动程序的发展,在grub这些引导启动程序中如何继续遵守三方协议。
在之前我写过一篇关于linux的虚拟文件系统的博客,不过那篇主要是介绍打开的文件是如何在linux系统中被管理和存储的,那么这篇进阶版文件系统就要介绍一下,当文件没有被打开的时候,它在linux系统中是如何被管理和存储的。
内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。
Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。
Linux系统一般有4个主要部分: 内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所
内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图所示。
为何更改为 4096 字节扇区? 如果您熟悉磁盘结构,就知道磁盘是被分解成扇区 的,大小通常是 512 字节;所有读写操作均在成倍大小的扇区中进行。仔细查看,就会发现硬盘事实上在扇区之间包括大量额外数据,这些额外字节由磁盘固件使用,以检测和纠正每个扇区内的错误。随着硬盘变得越来越大,越来越多的数据需要存储在磁盘的每一单位面积上,导致更多低级别错误,从而增加了固件纠错功能的负担。 解决该问题的一个方法是将扇区大小从 512 字节增加为更大的值,以使用功能更强大的纠错算法。这些算法可使每个字节使用较少的数据,从
进入 uboot 的命令行模式以后输入“help”或者“?”,然后按下回车即可查看当前 uboot 所支持的命令,如下图所示:
从打开电源到开始操作,计算机的启动是一个非常复杂的过程。 我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示...... 这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。 零
我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示…… 这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。
在linux下,一个目录下放了很多文件,还有其他的子目录,但是目录的大小却总是只有4096字节。这是怎么回事呢?来听听北理工林思佳同学的分享。
安装linux,vista/win7双系统后,怎么引导是个问题 理论上,可以从windows的boot loader引导linux,也可以linux的grub引导windows 但windows更霸道,经常霸占MBR,所以最好是linux不放MBR,然后从windows的boot loader引导linux 把linux装在自己的分区,不要在MBR 然后把linux分区的头512字节弄成一个文件,拷到boot loader所在的分区根下 dd if=/dev/sda1 of=/tmp/linux.bin bs=512 count=1 cp /tmp/linux.bin /media/你的window c分区 到windows上执行: bcdedit /create /d “GRUB” /application BOOTSECTOR 下面的{LinuxID}改为此命令输出的id bcdedit /set {LinuxID} device boot bcdedit /set {LinuxID} PATH \linux.bin bcdedit /displayorder {LinuxID} /addlast bcdedit /timeout 10
硬件设备在Linux中的命名 Linux中每一个设备都被当成文件,所有的设备文件都在/dev这个目录下。 设备 文件名 IDE硬盘 /dev/hd[a-d] SATA/USB/SCSI硬盘 /dev/sd[a-p] U盘 /dev/sd[a-p] 软驱 /dev/fd[0-1] 打印机 25针:/dev/lp[0-2] usb:/dev/usb/lp[0-15] 鼠标 usb:/dev/usb/mouse[0-15] ps2:/dev/psaux 当前CD/DVD RO
作者:bobyzhang,腾讯 IEG 运营开发工程师 0. 故事的开始 0.1 为什么和做什么 最近家里买了对音响,我需要一个数字播放器。一凡研究后我看上了 volumio(https://volumio.org/) 这是一个基于 Debian 二次开发的 HIFI 播放器系统,可以运行下 x86 和树莓派上。 我打算让 volumio 运行在我 2009 年购买的老爷机笔记本上,也让它发挥一点余温热。正常操作是将 volumio 的系统镜像刷到 U 盘上,连接电脑后使用 U 盘启动系统即可。但是家
2018年11月19日 16:55:04 爱我所爱bravefly 阅读数 1369更多
邓延军 (deng.yanjun@163.com), 硕士研究生, 西安电子科技大学软件工程研究所
ext:最早的文件系统,叫扩展文件系统。使用虚拟目录操作硬件设备,在物理设备上按定长的块来存储数据。
注意:inode号是磁盘格式化的时候就自动按一定的比例4k:1分配好了,当创建一个文件是就会拿一个inode给这个文件使用。inode里面存的是文件的相关属性比如大小,权限,属组和存在磁盘的位置,如果创建文件提示空间不够,但是df查看磁盘空间的时候,发现还有空间,但是就是创建不了,这个时候就应该是inode被占满了,可以通过删除文件来回收inode
删库跑路的事常常听说,不过,这只能是个调侃的话题,真正的工作中可不能这么干,否则,库是删了,路怕是跑不了了。
我们在打开电源后,计算机会寻找在ROM芯片(保存计算机最基本的输入输出以及开机自检,自启动程序的芯片)上的程序BIOS(Basic Input Output System ),它从CMOS芯片(保存计算机基本信息,比如日期,时间,启动设置等等)中读取信息。BIOS 将MBR(Main Boot Record ,在磁盘的最前边的引导代码,可以指明操作系统所在的磁盘位置,在硬盘分区时使用) 读取并执行 boot Loader(开机引导程序,如grup,spfdisk),接下来操作系统会通过引导接管计算机。
简单来说就是多个盘片之间靠主轴连接,电机带动主轴做旋转运动,通过多个磁头臂的摇摆和磁盘的旋转,磁头就可以在磁盘旋转的过程中就读取到磁盘中存储的各种数据。
1.常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块? 答: 常见的Linux发现版本有Redhat、Centos、Debian、Ubuntu、Suse 最擅长Redhat和Centos Redhat官网:www.redhat.com Centos官网:www.centos.org 我最擅长Linux基本命令操作及相关服务搭建
1 linux文件系统将一切的设备映射为文件,一切以文件作为访问入口的,以文件的性质来进行open read write close 2 linux设备文件有两类 块设备:block (存取单位块)磁盘 字符设备:char (存取单位为“字符”) 键盘 3 设备文件:将一个文件关联到一个设备的驱动程序, 进而能跟与之对应的硬件设备进行通信(进行read , write )进行硬件的控制
LINUX 开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。 一般的开机启动无非就是四步:BIOS加电自检(检测硬件什么之类的,寻找启动磁盘,在启动磁盘加载MBR);Boot Loader(加载grub.conf顺序启动) ;启动内核(内核会尝试挂载根文件系统,根文件系统至少包含 /etc /bin /sbin /lib /dev 这5大目录); INIT进程初始化(内核会按 /sbin/init /etc/in
在写上一篇博客时,我发现我没搞清楚块设备(block device),分区(partion)和文件系统(filesystem)这几个概念之间的关系,今早查了一些资料才慢慢理解了它们之间的关系,所以我想写出来,看看我能不能将一个问题描述清楚.下面我依次描述设备文件,分区和文件系统这三个概念.
描述:GRUB英文全称GRand Unified Bootloader俗称引导程序是硬盘中的软件,它可以启动用户在计算机中的多个操作系统所以也叫多重启动管理器。 目前主流版本是 GRUB2,在windows中也有类似的引导程序ntloader虽然它也可以引导Linux操作系统但是比较麻烦;
「 总感觉当下的生活不是想要的,总感觉一路走下去会是一个讨厌的未来,每天睁眼的一瞬间就是懊悔,昨天又浪费掉了...人生没有意义,但是要努力寻找活着的意义--------山河已无恙」
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间,以MINIX为模版)芬兰大学生 auther:Linus Torvalds,在BBS上发布了一则消息,他以bash/GCC等工具写了一个核心程序,这个程序可以在inter的386机器上面运作;
机械磁盘由磁头(head)、磁道(track)、柱面(cylinder)、扇区(sector)和盘片(platter)组成。其中,磁头悬浮在盘片上,并且每张盘片上下各有一个磁头;每张盘片的磁道数是相同的,每张盘片相同位置的磁道组成柱面;而每一个磁道由数量相同的扇区组成,我们知道离主轴越远的扇区面积越大,而扇区大小一般为512B,必然导致存储密度越低,这样做明显浪费空间,为了解决问题,我们将磁盘密度改为等密度结构,这就意味着外围磁道的扇区数量要大于内圈的数量。
服务器如果插入磁盘,如何对磁盘进行配置,分区,使用 在Linux系统中,如何有效地对存储空间加以使用和管理,是一项非常重要的技术
在使用archlinux启动盘之前需要用dd命令将U盘刻为启动盘,这样就导致整个U盘分区被dd修改,最明显的是第一个装有安装环境的分区被分配了一个iso9960标志并且使用cfdisk打开该设备是会有提示使用写命令是会丢失丢失该标志从而导致标签异常使得启动异常,而安装环境仅有600+M,白白浪费了该启动盘的其他空间,因为不可以新建分区。
在Linux系统下,我们往往会遇到扩充磁盘的情况。普通情况下需要新加一块盘,重分区、格式化、数据复制、卸载就分区、挂载新分区等繁琐的步骤。其实,我们可以在安装系统时使用LVM来管理我们的文件系统,这样就可以弹性调整文件系统的容量。好了,说了这么多,赶快介绍如何创建LV(逻辑卷)吧!
领取专属 10元无门槛券
手把手带您无忧上云