当前位置:首页 » 操作系统 » linux分页

linux分页

发布时间: 2022-08-19 10:25:46

linux里面,关于分页显示

ifconfig | more 分页显示
ifconfig | les 翻页显示(可page up/page down查看)
这2个试试

㈡ Linux内核:分段和分页的区别

首先说明内核的保护模式和是模式,在计算机刚刚启动的时候处于实模式,在该模式下cpu产生20位的地址,然后计算机经过某种变换转换到保护模式。保护模式下cpu产生32位的地址,也就是说从实模式到保护模式,cpu的寻址空间扩大了。

在计算的发展的初期,intel 8086是16位的cpu,它只能运行在实模式下。在该模式下其寄存器是16位的,但是为了可以寻址20位的地址空间,所以采用了内存的分段模式。

物理内存地址=段基址×16+偏移 这样可以寻址20位的地址空间。

关于现代计算机内存的分段机制,也是为了向下兼容的需要。单纯的向下兼容或许还不够有说服力,因为在现代cpu中产生的就是32的地址,而由分段机制产生的线性地址也是32位的。32位的地址完全可以访问4G内存的任何一个地方,看上去分段机制好像完全没有了作用,其实不然。在多线程,多任务的操作系统中,一个地址能否被一个进程写入,能被什么优先级的进程访问,是否允许执行这些问题有出来了。而解决这些问题需要在地址上添加一些属性,也就是说其地址应该还是高于32位的。这时候有体现了分段机制的作用。

关于分页机制。由分页机制产生线性地址,加入没有分页,这个线性地址就是物理地址。而分页机制就是把线性地址装换成物理地址。关于其原因,一方面在进程产生子进程的时候,会复制内存页,而父子进程无论是代码数据还是产生的地址都是一样的,这样为创建进程提供了便利,可以不必考虑进程在内存中分布的情况而产生地址,至于父子进程的真实物理地址在哪里,那是mmu(内存控制单元)的问题。另一方面,由于进程不知道真实的物理地址子啊什么地方,也为操作系统提高了安全性。

㈢ Linux中如何用命令实现:分页显示当前目录所有文件(包括隐含)访问权限

在 $ 状态下,使用:ls -al 命令。其中:-a 是列出所有包括隐含文件的选项,-l 列出每个文件及其目录的权限。

㈣ linux分页机制二级页表问题

linux下的分段分页机制将一个逻辑地址转换到物理地址的问题?????
一个逻辑地址经过分段后得到的是线性地址,我挺郁闷的这个线性地址到底如何得到的???应为linux的线性地址是个32位的地址,高10为保存目录项,中间10位保存页表项,然后低12为对应物理页偏移地址。。。。然而这个逻辑地址是经过选择子选出来的段基址,加上段内偏移,出来确实是个32位地址。。。似乎这个中间的步骤被屏蔽了是吧???我想知道这里面是如果把逻辑地址转换成这个分成三个部分索引的线性地址!前面是段基址然后段偏移就出来个线性地址这叫我无法接受,刨根究底!求助。。。。求助!
【分页机制对应用程序,操作系统本身的程序都是有作用的。】

这是问题问的比较深入了,弄明白这个问题就要研究操作系统究竟怎么分配和使用内存。
一般,不管是操作系统还是应用程序都要先分配内存然后才是内存寻址和使用,而如何分配不同的系统肯定不同。操作系统种类很多,xp,2000,linux,unix。。。但一般原理还是差不多的。

以linux操作系统为例,
应用程序的内存肯定是由操作系统管的,os按分页策略给应用程序分配内存。
那么操作系统呢,这就是你关心的点了?
开机加电的时候linux操作系统内核代码进入内存,一般这些内存是连续的,但这些内存在后面使用时仍能适用分页机制去寻址,不过是页面正好是连续的罢了。
而随着操作系统运行,内核程序也会继续要求内存,这时候内存管理程序负责分配内存空间,这里面有不少细节了,暂时就不啰嗦了,但无论怎么分的,分配后使用这些内存的时候,指令地址都会以分页机制进行寻址找到分配的内存。
所以,分页机制是整个系统的内存寻址机制,对应用程序和操作系统本身都启作用。

㈤ linux 的ls 命令 如何分页显示

ls |more 每按一次空格,就显示一页

㈥ 请教各位高手,linux下ls命令怎样实现分页显示

请用如下命令,将ls输出结果通过管道重定向给more命令来实现分页:

ls|more

㈦ linux内核参与分页吗

参与吧!(答案非常不准确,仅供参考)
页式管理用以将线性地址转化成物理地址,并对访问权限进行检查。每个页面都是一个大小为4KB的连续空间,并按4KB对齐。从80386开始,Intel处理器开始支持页式管理,CR0寄存器的PG标志位用来表示是否支持分页。
1、标准分页
i386采用二级分页,其线性地址的结构如下:
Dir
Page
Offset
其中,Dir有10位,表示页表目录项的下标,指向一个页表;Page有10位,表示一个具体页表中的目录项的下标,指向一个物理页面;Offset有12位,表示在物理页面中的偏移量(单位为字节)。
i386中,从线性地址到物理地址的映射过程为:
(1)从CR3寄存器中取得页目录(页目录中包含1024条记录,每个记录4字节,正好为4KB,占用一个页面)的基地址;
(2)以线性地址中的Dir为下标,从目录中取出相应页表的基地址;
(3)以线性地址中的Page为下标,从页表中取出相应的页面描述结构;
(4)将页面描述符中的基地址与线性地址中的Offset偏移量相加,获得实际的物理地址。
2、页描述表项
在i386中,页目录和页表的结构相同,页描述表项的结构如下:
Address
Avail
G
PS
D
A
PCD
PWT
U/S
R/W
P
其中,Address有20位,表示对应页表或页的物理地址的高20位(由于页总是按4KB对其,故低12位恒为0);Avail有3位,供系统程序员使用;G只有1位,在页目录项中表示该页是否为全局页,在页表项中忽略;PS只有1位,在页表目录项中为1表示为4MB的页,为0表示为4KB的页;D只有1位,在页表目录项中未使用,在页表项中表示该页是否已被更改;A只有1位,表示该页是否已被访问过;PCD只有一位,表示该项是否禁止被缓存;PWT只有一位,为1表示使用write-through缓存策略,0表示使用write-back缓存策略;U/S只有一位,为1表示访问该页是否可以在用户态下访问;R/W只有一位,表示该项是否可写;P只有1位,表示该项是否在内存中。
如果要使用4MB的扩展分页,则要求CR4寄存器中的PSE标志被置1。此时,系统仅采用一级分页策略,线性地址前10位为页表项,后22位为偏移量,且页按4MB对齐,页描述表项中Address仅有高10位有效。
3、物理地址扩展(PAE)分页机制
从Pentium Pro开始,Intel处理器的地址总线宽度增加到了36位,共支持访问64GB的内存。同时,Intel提供了PAE和页大小扩展(PSE-36)两种机制用以将32位的线性地址转化成36位的物理地址。其中,后者从Pentium III开始提供,且未在Linux内核中使用。
要启用PAE机制必须将CR4寄存器中的PAE标志置位。PAE启用后,处理器会对分页机制做如下更改:
(1)将64GB的内存空间划分成2^24个不同页面,页表项的体积扩展为64位,物理地址域扩展为24位;
(2)引入新的最高一级页表,称为页目录指针表(PDPT),其中包含4个64位的项;
(3)CR3寄存器中包含27位的PDPT的高位地址(其低5位地址为0);
(4)当将线性地址映射到4KB的页面时,CR3由高位到低位依次为2位PDPT索引,Array位页目录索引,Array位页表索引,12位页内偏移;当将线性地址映射到4KB的页面时,CR3由高位到低位依次为2位PDPT索引,Array位页目录索引,21位页内偏移。
但是,PAE机制并未增大单个进程能够访问的地址空间,仅仅将内核能够访问的地址空间增加到了64GB。
4、Linux内核中的分页
Linux内核对分页机制的依赖性很强,其使用一种适合32位和64位结构的通用分页模型,该模型使用四级分页,即页全局目录、页上层目录、页中层目录和页表。
对于不同的体系结构,Linux采用的四级页表目录的大小有所不同:对于i386而言,仅采用二级页表,即页上层目录和页中层目录长度为0;对于启用PAE的i386,采用了三级页表,即页上层目录长度为0;对于64位体系结构,可以采用三级或四级页表,具体选择由硬件决定。
linux内核中没有分页内存吗?是的,没有,那么windows的内核为何就有呢?毕竟不是一个家族不好做全方位的评判,我的结论就是linux上的任何的程序只将内核作为一个平台而不依赖内核。这个事实的结果就是在linux内核中不能分配过大的内存,linux内核中唯一可以分配大内存的地方就是vmalloc区域,仅仅放松了对物理内存连续的限制,在vmalloc中分配内存只要求虚拟内存连续,并且事实上最多只能分配128M的内存,这是linux内核中最宽松的限制了。

在linux中,一切功能都可以由用户空间应用程序来解决,就连杀毒程序也不例外,这是因为linux有强大的安全机制,单点验证机制,只要linux保证任何用户不能随意su到root权限就可以了,这事实上就是一个消除一切漏洞的行为,只要操作系统安全机制没有漏洞,只要内核没有漏洞,那么一切恶意程序的得逞完全归结于该恶意程序所利用的用户空间应用程序设计的不足,而且这件事在linux看来,内核完全没有必要过问,正如一个国家的机关只认百姓的请求以及该请求的代理权限,只要认证通过就给与服务而不再对别的情况加以过问,linux只是一个服务者罢了,它不喜欢任何额外的机制要靠内核来完成,也就是说任何用户都不要随意动不动就用内核实现一个机制,只要在用户空间实现就好了。

看看windows下的杀毒程序这一简单的使用内核来完成的程序,正是由于windows不能保证复杂但是薄弱的用户空间机制都是安全的,才会动用内核来实现更高级别的安全管理,它没有linux的那种简单但是可以信赖的单点验证机制。正如微软建议的那样,在没有别的办法的时候请实现一个驱动程序,在DriverEntry中完成一切。既然微软会建议程序员编写内核驱动,那么微软的操作系统当然也把内核空间的开发开放给了程序员,于是DDK成了很大一部分人最后的救命稻草,既然将内核驱动的开发开放给了程序员,那么如何使用内存就不应该有任何限制,再者windows希望用一种简单一致的机制管理所有的不管是用户空间还是内核空间的内存,于是内核空间的内存管理和用户空间的内存管理大体上没有区别,都可以使用分页内存,说一句可能让windows的粉丝不愿意听的话:我们windows实现的不是很安全,所以你们可以用内核这个最高级别的执行绪以权势压人。反观linux,开源的linux难道没有将内核开放给程序员吗?不,绝对的开放,看看lkml的热闹程度吧!但是不同的是,linux下开发内核是完全为了内核本身的机制扩展而不涉及任何用户策略,linux的内核和用户应用分得比较开,不信你去内核邮件列表去问一个应用的问题,看看有没有人骂。

㈧ linux中把执行完结果分页显示用什么命令

可以通过管道将结果与more或者less命令联系起来使用,如ls | more,其中|即为管道的意思。
说明:
管道:使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。
more:分页查看文件内容
less:分页可控制查看文件内容
more和less的区别是more不支持后退,less支持前后翻滚。

㈨ 在linux下如何分页显示帮助信息

给你个例子,例如你要显示当前文件夹下面的文件,通常的命令是使用ls,如果太多,则你想分页显示,那么你就用着格式:
ls | more
其他命令用法相同。
ls可替换为其他命令

㈩ LINUX中,查看文件内容及分页显示的办法有什么

linux中查看文件内容的指令很多,下面分别介绍一下:
cat
file1
[file2]
……
cat的本来的意思是连接,就把所有文件的内容全部显示在一起,纵向排列
paste
file1
[file2]
……
与cat的用法一致,但是是把所有文件的内容横向的连接在一起
tail
-n
file1
表示显示文件的最后n行,如果不加默认是最后10行
head
-n
file1
表示显示文件的最前面n生,如果不加默认是最开始10行
less,more
是分页查看文件
当然也可以把这些指令组合起来使用。

热点内容
c语言16进制表示方法 发布:2025-05-17 13:11:25 浏览:479
ftp单位 发布:2025-05-17 13:10:03 浏览:141
c语言编写n的阶乘 发布:2025-05-17 13:10:02 浏览:683
lockjava 发布:2025-05-17 13:02:08 浏览:310
只狼和看门狗哪个配置高 发布:2025-05-17 12:50:21 浏览:205
扁桃玩的服务器地址 发布:2025-05-17 12:18:25 浏览:511
u盘上传歌 发布:2025-05-17 12:14:51 浏览:615
入门c语言设计 发布:2025-05-17 12:08:31 浏览:41
c3算法 发布:2025-05-17 12:04:19 浏览:365
phprecv 发布:2025-05-17 11:55:00 浏览:616