风花散却隽世间,雪月寥落化雨田

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣

Linux 同步方法剖析--内核原子,自旋锁和互斥锁

在学习 Linux® 的过程中,您也许接触过并发(concurrency)、临界段(critical section)和锁定,但是如何在内核中使用这些概念呢?本文讨论了 2.6 版内核中可用的锁定机制,包括原子运算符(atomic operator)、自旋锁(spinlock)、读/写锁(read...

2016-04-01 15:27:09

阅读数:508

评论数:0

(原创)socket学习实验(一)——利用C 语言socket抓取一个网页内容

(纯手打,有问题可以交流) 最近在学习socket,然后做了一些小的实验,发现socket功能还真是强大,对于socket流使套接字在某种程度上其实是与终端的telnet相似的,IP地址对应socket里的sock地址,端口对应sock里的端口,然后就看自己在终端里发送命令,就如同利用socke...

2016-04-01 15:27:06

阅读数:347

评论数:0

linux内核——进程管理

在讲进程之前先说一下进程的堆栈的吧: 1.进程的堆栈      内核在创建进程的时候,在创建task_struct的同时,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,cpu堆栈指...

2016-04-01 15:27:04

阅读数:450

评论数:0

Linux进程间通信——消息队列:

一、什么是消息队列 消息队列提供了 一种从一个进程向另一个进程发送一个数据块的方法。  每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列 与命名管道一样,每个数据块都有一个最大长度的限...

2016-04-01 15:26:54

阅读数:318

评论数:0

msgrcv error : Identifier removed(ERMID)错误解决;

今天在学习进程间通信中的消息队列的时候,自己的一个例子经常出现msgrcv error : Identifier removed这个错误,网上找了,发现好多人都与到过这问题,但是并没又给初一个明确的解决办法;后来终于给找出来了,原来是类型的问题: #include   #include  ...

2016-04-01 15:26:44

阅读数:1350

评论数:0

linux网络编程——套接字(socket)入门

1.套接字的基本结构 struct sockaddr 这个结构用来存储套接字地址。 数据定义: struct sockaddr { unsigned short sa_family; /* address族, AF_xxx */ ...

2016-04-01 15:26:36

阅读数:558

评论数:0

Linux 原始套接字--myping的实现

一、套接字的类型A.流套接字(SOCK_STREAM) 用于提供面向连接、可靠的数据传输服务,其使用传输层的TCP协议B.数据报套接字(SOCK_DGRAM)用于提供一个无连接、不可靠的服务,其使用传输层上的UDP协议C.原始套接字(SOCK_RAM)原始套接字是相对表中套接字(即前面两种套接字)...

2016-04-01 15:26:28

阅读数:362

评论数:0

linux 标准IO缓冲机制探究

一、什么是缓存I/O(Buffered I/O)缓存I/O又被称作标准I/O,大多数文件系统默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内...

2016-04-01 15:26:15

阅读数:342

评论数:0

linux 进程(二) --- 进程的创建及相关api

一、进程的创建fork()函数 由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是 新子进程的进程ID。将子进程ID返回给父进程的理由是:因为一个进程的子进程可以多于一个,所有没有一个函数使一个进...

2016-04-01 15:26:12

阅读数:428

评论数:0

进程间通信--信号(进程间通信唯一的异步方式)

一、信号的介绍信号是在软件层次上对中断机制的一种模拟,是一种异步通信方式。信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以利用它来通知用户空间进程发生了那些系统事件。如果该进程当前并未处于执行态,则该信号就由内核保存起来,直到该进程恢复执行再传递个它;如果一个信号被进程设置为阻塞,...

2016-04-01 15:26:09

阅读数:408

评论数:0

进程间通信---共享内存

一、IPC(Inter-Process Communication,进程间通信)对象的介绍System V 的IPC对象有共享内存、消息队列、信号灯。注意:在IPC的通信模式下,不管是使用消息队列还是共享内存,甚至是信号灯,每个IPC的对象都有唯一的名字,称为"键"(key)。...

2016-04-01 15:26:00

阅读数:550

评论数:0

Linux网络编程:原始套接字的魔力【上】

基于原始套接字编程        在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证:       也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤裸裸的修改,当然...

2016-04-01 15:25:57

阅读数:469

评论数:0

多线程编程

一、线程的基本概念    进程(process)和文件(files)是unix/linux操作系统两个最基本的抽象。进程是处于执行期的程序和它所包含的资源的总和,也就是说一个进程就是处于执行期的程序。一个线程(thread)就是运行在一个进程上下文中的一个逻辑流,不难看出,线程是进程中最基本的活动...

2016-04-01 15:25:51

阅读数:295

评论数:0

Linux环境进程间通信(一):管道及有名管道

在本系列序中作者概述了 linux 进程间通信的几种主要手段。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。 认清管道和有名管道的读写规则是在程序中应用它们的关键,...

2016-04-01 15:25:48

阅读数:295

评论数:0

Linux内核源码分析--内核启动之(5)Image内核启动(rest_init函数)(Linux-3.0 ARMv7)

前面粗略分析start_kernel函数,此函数中基本上是对内存管理和各子系统的数据结构初始化。在内核初始化函数start_kernel执行到最后,就是调用rest_init函数,这个函数的主要使命就是创建并启动内核线程init。这个函数虽然意思为剩下的初始化,但是这个“剩下”的可是内容颇多,下面...

2016-04-01 15:25:39

阅读数:369

评论数:0

设备模型之kobject,kset及其关系

设备驱动基础0:设备模型之kobject,kset及其关系 Linux2.6以后的设备驱动,都是在设备模型的基础上构建的,因此,要编写linux下的设备驱动程序,不论是usb设备,pci设备等,都需要了解设备模型。 设备模型的基础结构体主要是kobject,kset这两个结构体: stru...

2016-04-01 15:25:36

阅读数:432

评论数:0

Linux的i2c驱动详解

目录(?)[-] 简介 架构 设备注册 I2C关键数据结构和详细注册流程 关键数据结构 详细注册流程 使用I2C子系统资源函数操作I2C设备...

2016-04-01 15:25:21

阅读数:491

评论数:0

Linux开机启动过程详细分析

开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。 启动第一步--加载BIOS 当 你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于...

2016-04-01 15:25:18

阅读数:305

评论数:0

do_initcall解析

老大提了新需求:    板子上2个PCI网卡,2个CPU自带TSEC;    要求TSEC对应 eth0,eth1, PCI网卡对应 eth2,eth3网络设备的注册是由register_netdev(struct net_device *dev)来实现的网络设备驱动加载的时候,会调这个函数,到时...

2016-04-01 15:25:16

阅读数:262

评论数:0

[原创]Linux系统启动过程分析

经过对Linux系统有了一定了解和熟悉后,想对其更深层次的东西做进一步探究。这当中就包括系统的启动流程、文件系统的组成结构、基于动态库和静态库的程序在执行时的异同、协议栈的架构和原理、驱动程序的机制等等。        本人在综合了现有网上大家智慧的基础上,结合对2.6.32的内核代码...

2016-04-01 15:25:13

阅读数:426

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭