linux基础知识
文章平均质量分 76
koozxcv
但行好事 莫问前程
展开
-
atomic_t相关操作
所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。 原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomic.h文件中,它们都使用汇编语言实现,因为C语言并不能实现这样的操作。 原子操作主要用于实转载 2015-11-06 21:17:41 · 467 阅读 · 0 评论 -
shell命令-read详解
read命令-p(提示语句) -n(字符个数) -t(等待时间) -s(不回显) 和“读文件”深入学习 1、基本读取 read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说)。得到输入后,read命令将数据放入一个标准变量中。下面是read命令 的最简单形式:: #!/bin/bash echo -n "Enter your name:"原创 2016-05-19 12:30:17 · 640 阅读 · 0 评论 -
利用select函数实现非阻塞式的socket accept
利用select函数实现非阻塞式的socket accept这个实现是我在阅读Superuser源码的过程中看到的。当时就在想,虽然我们知道select函数的使用方法,为什么我们在适当的地方想不起来使用它呢。看来这些好的习惯需要有意识的去养成。select系统调用是用来让我们的程序监视多个文件句柄(file descrīptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句原创 2016-04-11 22:39:31 · 2495 阅读 · 0 评论 -
进程上下文和中断上下文
进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。处理器总处于以下状态中的一种:1、内核态,运行于进程上下文,内核代表进程运行于内核空间;2、内核态,运行于中断上下文,内核代表硬件运行于内核空间原创 2016-01-27 15:52:27 · 540 阅读 · 1 评论 -
进程上下文和中断上下文
进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。处理器总处于以下状态中的一种:1、内核态,运行于进程上下文,内核代表进程运行于内核空间;2、内核态,运行于中断上下文,内核代表硬件运行于内核空间原创 2016-01-27 15:17:10 · 372 阅读 · 0 评论 -
linux下通过lseek()实现文件大小设置
一 函数介绍:函数名: lseek()功 能: 移动文件读/写指针所需头文件:#include #include 函数原型:off_t lseek(int fd, off_t offset, int whence);重新定位已打开的文件的偏移量,与whence的取值有关;参数:fd:文件描述符,对应已经打开的文件;转载 2015-10-24 11:18:57 · 1943 阅读 · 0 评论 -
proc文件系统
proc 文件系统是由软件创建,被内核用来向外界报告信息的一个文件系统。/proc 下面的每一个文件都和一个内核函数相关联,当文件的被读取时,与之对应的内核函数用于产生文件的内容。我们已经见到了很多这样的文件,例如,/proc/modules 总是返回当前内核中加载的模块。下面是一些重要 的文件:/proc/cpuinfo - CPU 的信息 (型号, 家族, 缓存大小等)/proc/原创 2015-10-30 13:00:05 · 424 阅读 · 0 评论 -
Linux进程的五个段(数据段、代码段、bss、堆栈段)
进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据段。原创 2015-10-31 15:58:32 · 18324 阅读 · 0 评论 -
内核符号表System.map
System.map是一个特定内核的内核符号表。它是你当前运行的内核的System.map的链接。内核符号表是怎么创建的呢? System.map是由“nm vmlinux”产生并且不相关的符号被滤出。对于本文中的例子,编译内核时,System.map创建在/usr/src/linux-2.4/System.map。像下面这样:nm /boot/vmlinux-2.4.7-10 >转载 2015-11-09 14:45:15 · 818 阅读 · 0 评论 -
linux中likely()和unlikely()宏
The gcc C compiler has a built-in directive that optimizes conditional branches as either very likely taken or very unlikely taken. The compiler uses the directive to appropriately optimize the branch原创 2015-11-09 10:34:15 · 706 阅读 · 0 评论 -
linux下的文件查找命令总结:find、locate、whereis、which
工作中经常会使用到linux的查找命令。比如find、locate、whereis、which在Linux中,有很多方法可以做到这一点。国外网站LinuxHaxor总结了五条命令,你可以看看自己知道几条。大多数程序员,可能经常使用其中的2到3条,对这5条命令都很熟悉的人应该是不多的。建议大家必须掌握find、whereis、which。1. findfind是最常见原创 2016-05-19 12:59:42 · 764 阅读 · 3 评论