Linux嵌入式 -- 内核 - 系统调用】的更多相关文章

1. 系统调用 定义 Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用.用户可以通过系统调用命令在自己的应用程序中调用它们. 系统调用和普通的函数调用非常相似,区别仅仅在于,系统调用由操作系统内核实现,运行于内核态:而普通的函数调用由函数库或用户自己提供,运行于用户态. 2. 系统调用原理 #include<time.h> main() { time_t the_time; the_time=time((time_t *)0);/*调用time系统调用*/ printf(&…
1. make distclean 2. 配置内核  ----> 生成 .config文件 make menuconfig ARCH=arm Makefile文件分析: 3.  编译内核 make uImage ARCH=arm  CROSS_COMPLIE=arm-linux- 编译完成后位于 ARCH/arm/boot/zImage 4. 内核启动流程 (终极目标:挂在根文件系统,运行应用程序) 4. 文件系统 5. 如何制作linux嵌入式所需的文件系统?  a.  创建目录和文件 b.…
0. 嵌入式系统 以应用为中心,软硬件可裁剪,对功耗.对体积.对成本等都有严格要求的专用计算机系统. 1.  linux体系结构 2. 为什么 划分为 用户空间 和 内核控件 ?  分两级,内核和应用程序,使操作系统本身得到充分保护. 通过 系统调用 和 硬件中断 能从用户空间 --> 内核空间. 3. 内核架构 4.内核代码 5. 内核配置与编译  (以 ../arch/xx/configs 里的配置做参考 .config) A:  清除:清除临时文件.中间文件和配置文件. • make cl…
1. 进程四要素 1. 有一段程序供其执行.这段程序不一定是某个进程所专有,可以与其他进程共用. 2. 有进程专用的内核空间堆栈. 3. 在内核中有一个task_struct数据结构,即通常所说的"进程控制块PCB".有了这个数据结构,进程才能成为内核调度的一个基本单位接受内核的调度. 4. 有独立的用户空间. 2. struct task_struct 进程描述 在Linux中,线程.进程都使用struct task_struct来表示,它包含了大量描述进程/线程的信息,其中比较重要…
1.  逻辑地址 线性地址 物理地址 段式管理: 16位CPU,20根地址总线,可寻址1M内存,但是只有16位的寄存器,64K. 逻辑地址  =  段基地址 + 段内偏移地址 物理地址 PA  = 段寄存的值 * 16  + 逻辑地址 段式管理: 32位CPU,两种模式  实模式 + 保护模式 实模式 和 16位CPU一样,段寄存器的值*16就是段地址 保护模式: 段基地址32位,每个段都有4G容量,段寄存器的值是一个选择器,间接指出一个32位的段地址. 页式管理: 线性地址被分为固定长度的组,…
1. 什么是proc文件系统? 实例:通过 /proc/meminfo,查询当前内存使用情况. 结论:proc文件系统是一种在用户态检查内核状态的机制. 2.Proc文件分类 特点  每个文件都规定了严格的权限可读?可写?哪个用户可读?哪个用户可写?  可以用文本编辑程序读取(more命令,cat命令,vi程序等等)  不仅可以有文件,还可以有子目录.  可以自己编写内核程序添加一个/proc目录下的文件.  文件的内容都是动态创建的,并不存在于磁盘上,存在内存中. 3. 功能函数 内核描述 s…
1.  度量时间差 时钟中断由系统的定时硬件以周期性的时间间隔产生,这个间隔(即频率)由内核根据HZ来确定,HZ是一个与体系结构无关的常数,可配置(50-1200),在X86平台,默认值为1000(每秒计数1000次). 每当时钟中断发生时,全局变量jiffies(unsigned long)就加1,因此jiffies记录了自linux启动后时钟中断发生的次数.驱动程序常利用jiffies来计算不同事件间的时间间隔. 如果对延迟的精度要求不高,最简单的实现方法如下--忙等待: 延时  jit_d…
1. linux内核链表 链表数据结构的定义: struct list_head  {  struct list_head *next, *prev;  };  list_head结构包含两个指向list_head结构的指针prev和next,由此可见,内核的链表具备双链表功能,实际上,通常它都组织成双向环链表. 2. 链表操作 Linux内核中提供的链表操作主要有: 初始化链表头 INIT_LIST_HEAD(list_head*head)  插入节点 list_add(struct list…
深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系. 课程内容简单介绍 本课程重点是给大家解说嵌入式linux系统移植的开发方法,採用理论与实践,硬件与软件相结合的方法. 1.在每节開始之前先简单回想上一节所讲的主要内容,并对本节所讲的内容先进行概述,解说概念.技术要点,设计实现思路等内容,最后总结本次课程的要掌握的要点. 2.在讲课的过程中对关键…
Linux内核-系统调用 1.与内核通信 #系统调用在用户空间进程和硬件设备之间添加了一个中间层 作用:1.为用户空间提供了一种硬件的抽象接口 2.系统调用保证了系统的稳定和安全 3.出于每一个进程都执行在虚拟系统中的考虑 #系统调用是用户空间訪问内核的唯一手段 2.API.POSIX和C库 #应用程序通过API而不是直接系统调用来编程 #一个API定义了一组应用程序使用的编程接口 3.系统调用 #内核必需提供系统调用所希望完毕的功能.但它全然能够依照自己的方式去实现,仅仅要最后结果正确 #全部…