Windows编程的本质,配置防火墙限制应用部署

2019-09-19 06:35栏目:联系我们
TAG:

既然Windows API编程是与Windows操作系统进行交互,所以就必须对Windows操作系统如何运行应用程序的原理搞清楚。

目前互联网上主要有Windows、Uniux、Linux、Mac等不同功能特性的系统... ...废话不多说,教程马上开始。

最近在玩树莓派接大触摸屏

1、保护模式

电脑双系统,是指将两个操作系统安装在电脑的不同分区,两个系统互不干扰。能装什么系统需要看系统兼容性及硬件架构是否支持,如果支持,你可以选择双Windows或Windows+Linux等任意组合。一般来说,要把一个系统设置为默认系统,另一个为副系统,默认系统装在C盘,副系统装在任意分区。我是Windows(主)+ Kali Linux(副系统)。

发现一个问题,vs 在 iot 上部署应用,使用的是

     操作系统是依附于cpu硬件的,所以操作系统所具备的功能也是cpu所给予的。Intel的32位CPU有两种主要的模式:实模式和保护模式。Dos操作系统就是运行在实模式下,而现代的操作系统都是充分利用了保护模式,从而使系统大大的安全稳定了很多。现代计算机都是用的冯诺依曼体系,其核心就是内存。所以CPU内部有寄存器,外部有内存,所以所谓的实模式和保护模式其本质就是对内存的访问形式不同。实模式就是对内存的直接访问,比如要在屏幕上显示一个数字就直接往显存中写就可以了,dos下编程就是这样的。但这有一个最大的问题就是不安全,任何程序可以随意访问内存,很容易就和操作系统的地址冲突,所以玩过dos的人都知道电脑是很容易死机的。为了解决这个问题,Intel在386以后的CPU都提供了保护模式。这种模式最重要的一个应用就是虚拟内存地址,大家都知道32位的CPU可以寻址的范围是4GB,在虚拟内存中给每一个进程都分配了4GB的虚拟地址。如果同时运行10个进程就要有10个4GB的虚拟内存,那问题来了,哪有这么多的内存呢?呵呵,所以这是虚拟内存嘛,不是真正的物理内存。只是面对进程,让程序员可以使用的内存地址,比如 int * p=new int 这句话是向电脑要一个4字节的内存,地址存在p里面,要是在实模式下p里面就是真正的物理地址,但是在保护模式下,p里面存的只是一个虚拟地址,至于真正的物理地址是多少是不允许程序员知道的,当windows拿到p后会把p里面的虚拟地址映射到一个物理地址中去的,而这一个过程是黑箱操作,普通的应用程序是不允许知道的。

下镜像

Universal (Unencrypted Protocol)

2、内核空间和用户空间:

要双系统,当然需要先下载系统镜像啦,目前主要有两种常用的镜像格式,分别为ISO和Ghost。

    好了,现在知道在保护模式下编写程序访问的是4GB的虚拟内存,但是这4GB空间也不是全部给应用程序用的,操作系统也要使用,所以Windows规定把4GB空间分成两半,低2GB(0—0x7fffffff)空间用户可以使用,而高2GB空间(0x80000000—0xffffffff)用户不能使用,留给操作系统。所以这就有了用户空间和内核空间的区别。而这个规定其实也是用了CPU的特权级的功能:内核空间是0环,用户空间在3环,所以这就在CPU级别把内核和用户程序分割开了,目的就是确保用户程序不能骚扰内核,从而保证系统稳定。

关于ISO和Ghost:

图片 1

3、内核对象:

ISO 即纯净版,很多设置是默认的,原汁原味,对安全性要求高,想要原版,不想携带其它软件的,选这个。安装速度较慢,需手动更新驱动和设置,常用软件需自己下载安装。

 

   但现在问题又来了,内核空间用户不能访问,那么操作系统的各种功能我们怎么调用呢?比如往屏幕上画一条线,在实模式下很简单,就是在显存里面写一排01010101就可以了,但是在实模式下我们只能访问2GB用户空间,显存在哪里都不知道,这怎么写啊?很容易想到的就是操作系统帮我们找显存的位置,我们只要调用操作系统的相关函数就可以了。但是操作系统在高2GB的内核空间中,我们还是不能直接使用。现在操作系统既要给我们用,又不能让我们直接用,那怎么办呢,微软的工程师想出的一个办法就是给我们一个编号,也就是句柄(HANDLE),让我们要用内核什么功能就用句柄来用,这样就不必让我们知道具体的内核地址了。从而内核对象也就自然产生,Windows对硬件的所有操作都做成一个一个内核对象,我们要用的时候就申请这个对象,然后Windows给我们一个句柄,Windows内部计数器加1,我们不用了就关闭句柄,Windows内部计数器减1,当计数器为0的时候,Windows知道这个内核对象已经不用了,所以从真实物理内存中销毁。对于我们应用程序员来说,我们要做的事情就是申请内核对象,拿到句柄,操作句柄,销毁句柄。而这个流程也就是和Windows交互的流程,也就是所谓Windows编程的本质。

Ghost 相当于二次开发的系统,开发者可以添加软件、更改默认设置、集成驱动、部分功能或软件被移除、系统某方面被优化、可定制、安装速度快。但可能自带常用软件、可被植入后门、可能带有广告软件、可能会有兼容问题或Bug。

也就是说只要知道IP,谁只要能连上设备就能部署应用…

大家可根据自己需要下载ISO或Ghost的镜像,关于两种格式的具体区别,这里不再赘述。

这要部署到外面不是很危险…

在这里分享一下几种Linux系统的下载链接(下Windows系统镜像请看另一篇文章)。

查看 iot 的配置,想把 deploy 改成 windows验证

Ubuntu  

瞅了半天没看到有能改的地方…

Kali Linux  

 

Deepin  

改不了验证方式,就只能想限制访问IP了

推荐一下国产良心桌面操作系统↓↓↓↓↓↓↓

iot 既然是win10,那么应该带防火墙,去命令行里查查防火墙的配置

图片 2

netsh advfirewall firewall show rule name=all

嗯~,先让浏览器后台下载,现在请看下一步。

果然防火墙还是在的:

设置分区

图片 3

这是相当重要的一步,在操作时,一定要小心,别点错,否则你会后悔的。

 

同时按Win+X或者右键Win菜单,打开“磁盘管理”。

自己翻翻,可以看到这两条:

这里要新建一个分区或格式化分区用来装载系统。这里很简单,可以百度一下分区教程。教程链接

图片 4

版权声明:本文由ag真人发布于联系我们,转载请注明出处:Windows编程的本质,配置防火墙限制应用部署