操作系统开发

使用 Docker 搭建 Java Web 运行环境

ぃ、小莉子 提交于 2019-12-29 09:56:59
目录[-] 原料 前提条件 安装 Docker 做法 下载镜像 启动容器 安装相关软件 安装 JDK 安装 Tomcat 设置环境变量 编写运行脚本 退出容器 创建 Java Web 镜像 启动 Java Web 容器 品尝 总结 Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它。Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了。作为一名 Java 程序员,我们是时候一起把 Docker 学起来了! 本文会对虚拟化技术与 Docker 容器技术做一个对比,然后引出一些 Docker 的名词术语,比如:容器、镜像等,随后将使用 Docker 搭建一个 Java Web 运行环境,最后将对本文做一个总结。 我们先来回顾一下传统虚拟化技术的体系架构: 可见,我们在宿主机的操作系统上,可安装了多个虚拟机,而在每个虚拟机中,通过虚拟化技术,实现了一个虚拟操作系统,随后,就可以在该虚拟操作系统上,安装自己所需的应用程序了。这一切看似非常简单,但其中的技术细节是相当高深莫测的,大神级人物都不一定说得清楚。 凡是使用过虚拟机的同学,应该都知道,启动虚拟机就像启动一台计算机,初始化过程是相当慢的,我们需要等很久,才能看到登录界面。一旦虚拟机启动以后

常见的操作系统有哪些?

和自甴很熟 提交于 2019-12-26 22:40:27
一、常见的操作系统有哪些? 1、 Windows 操作系统 应用比较广泛。 2、 Linux 操作系统 免费使用,类UNIX 3、 Unix 操作系统 无界面,使用命令操作,一般安装在服务器上面。 4、 Mac 操作系统 苹果公司开发的,一般PC不能使用。 摘自: https://blog.csdn.net/a15028596338/article/details/83021719 二、我们现在常见的操作系统的体系结构有哪些呢? 第二节 操作系统的体系结构 目前流行的操作系统有Windows操作系统、UNIX操作系统、Linux操作系统和Android操作系统等。 一、Windows操作系统的体系结构 Windows体系结构是分层的模块系统,主要层次有 硬件抽象层HAL、内核、执行体和大量的子系统集合 。 子系统又分为环境子系统和保护子系统,其中环境子系统仿真不同的操作系统,保护子系统提供安全功能。 1、内核 内核执行Windows操作系统中最基本的操作,主要提供 线程调度、陷入处理和异常调度、中断处理和调度、多处理器同步、供执行体使用 的基本内核对象。 Windows操作系统的内核始终运行在核心态,代码短小紧凑,可移植性也好。通常,除了中断程序例程,正在运行的线程是不能抢先内核的。 2、硬件抽象层 Windows操作系统设计的一个至关重要的方面就是在 多种硬件平台上的可移植性

Linux与Unix到底有什么不同?

大兔子大兔子 提交于 2019-12-25 22:47:21
来自:开源中国 原文:Linux vs. Unix: What's the difference? 链接: https:// opensource.com/article/ 18/5/differences-between-linux-and-unix 译者:Tocy, LinuxTech, 琪花亿草, lnovonl, 雪落无痕xdj, kevinlinkai, 无若 如果你是一名20多岁或30多岁的软件开发人员,那么你已成长在一个由Linux主导的世界中。数十年来,它一直是数据中心的重要参与者,尽管很难找到明确的操作系统市场份额的报告,但Linux在数据中心操作系统上的份额可能高达70%,而Windows变体几乎涵盖了所有剩余的比例。使用任何主流公共云的开发人员可以假定目标系统将运行Linux。近些年来,随着Android和基于Linux的嵌入式系统在智能手机、电视、汽车和其他设备中的应用,Linux随处可见的证据比比皆是。 即便如此,大多数软件开发人员,甚至是那些在这场古老的“Linux革命”中成长的软件开发人员,也至少听说过Unix。这听起来与Linux类似,你可能已经听说过人们可以互换地使用这些术语。或者你也许听说过Linux被称为“类Unix”操作系统。 那么,这个Unix是什么呢? 一些漫画种讲到的是坐在发绿光的屏幕后面的精灵般的“老人”,他编写C代码和shell脚本

关于开源的7大理念

那年仲夏 提交于 2019-12-25 19:51:59
软件正在慢条斯理地吞噬世界,开源正在慢条斯理地吞噬软件业。 软件正在吞噬世界?是的,对于购物、吃饭、健身、交停车费都需要使用软件的年代,对于平均每人每天都要花费5到6个小时使用手机软件的年代,有什么理由不相信软件正在吞噬整个世界呢。 开源正在吞噬软件业?是的,因为在软件越来越富裕的年代(也即软件不再稀缺),不开源的软件,最终是没法和开源软件竞争的。举个简单例子,如果有人要在很多个文件加密软件中选择一个使用,在功能和价格都差不多的情况下,选择开源的还是闭源的?当然要选择开源的,因为谁知道闭源的软件中,会不会有后门? 前言 开源的成功程度,或者说开源的***程度,从中国银行业的广泛采用就可以看出来,银行作为一个在IT方面相当谨慎和保守的行业,在2012年(一个大约的年限)之前对开源基本上不屑一顾,使用的基本上全是商业软件(这里是指专有软件),他们认为商业软件更专业、质量更高、更可信赖、更有保障,他们中不少人视开源软件为异类,对其功能、性能、安全性表示担忧,最重要的是,他们担心开源软件出问题后找不到“原厂”解决问题和“承担责任”。 然而就在2012年以后,银行业逐渐增加了开源的使用比例,这里面有很多原因,最重要的一个原因是,在Linux面世20年后,很多开源软件已经成为比商业软件更好的存在,以至于咨询商、集成商、开发商们在为银行提供解决方案时,所拿出的最佳方案已经是基于开源的方案,银行

Linux操作系统(第二版)(RHEL 8/CentOS 8)—内容简介—前言—清华大学出版社—张同光

夙愿已清 提交于 2019-12-24 06:51:44
https://blog.csdn.net/ztguang/article/details/26748213 https://blog.csdn.net/ztguang/article/details/88710646 本科教材 主编: 张同光 ISBN号: 9787302538455 出版日期: 2019-12 出版社: 清华大学出版社 页码:382 定价:¥49.8元 内 容 简 介 本书以红帽公司的Linux最新版本Red Hat Enterprise Linux 8为蓝本,坚持理论够用,侧重实用的原则,用案例/示例来讲解每个知识点,对Linux做了较为详尽的阐述,结构清晰,通俗易懂,力争做到使读者在兴趣中学习Linux。本书是一本比较好的Linux入门教材。本书针对的是技术型读者,主要是计算机及相关专业的学生。 本书共8章,主要内容包括:Linux简介与安装、Linux的用户接口与文本编辑器、系统管理、磁盘与文件管理、软件包管理、Linux中的Shell编程、网络服务与管理、系统管理高级。 本书适合作为高等院校计算机及相关专业学生的教材,也可供培养技能型紧缺人才的机构使用。 前 言 Linux是一款免费的类UNIX操作系统,它继承了UNIX操作系统的强大功能和极高的稳定性。Linux最初由芬兰赫尔辛基大学的学生Linus Torvalds创建,并于1991年首次公布于众

一周总结

耗尽温柔 提交于 2019-12-23 10:47:00
目录 计算机基础之编程 什么是编程语言 什么是编程 为什么要编程 计算机组成 CPU 控制器 运算器 存储器 主存 外存 输入设备 输出设备 32位与64位 多核CPU 机械硬盘原理 机械手臂 磁道 扇区 平均寻道时间 平均延迟时间 平均寻找数据时间 计算机操作系统 什么是文件 操作系统的作用 操作系统的启动 应用程序的启动 编程语言分类 机器语言 汇编语言 高级语言 编译型语言 解释型语言 网络瓶颈效应 python程序执行的两种方式 交互式 命令行式 变量 什么是变量 变量的组成 变量名的命名规范 变量名的两种方式 常量 变量的三种打印方式 python变量内存管理 引用计数 垃圾回收机制 小整数池 花式赋值 链式赋值 交叉赋值 布尔类型 解压缩 python与用户交互 格式化输出三种形式 基本运算符 控制流程之if判断 单分支结构 双分支结构 多分支结构 控制流程之while循环 while+break while+continue while+else tag控制while循环退出 控制流程之for循环 for+break for+continue for+else 数字类型内置方法 整型 int 作用 定义方式 使用方法 有序or无序 可变or不可变 浮点型 float 作用 定义方式 使用方法 有序or无序 可变or不可变 字符串内置方法 作用 定义方式 使用方法

操作系统

你。 提交于 2019-12-22 05:39:30
为何要有操作系统 程序员无法把所有的硬件操作细节都了解到,因为管理这些硬件并加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了他,程序员就从这些繁琐的工作中解脱出来,只需要考虑自己的应用软件的编写就可以了,应用软件直接使用操作系统提供的功能来间接使用硬件 操作系统的位置 操作系统位于计算机硬件与应用软件之间,本质也是一个软件。操作系统由操作系统的内核(运行于内核态,管理硬件资源)以及系统调用(运行于用户态,为应用程序员写的应用程序提供系统调用接口)两部分组成 操作系统的功能 隐藏了丑陋的硬件调用接口,为应用程序员提供调用硬件资源更好,更简单,更清晰的模型(系统调用接口)应用程序员有了这些接口后,就不用再考虑操作硬件的细节,专心开发自己的应用程序即可 将应用程序对硬件资源的竞态请求变的有序化(多路复用) 操作系统的发展 第一代(1940~1955)真空管和穿孔卡片 特点:没有操作系统的概念,所有的程序设计都由纯粹的机器语言编写 工作过程:程序员在墙上的机时表预约一段时间,然后程序员拿着他的插件板到机房里,将自己的插件版接到计算机里,这几个小时内他独享整个计算机的资源,后面的一批人都得等着(2万多个真空管经常有被烧坏的情况出现),后来出现了穿孔卡片,可以将程序写在卡片上,然后读入机而不用插件板 优点:程序员在申请的时间段里独享整个资源,即时调整自己的程序

引导器之争 lilo and grub

断了今生、忘了曾经 提交于 2019-12-22 01:18:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 引导加载程序之争:了解 LILO 和 GRUB From http://www.ibm.com/developerworks/cn/linux/l-bootload.html 对照并比较这两个竞争对手 从普通的桌面用户到 Linux® 系统管理员,大部分 Linux 用户都使用过一种名为引导加载程序的工具。此类工具的不同变种会提供不同层次的支持和功能。在很多情况下,Linux 发行版默认安装的引导加载程序并不总是适合需要;每个引导加载程序的默认设置也是如此。在本文中,Laurence Bonney 讨论了两个流行的引导加载程序 —— LILO 和 GRUB —— 的优点和缺点,并建议了很多配置,以充分发掘机器的潜力。 在不考虑他们的工作或专业情况下,所有 Linux 用户都会使用的是哪个工具?引导加载程序。通过本文了解引导加载程序的工作原理,认识两个流行的引导加载程序 LILO(LInux LOader)和 GNU GRUB(GRand Unified Boot loader), 并研究两者各自的优点和缺点。 什么是引导加载程序? 最简单地讲, 引导加载程序(boot loader) 会引导操作系统。当机器引导它的操作系统时,BIOS 会读取引导介质上最前面的 512 字节(即人们所知的 主引导记录

初识Docker和安装

寵の児 提交于 2019-12-21 12:26:54
什么是Docker Docker的构想是要实现“Build,Ship and Run Any App,Anywhere”,即通过对应用的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)生命周期进行管理,达到 应用组件 “ 一次封装,到处运行 ”的目的。这里的应用组件,既可以是一个Web应用、一个编译环境,也可以是一套数据库平台服务,甚至是一个操作系统或集群。 基于Linux平台上的多项开源技术,Docker提供了高效、敏捷和轻量级的容器方案,并支持部署到本地环境和多种主流云平台。可以说,Docker首次为应用的开发、运行和部署提供了“一站式”的实用解决方案。 Docker也并非“从石头缝里蹦出来的”,而是站在前人的肩膀上,其中最重要的就是Linux容器(Linux Containers,LXC)技术。在LXC的基础上,Docker进一步优化了容器的使用体验,让它进入了寻常百姓家。 “容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与虚拟化相比,这样既不需要指令级模拟,也不需要即时编译。容器可以在核心CPU本地运行指令,而不需要任何专门的解释机制。此外,也避免了准虚拟化(paravirtualization)和系统调用替换中的复杂性。” 首先,Docker提供了

计算机基础系列一:计算机硬件

 ̄綄美尐妖づ 提交于 2019-12-21 04:41:30
一 为何要学习计算机基础 python是编程语言,即python是语言 语言有英语、法语、葡萄牙语等,但凡是语言,都是用来沟通的介质。 程序员编程的本质就是让计算机去工作,而编程语言就是程序员与计算机沟通的介质 程序员要想让计算机工作,必须知道计算机能干什么,怎么干的,这也就是我们必须学习计算机基础的原因 然而光有编程语言和硬件也并不能满足大家的编程需求,为什么这么说呢? 程序用编程语言写程序,最终开发出的结果就是一个软件,既然是软件,那就与腾讯qq、暴风影音、快播等软件没有区别了。这些软件必须运行在操作系统之上,你肯定会问:为何要有操作系统呢?没错,远古时代的程序员确实是在没有操作系统的环境下,用编程语言之间操作硬件来编程的,你可能觉得这没有问题,但其实问题是相当严重的,因为此时你必须掌握如何操作硬件的所有具体细节,比如如何具体操作硬盘(现在你得把硬盘拆开,然后你能看见的所有的东西,你都得研究明白,因为你编程时要用到它),这就严重影响了开发的效率,操作系统的出现就是运行于硬件之上,来控制硬件的,我们开发时,只需要调用操作系统为我们提供的简单而优雅的接口就可以了 所以一套完整的计算机系统分为:计算机硬件,操作系统,应用软件,如下图。因而我们的python编程之路分为计算机硬件基础,操作系统基础,和python编程三部分,就让我们先从计算机硬件学起吧 二 本节目标