SylixOS原创
flags_s
这个作者很懒,什么都没留下…
展开
-
SylixOS JobQueue 简介
1. 什么是JobQueueSylixOS中为了减少线程的创建或者让中断服务程序做更少的事情,引入了JobQueue机制。JobQueue(工作队列)我们可以看成是一种将工作推后由同一个工作线程去执行多个工作的一种异步机制,尤为重要的是这个线程可以设置等待的超时时间。2. 数据结构这是从SylixOS源码中截取的一个图,从图中我们可以看到工作队列管理的消原创 2015-06-24 17:39:04 · 925 阅读 · 0 评论 -
SylixOS信号系统(2)
信号机制原理关键数据结构POSIX标准定义了sigset_t类型来定义一个信号集,然而sigset_t类型在不同的系统可能有不同的定义方式,因此去猜测sigset_t类型是不明确的,在SylixOS中,将sigset_t定义成了unsigned long long型,也即是一个64位的数据类型,每一位代表了一个信号,最高位不被使用。 SylixOS信号机制的实现离开不了下面几个关键数据结构;1.原创 2015-08-21 11:04:37 · 565 阅读 · 0 评论 -
SylixOS xinput 系统
xinput系统简介SylixOS提供了一个xinput子系统,对键盘、鼠标、触摸屏等设备进行了一个统一管理,SylixOS的xinput系统支持热插拔,可随意添加删除输入设备,使用上很方便、很灵活,下面我们从一个框架图开始来开始学习SylixOS xinput子系统。xinput分析xinput系统框架图从图中看xinput系统分为3层:xinput设备层驱动层,xinput核心处理层,物理设备层原创 2015-07-22 13:52:59 · 941 阅读 · 0 评论 -
SylixOS信号系统(1)
信号简介信号是一种软中断,用来通知进程或者线程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程或者线程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是一种异步通信机制,一个进程或者线程不必通过任何操作来等待信号的到达,事实上,进程或者线程也不知道信号到底什么时候到达。进程之间可以互相kill函数发送信号。内核也可以因为内部事件而给进程或者线程发送信号,通知进程或者线程原创 2015-08-14 16:01:48 · 681 阅读 · 0 评论 -
SylixOS 信号系统(3)
信号内部机制SylixOS的信号机制分为3类发送信号方法:kill类型、队列类型和事件类型,这3中类型分别由_doKill()、_doSigQueue()、_doSigEvent()函数实现,上层所有的发送信号函数都直接或者间接地通过调用这几个函数来实现,而这3个函数中,_doKill()设置信号源为SI_KILL、_doSigQueue()设置信号源为SI_QUEUE、_doSigEvent()设原创 2015-08-28 10:51:13 · 694 阅读 · 0 评论 -
SylixOS 唤醒链
SylixOS唤醒链简介对于任何系统timer中断就像系统的心跳,不断地更新着系统的时间,同时也不断地更新着基于RR调度策略的时间片,以及持续的计算睡眠线程的睡眠时间等等。SylixOS唤醒链将SylixOS中所有需要睡眠等待的线程进行了一个统一管理,使得在使用上更加方便。SylixOS唤醒链基于差分链的原理,使得在效率上更加高效。SylixOS唤醒链原理相关结构SylixOS唤醒链由下面两个结构体转载 2015-07-31 20:20:37 · 684 阅读 · 0 评论 -
SylixOS I/O系统
SylixOS I/O系统简介SylixOS 兼容标准的POSIX输入输出系统,使用户非常容易上手。SylixOS 的I/O概念与UNIX兼容系统相同,认为一切都是文件。这些文件有不同的类型,它们包括: 目录文件:这个文件包含了其他文件的名字以及这些文件的指针。 块设备文件:这种文件提供的 I/O 接口标准符合 SylixOS 对块设备的定义。 字符设备文件:这是标准的不带缓冲的设备原创 2015-07-15 16:19:54 · 1006 阅读 · 0 评论 -
SylixOS 热插拔系统
1. 引入所谓热插拔(hot-pluggin)即带电插拔,热插拔功能是允许用户在不关闭系统,不切断电源的情况下插入或拨出设备,例如:USB设备(U盘、USB鼠标等)SD卡设备。这个对用户看似简单的操作,在系统层面却有着复杂的处理。2. SylixOS 热插拔系统简介很早之前的计算机系统,程序员知道它们只需在启动时扫描所有的设备,并且他们从来不必关心设备消失直到整个机器被关闭。现在,随着USB设备、C原创 2015-07-09 10:04:51 · 822 阅读 · 0 评论 -
SylixOS 块消息缓冲区
1. 引入本节介绍的内容原理很简单,就是著名的环形缓冲区,关于环形缓冲区的诸多介绍网上比比皆是,但是为了后面更加深入的学习SylixOS,我觉得有必要提一下这部分内容。在这里推荐一个开源库liblcthw网址是:https://github.com/zedshaw/liblcthw这个库用c代码实现了一些常用的数据结构,适合学习c语言的人看看。接下来我们来学习一下SylixOS中块消息原创 2015-07-01 15:55:57 · 711 阅读 · 0 评论 -
SylixOS WIFI
SylixOS无线简介SylixOS系统集成了无线扩展库(wext), 因此使用SylixOS可以开发自己的无线模块,目前SylixOS已经完美支持Marvell 8686 WIFI芯片,并且可以通过wpa_supplicant工具连接WPA、WPA2加密类型的热点。SylixOS无线部署Marvell 8686 WIFI包括以下几个文件(部分源码非开源):1. wpa_supplicant原创 2016-03-24 18:43:08 · 615 阅读 · 0 评论