首页 > TAG信息列表 > 描述符

段描述符

在保护模式中,不可避免的要用到数据段和代码段,堆栈段。 在menuetos32系统中,这些段的描述符定义在sys32.inc中的第122行到243行GDT之中。其中ring3的代码段和数据段如下:     ring3_code_l:       dw 0xffff       dw 0x0000       db

Linux IO多路复用

https://segmentfault.com/a/1190000003063859 \ select poll epoll 操作方式 遍历 遍历 回调 底层实现 数组 链表 哈希表 IO效率 每次调用都进行线性遍历,时间复杂度为O(n) 每次调用都进行线性遍历,时间复杂度为O(n) 事件通知方式,每当fd就绪,系统注册的回调函数就会被

Linux0.11 move_to_user_mode分析

/* * IRET * 当使用IRET指令返回到相同保护级别的任务时,也就是当前的CS中的DPL和堆栈中的DPL相同时 * IRET会从堆栈弹出代码段选择子及指令指针分别到CS与IP寄存器, * 并弹出标志寄存器内容到EFLAGS寄存器。 * * 当使用IRET指令返回到一个不同的保护级别时,也就是当前的CS中

Linux0.11源码学习(四)

Linux0.11源码学习(四) linux0.11源码学习笔记 参考资料: https://github.com/sunym1993/flash-linux0.11-talk https://github.com/Akagi201/linux-0.11 http://xiehongfeng100.github.io/categories/操作系统/ 本文贴出的代码注释参考书籍《Linux内核完全注释》,作者赵炯。当然其中

个人学习-Linux-IO多路复用

Linux I/O的多路复用 参考链接: [1]confirmwz博客:Epoll原理解析https://blog.csdn.net/armlinuxww/article/details/92803381; [2]hechen知乎专栏: 一文看懂IO多路复用https://zhuanlan.zhihu.com/p/115220699; weixin_39934085博客: io多路复用的原理和实现_彻底理解 IO 多路复用实

羽夏看Linux内核——段相关入门知识

写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图。如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。 前置知识   在开始正

【操作系统】I/O 多路复用,select / poll / epoll 详解

1. 文件描述符 fd 与 socket 1.1 什么是文件描述符 文件描述符(file descriptor)是一个非负整数,从 0 开始。进程使用文件描述符来标识一个打开的文件。 系统为每一个进程维护了一个文件描述符表,表示该进程打开文件的记录表,而文件描述符实际上就是这张表的索引。当进程打开(open)或者新

Linux中的文件管理与实现原理---UNIX环境高级编程第三章心得

如何通过文件I/O函数操纵文件? 对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、些一个文件时,使用open或creat返回的文件描述符标识该文件,将其作为参数传送给read或write。

认识网络IO模型

BIO模型 在Linux中,默认情况下所有socket都是阻塞模式。用户线程调用系统函数read()【system call】,内核开始准备数据(从磁盘/网络获取数据),内核准备数据完成后,用户线程完成数据从内核拷贝到用户空间的应用程序缓冲区,数据拷贝完成后,请求才返回。从发起read请求到完成内核到应用程序

IO模型

IO 模型 BIO (Blocking I/O) BIO 属于同步阻塞 IO 模型 。 同步阻塞 IO 模型中,应用程序发起 read 调用后,会一直阻塞,直到内核把数据拷贝到用户空间。 在客户端连接数量不高的情况下,是没问题的。但是,当面对十万甚至百万级连接的时候,传统的 BIO 模型是无能为力的。因此,我们需要一种

关于USB的一些基础概念

1、USB模式 1.单模式 (1) host only, 使用于内部互联芯片USB做host的情况 (2) device only, 使用于内部互联芯片USB做device的情况 2. otg模式 (1) typec OTG: 基于typec接口 + cclogic的设计方案 (2) phy OTG: 基于GPIO实现USB模式的切换的设计方案   2、总线架构 主从结构,总线

linux ---- I/O多路复用

  I/O 多路复用使得程序能同时监听多个文件描述符,能够提高程序的性能,Linux 下实现 I/O 多路复用的系统调用主要有 select、poll 和 epoll。 1. select 主旨思想:   1. 首先要构造一个关于文件描述符的列表,将要监听的文件描述符添加到该列表中。   2. 调用一个系统函数,监听该

Getshell远程连接小知识点

for /L %i in (1,1,255) do ping -n 1 -w 60 192.168.1.%i | find "回复" >>d:\pingall.txt查找ip socket# socket又称套接字,是API(应用程序编程接口),背后实现了TCP/IP协议栈。Socket用于描述IP地址和端口,是一个通信链的句柄,用来实现不同虚拟机或物理机之间的通信。Socket可理解为一

node.js文件系统中同步文件、异步文件、简单文件、流式文件如何写入_nodejs流写入文件

文件系统(File System) -文件系统简单来说就是通过Node来操作系统中的文件 -使用文件系统,需要先引入fs模块,fs是核心模块,直接引入不需要下载 一、同步文件的写入 -手动操作的步骤 1.打开文件 fs.openSync(path,flags[,mode]) -path 要打开文件的路径 -flags 打开文件要做的操作的类

[自制操作系统] 第11回 认识中断

目录 一、前景回顾 二、初识中断 三、中断分类 四、中断号 五、可编程中断控制器8259A 六、中断描述符表IDT   一、前景回顾   上一回我们简单地讲解了特权级的原理,这一块其实我当时也是啃的云里雾里,看了好大一会儿才明白。如果实在不怎么理解特权级检查也没关系,因为后面的代码

Python描述符的一些补充

最近有空在看新版的《Effective Python》一书,看到了一些描述符的使用。 补充一些我的一些自己看法   当一个实例成为一个类的属性时,当这个类有__get__属性,__set__属性,这个类的实例成为类的属性就称为描述符 我们的日常使用中,函数就属于描述符。因为创建函数的类有__get__属性 首

【Redis】事件驱动框架源码分析(单线程)

aeEventLoop初始化 在server.c文件的initServer函数中,对aeEventLoop进行了初始化: 调用aeCreateEventLoop函数创建aeEventLoop结构体,对aeEventLoop结构体中的变量进行了初始化,之后调用了aeApiCreate函数创建epoll实例 调用aeCreateFileEvent函数向内核注册监听事件,由参数可知,注册

Redis的多线程与IO多路复用

标题说的多线程与通常说的redis是单线程不一致,具体原因如下:   Redis的3.X以前的版本是单线程的,4.X加入了异步删除,不是严格意义上的单线程,最新版本6.X告别了大家印象中的单线程,以全新多线程来解决问题;   Redis是单线程主要是指Redis的网络IO和键值对读写是由一个线程来完成的,Re

linux网络编程-IO复用——select

本篇回答以下两个问题: 1、什么是IO复用? 2、什么是select? 1、什么是IO复用? IO(read-in and write-out)指的是文件描述符的读写。 从文件描述符读写数据可以有多种实现方式,包括:非阻塞模型、非阻塞模型、IO复用、信号驱动、异步IO。 针对一个文件描述符读写时采用阻塞模型和非阻塞模型

句柄,文件描述符的理解

有些是转载的。讲的应该很清楚了 什么是句柄 句柄就是一个标识符,只要获得对象的句柄,我们就可以对对象进行任意的操作。 句柄不是指针,操作系统用句柄可以找到一块内存,这个句柄可能是标识符,map的key,也可能是指针,看操作系统怎么处理的了。fd算是在某种程度上替代句柄吧;Linux 有相应

理解 shell 脚本中的常见用法: 2>&1

理解 shell 脚本中的常见用法: 2>&1 原文链接  https://learnku.com/articles/54352   在我们接触的 shell 脚本中,对 2>&1 一定不陌生,比如 ls foo > /dev/null 2>&1。   本文就来解释下 2>&1 究竟做了什么,并且是如何起作用的。   一、I/O 重定向简介 「重定向」是计算机用来

操作系统实现-中断及任务调度

博客网址:www.shicoder.top 微信:18223081347 欢迎加群聊天 :452380935 这一次我们来对内核进行完善,主要包括全局描述符的加载、任务调度、中断等 全局描述符的加载 我们回顾下,是不是在loader中有关于全局描述符的一些代码 prepare_protected_mode: cli; 关闭中断 ; 打开A

JS高级—07—对象;原型;原型链;

一、对象 1.1概念 1.2定义对象的两种方式               1.3对对象属性的控制之数据属性描述符           当我们直接在一个对象上定义某个属性时: 指这种方式: const obj ={ name:"kobe" } 当我们通过属性描述符定义一个属性时: 指这种方式: Object.defineP

grafana dashboard简介

grafana dashboard简介 打开的文件描述符 在linux,打开的任何都是文件。文件描述符是有限制的 查看文件描述符限制命令: ulimit -a 其中open files 为总的文件描述符限制。 如遇见问题:to many open files.应该首先检查文件描述符是否超出,并扩大其值 每秒上下文切换 查看上下文

多路IO

1.高并发服务器实现方法 1.阻塞等待:进程开启线程去服务客户,每个线程服务一个客户,阻塞等待客户发送消息——消耗资源 2.非阻塞忙轮询:进程循环询问客户,问它上面是否有消息,有消息就进行处理。——消耗cpu 3.多路IO转接(多路IO复用): 内核监听多个文件描述符的属性(读写缓冲区)变化。