我们在Linux设备管理(一)_kobject, kset,ktype分析一文中介绍了kobject的相关知识,在Linux设备管理(二)_从cdev_add说起和Linux设备管理(三)_总线设备的挂接举例介绍了内核中是如何进行设备管理的,并在Linux设备管理(四)_从sysfs回到ktype一文中结合sysfs机制和kobject对内核的设备管理机制进行一定深度的讨论,从中可以看出,字符设备的cdev本身的kobject是没有初始化的,也没有在sysfs中创建任何目录,平台设备是将设备挂接…
环境 安装VM ware,输入VM key 在VM上安装CentOS 6.5 设置网络,能在本机上ping通 通过终端连接工具:Xshell或SecureCRT,连接Linux服务器 实操可能出现的问题 启动VM时提示‘内部错误’:相关VM服务未全部启动 查看Linux的IP得到inet6 addr:fe80::20c::29ff:...:虚拟机未连接到网络,没有分配到IP地址 部署服务 部署各种服务时,需要往服务器上传/下载对应服务的安装包 可用sz / rz 命令一步搞定 先执行命令:yum…
我在Linux字符设备驱动框架一文中已经简单的介绍了字符设备驱动的基本的编程框架,这里我们来探讨一下Linux内核(以4.8.5内核为例)是怎么管理字符设备的,即当我们获得了设备号,分配了cdev结构,注册了驱动的操作方法集,最后进行cdev_add()的时候,究竟是将哪些内容告诉了内核,内核又是怎么管理我的cdev结构的,这就是本文要讨论的内容.我们知道,Linux内核对设备的管理是基于kobject的(参见Linux设备管理(一)_kobject_kset_kobj_type),这点从我们的…
sysfs是一个基于ramfs的文件系统,在2.6内核开始引入,用来导出内核对象(kernel object)的数据.属性到用户空间.与同样用于查看内核数据的proc不同,sysfs只关心具有层次结构的设备信息,比如系统中的总线,驱动以及已经加载的模块等,而诸如PID等信息还是使用proc来管理.本质上,sysfs文件的层次结构就是基于内核中kset与kobject逻辑结构来组织的.从驱动开发的角度,sysfs为我们提供了除了虚拟字符设备的read/write/ioctl和proc系统之外的另外…
转自:https://www.cnblogs.com/xiaojiang1025/archive/2016/12/21/6202298.html sysfs是一个基于ramfs的文件系统,在2.6内核开始引入,用来导出内核对象(kernel object)的数据.属性到用户空间.与同样用于查看内核数据的proc不同,sysfs只关心具有层次结构的设备信息,比如系统中的总线,驱动以及已经加载的模块等,而诸如PID等信息还是使用proc来管理.本质上,sysfs文件的层次结构就是基于内核中kset与…
扒完了字符设备,我们来看看平台总线设备,平台总线是Linux中的一种虚拟总线,我们知道,总线+设备+驱动是Linux驱动模型的三大组件,设计这样的模型就是将驱动代码和设备信息相分离,对于稍微复杂一点的驱动,都要使用这种结构,我在"Linux设备管理(一)_kobject, kset,kobj_type分析"一文中提到过将一个设备或驱动挂载到总线就是将这个设备或驱动的kobject挂接到相应的总线kset下的设备kset或驱动kset中,本文就扒一扒内核中注册一个平台设备的源码,验证一下…
Linux内核大量使用面向对象的设计思想,通过追踪源码,我们甚至可以使用面向对象语言常用的UML类图来分析Linux设备管理的"类"之间的关系.这里以4.8.5内核为例从kobject,kset,ktype的分析入手,进而一探内核对于设备的管理方式 container_of宏 这个宏几乎是linux数据结构的基础,Linux中的链表与传统的链表不同,其链表的节点本身并不包含任何数据,任何想要插入到链表的数据只需要包含一个事先写好的节点 //include/linux/types.h 1…
基于samba实现win7与linux之间共享文件_阳仔_新浪博客 然后启动samba执行如下指令: /dev/init.d/smb start 至此完成全部配置.…
实验五:Linux操作系统是如何工作的? 学号:SA1****369 操作系统工作的基础:存储程序计算机.堆栈(函数调用堆栈)机制和中断机制 首先要整明白的一个问题是什么是存储程序计算机?其实存储程序计算机正是冯.诺依曼最初提出的计算机体系模型,现在我们一提到冯.诺依曼体系结构首先会想到的应该是包含输入设备.输出设备.存储器.控制器.运算器组成的经典模型,但是这里我们强调的存储程序计算机的主要特征实际上并非如此,存储程序计算机的概念相当于是褪去现代计算机华丽的外衣,所呈现出来的实实在在的计算机的…
Linux(二)-- Unix&Linux 的基本概念 计算机 = 主机(host)+ 终端(terminal) 主机 = 内核 + 实用工具 内核(kernel) 当计算机启动时,计算机要经历一系列动作,这些动作构成了引导过程.引导过程的最后一个动作是启动一个非常复杂的程序,该程序就被称为内核(Kernel) 内核的作用是控制计算机,提供基础服务,是操作系统的核心,主要分为单内核和微内核两种 单内核(monolithic kernel):自身可以完成所有事情,大多数早期 Unix 使用单内核设…
C#_02.12_基础二_.NET类型存储和变量 一.核心一句:C#程序是一组类型声明(留待后面慢慢体会,现在不是很理解,不强说了) 二.数据类型: 1.预定义了16种数据类型: 其中13种简单数据类型,包括11种数值类型和2种非数值类型: 数值类型: 数据类型 字节 有无符号 后缀 默认值 精确位数 Sbyte: 1 无 = 0 0 Byte: 1 有 = 0 0 Short: 2 无 = 0 0 Ushort: 2 有 = 0 0 Int: 4 无 = 0 0 Uint: 4 有 U 0 0…
一.Linux概述###<1>操作系统 OS,管理和控制 计算机的 硬件和软件资源的 计算机程序. 最基本的系统软件. 是用户和计算机交互的桥梁,是硬件和软件交互的桥梁. 操作系统:shell+内核 DOS Windows Unix Linux (开源的) 命令行 图形界面 命令行 命令行 单用户 单用户.多用户 多用户 多用户 单任务 多任务 多任务 多任务 ###<2>Linux操作系统 是用户和计算机交互的桥梁,是硬件和软件交互的桥梁. 多任务,多用户 免费的,开源的 ###…
Linux基础环境_安装配置教程 (CentOS7.2 64.JDK1.8.Tomcat8) 安装包版本 1)     VMawre-workstation版本包 地址: https://my.vmware.com/web/vmware/details?downloadGroup=WKST-1411-WIN&productId=686&rPId=20814 包名:VMware-workstation-full-12.5.7.20721.exe 2)     CentOS版本包 地址:htt…
JavaWeb-RESTful(一)_RESTful初认识 传送门 JavaWeb-RESTful(二)_使用SpringMVC开发RESTful_上 传送门 JavaWeb-RESTful(三)_使用SpringMVC开发RESTful_下 传送门 项目已上传至github 传送门 Learn  一.实现一个成功的SpringMVC单元测试类 二.RequestParam注解: 三.JsonView注解 创建SpringBoot项目 传送门 [ 添加Spring Web Starter,Spr…
Linux(二):VMware虚拟机中Ubuntu安装详细过程 目录 1 准备 2 安装 2.1 虚拟机的建立 2.2 虚拟机安装Ubuntu系统 2.3 虚拟机设置 3 完成 1 准备 1.操作系统:Win10 X64 2.虚拟机版本:VMware Workstation 15 Pro 3.ubuntu版本:Ubuntu 16.04 2 安装 2.1 虚拟机的建立 1.启动VMare,选择"新建虚拟机": 2.打开"新建虚拟机向导"对话框,选中"自定义(…
在Linux设备树语法详解和Linux Platform驱动模型(一) _设备信息中我们讨论了设备信息的写法,本文主要讨论平台总线中另外一部分-驱动方法,将试图回答下面几个问题: 如何填充platform_driver对象? 如何将驱动方法对象注册到平台总线中? 正文前的一点罗嗦 写驱动也有一段时间了,可以发现,其实驱动本质上只做了两件事:向上提供接口,向下控制硬件,当然,这里的向上并不是直接提供接口到应用层,而是提供接口给内核再由内核间接的将我们的接口提供给应用层.而写驱动也是有一些套路可寻的…
磁盘驱动就是实现磁盘空间和内存空间数据上的交互,在上一篇中我们讨论了内存端的Page Segment Block Sector相关的概念,本文以3.14内核为例,讨论这部分内存是如何被组织管理的.我们知道,为了解决CPU和内存的速度不匹配,计算机系统引入了Cache缓存机制,这种硬件Cache的速度接近CPU内部寄存器的速度,可以提高系统效率,同样的思路也适用于解决内存和磁盘的速度不匹配问题,此外,磁盘多是机械式的,从寿命的角度考虑也不适合频繁读写,所以内核就将一部分内存作为缓存,提高磁盘访问速…
转自:http://www.cnblogs.com/xiaojiang1025/archive/2017/02/06/6367910.html 在Linux设备树语法详解和Linux Platform驱动模型(一) _设备信息中我们讨论了设备信息的写法,本文主要讨论平台总线中另外一部分-驱动方法,将试图回答下面几个问题: 如何填充platform_driver对象? 如何将驱动方法对象注册到平台总线中? 正文前的一点罗嗦 写驱动也有一段时间了,可以发现,其实驱动本质上只做了两件事:向上提供接口,…
另外一种驱动 应用层除了使用上述的使用i2c_driver接口来访问i2c设备,Linux内核还提供了一种简单粗暴的方式--直接通过虚拟i2c设备驱动的方式,即上一篇中的i2c-dev提供的方式,这种方式使用的i2c_client是随着open的操作临时创建的虚拟的client,即不是挂接在i2c_bus_type中的链表中的,对于用户程序来说,这种方式的驱动只是提供了相应的操作方法并创建设备文件,可以看作是一种"i2c_driver成员函数+字符设备驱动"的虚拟驱动,需要让用户空间程…
ARM是对内存空间和IO空间统一编址的,所以,通过读写SFR来控制硬件也就变成了通过读写相应的SFR地址来控制硬件.这部分地址也被称为I/O内存.x86中对I/O地址和内存地址是分开编址的,这样的IO地址被称为I/O端口.本文只讨论IO内存的访问 IO内存访问流程 我们知道,为了管理最重要的系统资源并让物理地址对进程透明,Linux使用了内存映射机制,就是一个进程如果想访问一个物理内存地址(eg.SFR地址),那么首先就是将其映射成虚拟地址. IO内存申请/归还 Linux提供一组函数用于申请和…
前面介绍了父子进程,如果当多个进程企图对共享数据进行处理.而最后的结果又取决于进程运行的顺序时,就认为发生了竞争关系.通过下面的例子来看下 在这里标准输出被设置为不带缓冲的,于是父子进程每输出一个字符就要进行一次write调用.这样做的目的是尽可能多次地在两个进程之间进行切换,以便演示竞争条件. static void charatatime(char *str){ char *ptr; int c; setbuf(stdout,NULL); for(ptr=str;(c=*ptr++)!=’\…
目录 前言 Nginx 配置(后续补充) 小结 @ 前言 上一篇整完Linux系统的安装,紧接着就开始来安装些常用的东西吧,首先Nginx. Nginx 简介 Nginx作为转发,负载均衡,凭着其高性能的特效在web这一块儿是一个神器,只要体量稍微大点儿的工程都必不可少使用Nginx来做负载均衡. 安装使用 我们有两种安装方式,一种是通过yum指令来安装,一种是通过源码包下载make编译安装. 方式 好处 yum 简单快捷,一键安装 源码 服务性能好 1. yum安装(推荐) 通过yum指令安装…
Linux权限管理: 二.权限管理1.3种基本权限在Linux中,将使用系统资源的人员分为4类:超级用户.文件或目录的属主.属主的同组人和其他人员.超级用户拥有对Linux系统一切操作权限,对 于其他3类用户都要指定对文件和目录的访问权限.代表字符       权限                      对文件的含义                        对目录的含义r                读权限                 可以读文件的内容             …
请您根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的.自洽的,并举例某一两个具体例子(比如读写文件.分配内存.使用I/O驱动某个硬件等)纳入模型中验证模型.谈谈您对课程的心得体会,改进建议等. 1.冯·诺依曼计算机体系中,操作系统的功能及必要性 冯·诺依曼体系结构计算机中,计算机分为五个部分:运算器.控制器.存储器.输入设备和输出设备,各个部分之间由总线相互连接.存储器负责存储计算所需的数据和程序指令,因为指令和数据…
1. Linux上常用的文件管理命令及使用 (1) CP命令:复制文件或文件夹语法格式 cp [OPTION]... [-T] SOURCE DEST // 单源复制 cp [OPTION]... SOURCE... DIRECTORY //多源复制 常用选项 -i,--interactive:交互式复制,如果要复制的目标文件存在,在覆盖之前提醒用户确认: -f,--force:强制覆盖目标文件: -r,-R,--recursive:递归复制,复制目录中的子目录: -d:复制符号连接本身,而不是…
参考: http://edu.51cto.com/lesson/id-11222.html CPU中有计算单元 控制单元.它通过桥接芯片与存储器进行匹配 其中北桥是高速 南桥是低速 包括IDE USB等 通过中断控制器进行相应输入设备 例如鼠标等 MULTICS -> unics Unics-> unix bell实验室 这个设备版权 linux->是芬兰一个大学生开发 类Unix系统 不涉及版权 GUN 协议 GNU is Not Unix copyright copyleft VI…
承接上文碎解一.本章讲述,基本配置. 一.网络配置相关. error:(执行yum 命令时出现)Cannot find a valid baseurl for repo:base/7/x86_64 解决方法:配置DNS #显示当前网络连接 执行命令:nmcli connection show 执行结果: #修改当前网络连接对应的DNS服务器,eno16777736是文件名称(或叫做其他名称).这里要求都一致 执行命令:nmcli con mod eno16777736 ipv4.dns "114…
前面讲到,linux中的后缀名没有特殊的意义,一般是作为不同文件类型的标识而已.下面是与打包.压缩相关的后缀名介绍: *.z:compress程序压缩文件 *.gz:gzip程序压缩文件 *.bz2:bzip2压缩文件 *.tar:tar打包,未压缩 *.tar.gz:tar打包,经过gzip压缩 *.tar.bz2:tar打包,经过bzip2压缩 一般经过打包或者压缩处理的文件通过后缀名来进行区别. 一.compress:该命令比较古老,centos默认未安装,可以使用gzip代替. 二.gz…
一.mknod:设置设备代码 linux中,所有的设备都是用文件来表示,文件通过major与minor数值来判断. major为主设备代码,minor为设备代码(需要查询),示例如下: /dev/hda ---------major:3------minor:0~63 /dev/hdb----------major:3------minor:64~127 /dev/sda----------major:8------minor:0~15 ... 命令格式:mknod 设备名 [bcp] [maj…
挂载就是将文件系统与目录结合的操作.挂载点就是目录,该目录就是进入分区或文件系统的入口. 一.挂载前的注意事项: 1.单一文件系统不应该被重复挂载在不同的挂载点中. 2.单一目录不应该重复挂载多个文件系统. 3.即将作为挂载点的目录理论上应该都是空目录才对. 注意:对应2和3,如果要挂载的目录不为空,那么挂载了新的文件系统之后,原来的目录会暂时消失(并非覆盖掉),系统会显示最新挂载的文件系统.新分区被卸载之后,原来的文件系统会重新显示出来. 二.命令介绍 mount [-t 文件系统] [-L…