首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

操作系统总结,的很棒!

操作系统通过引入进程和线程,使得程序能够并发运行。 2. 共享 共享是指系统中的资源可以被多个并发进程共同使用。 有两种共享方式:互斥共享和同时共享。...系统调用 如果一个进程在用户态需要使用内核态的功能,就进行系统调用从而陷入内核,由操作系统代为完成。...大内核 大内核是将操作系统功能作为一个紧密结合的整体放到内核。 由于各模块共享信息,因此有很高的性能。 2. 微内核 由于操作系统不断复杂,因此将一部分操作系统功能移出内核,从而降低内核的复杂性。...读者-者问题 允许多个进程同时对数据进行读操作,但是不允许读和以及操作同时发生。...管道 管道是通过调用 pipe 函数创建的,fd[0] 用于读,fd[1] 用于

53921

QT应用编程: 基于UDP协议设计的大文件传输软件

一、环境介绍 QT版本: 5.12.6 编译器: MinGW 32 传输协议: UDP 功能介绍: 软件由客户端和服务器组成,客户端通过 UDP协议不断循环地向服务端发送文件,文件传输速率可以达到...UDT网站链接: https://udt.sourceforge.io/ UDT 项目源码官方下载地址: https://sourceforge.net/projects/udt/ UDT协议移植到QT...UDP_FILE_RECV_THREAD::~UDP_FILE_RECV_THREAD() { } /* 工程: UDP_Server 日期: 2021-04-23 作者: DS小龙哥 环境: win10 QT5.12.6...#endif } UDT::close(serv); } /* 工程: UDP_Server 日期: 2021-04-23 作者: DS小龙哥 环境: win10 QT5.12.6...UDP_FILE_RECV_THREAD::close_file() { UDT::close(serv); } /* 工程: UDP_Server 日期: 2021-05-19 作者: DS小龙哥 环境: win10 QT5.12.6

2.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

干货|一个操作系统有多难

一个操作系统究竟有多难呢?我结合自己的经历给大家讲一讲。 一个操作系统有多难 先说一句废话:会者不难,难者不会。 冷启动 对于零基础的人,甚至是计算机知识零基础的人来说,难。...另一个是他用的工具都是这个作者自己的,这固然比较牛逼,但我就想难不成做操作系统连个现成的业界常用的工具也没有么,我学了你的工具也没有普适性啊。...我在这个时期的书籍是《操作系统真相还原》,这本书一上来就讲述了一些你可能感到困惑的问题 0.1 操作系统是什么 0.2 你想研究到什么程度 0.3 操作系统,哪些需要我来做 0.4 软件是如何访问硬件的...于是乎你在慢慢的影响下,也打开了思路,决定了解更多的操作系统。 我呢,当时的选择是阅读 linux 源码,并尝试仿一个(最后仿这一步放弃了)。 ?...但仿最终放弃了,因为即便是 linux0.11 的源代码,里面都非常复杂,完全仿还是很费时间的。

1.1K10

一个操作系统_10 操作系统是由中断驱动的

可屏蔽中断 有些中断是不会引起系统宕机,还是网卡的例子,网络数据包通过网线达到网卡,存到网卡自己的缓冲区,这个缓冲区是会被满的,满以后,后来的数据就会被丢掉。...满以后,CPU收到中断一般会马上拷贝网卡数据到内核缓冲区,但是这样的数据其实是可以丢的,不会引发崩溃,属于可屏蔽中断。 这类中断通过INTR线传到CPU引脚。...可被修复的异常 比如操作系统的缺页异常 终止程序的异常 中断描述符 一个中断源就会产生一个中断向量,每个中断向量都对应中断描述符表中的一个门描述符,任何中断 源都通过中断向量对应到中断描述符表中的门描述符

64420

一个操作系统_03 引导内核

操作系统引导 MBR   接上一篇BIOS启动,BIOS完成了基础的硬件检测和硬件的中断向量表的初始化,然后BIOS找到MBR并且把MBR加载在内存中,跳转到该位置。...MBR引导扇区的内容是: 446字节的引导程序及参数 64字节的分区表(每个分区表项16字节,因此只能有4个主分区) 2字节的结束标志0x55和0xaa   MBR只是操作系统引导的其中一个环节,并不是最直接的引导代码...,MBR的主要作用是加载操作系统提供的bootloader。...为了方便MBR找到内核加载器,约定好加载器就存储在各分区的开始扇区,这个扇区被称为操作系统引导扇区也称为OBR(OS Boot Record), 扇区里面的程序便是内核加载器,比如我们常见的x86平台上的

1K20

操作系统是什么都没整明白,什么代码?

操作系统 现代操作系统由一个或多个处理器、主存、打印机、键盘、鼠标、显示器、网络接口以及各种输入/输出设备构成。计算机操作系统是一个复杂的系统。...而且,越靠近用户态的应用程序越容易编写,如果你不喜欢某个电子邮件阅读器你可以重新一个或者换一个,但你不能自行一个操作系统或者是中断处理程序。这个程序由硬件保护,防止外部对其进行修改。...在 BIOS 内有底层 I/O 软件,包括读键盘、屏幕、磁盘I/O 以及其他过程。如今,它被保存在闪存中,它是非易失性的,但是当BIOS 中发现错误时,可以由操作系统进行更新。...操作系统博物馆 操作系统已经存在了大半个世纪,在这段时期内,出现了各种类型的操作系统,但并不是所有的操作系统都很出名,下面就罗列一些比较出名的操作系统 大型机操作系统 高端一些的操作系统是大型机操作系统...节点上运行一个小型但是真是的操作系统,通常这个操作系统是事件驱动的,可以响应外部事件。 实时操作系统 另一类操作系统是实时操作系统,这些系统的特征是将时间作为关键参数。

1.2K50

Qt Quick 项目实现根据操作系统语言自动显示指定翻译

将待翻译文件添加到扫描列表 在 Qt 项目的 pro 文件中添加如下内容: # 告诉 Qt 翻译处理工具扫描所有当前目录下的 qml 文件 lupdate_only { SOURCES +=...生成 .ts 中间文件 点击 Qt Creaetor 菜单栏的工具->外部->Qt语言专家->更新翻译(lupdate),生成中间的 .ts 文件。 ? 此时看下面概要信息生成了如下内容: ?...开始翻译 到你的 Qt 安装目录下找到 Qt5.12.3\5.12.3\msvc2017\bin\linguist.exe 文件,不同的编译器路径可能不一样,自己仔细找一下。...完成后记得保存文件(切记切记) 生成目标二进制文件 在翻译中间文件完成后,返回 Qt Creator,还是点击 工具->外部->Qt语言专家->发布翻译(lrelease),此时你会看到生成了两个后缀为...官网:https://doc.qt.io/qt-5/qtranslator.html#load-1): 第一个参数指定当前系统语言,使用 QLocale 就可以获取到。

1.5K20

一个操作系统_08 内核与C语言

内核与C语言 内核能用C标准库吗? 我们开发用户应用程序的时候,有标准库可以用,最典型的就是GUN C库,标准库一般是系统调用的封装,表面上是通过标准库访问系统资源,实际上是通过系统调用实现的。...所以自己内核的话可以用C语言,毕竟可以编译成汇编,跟直接汇编差不多,但是不能用C标准库,理由如上。...gcc-multilib g++-multilib yum install glibc-devel.i686 libstdc++-devel.i686 C运行时库 C运行时库与标准库不一样,可以理解为与操作系统无关的部分的汇编封装...m32b.o -Ttext 0xc0001500 -e main -o m32.bin # 指定开始的地址 ELF文件 ELF是Linux上的可执行文件,其中Entry point address相当于操作系统与文件的约定...,操作系统加载这个可执行文件的时候,去这个地方作为入口点。

77920

操作系统只能用汇编和 C 语言吗?

理论上说,大部分语言都可以用来写操作系统内核。 但是为什么大部分操作系统内核都只用C语言来写?...如果有人使用Pascal实现了Pascal标准库里的大部分功能,并且都不依赖于操作系统,那么用这个环境就可以用来开发Pascal操作系统。...商用操作系统用C语言开发是因为工具齐全开发成本低,仅此而已。 JNode[2],一个用Java操作系统。 这个世界上有很多闲人,他们一直在做着各种稀奇古怪的事情,就包括用各种语言开发操作系统。...最后我再补充一下:一个语言的第一个版本肯定是用别的语言的,但以后的版本就不一定了。这像是一个先有鸡还是先有蛋的问题,但实际不是。...举个例子吧:C语言的最早的编译器肯定不是C的,但用最早的编译器环境里的C语言是可以做出更复杂的编译器的,更复杂的编译器再做出支持更复杂语法的C,不停的迭代就可以了。

1.4K20
领券