首页 > 其他分享 >哈工大-操作系统L26

哈工大-操作系统L26

时间:2024-08-23 18:52:00浏览次数:13  
标签:tty 操作系统 dev write 哈工大 L26 赋给 inode 设备

I/O与显示器

一.设备的功工作

cpu向外设的寄存器发送命令,cpu去执行其它命令,当外设完成之后向cpu发出中断,cpu处理中断,读取数据到内存

二.文件视图

直接向设备控制器的寄存器写,需要做活动操作,很麻烦

open("/dev/xxx")打开不同设备对应的设备文件

根据设备属性数据分析出是什么设备,根据分析向对应设备的控制发送命令,完成命令之后,返回信息

file=current->filp[fd] 当前PCB的filp数组的1下标赋给file

inode=file->f_inode将file的f_inode赋给inode

PCB是由fork中来的,所以fd=1从init()中来,open("dev/tty0",o_RDWR,0)打开设备并拷贝两个dup(0)dup(0) open("dev/tty0",o_RDWR,0)是1,dup(0)是2,dup(0) 是3,所以fd=1也是open("dev/tty0",o_RDWR,0)(终端设备)

inode是文件存放在磁盘上的设备信息

cuurent->filp[fd]=f,filp与f连接f->f_inode=inde,file_table与inode连接,将dev/tty0的设备信息(inode)赋给f_inode

主设备号是4,副设备号0

if(S_ISCHR(inode->i_mode))判断是什么类型的设备 ,

字符设备执行rw_char(WRITE,inode->i_zone[0],buf,cnt),inode->i_zone[0],是哪个字符设备

rw_char,crw_table存放的是函数指针,dev是主设备号

键盘是读的,显示器是写的

rw是WRITE ,return(rw==READ)执行tty_write(minor,buf)

tty_write,tty=channel+tty_table,找出对应的设备

tty->write_q往队列上写,如果队列满了就睡眠,就是往缓冲区里面写平衡速度问题

tty_write是队列没有满向队列写内容

buf工作在用户态内存,从用户态内存取一个字符将这个字符PUTCH(c,tty->write_q)

tty_write(tty)输出到显示器上

movb _attr,%%ah,attr属性赋给ah

"a"(c),字符赋给al

pos显卡的寄存器,mov POS,ax,统一变址用MOV,独立变址用OUT,显存比较大所以是MOV,MOV和OUT功能一样

0x90000,0x90000设备地址

标签:tty,操作系统,dev,write,哈工大,L26,赋给,inode,设备
From: https://blog.csdn.net/wwwwwgery/article/details/141470276

相关文章

  • 操作系统笔记1
    OS概念负责管理协调硬件,软件等计算机资源的工作为上层用户,应用程序提供简单易用的服务是一种系统软件OS功能和目标资源的管理者处理机管理 如:管理CPU调度存储器管理如:执行程序,需要将数据导入到内存文件管理如:文件夹与文件存储设备管理如:控制音响设备向上......
  • 基于 Python 3.12.4 和 PySide 6 的 假用户操作系统【0-0】虚拟终端框架
    基本目标实现工作目录的切换;实现非退出命令下的无限循环;到目前为止还不能实现的功能动态导入py文件中的模块缺少组件定义虚拟进程类command.pyfromctypesimportwindllfromPySide6.QtWidgetsimportQWidgetfromsysimportexitassys_exitfromosimportpath......
  • 麒麟操作系统解压zip格式压缩文件(以Ubuntu系统示范)
    麒麟操作系统解压zip格式压缩文件(以Ubuntu系统示范)最近,某某反映单位配的菊花牌电脑,用的麒麟系统,解压不了zip格式文件,为此,我回家用ubuntu系统示范以下,尽可能详细!国产Linux对新人不够友好阿!首先查看zip文件所在目录,如下图,我的文件在目录/home/yang/下载/测试中打开终端Ct......
  • 操作系统-线程
    一、线程介绍线程是操作系统能内够进行运算、执行的最小单位,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。​ 总结:线程是进程的一部分,是进程内负责执行的单位,进程是由资源单位(......
  • 操作系统-进程
    一、进程1、进程介绍进程与程序:程序是存储在磁盘上的可执行文件,里面包含可执行的机器指令和数据的静态实体;进程是处于活跃状态的计算机程序,也就是正在运行中的程序一个运行中的程序,可能由多个进程组成,但至少要有一个进程,称为主进程,同时可以通过系统调用创建出若干个子进程同......
  • Node.js获取操作系统指标和参数
    constos=require('os');console.log("操作系统临时文件夹os.tmpdir():"+os.tmpdir());console.log("CPU的字节序os.endianness():"+os.endianness());console.log("操作系统主机名os.hostname():"+os.hostname());console.log("操作......
  • 电脑三大操作系统
    电脑需要运行,那就必须要有一个操作系统,一般情况下,电脑所装的系统是windows系统,除此之外,电脑的操作系统有很多的,windows是使用最多的一种,是微软公司的产品。下面就介绍下三大电脑操作系统,供大家参考。1、Windows使用最多MicrosoftWindows是美国微软公司研发的一套操作系统......
  • 操作系统之面试常考
    【转载】:https://www.cnblogs.com/zyf-zhaoyafei/p/4714598.html最近这段时间正在积极准备面试,复习到操作系统部分,本篇文章就介绍操作系统基础内容,参考第四版《计算机操作系统》这本文章总结了面试中常考、常用到的基本知识点,希望对准备面试的同学和想回顾操作系统知识点的程序......
  • 【读书笔记-《30天自制操作系统》-6】Day7
    本篇向着移动鼠标的目标继续前进。先对中断处理进行一些补充说明,然后建立完善缓冲区来实现键盘数据接收。最后是在此基础上的初始化鼠标控制电路与鼠标的数据接收。1.中断处理程序补充说明前面的处理中,接收到键盘中断后只是显示一行信息,现在把按键的信息也一并显示出来......
  • 计算机四个方面:计算、存储、通信与程序;操作系统
    一、计算、存储、通信与程序计算机系统的四个基本方面是计算、存储、通信与程序。下面我将详细介绍这四个方面的特点、区别,以及在Linux系统中与之对应的自带命令。1.计算特点:计算是计算机最基本的功能,涉及数据的处理、运算和逻辑判断。计算能力决定了计算机解决问题的......