![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核基础
BoArmy
这个作者很懒,什么都没留下…
展开
-
在linux内核中获得比jiffies精度更高的时间值
内核一般通过jiffies值来获取当前时间。尽管该数值表示的是自上次系统启动到当前的时间间隔,但因为驱动程序的生命期只限于系统的运行期(uptime),所以也是可行的。驱动程序利用jiffies的当前值来计算不同事件间的时间间隔。硬件给内核提供一个系统定时器用以计算和管理时间,内核通过编程预设系统定时器的频率,即节拍率(tickrate),每一个周期称作一个tick(节拍)。Linux内核从2.5转载 2013-03-09 07:28:30 · 935 阅读 · 0 评论 -
armlinux启动之时钟初始化
1、相关数据结构include/linux/notifier.hstruct notifier_block { int (*notifier_call)(struct notifier_block *, unsigned long, void *); struct notifier_block *next; int priority;};通知链中的元素,记录了当发出通知转载 2013-03-09 08:35:57 · 1086 阅读 · 0 评论 -
read和write系统调用
http://blog.chinaunix.net/space.php?uid=12567959&do=blog&id=161002read()和write()系统调用 read()和write()系统调用非常相似。它们都需要三个参数:一个文件描述符fd,一个内存区的地址buf(该缓冲区包含接受的数据或者要传送的数据的存放位置),以及一个数count(指定应该传送多少字节)。两个系统调转载 2013-03-09 07:28:21 · 1533 阅读 · 0 评论 -
编写了个videobuf以获得物理上连续的大的内存(DMA)
编写了个videobuf-contig.c以获得物理上连续的大的内存(DMA)转载:http://zhiqiang0071.cublog.cn-------------------------------------------- 撰写了符合v4L2的s3c2440的camera驱动,采用videobuf模块管理视频内存,需要申请四个物理上连续的内存,但是linux内核中现转载 2013-03-09 07:28:35 · 1302 阅读 · 0 评论 -
内核通知链
http://blog.chinaunix.net/space.php?uid=14163325&do=blog&id=64493《深入理解Linux网络内幕》一书中讲到的内核通知链方面的知识 1.通知链表简介 大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核转载 2013-03-09 07:28:25 · 556 阅读 · 0 评论 -
open,close系统调用
http://blog.chinaunix.net/space.php?uid=12567959&do=blog&id=161001open系统调用open()系统调用的服务例程为sys_open()函数,该函数接收的参数为:要打开的文件的路径名filename、访问模式的一些标志flags,以及如果该文件被创建所需要的许可位掩码mode。如果该系统调用成功,就返回一个文件描述符,转载 2013-03-09 07:28:18 · 1487 阅读 · 0 评论 -
从应用程序空间打开设备文件到设备驱动的关联过程分析
一般来说,字符型设备驱动程序能够提供如下几个入口点:(1) open入口点。打开设备准备I/O操作。对字符特别设备文件进行打开操作,都会调用设备的open入口点。open子程序必须对将要进行的I/O操作做好必要的准备工作,如清除缓冲区等。如果设备是独占的,即同一 时刻只能有一个程序访问此设备,则open子程序必须设置一些标志以表示设备处于忙状态。(2) close入口点转载 2013-03-08 21:35:47 · 1359 阅读 · 0 评论 -
从ARM VIVT看linux的cache处理
http://blog.chinaunix.net/space.php?uid=10701701&do=blog&cuid=1200081do_wp_page 的VIVT 考虑在下面的函数中(write protect detected), 为什么需要 flush_cache_page,和 update_mmu_cache?原因在于在vivt 的情况下, 如果a 进程写转载 2013-03-09 07:27:46 · 1216 阅读 · 0 评论 -
ARM Linux系统调用的原理
ARM Linux系统调用的原理 ARM Linux系统调用的原理操作系统为在用户态运行的进程与硬件设备进行交互提供了一组接口。在应用程序和硬件之间设置一个额外层具有很多优点。首先,这使得编程更加容易,把用户从学习硬件设备的低级编程特性中解放出来。其次,这极大地提高了系统的安全性,因为内核在试图满足某个请求之前在接口级就可以检查这种请求的正确性。最后,更重要的是这些接口使得程序具有可移植性转载 2013-03-09 07:28:14 · 1034 阅读 · 0 评论 -
armlinux内核启动--内存初始化管理
linux版本:2.6.36相关数据结构arch/arm/include/asm/setup.h#ifdef CONFIG_ARCH_LH7A40X# define NR_BANKS 16#else# define NR_BANKS 8#endifstruct membank { unsigned long start; unsigned l转载 2013-03-09 08:35:53 · 2806 阅读 · 0 评论 -
Linux内核代码分析--slab.c
一、准备知识:slab的概念:提出的原因:由于操作系统在运行中会不断产生、使用、释放大量重复的对象,所以对这样的重复对象的生成进行改进可以大大提高效率最早由sun的工程师提出(1994年)并首先在sunos5.4上应用。slab算法的基本思路:分配:if(对相对应的缓存区有空闲位置)使用这个位置,不必再初始化;else{分配内存;初始化对象;}释转载 2013-03-09 07:28:32 · 1217 阅读 · 0 评论 -
Linux 内核链表的使用及深入分析
一、重要知识点 1.内核链表和普通链表的区别 内核链表是一个双向链表,但是与普通的双向链表又有所区别。内核链表中的链表元素不与特定类型相关,具有通用性。 我们先来看一幅图kernel list展示的是内核链表的结构,normallist展示的是普通链表的结构。head是链表头,p1,p2,p3是链表节点。转载 2013-03-09 07:28:23 · 1136 阅读 · 0 评论 -
系统调用与库函数调用的区别
1、系统调用和库函数的关系系统调用通过软中断int 0x80从用户态进入内核态。函数库中的某些函数调用了系统调用。函数库中的函数可以没有调用系统调用,也可以调用多个系统调用。编程人员可以通过函数库调用系统调用。高级编程也可以直接采用int 0x80进入系统调用,而不必通过函数库作为中介。如果是在核心编程,也可以通过int 0x80进入系统调用,此时不能使用函数库。因转载 2013-03-08 21:35:54 · 777 阅读 · 0 评论 -
linux内核对S3C2410睡眠模式的支持
http://blog.chinaunix.net/space.php?uid=14163325&do=blog&id=64550一、S3C2410支持4种供电模式(1)NORMAL MODE耗电最大、可以通过关闭具体控制器的时钟来节电(2)SLOW MODE在此模式下可以没有内部PLL,耗电情况依赖于外部时钟的频率(3)IDLE MODEFCLK被关断,主要由于C转载 2013-03-09 07:28:08 · 779 阅读 · 0 评论 -
arm-Linux中断处理体系结构与处理流程分析
arm-Linux中断处理体系结构与处理流程分析本文分析了基于S3C2410平台的arm920中断的流程,参考了网上一些分析arm中断流程的文章。http://blog.chinaunix.net/space.php?uid=14163325&do=blog&cuid=1728394http://www.cnblogs.com/hoys/archive/2011/04/13/201原创 2013-03-09 07:28:11 · 3799 阅读 · 0 评论 -
armlinux中一些重要的宏-如unlikely、container_of及地址定义
TEXT_OFFSET 内核在RAM中的起始位置相对于RAM起始地址偏移。值为0x00008000./arch/arm/Makefile118 textofs-y := 0x00008000222 TEXT_OFFSET := $(textofs-y)PAGE_OFFSE 内核镜像起始虚拟地址。值为0xC0000000/arch/arm/configs转载 2013-03-09 08:36:04 · 986 阅读 · 0 评论 -
定位Oops的具体代码行
(来自Linus Torvalds的讨论:[url]https://groups.google.com/group/linux.kernel/browse_thread/thread/b70bffe9015a8c41/ed9c0a0cfcd31111[/url]又,[url]http://kerneltrap.org/Linux/Further_Oops_Insights[/url])转载 2013-03-09 07:28:28 · 765 阅读 · 0 评论 -
基于XIP技术的ARM Linux系统的研究与移植
基于XIP技术的ARM Linux系统的研究与移植dzsc.com文章出处:微计算机信息 发布时间: 2009/07/24 | 1514 次阅读 | 0次推荐 | 0条留言Samtec连接器 完整的信号来源开关,电源限时折扣最低45折每天新产品 时刻新体验ARM Cortex-M3内核微控制器TE Connectivity限时八折优惠酬宾来自全球领先品牌的最新产品目录最新电子元转载 2013-03-09 08:35:55 · 2344 阅读 · 0 评论