init/main.c: asmlinkage void start_kernel(void) { ...... early_irq_init(); init_IRQ(); ...... } early_irq_init()函数有两种实现,一种是基于radix tree,一种是定义静态数组,如果要使用radix tree实现的,那么需要打开SPARSE_IRQ配置选项,由于我对数据结构不了解,所以分析以下静态数组实现方式版本的. /kernel/irq/irqdesc.c struct irq_…
编写按键驱动时,想知道内核是如何管理GPIO的,所以开始追踪代码,中间走了一些弯路,现记录于此. 追踪代码之前,我猜测:第一,这部分代码应该在系统set up阶段执行:第二,GPIO的代码应该在machine或者platform或者vendor相关的目录下.事实证明,第一点是正确的,第二点基本是错误的,因为内核依靠对GPIO的抽象来管理之,这层抽象层给具体的machine留出了一些它们需要是实现的接口,这与其他的设备驱动框架在使用上是很类似的,当然,GPIO也是一种设备啊... ...所以,管理…
转自:http://www.latelee.org/embedded-linux/porting-linux-tstest-code.html 本文是作者对tslib库的ts_test.c文件进行分析的随笔,其实tslib的几个测试程序结构差不多,譬如ts_print.c和ts_print_raw.c等. 本文并没有涉及太多概念,也没有详细介绍这些概念,但并不代表作者对此不了解,也不代表作者对此很精通.如文中提到的input,虽只出现一个单词,但是相信许多人都知道它在文中指的是Linux操作系统…
前后端分离了! 第一次知道这个事情的时候,内心是困惑的. 前端都出去搞 SPA,SEO 们同意吗? 后来,SSR 来了. 他说:"SEO 们同意了!" 任何人的反对,都没用了,时代变了. 各种各样的 SPA 们都来了,还有穿着跟 SPA 们一样衣服的各种小程序们. 为他们做点什么吧?于是 rxModels 诞生了,作为一个不希望被抛弃的后端,它希望能以更便捷的方式服务前端. 顺便把如何设计制作也分享出来吧,说不定会有一些借鉴意义.即便有不合理的地方,也会有人友善的指出来. 保持开放,付…
作者:liukun321 咕唧咕唧 日期:2014.1.18 转载请标明作者.出处:http://blog.csdn.net/liukun321/article/details/18452663 本文主要简述S5pv210处理器的 HDMI 接口在 Linux 3.0.8 内核下的驱动框架. 现在三星的主流处理器基本都支持HDMI,使用HDMI也有段时间了,却一直不知道它是怎么工作的,只知道linux和android下都会有一个HDMI-service的用户服务程序.然后底层会有HDMI驱动.知…
作者:liukun321 咕唧咕唧 日期:2014.1.18 转载请标明作者.出处:http://blog.csdn.net/liukun321/article/details/18452663 本文主要简述S5pv210处理器的 HDMI 接口在 Linux 3.0.8 内核下的驱动框架. 现在三星的主流处理器基本都支持HDMI,使用HDMI也有段时间了,却一直不知道它是怎么工作的,只知道linux和android下都会有一个HDMI-service的用户服务程序.然后底层会有HDMI驱动.知…
基于s5pv210嵌入式linux系统sqlite3数据库移植 1.下载源码 http://www.sqlite.org/download.html 最新源码为3080100 2.解压 tar xvf XXXXX 3.配置编译环境 运行 ./configure –host=你的交叉编译工具的前缀 –prefix=你想编译安装的位置 我的host为arm-none-linux-gnueabi,prefix为/home/linux/sqlit3-arm 运行后会生成Makefile文件. 4.编译并…
<Linux设备驱动开发具体解释:基于最新的Linux 4.0内核> china-pub   spm=a1z10.3-b.w4011-10017777404.30.kvceXB&id=521111707813&rn=4cf013961288ab7c4dfd2016aeb21fa8&abbucket=5">天猫     dangdang   京东 China-pub 8月新书销售榜 推荐序一 技术日新月异,产业斗转星移,滚滚红尘,消逝的事物太多,新事物的诞…
https://linux.cn/article-6103-1.html Kali Linux 是一个对于安全测试人员和白帽的一个知名操作系统.它带有大量安全相关的程序,这让它很容易用于渗透测试.最近,Kali Linux 2.0 发布了,它被认为是这个操作系统最重要的一次发布.另一方面,Docker 技术由于它的可扩展性和易用性让它变得很流行.Dokcer 让你非常容易地将你的程序带给你的用户.好消息是你可以通过 Docker 运行Kali Linux 了,让我们看看该怎么做 :) 在 Doc…
MySQL 8.0 可以说是MySQL发展历史上里程碑式的一个版本,包括了多个重大更新,目前 Generally Available 版本已经已经发布,正式版本即将发布,在此将介绍8.0版本中引入的一个重要的新特性————基于 WriteSet 的并行复制方案,此方案号称是彻底解决困扰MySQL运维人员多年的复制延迟问题. 说到并行复制,这里简单的回顾一下各个版本的MySQL复制的演进,以帮助理解8.0版本中对并行复制MTS的优化. MySQL 主从复制模型 一切都要从MySQL的主从复制模型开…
这里仅介绍流媒体server端的实现思路.及编码注意问题,不会贴代码的详细实现. 直接入正题先介绍一下系统硬件框架: server端连接PC机用VLC播放例如以下图: server端应用程序能够分为图像採集.视频硬件编码压缩.RTP打包发送.三个部分.採用C++语言编程.引入C.C++语言混合共享库的方式实现. 图像採集模块主要负责视频数据的採集.并将採集到的数据暂存到DDR2内存中,作为硬件编码模块的数据源.Linux3.0.8内核下视频採集是基于V4L2(Video for Linux 2)…
本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息对话框弹出,需要你的输入.对话框的类型有密码箱,检查表,菜单,等等.他们可以引导你以一种直观的方式输入必要的信息,使用这样的用户友好的对话框的好处是显而易见的.如下图所示: 当你写一个交互式shell脚本,你可以使用这样的对话框来接受用户的输入.whiptail可以在shell脚本中创建基于终端的对…
转自:http://www.ibm.com/developerworks/cn/linux/l-rcu/ 一. 引言 众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用.但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速度在成倍地增加,原因很简单,CPU的速度与访问内存的速度差距越来越大,而这种锁使用了原子操作指令,它需要原子地访问内存,…
高性能Linux服务器 第10章    基于Linux服务器的性能分析与优化 作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.但硬件问题.软件问题.网络环境等的复杂性和多变性,使得对系统的优化变得异常复杂,如何定位性能问题出在哪个方面,是性能优化的一大难题.本章从系统人手,重点讲述由于系统软.硬件配置不当造成的性能问题,并且给出了检测系统故障和优化性能的一般方法和流程. 10.1  系统性能分析的目的 10.1.1  找到系统性能的瓶颈系统的性能是指操作…
位架构,包括英特尔X-86_64.Power和s390.动态定时能力将降低内核内部中断数量,Open vSwitch 2.0功能可调节虚拟机之间的流量.RHEL 7中默认的文件系统是XFS,包含了一个64位的日志文件系统,替换了ext4文件系统,无附加费用.RHEL 7的特色是服务器端NFS 4.1支持,MariaDB作为主数据库,也支持PostgreSQL 9.2. 2.在安全方面,RHEL 7支持SCAP(安全内容自动化协议),该协议提供了一个自动化的方法来验证安全指南,目前已经集成在红帽的…
编译N次了   原来这么回事 原文地址:linux下编译php中configure参数具体含义作者:捷心特 php编译参数的含义 ./configure –prefix=/usr/local/php                      php 安装目录 –with-apxs2=/usr/local/apache/bin/apxs –with-config-file-path=/usr/local/php/etc      指定php.ini位置 –with-mysql=/usr/local…
[摘要]本文以Linux 2.6.25 内核为例,分析了基于platform总线的驱动模型.首先介绍了Platform总线的基本概念,接着介绍了platform device和platform driver的定义和加载过程,分析了其与基类device 和driver的派生关系及在此过程中面向对象的设计思想.最后以ARM S3C2440中I2C控制器为例介绍了基于platform总线的驱动开发流程. [关键字]platform_bus, platform_device, resource , pl…
三年,三年,又三年,终于,终于,终于不用再等啦!就在今天,HP-Socket for Linux v1.0 震撼发布!还是一样的接口,一样的高效,一样的简便,一样的味道.     HP-Socket for Linux提供了与Windows版本一致的API接口,实现代码则完全独立.HP-Socket for Linux使用了C++14标准的新特性,需要GCC 5.x以上版本的编译器来编译.发布包中提供了HP-Socket组件及示例Demo的Visual Studio项目工程,安装配置好Visua…
转自:http://blog.csdn.net/gaoyuanlinkconcept/article/details/8810468 介绍make menuconfig中的每个选项含义 Linux 2.6.19.x 内核编译配置选项简介作者:金步国 版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布.任何人都可以自由使用.转载.复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件.您可以自由链接.下载.传播此文档…
NET Core中基于Generic Host来实现后台任务 https://www.cnblogs.com/catcher1994/p/9961228.html 目录 前言 什么是Generic Host 后台任务示例 控制台形式 消费MQ消息的后台任务 Web形式 部署 IHostedService和BackgroundService的区别 IHostBuilder的扩展写法 总结 前言 很多时候,后台任务对我们来说是一个利器,帮我们在后面处理了成千上万的事情. 在.NET Framewor…
0 总体介绍 一个完整的操作系统主要由4部分组成:硬件.操作系统内核.操作系统服务和用户应用程序,如图0.1所示.操作系统内核程序主要用于对硬件资源的抽象和访问调度. 图0.1 操作系统组成部分 内核的主要作用是为了与计算机硬件进行交互,实现对硬件部件的编程控制和接口操作,调度对硬件资源的访问,并为计算机上的用户程序提供一个高级的执行环境和对硬件的虚拟接口. 1 Linux内核模式 操作系统内核的结构模式主要可分为整体式的单内核模式和层次是的微内核模式.Linux 0.11采用了单内核模式. 如…
参考地址,官网:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-2.2&tabs=visual-studio 与https://www.jianshu.com/p/349e130e40d5 当一个WebApi完成之后,书写API文档是一件非常头疼的事,因为不仅要写得清楚,能让调用接口的人看懂,又是非常耗时耗力的一件事.在之前的一篇随笔中(…
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(BlogID=102) 环境说明 Ubuntu 18.04 gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) Bochs 2.6 As86 version: 0.16.17 前言   自从我近段时间开始温习一些基础知识以来,其中觉得以前学的很浅的就是OS原理.为啥这样…
Kali Linux 前身是著名渗透测试系统BackTrack ,是一个基于 Debian 的 Linux 发行版,包含很多安全和取证方面的相关工具. Kali Linux 2.0是基于Debian Jessie制作的发行版本,所以,我们可以添加Debian Jessie的软件源,方便我们后期安装常用的软件工具等.国内较好的软件源之一是163的源,以添加163源为例 超过300个渗透测试工具: 复查了每一个BackTrack里的工具之后,我们去掉了一部分不再有效或者是功能重复的工具. 永久免费:…
在工业生产控制系统中,有许多需要定时完成的操作,如定时显示当前时间,定时刷新屏幕上的进度条,上位 机定时向下位机发送命令和传送数据等.特别是在对控制性能要求较高的实时控制系统和数据采集系统中,就更需要精确定时操作. 众所周知,Windows 是基于消息机制的系统,任何事件的执行都是通过发送和接收消息来完成的. 这样就带来了一些问题,如一旦计算机的CPU被某个进程占用,或系统资源紧张时,发送到消息队列 中的消息就暂时被挂起,得不到实时处理.因此,不能简单地通过Windows消息引发一个对定时要求…
Struts2中基于Annotation的细粒度权限控制 2009-10-19 14:25:53|  分类: Struts2 |  标签: |字号大中小 订阅     权限控制是保护系统安全运行很重要的一扇门.在web应用里,仅仅隐藏url是不够的.由于web应用是以请求/响应为单位的,我 们的权限控制的粒度只有达到这个程度才能让全国人民放心.在java web开发的世界里,MVC框架的使用再平常不过,大都是将请求拦截后,控制器根据配置文件将请求转给某个函数来处理.下面看看在struts2中我们…
head的作用 注意:bootsect和setup汇编采用intel的汇编风格,而在head中,此时已经进入32位保护模式,汇编的采用的AT&T的汇编语言,编译器当然也就变成对应的编译和连接器了,很多汇编指令右侧都会多l,如or变成orl却别与实模式的汇编指令. ①设置中断描述符表: >中断描述符表设置为256个项,初始化指向ignore_int中断门.然后加载中断描述符表寄存器. ②检查 A20 地址线是否已经打开,测试系统是否含有数学协处理器 ②设置全局描述符表: ③设置分页机制: &g…
Linux显示全部执行中的进程 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ps aux | less USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 33788 3172 ? Ss 23:00 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 23:00 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S…
漏洞名称: Linux Kernel ‘write_tag_3_packet()’函数本地基于堆的缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-067 发布时间: 2013-11-07 更新时间: 2013-11-07 危害等级:    漏洞类型: 缓冲区溢出 威胁类型: 本地 CVE编号:   漏洞来源: x90c Linux kernel是美国Linux基金会发布的一款操作系统Linux所使用的内核.         Linux kernel中存在本地基于堆的缓冲区溢出漏洞,该…
新版linux系统设备架构中关于电源管理方式的变更 based on linux-2.6.32 一.设备模型各数据结构中电源管理的部分 linux的设备模型通过诸多结构体来联合描述,如struct device,struct device_type,struct class, struct device_driver,struct bus_type等. @kernel/include/linux/devices.h中有这几中结构体的定义,这里只列出和PM有关的项,其余查看源码: struct d…