Linux
文章平均质量分 72
淡红星空
北航小本科生一枚,从事互联网方向研究
展开
-
SED与AWK学习笔记
1. 基本概念Sed是一个“非交互式”的面向字符流的编辑器。这个面向字符流就像是我去餐厅点了一道菜让厨师做,菜都是字符,厨师做好后直接送到我面前。所以我只要下达命令就好。Sed的优点是可以在一个地方指定所有的编辑指令,然后通过文件传递一次来执行他们。但是它在每次多于一行的处理能力方面有限制。Awk的典型应用是将数据转换成格式化的报表。增强可读性。因此当数据有某种结构转载 2013-07-28 14:37:21 · 1981 阅读 · 0 评论 -
【机试】华为2014校招机试:多线程循环打印十次ABC
题目:有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC…此乃多线程笔面试常考题目之一,下面提供Java和Linux C两种解法一、Java方法1:使用wait()、notify()控制打印次序public class Test { public static Object a = new Object(); p原创 2013-10-11 12:09:20 · 2720 阅读 · 0 评论 -
【深入剖析Linux内核】Linux内核之旅——(二)内核抢占与中断返回
1、上下文一般来说,CPU在任何时刻都处于以下三种情况之一:(1)运行于用户空间,执行用户进程;(2)运行于内核空间,处于进程上下文;(3)运行于内核空间,处于中断上下文。应用程序通过系统调用陷入内核,此时处于进程上下文。现代几乎所有的CPU体系结构都支持中断。当外部设备产生中断,向CPU发送一个异步信号,CPU调用相应的中断处理程序来处理该中断,此时CPU处于中断上下文。原创 2013-08-09 17:42:16 · 1042 阅读 · 0 评论 -
【手把手教你Ubuntu】Ubuntu安装时的分区研究
一般常见的分区方式有: 1.“/”文件系统和 “SWAP”分区; 2.“/”文件系统、“/home”文件系统和一个“SWAP”交换分区(入门用户建议选这个方案)。 3.再详细点,再多分一个“/boot”系统、“/var”文件系统等Linux目录树、不属于Linux目录树的/back(名字自己定,/file也可以,这是自己用来存放备份数据的地方) 只分“/”和“swap”两个区也有原创 2013-07-20 18:46:25 · 2464 阅读 · 0 评论 -
linux下简单源代码包(.tar.gz)的制作
本文以“hello world”程序为例,简单说明linux下源代码包(.tar.gz)的制作。当然,本身把hello world制作成源代码包是没什么意义的。在此,谨以说明源代码包的制作过程。首先,确保你的系统装有以下GNU软件:AutomakeAutoconfm4perllibtool1.新建一目录,将你的源代码放在此目录下,以下的操作均在此目录里进行。转载 2013-10-12 16:41:41 · 2895 阅读 · 1 评论 -
进程地址空间
1,内核除了管理本身的内存外,还必须管理用户空间中进程的内存我们称这个内存为进程地址空间,也就是系统中每个用户空间进程所看到的内存进程地址空间由进程可寻址的虚拟内存组成,而且更为重要的特点是内核允许进程使用这种虚拟内存中的地址。平坦:地址空间范围是一个独立的连续区间段式:这些地址空间并非连续的,而是被分段的通常情况下,每个进程都有唯一的这种平坦地址空间2,一转载 2013-09-19 21:46:05 · 1118 阅读 · 0 评论 -
linux下遍历目录树方法总结
前几天需要实现对整个目录树的遍历,查阅了相关的一些资料。开始找到的原始的方法是使用readdir()与lstat()函数实现递归遍历,后来发现linux对于目录遍历这种最常用的操作已经提供了很完善的接口:ftw()与nftw()。下面就这两种方法具体说明一下。1、手动实现递归1.1 stat()函数族stat函数族包括:stat,fstat以及lstat函数,都是向用户返回转载 2013-08-17 04:24:44 · 1450 阅读 · 0 评论 -
Linux内核之旅——(一)中断
一直认为,理解中断是理解内核的开始。中断已经远远超过仅仅为外围设备服务的范畴,它是现代体系结构的重要组成部分。1、基本输入输出方式现代体系结构的基本输入输出方式有三种:(1)程序查询:CPU周期性询问外部设备是否准备就绪。该方式的明显的缺点就是浪费CPU资源,效率低下。但是,不要轻易的就认为该方式是一种不好的方式(漂亮的女人不一定好,不漂亮的女人通常很可爱),通常效率低下是由于原创 2013-08-09 17:37:36 · 1854 阅读 · 0 评论 -
linux中的链表
//include/linux/list.h struct list_head { struct list_head *next, *prev; }; #define LIST_HEAD_INIT(name) { &(name), &(name) }#define LIST_HEAD(name) struct list转载 2013-08-09 17:40:15 · 904 阅读 · 0 评论 -
【深入剖析Linux内核】Linux内核之旅--(三)同步
1、概述同步问题是操作系统中的经典问题,它伴随着并发处理而自诞生。现代体系结构中常见的并发处理情况可以分为如下三种情况:(1)多个线程在单处理器上执行——多线程编程(2)多个线程在多处理器上执行——并行计算(3)多个线程在分布的多个处理上执行——分布式计算相应的编程也分成三种情况:共享变量编程、分布式(基于消息)编程和并行编程。1.1、并发程序设计的本质并发程序通常原创 2013-08-10 18:47:04 · 1339 阅读 · 0 评论