摘要:"调试难度本来就是写代码的两倍. 因此, 如果你写代码的时候聪明用尽, 根据定义, 你就没有能耐去调试它了." --Brian Kernighan1 内核调试以及工具总结内核总是那么捉摸不透, 内核也会犯错, 但是调试却不能像用户空间程序那样, 为此内核开发者为我们提供了一系列的工具和系统来支持内核
阅读全文
摘要:时区,为了克服时间上的混乱,1884年在华盛顿召开的一次国际经度会议(又称国际子午线会议 )上,规定将全球划分为24个时区(东、西各12个时区)。规定英国(格林尼治天文台旧址)为中时区(零时区)、东1-12区,西1-12区,每个时区横跨经度15度,时间正好是1小时。最后的东、西第12区各跨经度7.5
阅读全文
摘要:一、前言 在linux kernel的实现中,经常会遇到这样的场景:共享数据被中断上下文和进程上下文访问,该如何保护呢?如果只有进程上下文的访问,那么可以考虑使用semaphore或者mutex的锁机制,但是现在中断上下文也参和进来,那些可以导致睡眠的lock就不能使用了,这时候,可以考虑使用spi
阅读全文
摘要:一、信号量 信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况。一般说来,为了获得共享资源,进程需要执行下列操作: (1) 测试控制该资源的信号量。 (2) 若此信号量的值为正,则
阅读全文
摘要:时间:2019-01-17 本文章向大家介绍Linux kernel 配置选项,主要包括Linux kernel 配置选项使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。 <!-- article_left_top_banner --> General
阅读全文
摘要:Linux 系统上的/proc目录是一种文件系统,即proc文件系统。/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文 件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。 proc文件系统其中有些
阅读全文
摘要:大量可用的引导装载程序(bootloader)、规模缩小的分发版(distribution)、文件系统和 GUI 看起来可能太多了,但是这些丰富的选项实际上是一种恩赐,允许您调整开发或用户环境以完全符合您的需要。 许多 Linux 改良品种迎合了嵌入式/实时市场。它们包括 RTLinux(实时 Li
阅读全文
摘要:Minicom:Linux下的终端程序,用于通过串口进行通信,在嵌入式Linux系统中,可以用于主机与目标系统通信,实现串口控制台的功能。 DHCP: 动态主机配置协议。运行实现该协议的服务的主机,通过对客户发起的DHCP请求进行应答,可以动态的配置客户机的IP地址等网络信息。 TFTP: 一种FT
阅读全文
摘要:理发师问题: 理发店理有一位理发师、一把理发椅和n把供等候理发的顾客坐的椅子 如果没有顾客,理发师便在理发椅上睡觉 一个顾客到来时,它必须叫醒理发师 如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,就坐下来等待,否则就离开。 解法: 引入3个信号量和一个控制变量: 1)控制变量waiting用
阅读全文
摘要:由于系统调用都是从调用中断开始的,所以我们还是从中断讲起. 关于中断: Intel386认识两种事件类:异常(exception)与中断(interrupt)。两者都会强制性创建一个进程或任务。中断能在任何不可预料的时间发生,来响应硬件的信号,是硬中断;而异常是由指令执行而产生的,是软中断。 386
阅读全文
摘要:Part 1:Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发
阅读全文