linux
文章平均质量分 57
sweety_0628
这个作者很懒,什么都没留下…
展开
-
编译内核 软连接问题
make: Warning: File `include/config/auto.conf.cmd' has modification time 1.6e+06 s in the future CHK include/linux/version.h CHK原创 2011-10-17 11:09:50 · 375 阅读 · 0 评论 -
硬件通讯 IO
1 外设与CPU通讯:通过对设备寄存器的读写控制,内存区和IO区没有概念上的差别,都是通过在地址总线和控制总线上发出电信号再存取到数据总线。2 独立编址和统一编址:独立编址:IO端口地址和存储器地址独立,分开设置,互不影响。采用这种方式,对IO端口的操作使用专门的输入输出指令;统一编址:即从存储空间画出一部分地址给IO端口,CPU访问端口和访问存储器的指令形式上完全相同,只能从地址原创 2012-01-11 16:47:30 · 434 阅读 · 0 评论 -
【转】Linux系统中的计时机制及相关时间函数
http://javadino.blog.sohu.com/74292567.html1. 时间相关硬件 计算机系统中的时间主要由三种时钟硬件提供的:实时时钟(Real Time Clock,RTC),可编程间隔定时器(Programmable Interval Timer,PIT),时间戳计数器(Time Stamp Counter,TSC)。这些时钟硬件都是基于固定频率的晶振来提供转载 2011-12-30 14:20:03 · 356 阅读 · 0 评论 -
【转】ioctl的实现
在驱动程序中实现的ioctl函数体内,实际上是有一个switch{case}结构,每一个case对应一个命令码,做出一些相应的操作。怎么实现这些操作,这是每一个程序员自己的事情,因为设备都是特定的,这里也没法说。关键在于怎么样组织命令码,因为在ioctl中命令码是唯一联系用户程序命令和驱动程序支持的途径。命令码的组织是有一些讲究的,因为我们一定要做到命令和设备是一一对应的,这样才不会将正确的命转载 2011-12-23 15:45:00 · 308 阅读 · 0 评论 -
【转】Linux内核内存分配函数
1.原理说明 Linux内核中采 用了一种同时适用于32位和64位系统的内 存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系 统中,用到了四级页表,如图2-1所示。四级页表分别为: * 页全局目录(Page Global Directory) * 页上级目录(Page Upper Directory) * 页中间目录(Page Middl转载 2012-01-05 15:45:39 · 371 阅读 · 0 评论 -
【转】Linux地址映射(1)--线性映射与非线性映射
一,线性映射与非线性映射1. 内存管理物理内存管理:Linux内存最小管理单位为页(page),通常一页为4K。初始化时,linux会为每个物理内存也建立一个page的管理结构,操作物理内存时实际上就是操作page页。某些设备会映射在物理内存地址外,这些地址会在使用时建立page结构。 进程内存管理:Linux进程通过vma进行管理,每个进程都有一个task转载 2012-01-05 11:09:51 · 371 阅读 · 0 评论 -
如何编写Linux驱动
http://www.360doc.com/content/10/1003/18/1317564_58184176.shtml转载 2012-02-15 16:01:06 · 257 阅读 · 0 评论 -
input.h
#ifndef _INPUT_H#define _INPUT_H/* * Copyright (c) 1999-2002 Vojtech Pavlik * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Gen翻译 2012-03-12 20:52:16 · 2948 阅读 · 0 评论 -
设备模型
原创 2012-03-13 21:56:31 · 368 阅读 · 0 评论 -
【转】内核调度-时间片算法
内核在微观上,把CPU的运行时间分成许多分,然后安排给各个进程轮流运行,造成宏观上所有的进程仿佛同时在执行。双核CPU,实际上最多只能有两个进程在同时运行,大家在top、vmstat命令里看到的正在运行的进程,并不是真的在占有着CPU哈。所以,一些设计良好的高性能进程,比如nginx,都是实际上有几颗CPU,就配几个工作进程,道理就在这。比如你的服务器有8颗CPU,那么nginx work转载 2012-04-26 16:02:01 · 318 阅读 · 0 评论 -
【转】linux虚拟文件系统
虚拟文件系统(VFS)在我看来, "虚拟"二字主要有两层含义:1, 在同一个目录结构中, 可以挂载着若干种不同的文件系统. VFS隐藏了它们的实现细节, 为使用者提供统一的接口;2, 目录结构本身并不是绝对的, 每个进程可能会看到不一样的目录结构. 目录结构是由"地址空间(namespace)"来描述的, 不同的进程可能拥有不同的namespace, 不同的namespace可能有着不转载 2012-05-08 12:52:32 · 283 阅读 · 0 评论 -
信号量与自旋锁
内核同步措施 为了避免并发,防止竞争。内核提供了一组同步方法来提供对共享数据的保护。 我们的重点不是介绍这些方法的详细用法,而是强调为什么使用这些方法和它们之间的差别。 Linux 使用的同步机制可以说从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随 Linux从单处理器到对称多处理器的过度;伴随着从非抢占内核转载 2011-12-22 20:41:39 · 242 阅读 · 0 评论 -
内核2.6.39/Documentation/kbuild/kconfig-language.txt
介绍------------这个配置数据库是以树形结构组织的配置选项的集合: - 代码成熟级别选项| - 提示开发和/或不完整的代码/驱动器- 常规设置| - 网络支持| - 系统V IPC| - BSD的进程记帐| - sysctl的支持- 支持可装载模块| - 启用支持可装载模块| - 所有模块符号上设置版本信息| -翻译 2011-12-09 20:43:14 · 490 阅读 · 0 评论 -
kernel module编程(八):读取proc文件之seq_file
在上次我们使用了read_proc的方式通过/proc文件读取kernel module的信息。作者给的例子他自己说是ugly。而我们在读取大量数据时发现,受到用户buffer大小的限制(page的大小),可能需要读取多次,不仅需要记录上次读取的位置,而且由于每次读取我们申请了信号量,读取完释放,那么如果多次读取的间隔中,如果信号量被写所获取就好出现混乱。 linux kernel提供se转载 2011-12-19 21:04:05 · 289 阅读 · 0 评论 -
交叉编译工具链的安装(arm-2008q3为例)
1 从PC上拷贝arm-2008q3的压缩文件到ubuntu的/usr/local,解压缩2 在/root下.bashrc文件中添加环境变量;编辑编辑.bash_profile也行。 export PATH=$PATH:/usr/local/arm-2008q3/bin;3 使设置生效# source /root/.bashrc4 检查是否生效 # arm-none-linux-g原创 2011-10-21 19:58:47 · 1073 阅读 · 0 评论 -
linux下对优盘分区
可视化工具cfdiskb 切换当前分区启动标志d 删除分区g 更改柱面磁头每磁头扇区数等信息h 打印当前屏幕m 当前磁盘使用最大化(会导致在dos下的不兼容)n 新建分区p 分区表打印到屏幕或文件,有几种不同格式的分区 r - Raw data (exactly what would be written to disk)原创 2011-10-22 10:15:55 · 619 阅读 · 0 评论 -
补丁
vim -d 1.txt 2.txt打开编辑器查看两个文本的不同 git diff a.txt b.txt >patch.txt 将文本的不同输出到patch.txtpatch 1.txt原创 2011-10-22 12:19:14 · 239 阅读 · 0 评论 -
Git和Repo扫盲——如何取得Android源代码(转)
两篇Git的使用技巧性文章:活灵活现用Git--基础篇: http://phoenixtoday.blogbus.com/logs/33458940.html活灵活现用Git--技巧篇: http://phoenixtoday.blogbus.com/logs/35149540.htmlGit 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的转载 2011-11-02 19:17:41 · 243 阅读 · 0 评论 -
内核2.6.39/Documentation/kbuild/kconfig.txt
这个文件包含了一些使用 "make *config"的帮助信息使用 "make help"列表所有可能的配置目标 xconfig ('qconf')和menuconfig ('mconf') 程序也内嵌了帮助文本, 确保核对它for导航,搜索以及其它通用帮助=====================================================翻译 2011-12-09 20:23:04 · 487 阅读 · 0 评论 -
内核2.6.39/Documentation/kbuild/kbuild.txt
输出文件modules.order--------------------------------------------------这个文件记录了模块在Makefile文件中出现的顺序。这个文件由modprobe使用以确定地解决匹配多个模块的别名问题。modules.builtin----------------------------------------翻译 2011-12-09 19:18:30 · 490 阅读 · 0 评论 -
scull设备
scull在ldd3这本书中是这么介绍的:从一个真实设备驱动提取的代码片段, scull 是一个字符驱动, 操作一块内存区域好像它是一个设备.scull 的优势在于它不依赖硬件. scull 只是操作一些从内核分配的内存.这个设备除了演示内核和字符驱动的接口和允许用户运行一些测试之外, 不做任何有用的事情.scull的作用是当用户申请内存空间时,只有用户写时才需要申请内存,这就存在零散的内原创 2011-12-17 11:23:21 · 432 阅读 · 0 评论 -
Linux设备文件简介
http://www.ej38.com/showinfo/linux-112563.htmlLinux设备文件简介概述设备管理是linux中比较基础的东西,但是由于Linux智能程度的越来越高,Udev的使用越来越广泛,使得越来越多的Linux新用户对 /dev 目录下的东西变得不再熟悉。有时候遇见问题就会变得抓狂。Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序转载 2011-12-17 18:47:57 · 267 阅读 · 0 评论 -
【转】如何在2.6内核中编译内核模块
在源码树中编译模块官方内核模块的源代码都是按模块(驱动)类型组织的, 我们到内核源码树的drivers目录可以看到char, usb, block之类的子目录. 那么我们在内核源码树中添加文件时, 最好也遵循这些分类. 分类的规则自己灵活把握.下面以前面的"hello, world"这个简单的模块为例, 来看看如何在内核源码树中编译内核模块.1, 不新建子目录(1)转载 2011-12-08 21:39:23 · 264 阅读 · 0 评论 -
linux dd常用命令参数
dd 的主要选项:指定数字的地方若以下列字符结尾乘以相应的数字:b=512, c=1, k=1024, w=2, xm=number mif=file输入文件名,缺省为标准输入。of=file输出文件名,缺省为标准输出。ibs=bytes一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。obs=bytes原创 2011-12-19 10:20:13 · 432 阅读 · 0 评论 -
【转】文件系统中的对象总结及对目录项对象的重点理解 .
文件系统中主要对象:●超级块(superblock)对象: 存放系统中已安装文件系统的有关信息。对于基于磁盘的文件系统(具有I/O操作),这类对象通常对应于存放在磁盘上的文件系统控制块(FCB),也就是说,每个文件系统都有一个超级块对象。●索引节点(inode)对象: 存放关于具体文件的一般信息。对于基于磁盘的文件系统,这类对象通常对应于存放在磁盘上的文件控制块(FCB),也就转载 2012-05-16 19:57:10 · 357 阅读 · 0 评论