随笔分类 -  linux

摘要:1) lsls命令可以说是linux下最常用的命令之一,类似于windows下的dir命令,用来查看当前目录下的目录及文件的信息,根据选择参数的不同可以显示不同的信息。以下是ls常用的一些参数:ls [-alrtAFR] [name...] 例: 列出目前工作目录下所有名称是 s 开头的文件及目录,愈新的排愈后面 : ls -ltr s* 将 /bin 目录以下所有文件及目录详细资料列出 : ls -lR /bin 列出目前工作目录下所有文件及目录;目录于名称后加 "/", 可执行档于名称后加 "*" : ls -AF以下是ls的更多的参数:-a 列出目 阅读全文
posted @ 2012-12-21 16:40 陳さん様 阅读(185) 评论(0) 推荐(0)
摘要:对于shell在目前我还没见过特别确切的定义,我第一次见到shell这个词是在linux上(现在我也没办法改变那时的理解),所以我不对shell的官方解释加入任何自己理解的语言,以免误导大家!看下面的文章吧。操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。 shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串.. 阅读全文
posted @ 2012-12-21 16:31 陳さん様 阅读(1687) 评论(0) 推荐(0)
摘要:内存管理是操作系统的核心功能,无论对于开发者还是系统管理员内存管理的重要性都是不言而喻的。我会在接下来的几篇文章通过计算机的实际运行过程谈谈内存管理,当然在必要的时候我也会从底层原理去阐释这个问题。我们提到的概念是不局限于平台特性的通用概念,不过为了阐述这些概念我们选取的实例大多来源于Linux和基于x86架构的32位Windows操作系统。这篇文章,我们首先来看看程序是如何使用内存的。多任务操作系统中,每一个进程都有它自己的内存“沙盒”。所谓“沙盒”,是指虚拟地址空间,在32位模式下,虚拟地址空间最多能表示4GB容量。通过页表机制,虚拟地址空间能够映射到物理内存。页表由操作系统内核来管理,并 阅读全文
posted @ 2012-12-21 16:20 陳さん様 阅读(571) 评论(0) 推荐(0)
摘要:一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。所以,说它是“与地址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。也许错误的理解更利于形而上的抽像。虚拟内存(virtual memory)这是 阅读全文
posted @ 2012-12-21 16:17 陳さん様 阅读(247) 评论(0) 推荐(0)
摘要:Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。可以参考《Linux程序设计》(英文原版为《Beginning Linux Programming》,作者是Neil Matthew和Richard Stones)第三章: Working with files。系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思。面向的是硬件。而库函数调用则面向的是应用开发的,相当于应用程序的api,采用这样的方式有很多种原因,第一:双缓冲技术的实现。第二,可移植性。第三,底层调用本身的一些性能方面的缺陷。第四: 阅读全文
posted @ 2012-12-21 16:08 陳さん様 阅读(159) 评论(0) 推荐(0)
摘要:一直对linux启动时挂载根文件系统的过程存在着很多疑问,今天在水木精华区找到了有用的资料,摘录如下:1。linux启动时,经过一系列初始化之后,需要mount 根文件系统,为最后运行init进程等做准备,mount 根文件系统有这么几种方式:1) 文件系统已经存在于硬盘(或者类似的设备)的某个分区上了,kernel根据启动的命令行参数(root=/dev/xxx),直接进行mount。这里 有一个问题,在root文件系统本身还不存在的情况下,kernel如何根据/dev/xxx来找到对应的设备呢?注意:根文件系统和其他文件系统的 mount方式是不一样的,kernel通过直接解析设备的名称来 阅读全文
posted @ 2012-12-21 16:07 陳さん様 阅读(273) 评论(0) 推荐(0)
摘要:stat函数讲解表头文件: #include <sys/stat.h> #include <unistd.h>定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值: 执行成功则返回0,失败返回-1,错误代码存于errno错误代码: ENOENT 参数file_name指定的文件不存在 ENOTDIR 路径中的目录存在但却非真正的目录 ELOOP 欲打开的文件有过多符号连接问题,上限为16符号连接 EFAULT 参数bu 阅读全文
posted @ 2012-12-21 16:00 陳さん様 阅读(248) 评论(0) 推荐(0)