linux面试小知识

1、tcp和udp的端口时独立的,可以相同,也可以不同。

2、空文件也可以创建软连接,但文件夹不能创建硬链接。

3、银行家算法 (Banker's Algorithm)是一个避免死锁(Deadlock)的著名算法

4、tablespace是逻辑上的概念,datafile是物理上的概念。
一个tablespace可以由多个datafile组成,一个datafile不能跨越多个tablespace。table中的数据,通过hash算法分布在tablespace中的各个datafile中,tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象

5、

同步机制应该遵循的基本准则 

· 空闲让进:当无进程处于临界区时,表明临界资源处于空闲状态,允许一个请求进入临界区的进程立即进入临界区,以有效利用临界资源

 · 忙则等待:当已有进程处于临界区时,表明临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问

 · 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态

 · 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态


6、


6、



7、

1.IP地址:IP地址是用来唯一标识互联网上计算机的逻辑地址,让电脑之间可以相互通信. 每台连网计算机都依靠IP地址来互相区分、相互联系
2.域名:由于IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。每一个符号化的地址都与特定的IP地址对应,这样网络上的资源访问起来就容易得多了。这个与网络上的数字型IP地址相对应的字符型地址,就被称为域名。
3.DNS:在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。域名的最终指向是IP
4.端口号:TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等
8、系统处于安全状态时,一定不会发生死锁;系统处于不安全状态时,不一定会发生死锁;
9、进程状态有三个,等待(阻塞),就绪,运行。等待状态是等待时间的发生,比如输入的指令,如果i/o操作结束,则表示某个进程进行的可能的输入输出,这可能会是某一个进程的事件触发,从而导致该进程有等待转到就绪,然后等待cpu分配的时间片到来,如果时间片到来则进入运行态
10、对进程来说,其虚拟内存的大小不受物理内存大小的限制
11、

使用fork函数得到的子进程从父进程的继承了整个进程的地址空间,包括:进程上下文、进程堆栈、内存信息、打开的文件描述符、信号控制设置、进程优先级、进程组号、当前工作目录、根目录、资源限制、控制终端等。

子进程与父进程的区别在于:

1、父进程设置的锁,子进程不继承(因为如果是排它锁,被继承的话,矛盾了)

2、各自的进程ID和父进程ID不同

3、子进程的未决告警被清除;

4、子进程的未决信号集设置为空集

12、

select
  • select能监控的描述符个数由内核中的FD_SETSIZE限制,仅为1024,这也是select最大的缺点,因为现在的服务器并发量远远不止1024。即使能重新编译内核改变FD_SETSIZE的值,但这并不能提高select的性能。
  • 每次调用select都会线性扫描所有描述符的状态,在select结束后,用户也要线性扫描fd_set数组才知道哪些描述符准备就绪,等于说每次调用复杂度都是O(n)的,在并发量大的情况下,每次扫描都是相当耗时的,很有可能有未处理的连接等待超时。
  • 每次调用select都要在用户空间和内核空间里进行内存复制fd描述符等信息。

poll

  • poll使用pollfd结构来存储fd,突破了select中描述符数目的限制。
  • 与select的后两点类似,poll仍然需要将pollfd数组拷贝到内核空间,之后依次扫描fd的状态,整体复杂度依然是O(n)的,在并发量大的情况下服务器性能会快速下降。

epoll

  • epoll维护的描述符数目不受到限制,而且性能不会随着描述符数目的增加而下降。
  • 服务器的特点是经常维护着大量连接,但其中某一时刻读写的操作符数量却不多。epoll先通过epoll_ctl注册一个描述符到内核中,并一直维护着而不像poll每次操作都将所有要监控的描述符传递给内核;在描述符读写就绪时,通过回掉函数将自己加入就绪队列中,之后epoll_wait返回该就绪队列。也就是说,epoll基本不做无用的操作,时间复杂度仅与活跃的客户端数有关,而不会随着描述符数目的增加而下降。
  • epoll在传递内核与用户空间的消息时使用了内存共享,而不是内存拷贝,这也使得epoll的效率比poll和select更高
13、项目中的难点
设计的算法,并发量,准确率。
深入了解过项目的什么东西,
14、如何禅看服务器当前并发量
netstat -pnt |  grep  : 80  |  wc  -l
15、数组的删除性能比较差,而链表的查找性能比较差!
静态变量通常存储在进程哪个区?( C )
A.栈区        B .堆区            C .全局区          D .代码区
栈区一般用于存储比较小的临时变量;
堆区一般用于存储比较大的临时变量;
代码区用于存储代码;
全局区用于存储全局变量,静态变量等。
17 一个栈的入栈序列是 A,B,C,D,E ,则栈的不可能的输出序列是?( C )
A. EDCBA          B . DECBA          C . DCEAB       D . ABCDE
A:全部入栈后出战
B:ABC入栈,D入栈然后出栈,E入栈然后出栈
C:不可能,
D:A入栈然后出栈,B入栈然后出栈
18、
同一进程下的线程可以共享以下?( BD )
A.  stack           B . data section        C . register set     D . file fd
每个线程包括:
线程状态: 线程当前的状态。
一个执行栈
私有的数据区: 用于每个线程局部变量的静态存储空间
寄存器集: 存储处理器的一些状态
19、
 进程进入等待状态有哪几种方式?(AB CD )
A CPU调度给优先级更高的线程(运行态转为就绪态)
B 阻塞的线程获得资源或者信号(阻塞态转为就绪态)
C 在时间片轮转的情况下,如果时间片到了(运行态转为就绪态)
D 获得 spinlock 未果(运行态转为就绪态)
20、
linux发行版本?
Ubuntu、Fedora、OpenSUSE、Debian、Mint、PClinuxOS、CentOS、FreeBSD
21、忘记root密码?
linux root密码找回方法一   第1步:在系统进入单用户状态,直接用passwd root去更改。   第2步:用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下:   cd /mnt mkdir hd mount -t auto /dev/hdaX(原来/分区所在的分区号) hd cd hd chroot ./ passwd root   第3步:将本机的硬盘拿下来,挂到其他的linux系统上,采用的办法与第二种相同.    linux root密码找回方法二   第1步:用lilo引导系统时:在出现 lilo: 提示时键入 linux single   画面显示lilo: linux single   第2步:回车可直接进入linux命令行   第3步:使用以下命令“vi /etc/shadow”将第一行,即以root开头的一行中root:后和下一个:前的内容删除,第一行将类似于root::......保存   vi /etc/shadow   第4步:reboot重启,root密码为空。    linux root密码找回方法三   第1步:用grub引导系统时:在出现grub画面时,用上下键选中你平时启动linux的那一项(别选dos哟),然后按e键   第2步:再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键   第3步:修改你现在见到的命令行,加入single,结果如下:   kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/ single   第4步:回车返回,然后按b键启动,即可直接进入linux命令行.   第5步:使用以下命令“vi /etc/shadow”将第一行,即以root开头的一行中root:后和下一个:前的内容删除,第一行将类似于root::......保存   vi /etc/shadow   第6步:reboot重启,root密码为空。 22、vim一些快捷键
) :光标移至句尾
( :光标移至句首
}:光标移至段落最后一个字母
{:光标移至段落第一个字母
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:行尾

23、Linux开机启动:
加载Bios--读取Mbr扇区--Bootloader--加载内核--用户init进程执行inittab开机启动项--init进程执行--rs.sysinit--启动内核模块--执行不同级别运行的脚本--执行/etc/rc.d/rc.local--执行/bin/login登录

24、保存当前磁盘的分区表:
dd if = / dev / sda of = . / mbr .txt bs = 1 count = 512

25、限制apdche每秒连接数为1、峰值为3
iptables - A INPUT - d 172.16.100.1 - p tcp -- dport 80 - m limit -- limit 1 / second   - j ACCEP

26、Linux下已经部署了dhcp服务器,客户端无法获取的IP,如何解决?
解决方案:
①编辑/etc/sysconfig/network-scripts/ifcfg-eth0,添加一个函数
DEVICE=eth0
ONBOOT=yes
ONBOOTPRORP=dhcp
check_link_down(){
return 1;
}
②使用命令dhclient
在客户端输入命令:
#dhclient

27、常用端口ftp http dns snmp pop3、dhcp、nfs、mysql、samba等服务
21 80 53 161 110 547 2049 3306 138

如何将本地
80
端口的请求转发到
8080
端口,当前主机
IP

192.168.2.1 
Iptables -A PREROUTING  
-d 124.42.60.109 -p tcp -m tcp –dport 80 -j DNAT 
–to-destination 10.0.0.18:9000 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值