《linux 新手了解.docx》由会员分享,可在线阅读,更多相关《linux 新手了解.docx(5页珍藏版)》请在优知文库上搜索。
1、HnUX新手了解1. 1.inux运用体会(与WindowMac等相比)因为只运用过WindOlVS系统,所以在此只把1.inUX与WindoIVS作比较:(1)、从系统构成上来说,IinUX是开源软件,而windows不是。那就意味着,假如你喜爱你可以对IinUX系统做你想做的任何改动。而这点对于windows来说,是想也不要想的。(2)、从运行的稳定性来说。各有利弊。但IinUX的任何程序都是相对独立的,哪怕gnome和kde(图形界面)也是独立的。而软件的崩溃只是软件的崩溃,很少造成系统的瘫痪(死机)。只有重新运行程序就好了。WindOWS吗,就不用说了,受软件影响很大,很简洁死机。(3
2、)、从多用户来说,IinUX是真正的多用户系统。可以多个用户真正登录,这对于WindoWS来说,虽然也有了雏形,但太儿戏化了,摆设而已。(4)、对于中文的支持来说。windows的多个版本对于windows的支持是很强的。字体也很美丽。而IinUX虽然也支持中文,但要完全支持中文是要手动做许多设置的,不过就算做的再好。总有机会看到中文乱码的(因为几乎每个软件都要设置字体和字符编码的)。而且中文的字体比较烦,不是很好看。刚起先在1.inux上打开ftp时就有感受,打开全是乱码。(5)、对于系统更新来说,apt是目前IinUX不二的选择了,快捷普遍、简洁。而且无什么正版验证之虞的。windows也
3、不错,可是漏洞总比补丁来的快,更何况我没用过正版的。2. 1.inux进程信息(写出详细含义)进程乂称任务,是一个动态的运用系统资源、处于活动状态的应用程序。进程的管理由进程限制块PCB.进程调度、中断管理、任务队列等组成,它是IinUX文件系统、存储管理、设备管理和驱动程序的基础。进程限制块PCB中包含了进程的全部信息,主要包括进程PID、进程所占有的内存区域、文件描述符和进程环境等信息。他用task_struct的数据结构表示,存在于i11cludelinuxsch.h进程状态及转换cppviewplaincopyprint?1,defineTASK_RUNNING0运行状态2.#CIef
4、ineTASKNTERRUPTlB1.E1等待状态(可被中断)3./defineTASKjJNlTERRUPTIB1.E2等待状态(不行被中断)4.#dcfineTASK一SToPPED4停止状态5.HdcfineTASK_Z0MBIE8睡眠状态6.WdefineTASm)EAD16僵死状态进程的基本操作,六大类:获得进程信息函数:主要通过读取进程限制块PCB中的信息。(l)getpid()功能:用来获得目前进程的进程标识。定义函数:pidtgetpid(void)返回值:返回当前进程的进程识别名。头文件:#includeunistd.h(2)getppid()功能:用来获得目前进程的父进程标
5、识。定义函数:pid_tgetppid(void)返回值:返回当前进程的父进程识别名头文件:Wincludeunistc1.h(3)getpgid()功能:用来获得参数Pid指令进程所属于的组识别名,若参数为0,则返回当前进程的组识别码。定义函数:pid_tgetpgid(pid_tpid)返回值:执行胜利则返回正确的组识别码,若有错则返7,错误缘由存在于errno中。头文件:Wincludeunistc1.h(4)getpgrp()功能:用来获得目前进程所属于的组识别名,等价于getpgid(0)o定义函数:pid_tgetpgrp(void)返回值:执行胜利则返回正确的组识别码。头文件:i
6、ncludeunistd.h(5)getpriotity(void)功能:用来获得进程,进程组和用户的进程执行优先权。定义函数:intgetpriority(intwhich,intwho)参数含义:which:PR1O_PROCESSwho为进程的识别码PRlO_PGRPwho为进程的组识别码PRlO_USERwho为用户识别码返回值:执行胜利则返回当前进程的优先级(-2020),值越小优先级越高。若出错则返T,缘由在errno中。头文件:Sincludesys/resource.h3.gcc和dgb的运用方式CtrRaltH先进入终端,运用vi编辑器编写C代码如下。运用gcc打开hell。
7、.C的文件,并且运行可以看到运行结果,HelloWorld!运用dgb调试程序,而新写了一个可以看出调试结果的C文件,test,c文件。先运用gcc运行test,c文件,查看其结果。运行gdb运用r吩咐执行(RUn)被调试文件,因为尚未设置任何断点,将干脆执行到程序结束,然后运用b吩咐在main函数开头设置一个断点(BreakPOint),再运用r吩咐运行,可以看到显示第一个断点在第14行。以及相应前面都运行到第14行的结果。然后分别在第21行、IcmpFunction函数开头各设置一个断点,运用C吩咐接着(COntinUe)执行被调试程序,程序将中断在其次个断点行),此时全局变量nGloba
8、lVar的值应当是88;再一次执行c吩咐,程序将中断于第三个断点(7行,tcmpFunction函数开头处),此时IcmpFunction函数的两个参数a、b的值应分别是1和2:运用display吩咐display/iSpc,进行汇编级的调试或跟踪。此后程序再中断时,就可以显示出汇编代码了:看到n=l汇编代码为movlSOxl,Oxlc(%esp),并且以后程序每次中断都将显示下一条汇编指定(Si吩咐用于执行一条汇编代码区分于S执行一行C代码):运用d吩咐删除前面的全部断点Deletebreakpoint,试一下吩咐b*函数名称。运用吩咐b*main在main函数的PrOlog代码处设置断点(prolog,epilog,分别表示编译器在每个函数的开头和结尾自行插入的代码):运用ir吩咐显示寄存器中的当前值ir即InfomationRegister:也可以显示随意一个指定的寄存器值,以及Q吩咐,退出(Quit)GDB调试环境: