操作系统开发

day02

社会主义新天地 提交于 2019-12-21 02:22:28
什么是编程? 编程就是通过一些编程语言写一堆文件,表达自己的想法 简述计算机五大组成。 控制器、运算器、存储器、输入设备、输出设备 操作系统有什么用? 操作系统位于应用程序和硬件之间,负责协调管理计算机资源和软件资源。操作系统把对硬件的复杂性,封装成一个个简单易用的接口供人们使用。 计算机由哪三大部分组成? 硬件,与硬件直接交互 操作系统(软件),与硬件交互 应用软件,与操作系统交互 简述操作系统和应用程序的启动流程? 操作系统启动流程: 开机,启动临时操作系统 临时操作系统去CMOS存储器上寻找操作系统的存储路径 操作系统启动,临时操作系统关闭 应用程序启动流程: 双击应用程序图标 双击图标就是给操作系统指令,告诉操作系统应用程序在硬盘的位置,让操作系统启动这个路径 操作系统接到指令操控CPU,给内存发指令 内存接受CPU指令,给硬盘发出指令,硬盘读取应用程序代码至内存,应用程序启动 编程语言的分类有哪些?并评估各个分类的优缺点。 机器语言 优点:执行速度非常快,直接和硬件交互 缺点:开发速度非常慢 汇编语言 优点(相较于机器语言而言):开发速度快 缺点(相较于机器语言而言):执行速度慢 高级语言 优点(较于汇编语言):开发效率高 缺点(较于汇编语言):执行效率低(调试bug非常复杂) 编译型语言 优点(较于解释型语言):执行效率高 缺点(较于解释型语言):开发效率低 解释型语言

导论第四次课后总结

血红的双手。 提交于 2019-12-19 05:25:53
第二章 2.5.2 物联网 物联网的概念:物物相连,采用感知识别技术,将世界上不同国家,地区的人或物体联系在一起,使其彼此可以相互交流数据信息,从而形成一个全球性人物,物物相连的智能社会。 物联网就是随时随地地实现人人物物交互,他所需要的技术和设备有射频识别、红外感应器、全球定位系统、光扫描器等来实现。物联网的核心和基础是互联网,他是在互联网基础上延伸和拓展的网络;另外。其用户端延伸和扩展淡了物体和物体之间,进行信息交换和通信。 物联网的核心和技术是互联网,他是在互联网基础上延伸扩展的网络。 物联网硬件平台组成 (1)全面感知 (2)可靠传递 (3)智能处理 它实际是把网络分成四层,把来自设备的各种信息和所采集到的数据,通过网络传递到后台的应用层,进行各种应用处理和信息资源共享 物联网从下至上课分为感知层,网络层,平台层和应用层(了解各层主要的)设备以及工作原理 物联网硬件平台 可由传感网,核心承载网和信息服务系统等部分组成。这个过程与人类大脑处理信息的过程类似。(通过各种感觉器官感知外界信息,把信息输入大脑,经过大脑的处理,对外界做出反应) 物联网不能像人那样拥有眼,耳,可以听到,看到,也没有大脑中枢系统。因此它需要各种模拟人类感觉的传感网来作为感知节点和末梢网络;信息服务系统硬件设施负责信息的处理和决策支持;核心承载网为物联网业务提供基础通信网络

路由器开发

最后都变了- 提交于 2019-12-18 01:28:01
宽 带上网已经不是什么新鲜事情,人们对相关的网络器件已经不再陌生,比如说常见的路由器。对于一般的网络用户,他们能知道怎样使用路由器来上网、玩游戏等就 已经感到很满足了,通常情况下对路由器的深层技术很少去过问研究,但做为兴趣广泛的技术爱好者,对这方面的知识是非常感兴趣的。但限于各种条件的制约,这 些爱好者都非开发者,很大程度上无法深入了解真正的技术实现过程以及相关的核心内幕。正是基于此点,笔者凭借自身的知识沉淀,尽最大努力为爱好技术的读者 架设一坐能通向深层核心的桥梁,为大家揭开路由器的神秘面纱,剖开其核心内脏。为使读者能清晰明白的理解掌握,笔者尽量将专业的技术内容转化为容易接受的 知识讲解,其中可能有不足偏颇之处,还请大家多见谅。 概述 什么是路由器? 互联网是依靠路由器连接起来的,路由器是互联网或者说IP网络的核心设备。宽带接入的不断增长,带动了路由器的需求不断增加。 路由器究竟是什么样的技术产物? 谈到路由器的开发,我们就不免要谈到“嵌入式”设备的开发,没错,通俗的说,路由器就是一种嵌入式产品。那么究竟什么是嵌入式设备呢?    其实就目前而言,嵌入式设备已经不断深入我们的日常生活方方面面。通俗的讲,嵌入式设备是指具有计算机功能,但又不称为计算机的设备或器材,它几乎包括 了我们周围的所有电器设备 PDA、手机、机顶盒、汽车、微波炉、电梯、安全系统、自动售货机、医疗仪器、立体音响

如何理解LXC与Docker之间的主要区别

删除回忆录丶 提交于 2019-12-17 20:39:55
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 两者的概述 容器技术独立运行并且从主机系统上封装应用程序工作量。把容器想象成可以安装和运行应用程序的主机操作系统里面的操作系统,从实用目的来讲,它就像一个虚拟机。 LXC项目给不同配置和用户空间应用提供最小的容器操作样本来管理容器生命周期, LXC项目的这个特性和Linux内核使模仿机制能够正常启用。 便携性 容器技术将应用从主机操作系统上解耦下来,摘录该程序并且使之在任意支持LXC的系统上都实现轻便化。低调的说法就是:非常好用。用户在这样一个原始和最小库的Linux操作系统上可以在容器里运行任何程序(就像是在容器里运行LAMP堆栈)。 因为应用程序和工作量是相对独立的,所以用户可以运行多版本的语言,比如PHP,Python,Ruby,Apache,这些语言都可以共存,隐藏在容器里。实现云计算,就好比是这些例子和工作量都可以灵活的被移动到别的系统,复制,以及快速配置。 难道虚拟技术就做不到吗? 不不不,虚拟技术也可以做到,但是会有一定程度的性能损失,灵活度也会下降。容器技术不是模仿硬件层次,而是在Linux内核里使用cgroup和namespaces来打造轻便的、将近裸机速度的虚拟技术操作系统环境。因为不是虚拟化存储,所以容器技术不会管底层存储或者文件系统,而是你放哪里,它操作哪里。

计算机核心基础

情到浓时终转凉″ 提交于 2019-12-17 10:59:54
[TOC] 一 引子: 接下来一段时间,我们的目标的是:学会使用python这门编程语言来编写ATM+购物车程序,那么问题来了: 1.1 什么是语言?什么是编程语言?为何要有编程语言? 插图:恶搞图01 语言其实就是人与人之间沟通的介质,如英语,汉语,俄语等。 而编程语言则是人与计算机之间沟通的介质。 那么为何要有编程语言,或者说人为何要与计算机沟通呢?这是因为在编程的世界里,计算机就好比是人的奴隶,人与计算机沟通的目的就是为了奴役计算机,让计算机按照人类的思维逻辑自发地去工作从而把人力解放出来。 此处我们可以提炼出如下两个重要的概念 1.2 什么是编程?为什么要编程? 编程就是人把自己想命令计算机干的事用编程语言翻译出来并写到文件里(这一系列的文件就是程序),那么为什么要编程? 插图:恶搞图02 小人类编程的目的就是为了让计算机按照人类的思维逻辑(程序)自发地去工作从而把人力解放出来。 综上,我们接下来的学习应该分为两个层面 1、为了更好地控制人类的奴隶(即计算机),我们需要学习计算机是由什么组成的、它能做什么事、它是怎样工作的(详见计算机组成原理、操作系统概述) 2、我们需要学习编程语言,从而把原来需要人力来完成的业务(比如ATM和购物)交给计算机去做 二 计算机组成原理 2.1、什么是计算机? 俗称电脑,即通电的大脑,电脑二字蕴含了人类对计算机的终极期望

什么是API

倖福魔咒の 提交于 2019-12-17 01:19:02
阅读编程资料时经常会看到API这个名词,网上各种高大上的解释估计放倒了一批初学者。初学者看到下面这一段话可能就有点头痛了。 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。——百度百科 这篇文章我们就来通俗易懂地解释下什么叫做 API,你只需要花费1分钟时间。 从文件操作开始谈API。 以C语言为例,我们使用fopen()函数可以打开一个文件,感觉非常简单。文件保存在硬盘上,要经过复杂的处理才能显示,这些细节对我们来说是透明的,由操作系统完成。也就是说,我们调用fopen()函数来通知操作系统,让操作系统打开一个文件。 那么,我们如何告诉操作系统打开文件呢? 看似简单的操作到底层都非常复杂,打开文件首先要扫描硬盘,找到文件的位置,然后从文件中读取一部分数据,将数据放进I/O缓冲区,放进内存;这些数据都是0、1序列,还要对照ASCII表或Unicode表”翻译“成字符,再在显示器上显示出来。这个过程如果要让程序员来完成,那简直是噩梦! 怎么办呢?操作系统想了一个很好的办法,它预先把这些复杂的操作写在一个函数里面,编译成一个组件(一般是动态链接库),随操作系统一起发布,并配上说明文档

Java中Native关键字的作用

♀尐吖头ヾ 提交于 2019-12-16 17:47:51
初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法: public native int hashCode(); 为什么有个native呢?这是我所要学习的地方。所以下面想要总结下native。 回到顶部 一、认识 native 即 JNI,Java Native Interface 凡是一种语言,都希望是纯。比如解决某一个方案都喜欢就单单这个语言来写即可。Java平台有个用户和本地C代码进行互操作的API,称为Java Native Interface (Java本地接口)。 回到顶部 二、用 Java 调用 C 的“Hello,JNI” 我们需要按照下班方便的步骤进行: 1、创建一个Java类 ,里面包含着一个 native 的方法和加载库的方法 loadLibrary。HelloNative.java 代码如下: public class HelloNative { static { System.loadLibrary("HelloNative"); } public static native void sayHello(); @SuppressWarnings("static-access") public static void main(String[] args) { new HelloNative().sayHello

UNIX 与 Linux 区别联系

久未见 提交于 2019-12-16 16:54:50
UNIX 与 Linux 区别联系 转载自: http://c.biancheng.net/view/707.html UNIX 与 Linux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 UNIX 是操作系统中的"老大哥",后来的 Windows 和 Linux 都参考了 UNIX。 现代的 Windows 系统已经朝着“图形界面”的方向发展了,和 UNIX 系统有了巨大的差异,从表面上甚至看不出两者的关联。 - UNIX 的坎坷历史 UNIX 操作系统由肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)发明。它的部分技术来源可追溯到从 1965 年开始的 Multics 工程计划,该计划由贝尔实验室、美国麻省理工学院和通用电气公司联合发起,目标是开发一种交互式的、具有多道程序处理能力的分时操作系统,以取代当时广泛使用的批处理操作系统。 说明:分时操作系统使一台计算机可以同时为多个用户服务,连接计算机的终端用户交互式发出命令,操作系统采用时间片轮转的方式处理用户的服务请求并在终端上显示结果(操作系统将CPU的时间划分成若干个片段,称为时间片)。操作系统以时间片为单位

C 简介

守給你的承諾、 提交于 2019-12-16 11:43:44
原文链接: https://www.runoob.com/cprogramming/c-intro.html C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。 在 1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一个公开可用的描述,现在被称为 K&R 标准。 UNIX 操作系统,C编译器,和几乎所有的 UNIX 应用程序都是用 C 语言编写的。由于各种原因,C 语言现在已经成为一种广泛使用的专业语言。 易于学习。 结构化语言。 它产生高效率的程序。 它可以处理底层的活动。 它可以在多种计算机平台上编译。 关于 C C 语言是为了编写 UNIX 操作系统而被发明的。 C 语言是以 B 语言为基础的,B 语言大概是在 1970 年被引进的。 C 语言标准是于 1988 年由美国国家标准协会(ANSI,全称 American National Standard Institute)制定的。 截至 1973 年,UNIX 操作系统完全使用 C 语言编写。 目前,C 语言是最广泛使用的系统程序设计语言。 大多数先进的软件都是使用 C 语言实现的。 当今最流行的 Linux 操作系统和

虚拟化技术

旧巷老猫 提交于 2019-12-16 10:51:02
美国环境保护署(EPA)报告的一组有趣的统计数据就证明了其好处。EPA 研究服务器和数据中心的能源效率时发现,实际上服务器只有 5% 的时间是在工作的。在其他时间,服务器都处于 “休眠” 状态。 底层硬件--->操作系统--->VMware和本机其他的APP--->运行不同的操作系统。 虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 虚拟化前 每台主机一个操作系统 软件硬件紧密地结合 在同一主机上运行多个应用程序通常会遭遇沖突 系统的资源利用率低 硬件成本高昂而且不够灵活 虚拟化后 打破了操作系统和硬件的互相依赖 通过封装到到虚拟机的技术, 管理操作系统和应用程序为单一的个体 強大的安全和故障隔离 虚拟机是独立于硬件的, 它们能在任何硬件上运行(有些虚拟化必须运行在他更改过的系统上的) 虚拟化定义:让应用程序运行在不同的空间内,这些空间彼此独立集合,大提升服务器的使用效率。 虚拟化分类 全虚拟化技术、半虚拟化技术/准虚拟化技术 全虚拟化技术 完全虚拟化技术又叫硬件辅助虚拟化技术,最初所使用的虚拟化技术就是全虚拟化(Full