随笔分类 -  08.Linux_sys

上一页 1 2 3 4 5 6 7 ··· 11 下一页
摘要:Ubuntu Linux系统包含两类环境变量:系统环境变量和用户环境变量。系统环境变量对所有系统用户都有效,用户环境变量仅仅对当前的用户有效。 修改用户环境变量 用户环境变量通常被存储在下面的文件中: ~/.profile ~/.bash_profile 或者 ~./bash_login ~/.ba 阅读全文
posted @ 2017-06-28 20:58 qiynet 阅读(616) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2017-06-28 19:01 qiynet 阅读(0) 评论(0) 推荐(0)
摘要:深入理解ARM的这三个寄存器,对编程以及操作系统的移植都有很大的裨益。 1、堆栈指针r13(SP):每一种异常模式都有其自己独立的r13,它通常指向异常模式所专用的堆栈,也就是说五种异常模式、非异常模式(用户模式和系统模式),都有各自独立的堆栈,用不同的堆栈指针来索引。这样当ARM进入异常模式的时候 阅读全文
posted @ 2017-06-22 10:09 qiynet 阅读(7396) 评论(0) 推荐(0)
摘要:ndev是我们在probe函数中定义的局部变量,如果我想在其他地方使用它怎么办呢? 这就需要把它保存起来。内核提供了这个方法,使用函数platform_set_drvdata()可以将ndev保存成平台总线设备的私有数据。 以后再要使用它时只需调用platform_get_drvdata()就可以了 阅读全文
posted @ 2017-05-17 19:45 qiynet 阅读(721) 评论(0) 推荐(0)
摘要:函数:void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offsize); 参数start(dst):指向欲映射的内存起始地址,通常设为 NULL,代表让系统自动选定地址,映射成功后返回该地址。 参数length 阅读全文
posted @ 2017-05-16 16:25 qiynet 阅读(825) 评论(0) 推荐(0)
摘要:虚拟 转 物理地址 virt_to_phys( *addr );物理 转 虚拟地址 phys_to_virt( *addr ); 如: Linux内核里提供的/dev/mem驱动,为我们读写内存物理地址,提供了一个渠道。下面讲述2种利用mem设备文件进行物理地址读写的方法,一种是设备驱动的方法,另一 阅读全文
posted @ 2017-05-12 10:04 qiynet 阅读(12012) 评论(0) 推荐(0)
摘要:需要先包含头文件 #include"malloc.h" malloc是标准的在堆中开辟新的空间 比如 char *pt=(char *)malloc(10*sizeof(char)); 需要free(p)才会释放空间 calloc也是开辟空间,但是使用方式不一样 比如 char *pt==(char 阅读全文
posted @ 2017-05-05 11:55 qiynet 阅读(378) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2017-04-21 13:32 qiynet 阅读(4) 评论(0) 推荐(0)
摘要:在驱动模块初始化函数中实现设备节点的自动创建 我们在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,当然前提条件是用户空间移植了ud 阅读全文
posted @ 2017-04-16 21:28 qiynet 阅读(2850) 评论(0) 推荐(0)
摘要:挂载好新硬盘后输入fdisk -l命令看当前磁盘信息 可以看到除了当前的第一块硬盘外还有一块sdb的第二块硬盘,然后用fdisk /dev/sdb 进行分区 进入fdisk命令,输入h可以看到该命令的帮助,按n进行分区 这里输入e即分为逻辑分区,按p即分为主分区,我们要将这块盘分为主分区即输入p 到 阅读全文
posted @ 2017-03-14 19:13 qiynet 阅读(159) 评论(0) 推荐(0)
摘要:虚拟就是虚拟的,不是实际真是的物理地址。你可以认为,这两个地址之间没关系。这个虚拟是通过系统和硬件的双重工作,做的一种点对点的映射(当然实际内存分配是按照页来处理)。也就是软件不需要考虑内存数据的物理地址,只需要用虚拟地址做数据存储处理就行了。这样一个好处是,软件不需要自己做内存分配,也不需要考虑别 阅读全文
posted @ 2017-03-06 14:11 qiynet 阅读(688) 评论(0) 推荐(0)
摘要:***************************************************************************************************************************作者:EasyWave 时间:2013.02.06 类 阅读全文
posted @ 2017-02-21 15:24 qiynet 阅读(2168) 评论(0) 推荐(0)
摘要:.align 就是用来对齐的,究竟怎么对齐,有啥情况?下面分析一下 基本情况讲解 (一) $vim align1.s 在新建的文件编辑以下代码: 1 2 3 4 5 6 _start: b reset .byte 0x55 .byte 0xaa reset: ldr r0, =0x53000000 阅读全文
posted @ 2017-02-21 15:21 qiynet 阅读(2482) 评论(0) 推荐(0)
摘要:linux内核的三种主要调度策略: 1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务 3,SCHED_RR实时调度策略,时间片轮转 实时进程将得到优先调用,实时进程根据实时优先级决定调度权值。分时进程则通过nice和counter值决定权值,nice越小, 阅读全文
posted @ 2017-02-20 22:19 qiynet 阅读(628) 评论(0) 推荐(0)
摘要:个人理解: 信号量(进程间的通信机制(单一个数的信号),与消息邮箱,消息队列,机理类同,量不同,)用信号量肯定掉cpu; 自旋锁:保护区域不掉cpu,持续查找,等待(不可用时域长状态); 切记: 时域范围: 在进程间的通信机制函数状态 ∩ 锁 = 0; 互斥锁与自旋锁 互斥锁:线程会从sleep(加 阅读全文
posted @ 2017-02-14 13:00 qiynet 阅读(226) 评论(0) 推荐(0)
摘要:两种锁的加锁原理 互斥锁:线程会从sleep(加锁)——>running(解锁),过程中有上下文的切换,cpu的抢占,信号的发送等开销。 自旋锁:线程一直是running(加锁——>解锁),死循环检测锁的标志位,机制不复杂。 两种锁的区别 互斥锁的起始原始开销要高于自旋锁,但是基本是一劳永逸,临界区 阅读全文
posted @ 2017-02-14 12:43 qiynet 阅读(228) 评论(0) 推荐(0)
摘要:概念 操作系统是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务。 操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。 阅读全文
posted @ 2017-02-14 11:44 qiynet 阅读(387) 评论(0) 推荐(0)
摘要:静态编译与动态编译的区别 动态链接库 动态:有 静态:无 动态编译 动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。 优点: 一方面是缩小了执行文件本身的体积; 一方面是加快了编译速度,节省了系统资源。 缺点: 一是哪怕是很简单的程序,只用到了链接库中的一两 阅读全文
posted @ 2017-02-07 09:41 qiynet 阅读(1369) 评论(0) 推荐(0)
摘要:disable_irq与disable_irq_nosync使用场景 Linux设备驱动,关于中断屏蔽有两个接口:disable_irq和disable_irq_nosync,该两接口使用场景如下: 1、disable_irq:在非中断处理函数中使用,会阻塞; 2、disable_irq_nosyn 阅读全文
posted @ 2016-12-28 15:39 qiynet 阅读(1439) 评论(0) 推荐(0)
摘要:Tasklet作为一种新机制,显然可以承担更多的优点。正好这时候SMP越来越火了,因此又在tasklet中加入了SMP机制,保证同种中断只能在一个cpu上执行。在软中断时代,显然没有这种考虑。因此同一种中断可以在两个cpu上同时执行,很可能造成冲突。 Linux中断下半部处理有三种方式:软中断、ta 阅读全文
posted @ 2016-12-28 14:17 qiynet 阅读(316) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 11 下一页
跳至侧栏