操作系统开发

[嵌入式操作系统] 嵌入式操作系统复习

好久不见. 提交于 2020-01-04 09:38:44
嵌入式系统的定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适用应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 嵌入式系统的特点: 系统资源受限的系统-面向特定应用的 大多要求低功耗 要求较高的可靠性和稳定性 有实时约束 需要专用工具和特殊方法 开发工具和方法: 资源有限,不具备自主开发能力,产品发布后用户也不能对软件进行修改,必须有一套专门的开发环境。 专门的开发环境包括专门的开发工具(设计、编译、调试、测试等工具),采用交叉开发的方式进行。 嵌入式操作系统的重要指标: 实时性(中断响应时间、任务切换时间等) 尺寸(可剪裁性) 可扩展性(内核、中间件) 微处理器结构: 嵌入式操作系统体系结构:体系结构是操作系统的基础,它定义了硬件与软件的界限、内核与操作系统其他组件的组织关系、系统与应用的接口。 体系结构是确保系统的性能、可靠性、灵活性、可移植性、可扩展性的关键。 目前操作系统的体系结构可分为: 单块结构 层次结构:硬件无关层、硬件抽象层、硬件相关层 微内核结构 ucos:一种专门为嵌入式设备设计的,基于优先级的可抢占式的硬实时EOS内核 实时系统的要求: 计算的逻辑正确性 产生结果的时间 硬实时:系统要确保最坏情况下的服务时间,对于事件的响应时间的截止期限无论如何都必须得到满足。 软实时:从统计的角度来说,一个任务能够得到有确保的处理时间

Linux入门

给你一囗甜甜゛ 提交于 2020-01-03 23:15:15
Linux入门 操作系统的分类 Windows系列操作系统,Unix类操作系统,Linux类操作系统,Mac操作系统 提问:为什么要去学习Linux? 同学甲可能要问,你介绍了这么多有关Linux的知识,但我还是懵逼,我从小学去网吧打泡泡堂用的就是Windows,上了这么多年学也是用的Windows,为什么要让我学这个Linux? 同学乙可能要问,听起来Linux好像很高大上,如果我放弃Windows去学Linux,用不了多久就会升职加薪当上总经理赢取白富美吗?想想还很激动。。。 那么我要回答了:   如果Windows意味着生活和游戏,那么Linux就代表着严谨和工作,学习Linux代表着你要开发软件,你要测试程序,你要维护服务器。那么依据呢?请看如下: 由此可见,无论你是python后端开发,还是python测试开发,又或者是爬虫、数据挖掘开发,统统都必须学会Linux,这是开发者必须的技能。   我们都知道Linux这玩意是在电脑上运行的,所以说Linux就是一组软件,问题是这个软件是操作系统还是应用程序?而且Linux可以在哪些种类的电脑上运行呢?Linux来自哪里?为什么Linux不收钱?(万恶的windows分为各种收费版、家庭版、专业版、企业版。。。。)这些问题我们是不是都得了解,以免人家和你聊linux,俺不会尴尬呀。 什么是操作系统 我们都知道windows 7

线程初步了解 - <第一篇>

一世执手 提交于 2020-01-02 05:25:28
操作系统通过线程对程序的执行进行管理,当操作系统运行一个程序的时候,首先,操作系统将为这个准备运行的程序分配一个进程,以管理这个程序所需要的各种资源。在这些资源之中,会包含一个称为主线程的线程数据结构,用来管理这个程序的执行状态。   在Windows操作系统下,线程的的数据结构包含以下内容:   1、线程的核心对象:主要包含线程当前的寄存器状态, 当操作系统调度这个线程开始运行的时候,寄存器的状态将被加载到CPU中,重新构建线程的执行环境,当线程被调度出来的时候,最后的寄存器状态被重新保存到这里,已备下一次执行的时候使用。   2、线程环境块(Thread Environment Block,TED):是一块用户模式下的内存,包含线程的异常处理链的头部。另外,线程的局部存储数据(Thread Local Storage Data)也存在这里。   3、用户模式的堆栈:用户程序的局部变量和参数传递所使用的堆栈,默认情况下,Windows将会被分配1M的空间用于用户模式堆栈。   4、内核模式堆栈:用于访问操作系统时使用的堆栈。   在抢先式多任务的环境下,在一个特定的时间,CPU将一个线程调度进CPU中执行,这个线程最多将会运行一个时间片的时间长度,当时间片到期之后,操作系统将这个线程调度出CPU,将另外一个线程调度进CPU,我们通常称这种操作为上下文切换。  

开源网络风云变幻,看各家爱恨情仇

☆樱花仙子☆ 提交于 2020-01-02 02:43:18
近日,美国对中国企业的限制动作不断: 5月15日,美国将华为公司及其附属公司列入出口管制“实体名单”。 随后美国谷歌公司宣布将停止提供安卓(Andriod)系统的技术支持与服务,而安卓系统一直是世界知名的开源项目。 进一步人们又发现美国开源代码托管平台GitHub与美国非盈利公司Apache基金会均有明确声明受美国出口管制约束。 在上述列举的事件中,我们注意到了一个词——开源。 开源的主要要素包括:开源基金会、开源许可证、开源项目和开源代码托管平台等。当前这些组织、项目都在美国,几乎所有开源许可证和代码托管平台也都由美国的学术界和工业界主导。在中美贸易战背景下开源项目有何风险,美国对开源的出口管制约束对我们有怎样的影响?中国开放指令生态(RISC-V)联盟(英文缩写为 CRVA)发布权威报告《开源项目风险分析与对策建议》,给出了对“开源自立”的细致调研和建议。 在网络领域也有很多开源组织(如Linux Foundation)和开源项目,美国政府是否会试图禁止或干涉中国企业使用开源项目?小编还没仔细研究(读者感兴趣可以看一下《开源项目风险分析与对策建议》), 但是我们可以先看看网络领域都有哪些开源组织和项目,知己知彼,才能未雨绸缪,百战不殆。 令人眼花缭乱的网络开源门派 Linux Foundation Linux基金会成立于2000年,是一个中立的非营利性组织,由开放源码发展实验室

简析.NET Core 以及与 .NET Framework的关系

久未见 提交于 2020-01-02 02:28:34
简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. Windows Store AppModel & ASP.NET Core 1.0 三 .NET Core 与 .NET 其他平台的关系 1 .NET Core & .NET Framework 2 .NET Core & ASP.NET 3 .NET Core & Mono 总结 至2002微软公司推出.NET平台已近15年,在互联网快速迭代的浪潮中,许多语言已被淘汰,同时也有更多新的语言涌现,但 .Net 依然坚挺的站在系统开发平台的一线阵营中,并且随着.NET Core 即将到来(2016年6月27日)的正式版,势必迎来新一轮春天。 一 .NET 的 Framework 们 要理解.NET Core就有必要了解之前的.NET平台的众多Framework们。2002年微软公司发布的第一个.NET框架————.NET Framework,不久后又发布了.NET Compact Framework 用于在较小的移动设备(Windows mobile),而.NET Compact Framework 也含有一套 类似.NET Framework 体系(Runtime, Framework

UNIX 系统

青春壹個敷衍的年華 提交于 2020-01-01 14:26:06
1 UNIX操作系统 UNIX系统是一个交互式的分时操作系统 1974年《ACM通信》上发表了K. Thompson 和 D. Ritchie的论文“The UNIX Time-Sharing System”,UNIX系统公布于世。 作者:美国BELL实验室 Ken Thompson(K.汤普逊)Dennis Ritchie (D.里奇)(C语言的创始人) 1.1 UNIX操作系统的发展 1965年:麻省理工大学、BELL实验室、通用电器公司组成MAC课题组联合研制Multics操作系统。 Multics操作系统设计目标是要向大的用户团体提供对计算机的同时访问,支持强大的计算能力与数据存储,以及允许用户带需要的时候容易共享他们的数据。 1969年Multics在GE645计算机上运行了,但它既没有能提供预定的综合计算服务,而且连它自己究竟什么时候算达到开发的目标。 BELL实验室退出了该课题组。 Multics操作系统开发失败的原因是当时操作系统设计的指导思想所导致的。 当时操作系统设计的指导思想是“满足所有用户的所有要求”。 UNIX系统的作者认为:操作系统的设计不应也不可能做到“满足所有用户的所有要求”,而应为广大的计算机用户提供一种良好的程序设计环境。 1969年K. Thompson和 D. Ritchie 为了改善他们的程序设计环境,设计了一个纸面的文件系统设计

Docker系列01—容器的发展历程---Docker的生态圈

╄→гoц情女王★ 提交于 2020-01-01 13:32:15
Docker系列01—容器的发展历程---Docker的生态圈 分类: 容器服务系列 本文收录在 容器技术学习系列文章总目录   Docker 和容器技术的发展可谓是日新月异,本文试图以全局的视角来梳理一下 docker 目前的生态圈。既然是概览,所以不会涉及具体的技术细节。   Docker 自从发布以来发生了很多的变化,并且有些方面的变化还非常大。对于技术爱好者来说,我们喜欢酷毙新的功能,喜欢旧功能的改善。但对于生产环境中的使用者来说,其实不太喜欢这种频繁的变化!不管怎样,我们都有必要理清 docker 生态系统中的众多概念及它们之间的关系,以及 docker 自诞生至今(2018 年)的里程碑性事件。 一、百花齐放的容器技术   虽然 docker 把容器技术推向了巅峰,但容器技术却不是从 docker 诞生的。实际上,容器技术连新技术都算不上,因为它的诞生和使用确实有些年头了。下面的一串名称肯能有的你都没有听说过,但它们的确都是容器技术的应用: Chroot Jail FreeBSD Jails Linux VServer Solaris Containers OpenVZ Process Containers LXC Warden LMCTFY Docker RKT 1、Chroot Jail 就是我们常见的 chroot 命令的用法。它在 1979 年的时候就出现了

什么是SDK?

笑着哭i 提交于 2019-12-29 22:38:42
百科名片 基本信息    SDK,Software Development Kit 的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。   SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发 Windows 平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用程序接口 API 的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK 还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。   为了鼓励开发者使用其系统或者语言,许多 SDK 是免费提供的。软件工程师通常从目标系统开发者那里获得软件开发包,也可以直接从互联网下载,有时也被作为营销手段。例如,营销公司会免费提供构件SDK 以鼓励人们使用它,从而会吸引更多人由于能免费为其编程而购买其构件。   SDK 可能附带了使其不能在不兼容的许可证下开发软件的许可证。例如产品供应商提供一个专有的SDK可能与自由软件开发抵触。 GPL 能使SDK与专有软件开发近乎不兼容。LGPL下的SDK则没有这个问题。 相关背景 API   API(Application Programming Interface

xen虚拟化及工作原理

纵饮孤独 提交于 2019-12-29 22:02:48
XEN 虚拟化 Xen 虚拟化概述 Xen 是业界速度最快、 最安全的基础设施虚拟 化软件技术,并已得到 20 多家业界主要供应 商的支持,其中包括 Novell。 XEN 简介 XEN 是一个基于X86架构、发展最快、性能最稳定、占用资源最少的开源虚拟化技术。Xen可以在一套物理硬件上安全的执行多个虚拟机,与 Linux 是一个完美的开源组合,Novell SUSE Linux Enterprise Server 最先采用了XEN虚拟技术。它特别适用于服务器应用整合,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。 XEN 是英国剑桥大学计算机实验室开发的一个虚拟化开源项目,XEN 可以在一套物理硬件上安全的执行多个虚拟机,它和操作平台结合的极为密切,占用的资源最少。目前稳定版本为XEN3.0。支持万贯虚拟化和超虚拟化。以高性能、占用资源少著称,赢得了IBM、AMD、HP、Red Hat和Novell等众多世界级软硬件厂商的高度认可和大力支持,已被国内外众多企事业用户用来搭建高性能的虚拟化平台。 XEN与SUSE LINUX Novell是第一个采用XEN开源虚拟化技术的厂家,比其他Linux厂商要早。最先把Xen虚拟化技术集成在Novell Suse Linux平台上,XEN为广大用户提供了目前Linux 上最佳的免费虚拟化解决方案

虚拟化技术(1)——介绍

只愿长相守 提交于 2019-12-29 22:02:03
什么是虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 几种虚拟化软件介绍 RedHat KVM 虚拟化方式:完全虚拟化 架构:寄居架构(linux内核);祼金属架构RHEV-H 特点:祼金属架构RHEV-H或在关键的硬盘和网卡上支持半虚拟化VirtIO,达到最佳性能。 I/O协议栈:KVM重用了整个Linux I/O协议栈,所以KVM的用户就自然就获得了最新的驱动和I/O协议栈的改进。 架构图: VmWare ESX 虚拟化方式:完全虚拟化 架构:裸金属架构 I/O协议栈:VMware选择性能,但是把I/O协议栈放到了hypervisor里面。不幸的是,VMware kernel是专有的,那就意味着VMware不得不开发和维护整个协议栈,会导致开发速度会减慢,你的硬件可能要等一段时间才会得到VMware的支持。 架构图: Citrix XenServer 虚拟化方式:半虚拟化(linux安装linux);全虚拟化(linux安装windows),硬件辅助虚拟化 架构:裸金属架构 I/O协议栈:Xen选择了可维护这条道路,它将所有的I