分类: LINUX
2009-08-31 21:48:06
1、Linux部分各个文件夹的意义是什么?
/bin /lib /etc /mnt /boot
/bin 存放如ls ,mv,rm等常用的命令工具
/lib 在linux执行或编译一些程序的时候,均会用到的一些函数库。
/etc 系统在开机过成中需要读取的文件均在这个目录中,例如用户的 帐号与密码,系统的主要设定。
/mnt这是软盘与光盘等移动存储设备默认挂载的地方。
/boot 这里存放linux内核与开机相关文件的地方。
2、怎样在vi中查找一个字符串,请写出详细过程
在编辑模式下 用 /字符串/ 从光标开始处向文件尾部查找该字符串。 用 ?字符串 ? 从光标开始处向文件首查找该字符串。
3、怎样用gcc编译文件test.c,并加上调试信息?
用gcc test.c –o test –g
4、用gcc编译文件test.c,要经过哪几个步骤?
主要四个阶段
1:预处理阶段 gcc -E test.c -o test
2:编译成汇编代码 gcc -S test.c -o test.s
3:把汇编代码生成目标代码 gcc -c test.c -o test.o
4:用连接器把生成的目标代码和系统或用户提供的库连接起来生成可执行文件。gcc –o test test.c
5、gcc的参数“-L”,“-l”“-I”分别是什么意义?举例说明。
–L 指定额外的函数库搜索路径。
- 1 连接时搜索指定的函数库。
–I 指定额外的头文件搜索路径。
6、在gdb中怎样设置一个断点?怎样清除一个断点?
用break文件行 设置断点 clear 文件行 清除断点
7、写一个简单的Makefile的例子,并对它进行解释,说明Makefile的语法规则。 main: main.c main.h
gcc –o main main.c
main 是要产生的文件名称 main.c main.h 是产生目标文件依赖的文件
gcc是执行的命令 语法规则 目标:依赖文件列表 命令列表
8、什么是shell脚本?请写出你对shell脚本的理解。
shell 脚本程序就是按照一定的语法结构把若干linux命令组织在一起, 使这些命令按照我们的要求完成一定的功能,它可以进行类似程序的编 写,并且不需要编译就能运行。它就相当于windows下的批处理省去一 步步的命令操作。
9、什么是系统调用?请写出你对系统调用的理解。
系统调用是指操作系统提供给用户程序调用的一组特殊接口,用户程 序可以通过这组接口获得操作系统内核提供的服务。
10、举例说明dup()和dup2()的意义及用法。
在shell命令解释器项目中,使用dup()或dup2()函数复制文件描述 符,实现重定向功能。
11、什么是标准I/O库?标准I/O库和系统调用有什么区别?
系统级的I/O操作函数都是针对文件描述的,即打开文件时返回一个文 件描述符,然后可以直接对文件描述符进行操作。系统调用运行内核态 I/O库函数运行与用户态。
12、函数read()和fread()有什么区别?
fread的是标准IO,属于库函数,read是操作系统提供的系统调用。 fread是带缓冲的,read不带缓冲.
13、什么是进程?用fork()创建一个子进程时,系统会做什么工作?
进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系 统进行资源分配和调度的独立单位不仅是系统内部独立运行的实体也 是独立竞争资源的实体。 用fork()时系统会分配子进程一个ID号 然后继承父进程的地址空间,包 括进程上下文 进程堆栈 打开的文件描述符等等,他就是父进程的一个 复制品。
14、什么是信号?请写出你对信号的理解。
信号是软件中断,它提供了一种处理异步事件的方法,是进程间通信的方法。
15、进程和线程有什么区别?
每个独立的进程有一个程序运行的入口、顺序执行序列和程序的 出 口。但是线程不能够独立执行,必须依存在应用程序中,由应用程 序提供多个线程执行控制。 进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体, 是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单 位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的 资源但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.
16、什么是线程的互斥和同步,程序应怎样写才能达到互斥或同步?
互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。
同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源 在写程序时可以用互斥锁和信号量实现线程同步 ,一个线程访问共享资源时给这个资源上锁其他线程就不能访问了直到上锁的进程释放互斥锁为止。