关闭

Linux知识点纠错集

标签: linux试题
89人阅读 评论(0) 收藏 举报
分类:

1、下面关于i节点描述错误的是?
i节点和文件名是一一对应的
注:
在linux文件系统中,是以块为单位存储信息的,为了找到某一个文件在存储空间中存放的位置,用i节点对一个文件进行索引。I节点包含了描述一个文件所必须的全部信息。所以i节点是文件系统管理的一个数据结构。
(1) 一个磁盘可以划分为N多扇区,每个扇区有512字节 。扇区是磁盘上的基本存储单元,我们可以将每个扇区进行编号,这样磁盘就变为一系列编了号的块的组合。
(2) 磁盘块上存储文件时,按照一定的规律。
每个文件系统分为3部分:超级块,i-节点表,数据区 。
(3)i节点保存了文件的属性和类型。存放文件内容的物理块地址、时间戳
(4)i节点没有保存文件名,文件名关联到i节点是通过硬连接和符号连接实现的。文件名是保存在一个目录项中。每一个目录项中都包含了文件名和i节点。

2、建立动态路由需要用到的文件有?
/etc/gateways
/etc/hosts 主机名到 IP 地址的映射关系的文件
/etc/resolv.conf DNS 服务的配置文件
/etc/gateways 建立动态路由需要用到的文件
/etc/HOSTNAME 这个文件存的是你的主机名,就比如你的terminal的提示符 yourname@hostname ,这里的hostname就写在这个文件里面

3、运行在多核处理器上的Linux环境中,若临界区非常短,且不允许线程上下文切换的情况下,使用下列哪种机制满足上述需求并且性能最好?
SpinLock
(1)spinlock介绍
spinlock又称自旋锁,线程通过busy-wait-loop的方式来获取锁,任时刻只有一个线程能够获得锁,其他线程忙等待直到获得锁。spinlock在多处理器多线程环境的场景中有很广泛的使用,一般要求使用spinlock的临界区尽量简短,这样获取的锁可以尽快释放,以满足其他忙等的线程。Spinlock和mutex不同,spinlock不会导致线程的状态切换(用户态->内核态),但是spinlock使用不当(如临界区执行时间过长)会导致cpu busy飙高。
(2) spinlock与mutex对比
spinlock不会使线程状态发生切换,mutex在获取不到锁的时候会选择sleep。
  mutex获取锁分为两阶段,第一阶段在用户态采用spinlock锁总线的方式获取一次锁,如果成功立即返回;否则进入第二阶段,调用系统的futex锁去sleep,当锁可用后被唤醒,继续竞争锁。
  Spinlock优点:没有昂贵的系统调用,一直处于用户态,执行速度快。
  Spinlock缺点:一直占用cpu,而且在执行过程中还会锁bus总线,锁总线时其他处理器不能使用总线。
  Mutex优点:不会忙等,得不到锁会sleep。
  Mutex缺点:sleep时会陷入到内核态,需要昂贵的系统调用。
(3)使用准则
Spinlock使用准则:临界区尽量简短,控制在100行代码以内,不要有显式或者隐式的系统调用,调用的函数也尽量简短。例如,不要在临界区中调用read,write,open等会产生系统调用的函数,也不要去sleep;strcpy,memcpy等函数慎用,依赖于数据的大小。

4、下面哪些属于,Fork后子进程保留了父进程的什么?
环境变量、当前工作目录
注:
使用fork函数得到的子进程从父进程的继承了整个进程的地址空间,包括:进程上下文、进程堆栈、内存信息、打开的文件描述符、信号控制设置、进程优先级、进程组号、当前工作目录、根目录、资源限制、控制终端等。
子进程与父进程的区别在于:
1、父进程设置的锁,子进程不继承(因为如果是排它锁,被继承的话,矛盾了)
2、各自的进程ID和父进程ID不同
3、子进程的未决告警被清除;
4、子进程的未决信号集设置为空集。

5、arp协议用了()
broadcast
注:
地址解析协议,即ARP(Address Resolution Protocol),是根据 IP地址 获取 物理地址 的一个 TCP/IP协议 。 主机 发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

6、用ls –al 命令列出下面的文件列表,哪个文件是符号连接文件?
lrwxr–r– 1 hel users 2024 Sep 12 08:12 cheng > peng.yan1
d表示目录directory;
l表示连接link。

7、Linux中,一个端口能够接受tcp链接数量的理论上限是?
无上限
标识一个TCP连接的是,客户端和服务器的IP地址加端口号,尽管服务器IP地址和端口号一样,但是客户端IP地址是不一样的,而客户端端口号只有本地意义,所以理论上服务器一个端口号能接受的TCP连接是无上限的。

8、以下关于linux操作系统中硬链接和软链接的描述,正确的是?
可以建立一个空文件的软链接
注:

9、关于 Linux 系统上同一个程序的多个进程实例共享一个 TCP 监听端口的说法, 哪个不正确?
每个进程分别绑定一次, 但只有最后一个调用的进程才能收到数据
使用SO_REUSEPORT,绑定统一地址和端口。
分别绑定 不同的网卡地址的同一端口,TCP的四元组并不冲突
使用fork创建子进程共享,也没有问题。
只有一个调用的进程收到数据是竞争调度的结果,而不是最后调用的进程收到数据。

10、下面有关文件系统元数据的描述,说法错误的是?
文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B,这是文件A就称为文件B的”硬链接”
注:
若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名。
若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软链接。

**11、内存空间被分成不同区域,其中用函数
void* malloc(unsigned int size);申请的内存在()**
动态存储区
静态储存:全局变量 静态变量 Stack:局部变量 系统会自动回收 heap:new malloc

12、Linux系统中某个可执行文件属于root并且有setid,当一个普通用户 mike运行这个程序时,产生的进程的有效用户和实际用户分别是?
root mike
注:
setuid位是让普通用户可以以root用户的角色运行只有root帐号才能运行的程序或命令。
因此当程序设置了setid权限位时,普通用户会临时变成root权限,但实际用户任然是原来的mike。
调用setid使进程成长为一个会话组长,setid调用成功后,进程成为新的会话组长和进程组长,并与原来的登陆会话和进程组脱离,由于会话过程对控制终端的独占性,进程同时与控制终端脱离。
这也是在创建daemon程序时,经常用到的一个步骤。

13、UNIX系统中进程由三部分组成:进程控制块,正文段和数据段。这意味着一个程序的正文与数据可以是分开的,这种分开的目的是为了?
可共享正文
可共享数据
可重入

14、在退出unix系统账户之后还需要继续运行某个进程,那么可用()
nohup
awk 对数据分析的
sed 编辑文件的
crontab 用于设置周期性被执行的指令
nohup 在注销后使用 nohup 命令运行后台中的程序。
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思

15、在CPU和物理内存之间进行地址转换时,( )将地址从虚拟(逻辑)地址空间映射到物理地址空间
MMU
MMU 是Memory Manage Unit的缩写,即是存储管理单元,其功能是和物理内存之间进行地址转换 在CPU和物理内存之间进行地址转换,将地址从逻辑空间映映射到物理地址空间。

16、Linux中包括两种链接:硬链接(Hard Link)和软连接(Soft Link),下列说法正确的是()
软连接可以跨文件系统进行连接,硬链接不可以
( 1 )软连接可以跨文件系统,硬连接不可以
( 2 )硬连接不管有多少个,都指向的是同一个 I 节点,会把结点连接数增加,只要结点的连接数不是 0 ,文件就一直存在不管你删除的是源文件还是连接的文件。只要有一个存在文件就存在。 当你修改源文件或者连接文件任何一个的时候,其他的文件都会做同步的修改。软链接不直接使用 i 节点号作为文件指针 , 而是使用文件路径名作为指针。所以删除连接文件对源文件无影响,但是删除源文件,连接文件就会找不到要指向的文件。软链接有自己的 i 节点 , 并在磁盘上有一小片空间存放路径名。
( 3 )软连接可以对一个不存在的文件名进行连接 。
( 4 )软连接可以对目录进行连接。

17、若一台计算机的内存为128MB,则交换分区的大小通常是 。
256MB
Red Hat官方文库中有一段话:目前Red Hat(红帽官方)推荐交换分区的大小应当与系统物理内存的大小保持线性比例关系。不过在小于2GB物理内存的系统中,交换分区大小应该设置为内存大小的 两倍,如果内存大小多于2GB,交换分区大小应该是物理内存大小加上2GB。其原因在于,系统中的物理内存越大, 对于内存的负荷可能也越大。
所以128M的物理内存比较合适的交换分区大小为256M。

18、Linux下两个进程可以同时打开同一个文件,这时如下描述错误的是:
任何一个进程删除该文件时,另外一个进程会立即出现读写失败
一般删除都是文件索引,如果两个文件同时打开同一个文件,一个线程执行删除操作,只要另一个线程不退出,就可以继续对该文件进行操作,一旦退出才找不到该文件的索引节点而报错。

19、写出完成以下功能的gdb命令。gdb查看线程信息。
info thread
backtrace bt 打印当前的函数调用栈的所有信息。
info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。
set scheduler-locking 线程调试 显示线程状态,off 不锁定任何线程
info break 可列出所有断点信息,info break 后也可设置要查看的break num

20、linux下查看当前网络连接的命令。
netstat
ping 命令不用说大家都知道,不论windows还是linux,对于PING命令无非是在测试网络连接的性能情况
netstat,字面理解网络状态,包括网络地址信息,网络的连接状态,网络的子网掩码等等,通过命令 netstat -ie ,效果和ifconfig一样
route是路由表信息命令主要是查看路由表相关的
tracert表示并不是很准确,在linux下应该是traceroute,字面理解路径追踪,其实就是在网络中包通过的路由器等相关的个数信息。

21、具有很多C语言的功能,又称过滤器的是?
awk
csh:调用 C shell。
Tcsh是csh的增强版,并且完全兼容csh。它不但具有csh的全部功能,还具有命令行编辑、拼写校正、可编程字符集、历史纪录、 作业控制 等功能,以及C语言风格的语法结构。
AWK 是一种优良的文本处理工具, Linux 及 Unix 环境中现有的功能最强大的数据处理引擎之一, AWK 提供了极其强大的功能:可以进行样式装入、 流控制 、数学 运算符 、进程 控制语句 甚至于内置的变量和函数。
SED: Stream EDitor

22、新建一个管理员用户admin,需要使用的参数()
useradd -u 0 -o admin
-u 用户号 指定用户的用户号;因为系统用户的用户号为0,故指定用户号为0 如果同时有-o选项,则可以重复使用其他用户的标识号;因为系统本身存在用户号为0的系统用户,故应该使用该参数。

23、如果你想列出当前目录以及子目录下所有扩展名为“.txt”的文件,那么你可以使用的命令是
find . -name “*.txt”
find . -name “*.txt” 可以
find . -name “.txt”是找出文件名为.txt的文件
find . “.txt” 是查找”.”,”.txt”这两个目录
ls 只能显示当前目录的文件

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7923次
    • 积分:508
    • 等级:
    • 排名:千里之外
    • 原创:45篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条