linux 相关问题

1. gcc -o 优化等级

1. o0 不提供任何优化

2. o1 最基本的优化,针对代码的分支,表达式,常量进行优化,编译器会将代码编程更加短小,减少内存的占用率,操作系统进行内存调度时就会更快

3. o2 在上一级的基础上会进行更严格的细分,加入了寄存器的使用,

4. o3 编译器对循环每一层预测,以便将循环拆分,提高执行效率,还会试图用已有的值来代替未知的值,使用加替代乘,缺点十分明显,预测程序走向可能出现误差,导致错误和不可逆的走向

2. linux什么情况从用户态向内核态切换,都发生了什么

1. 发生系统调用时

2. 产生异常时

3. 外设产生中断时

用户态转内核态,是执行了;一个中断响应:

1. 从当前进程的任务状态段TSS中获取sp0,从而得到内核栈的栈顶指针

2. 内核栈中保存当前的eflags、cs、ss、eip、esp寄存器值,同时保存被中断程序下一条指令。

3. 将中断处理程序的cs、eip信息装入相应的寄存器,开始执行中断处理程序

此时,就转到了内核态

3. 中断的上半部和下半部的作用,为什么这么设计

中断是一个信号,当硬件需要获取处理器时,就可以发送这个信号。内核维护了一个中断信号线的注册表,类似于I/O端口注册表。

上半部的功能是响应中断,当中断发生时,它把中断处理例程的下半部挂到设备的下半部执行队列中,然后继续等待新中断的到来。上半部执行很快,因为是完全屏蔽中断的。

下半部的功能是处理比较复杂的过程,下半部是可中断的,一般是查看设备获得的中断事件信息,并根据这些信息进行相应的处理

4. strace + pstack性能分析

1. strace可以跟踪程序执行时使用的系统调用和接收的信号,包括参数、返回值、执行时间等。

-T 显示耗费的时间 -tt显示绝对时间 -o 输出到文件

-c 统计和报告系统调用执行的时间、调用次数、出错次数等

2. pstack 查看进程的堆栈信息

5. 查看进程的启动目录

1. ps -ef查看进程的的PID,到/proc/PID 下面 cwd就是启动目录 exe是bin文件

6. 怎么查看计算机状态,内存使用情况等(任务管理器)

cpu,内存,硬盘,等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 ,tcp网络状态查看,各进程状态,抓包相关等相关命令 必须熟练掌握。(top, free, df, fdisk)

 

7. netstat tcpdump ipcs ipcrm这几个命令是什么作用?

netstat 查看

tcpdump

ipcs

ipcrm

8. sed, awk, grep 三个超强大的命令,分别用于格式化修改,统计,和正则查找。请熟系。

sed

awk

grep

 

9. frok和vfork的区别。

fork

vfork:vfork创建子进程后,父进程阻塞,直到子进程调用exit()或者excle()。

对于内核中过程fork通过调用clone函数,然后clone函数调用do_fork()。do_fork()中调用copy_process()函数先复制task_struct结构体,然后复制其他关于内存,文件,寄存器等信息。fork采用写时拷贝技术,因此子进程和父进程的页表指向相同的页框。但是vfork不需要拷贝页表,因为父进程会一直阻塞,直接使用父进程页表。

 

10. exit() 与 _exit()的区别

exit()清理后进入内核,_exit()直接陷入内核。

 

11. 孤儿进程是怎么产生的?僵死进程是怎么产生的?

 

12. 僵死进程的危害有哪些?怎么避免?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 麒麟Linux是一个基于Linux内核的操作系统,采用完全开源的理念,支持多种架构,适用于桌面环境和服务器环境。使用麒麟Linux操作系统,用户能够获得高效、稳定、安全的工作环境,还能够享受到丰富的应用和软件团队的支持。 在使用麒麟Linux时,用户可能会遇到一些问题。例如,一些软件可能无法正常运行,或者硬件设备驱动可能需要手动安装。这些问题的解决方法通常可以在网上找到,或者向麒麟Linux社区的用户询问。 社区有一个丰富的文档库和论坛,用户可以在其中找到大量的问题解决方案和技巧。用户还可以参加社区的活动和交流会议,与其他麒麟Linux用户分享经验,并获得更好的技术支持。 总之,麒麟Linux操作系统的使用不仅能够为用户带来极佳的体验,还能够深化用户对开源技术的理解和运用。 ### 回答2: 麒麟Linux是一款国产的操作系统,在使用过程中可能会遇到一些问题。 首先,使用麒麟Linux前,需要先熟悉一些Linux的基本知识,例如如何在终端中输入命令、如何安装软件等等。如果不熟悉的话,可以先学习一下Linux的基础知识。 其次,可能会遇到一些软件不兼容的问题。因为麒麟Linux与其他操作系统不同,一些软件可能不支持在其上运行。此时可以尝试使用其他类似的软件,或者在虚拟机中安装其他操作系统。 此外,在使用过程中可能会遇到一些驱动问题。因为麒麟Linux使用的驱动可能不同于其他操作系统,所以有时需要手动安装一些驱动才能正常使用硬件设备。如果遇到这种情况,可以在麒麟Linux社区中咨询其他用户,或者在官方网站上查找相关的驱动。 总之,使用麒麟Linux需要一些耐心和技巧,但一旦熟悉起来,它会成为一款非常好用的操作系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值