Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1477752
  • 博文数量: 842
  • 博客积分: 12411
  • 博客等级: 上将
  • 技术积分: 5772
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-14 14:43
文章分类

全部博文(842)

文章存档

2013年(157)

2012年(685)

分类: LINUX

2012-05-16 16:28:25

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif";}

       inode值相同的文件是硬链接文件。一个inode值可以对应多个不同的文件。创建硬链接的方法是 ln 源文件 目标文件。 inode值相同的文件,它们的关系是互为硬链接的关系。当修改了其中的一个文件,其他的inode值相同的文件也随之修改了。当修改其中一个文件的内容时,互为硬链接的文件的内容也会跟着变化。

      如果删除互为硬链接关系的某个文件时,其它的文件并不受影响

      软链接的创建

      ln -s 源文文件或目录 目标文件或目录

      修改链接文件的内容时,就意味着我们在修改源文件的内容。

      源文件删除后,链接文件只存在一个文件名,因为失去了源文件,所以软链接文件也就不存在了。这一点和硬链接是不同的;

      如果一个链接文件失去了源,就意味着他已经不存在了;

 

 

  1. inode 译成中文就是索引节点。
  2. 每个存储设备或存储设备的分区(存储设备是硬盘、软盘、U ... ... )被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是BlockBlock是用来存储数据用的。而inode就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。
  3. inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。

      GNU 是由“GNU‘s Not Unix”所递回定义出的首字母缩写语;它的发音为“guh-NEW”

 

       GNU 工程开始於一九八四年,旨在发展一个类似 Unix ,且为自由软件的完整操作系统: GNU 系统。著名的GPL协议即是GNU General Public License的简称。

LILOLInux LOader引导加载程序

一、当机器引导它的操作系统时,BIOS 会读取引导介质上最前面的 512 字节(即人们所知的 主引导记录(master boot recordMBR))。

 

二、主引导记录本身要包含两类内容 ——引导加载程序以及分区表。

 

三、最后引导加载程序的主体;它包含有加载程序更需要磁盘空间的部分,比如用户界面和内核引导程序。

 

其中分区表共有64字节,而记录每个分区需要16个字节。所以总共只能有4个分区。也就是说主分区和扩展分区总共只有4个。为了增加分区数目,可以在扩展分区上建立逻辑分区。逻辑分区号从5开始。1~4用于主分区和扩展分区。

 

显示用户的ID,以及所属群组的ID

 

语  法:id [-gGnru][--help][--version][用户名称]

参  数:
 -g  显示用户所属群组的ID 
 -G  显示用户所属附加群组的ID 
 -n  显示用户,所属群组或附加群组的名称。 
 -r  显示实际ID 
 -u  显示用户ID 

 

 

当一个进程调用fork时,其子进程继承父进程的信号处理方式。因为子进程在开始时复制了父进程的存储图像,所以信号捕捉函数的地址在子进程中是有意义的。

1.       exec函数并不创建新进程,故执行exec函数前后进程的pid并不改变。但是exec函数将原先设置为要捕捉的信号都更改为默认动作,其他信号的状态则不变。(一个进程原先要捕捉的信号,当其调用exec函数执行一个新程序后,就自然不能在捕捉了。因为信号捕捉函数的地址很可能在所执行的新程序文件中已无意义。)

2.       write函数是不带缓存的,而标准IO是带有缓存的。Open,close,lseek,read,write都是不带缓存的。不带缓存的意思就是,每一次的readwrite都会调用一次系统调用。另外,lseek会把当前的文件偏移量记录在内核中,但是lseek并不会进行IO操作。

3.       若进程正在执行malloc函数,在其堆中分配另外的存储空间,而此时进程捕捉到信号插入指向该信号处理程序,其中又调用malloc函数,这时会发生什么呢?又如进程正在执行getpwnam这种将其结果存放在静态存储单元中的函数,而插入执行的信号处理程序中又调用这样的函数,这时会发生什么呢?在malloc例子中,可能会对进程造成破坏,而在getpwnam的例子中,正常返回给调用者的信息可能由返回至信号处理程序的信息覆盖。者就引出了可再入函数的概念。不可再入函数的原因是:它们使用静态数据结构或调用mallocfree,或者它们是标准IO函数。标准IO库的很多实现都以不可再入方式使用全局数据结构。作为一种通用的规则,当在信号处理程序中调用可再入函数时,应当在其前保存其后恢复errno。(要了解到经常被捕捉的信号是SIGCHLD,其信号处理程序通常要调用一种wait函数,而各种wait函数都能改变errno)。

4.       _exit是由exit调用的一个函数。

5.       opensusesuse的关系犹如fedorarhel的关系。一个是桌面版一个是企业版。Kdegnome的区别是kde是在左下角,gnome是在左上角。Kde是用qt实现的,而gnome是用gtk实现的。

6.       exit_exit函数用于正常终止一个程序。_exit立即进入内核。Exit则先执行一些清除处理(包括调用执行各终止处理程序,关闭所有标准IO流等。),然后进入内核。

7.       c中,不允许使用跳越函数的goto语句。而执行这种跳转功能的是函数setjmplongjmp。这两个函数对于处理发生在很深的嵌套函数调用中的出错情况非常有用。Setjmplongjmp是非局部跳转函数。非局部表示这不是在一个函数内的普通的c语言goto语句。而是在栈上跳过若干调用帧,返回到当前函数调用路径上的一个函数中。

8.       linux原则:一切都是文件(包括硬件);程序较小且用途单一;能够将程序结合到一起以执行复杂任务;避免抢占式用户界面;配置数据以文本形式存储。

 

阅读(677) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~