操作系统开发

JDK,JRE,JVM的区别与关系

徘徊边缘 提交于 2019-12-06 05:22:11
概念区别 JDK: Java Develpment Kit java 开发工具 JRE: Java Runtime Environment java运行时环境 JVM: java Virtual Machine java 虚拟机 使用人群 jdk 是给开发人员使用的, jre和jvm是给普通用户使用 3. 详细介绍 JDK: 是java开发工具包,是Sun公司针对java开发人员的产品,jdk中包含jre,在jdk的安装目录下有一个jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里面就是jvm,lib中是java工作需要的类库,而java和lib合起来就称为jre JRE: 是运行基于java语言编写的程序所不可缺少的运行环境,也是通过它,java的开发者才可以将自己开发的程序发布到用户手中,让用户使用,与大家熟悉的jdk不同,jre是运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器,调试器)等,知识针对使用java程序的用户 JVM: 就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序首先被编译为.class文件,这种类文件可以在虚拟机上运行,也就是说class并不直接与机器的操作系统相对应。而是经过虚拟机间接的与操作系统交互,由虚拟机将程序解释给本地系统执行,只有jvm还不能将class执行

25年的Linux之路

℡╲_俬逩灬. 提交于 2019-12-05 18:01:55
就算你在使用iPhone和Mac,你也同样与Linux打过照面了。因为几乎所有的网站和网页都是由Linux在带动。Facebook、谷歌、Pinterest还有维基百科——他们的服务器无不是基于Linux搭建的。 简单说,没有Linux,互联网不会有今天这么精彩。 而且呢,不要以为Linux只是个存在于网络世界的东西。现在它也开始进入电视机和汽车的操作系统中了。25年前李纳斯·托沃兹出于爱好摆弄出来的一套代码,如今已经走进我们生活的方方面面。称之为“万物枢机”并不为过。 念头缘起 打造Linux的年头产生自25年前。那个时候,全世界服务器的操作系统都被AT&T贝尔实验室的Unix系统垄断。不过美中不足的是,Unix版权归AT&T所有,只能运行在高端机器上。极客们渴望有一个能与之媲美的系统出现,让普通人在自家电脑上就能体验科技之美。 1984年,理查德·斯托曼(Richard Stallman)开始了GNU项目。(读者可以把这看成一个免费版本的Unix)到了1991年,斯托曼和他的公司成功地重写了Unix的全部代码。不过他们遗漏了操作系统中至关重要的一个部分:内核。内核是一个成熟操作系统必不可少的部分,有了它,硬件传输来的各种信息才能转为代码被软件理解。这个时候,托沃兹决定自己来完成内核的编写。 再后来,就是我们所看到的历史了。成千上万开发者使用GNU和Linux为基础

操作系统-第一章引论

无人久伴 提交于 2019-12-05 12:49:44
第一章 操作系统引论 1.1 操作系统的目标和作用 1.1.1 操作系统的目标 方便性(用户的观点) 提供良好的、一致的用户接口,弥补硬件系统的类型和数量差别。 有效性(系统管理人员的观点) 提高系统资源的利用率,提高系统的吞吐量 可扩充性(系统开发人员的观点) 为适应计算机硬件、体系结构以及计算机应用发展的要求。可扩充性与 os 结构有十分紧密的联系。 开放性(开放的观点) 所谓开放性,是指系统能遵循世界标准规范,特别是遵循开发系统互联 OSI 国际标准。使各种计算机硬件系统能够有效、协同地工作,实现应用程序的可移植性和互操作性。 1.1.2 操作系统的作用 从计算机系统组成观点,操作系统是系统软件。 从服务用户的观点,操作系统是用户与计算机硬件之间接口。 从资源管理观点,操作系统是系统资源管理者。 从软件分层、扩充机器的观点,OS 实现了对计算机资源的抽象,是扩充裸机的第一层系统软件。 1.1.3 推动操作系统发展的主要动力 提高资源的利用率和系统性能:计算机发展的初期,计算机系统昂贵,用作集中计算; 方便用户:用户上机、调试程序,分散计算时的事务处理和非专业用户(商业和办公、家庭); 器件的不断更新换代:CPU的位宽度(指令和数据)、快速外存; 计算机体系结构的发展:单处理器、多处理器、网络; 新的应用需求的不断提出。 1.2 操作系统的发展过程 第0代(40年代未

USDT跑分平台

…衆ロ難τιáo~ 提交于 2019-12-05 07:59:28
U丨S丨D丨T丨跑丨分丨系丨统丨开丨发 欢迎咨询厄加特Urgot(189微2212电1525) ,跑丨分丨系丨统丨开丨发丨 A丨P丨P丨开丨发丨案丨例丨源丨码丨制丨度丨方丨案丨,我司位于广州天河区,是一家大型专业商业服务互联网技术一体化公司,百人技术团队,市面上有的你叫得出名字的类似系统我们都能做,模式多样,紧跟时代,能做出最符合你、最接近时代轨道的项目方案。 相信有很多小伙伴都是学了SSM框架,而且学的时候应该是用eclipse或者Myeclipse开发的,随着idea崛起,实力碾压eclipse,IDEA 的编译速度很快,通常比ec快2倍!外加丧心病狂的代码提示引起程序员的尖叫!当然,我不是说eclipse不好,只是idea更加便捷,更加便于开发,这是事实。我相信很多小伙伴都是从eclipse转向idea(包括我,普遍一开始上手不习惯idea,时刻保持一颗畏惧敬畏的心,生怕敲不出一行靓丽的Hello Word 一、概述 1、三大平台 (1)java ME:嵌入式应用(小型设备,比如移动通信,智能卡,电视机顶盒等) (2)Java SE:桌面级应用(也就是Eclipse一类的应用,Java SE SDK也简称JDK) (3)Java EE:Java的企业级应用平台 2、跨平台特性——得益于java虚拟机的设计(可以运行在不同操作系统上,避免了java程序与操作系统直接接触

【转】多系统引导背后的知识:磁盘、分区、文件系统、GPT、UEFI(仅用于学习,不用做商业用途)

一笑奈何 提交于 2019-12-05 06:18:26
【Windows 7 + Windows 8 (PE) + Windows 10 + deepin-Linux + MacOS X】 <电脑修的好,备胎当到老> 前言:随着软硬件技术的发展UEFI引导逐渐取代传统BIOS引导,最新的操作系统都适用于EFI引导,这让各他们可以共存于一台机器。 工具:两个8GB U盘(一个安装PE,一个刻录系统)、Disk Genius磁盘工具、微PE、EasyUEFI、EasyBCD、TransMac v12。 笔记本型号:戴尔灵越5557 配置:i5-6200U + 8G RAM + SAMSUNG 860 EVO SSD(512GB)+ BCM94352Z(802.11ac 支持黑苹果千兆网卡) 引导过程: 磁盘结构: Clover Bootloader引导界面: 以下是我对这些系统的使用方式: Windows 7:兼容老旧的开发工具、驱动程序,用于各种EDA和嵌入式开发。 Windows 10:微软最新的操作系统,安装VS2017学习UWP开发。 Deepin-Linux:用于学习Linux、Python等。 MacOS X:安装Xcode学习Swift,IOS开发等。 Windows 8 PE:Win8内核版微PE,集成大量引导修复、磁盘工具,备份和修复其他系统。 1. 磁盘和文件系统 作为数据存储的介质,现在市面上硬盘有机械硬盘

linux之docker容器

给你一囗甜甜゛ 提交于 2019-12-05 05:31:31
一、初识docker 1.1 什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。 Docker 使用 Google 公司推出的 Go 语言 进行开发实现。 docker是linux容器的一种封装,提供简单易用的容器使用接口。它是最流行的Linux容器解决方案。 docker的接口相当简单,用户可以方便的创建、销毁容器。 docker将应用程序与程序的依赖,打包在一个文件里面。运行这个文件就会生成一个虚拟容器。 程序运行在虚拟容器里,如同在真实物理机上运行一样,有了docker,就不用担心环境问题了。 1.2 docker用场景 web应用的自动化打包和发布 自动化测试和持续集成、发布 在服务型环境中部署和调整数据库或其他应用 1.3 为什么要用docker? 我们先看看很久很久以前,服务器是怎么部署应用的! 由于物理机的诸多问题,后来出现了虚拟机(主板支持虚拟技术:Hypervisor),在支持虚拟技术的电脑上安装VM虚拟机。 但是虚拟化也是有局限性的,每一个虚拟机都是一个完整的操作系统,要分配系统资源,虚拟机多道一定程度时,操作系统本身资源也就消耗殆尽,或者说必须扩容 服务器环境 第一代

docker--docker介绍

醉酒当歌 提交于 2019-12-05 04:26:00
2 docker 介绍 2.1 容器技术 在计算机的世界中,容器拥有一段漫长且传奇的历史。容器与管理程序虚拟化 (hypervisor virtualization,HV)有所不同,管理程序虚拟化通过中间层将一台或者多 台独立的机器虚拟运行与物理硬件之上,而容器则是直接运行在操作系统内核之上的用 户空间。因此,容器虚拟化也被称为“操作系统级虚拟化”,容器技术可以让多个独立的用 户空间运行在同一台宿主机上。 由于 “客居”于操作系统,容器只能运行与底层宿主机相同或者相似的操作系统,这看起来 并不是非常灵活。例如:可以在Ubuntu服务中运行Redhat Enterprise Linux,但无法再 Ubuntu服务器上运行Microsoft Windows。 相对于彻底隔离的管理程序虚拟化,容器被认为是不安全的。而反对这一观点的人则认 为,由于虚拟容器所虚拟的是一个完整的操作系统,这无疑增大了攻击范围,而且还要 考虑管理程序层潜在的暴露风险。 尽管有诸多局限性,容器还是被广泛部署于各种各样的应用场合。在超大规模的多租户 服务部署、轻量级沙盒以及对安全要求不太高的隔离环境中,容器技术非常流行。最常 见的一个例子就是“权限隔离监牢”(chroot jail),它创建一个隔离的目录环境来运行进 程。如果权限隔离监牢正在运行的进程被入侵者攻破,入侵者便会发现自己“身陷囹圄”,

【架构-01】转载:微服务架构

半世苍凉 提交于 2019-12-05 03:17:30
纯洁的微笑公众号文章:【12张手绘图】我搞懂了微服务架构! 什么是微服务? 微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。 服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API ) 。 每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。 另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。 可以使用不同的语言来编写服务,也可以使用不同的数据存储。 根据马丁.福勒的描述,我总结了以下几点: ①小服务 小服务,没有特定的标准或者规范,但他在总体规范上一定是小的。 ②进程独立 每一组服务都是独立运行的,可能我这个服务运行在 Tomcat 容器,而另一个服务运行在 Jetty 上。可以通过进程方式,不断的横向扩展整个服务。 ③通信 过去的协议都是很重的,就像 ESB,就像 SOAP,轻通信,这意味着相比过去更智能更轻量的服务相互调用,就所谓 smart endpoints and dumb pipes。 这些 Endpoint 都是解耦的,完成一个业务通信调用串起这些 Micro Service

Linux系统介绍与环境搭建准备

守給你的承諾、 提交于 2019-12-05 02:55:57
1 什么是操作系统? 操作系统,Operating System,简称OS,是计算机系统中必不可少的基础软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心。 操作系统的作用是 管理和控制计算机系统中的硬件和软件资源 。 比如: 负责直接管理计算机系统的各种硬件资源,如对CPU、内存、磁盘等的管理,同时对系统资源供需优先次序进行管理。 控制设备的输入、输出,以及操作网络和管理文件系统等事务。 对计算机系统中各类软件资源的管理 各类应用软件的安装 运行环境设置等 目前PC(Intel x86系列)计算机上比较常见的操作系统有Windows、Linux、DOS、Unix等。 2. 什么是Linux? Linux是一套 开放源代码程序的、并可以自由传播的类Unix操作系统软件。 (Unix系统是Linux系统的前身,具备很多优秀特性)。 其设计之初,就是基于Intel x86系列CPU架构计算机的。 它是一个基于POSIX的 多用户、多任务并且支持多线程和多CPU的操作系统。 开发Linux系统的目的就是建立不受任何商业化软件版权制约的、全世界都能自由使用的类Unix操作系统兼容产品。 在过去的20年里,Linux系统主要被应用于 服务器端、嵌入式开发和个人PC桌面 3大领域,其中服务器领域是重中之重。 特点: 是开放源代码的程序软件,可自由修改 Unix系统兼容

Docker面试题(二)

泄露秘密 提交于 2019-12-05 02:08:34
什么是虚拟化?   虚拟化允许您在相同的硬件上运行两个完全不同的操作系统。每个客户操作系统都经历了引导,加载内核等所有过程。您可以拥有非常严格的安全性,例如,客户操作系统无法完全访问主机操作系统或其他客户端并搞砸了。 可以基于虚拟化方法如何模仿客户操作系统的硬件并模拟客户操作环境来对虚拟化方法进行分类。主要有三种类型的虚拟化: • 仿真 • 半虚拟化 • 基于容器的虚拟化 Docker 与虚拟机有何不同?   Docker不是虚拟化方法。它依赖于实际实现基于容器的虚拟化或操作系统级虚拟化的其他工具。为此,Docker最初使用LXC驱动程序,然后移动到libcontainer现在重命名为runc。Docker主要专注于在应用程序容器内自动部署应用程序。应用程序容器旨在打包和运行单个服务,而系统容器则设计为运行多个进程,如虚拟机。因此,Docker被视为容器化系统上的容器管理或应用程序部署工具。 • 与虚拟机不同,容器不需要引导操作系统内核,因此可以在不到一秒的时间内创建容器。此功能使基于容器的虚拟化比其他虚拟化方法更加独特和可取。 • 由于基于容器的虚拟化为主机增加了很少或没有开销,因此基于容器的虚拟化具有接近本机的性能 • 对于基于容器的虚拟化,与其他虚拟化不同,不需要其他软件。 • 主机上的所有容器共享主机的调度程序,从而节省了额外资源的需求。 • 与虚拟机映像相比,容器状态