免费智能真题库 > 历年试卷 > 信息安全工程师 > 2019年上半年 信息安全工程师 上午试卷 综合知识
  第18题      
  知识点:   Android系统组成概要   操作系统   Android   Linux   系统架构
  关键词:   Linux   操作系统   系统架构   源代码   智能终端设备        章/节:   网络信息安全目标与功能       

 
Android系统是一种以Linux为基础的开放源代码操作系统,主要用于便携智能终端设备。Android采用分层的系统架构,其从高层到低层分别是( )。
 
 
  A.  应用程序层、应用程序框架层、系统运行库层和Linux核心层
 
  B.  Linux核心层、系统运行库层、应用程序框架层和应用程序层
 
  C.  应用程序框架层、应用程序层、系统运行库层和Linux核心层
 
  D.  Linux核心层、系统运行库层、应用程序层和应用程序框架层
 
 
 

 
  第19题    2020年下半年  
   22%
移动终端设备常见的数据存储方式包括:①SharedPreferences:②文件存储;③SQLite 数掘库;④ContentProvider;⑤网络存储。Andro..
  第30题    2017年上半年  
   67%
安卓的系统架构从上层到下层包括:应用程序层、应用程序框架层、系统库和安卓运行时、Linux内核。其中,文件访问控制的安全服务位..
 
   知识点讲解    
   · Android系统组成概要    · 操作系统    · Android    · Linux    · 系统架构
 
       Android系统组成概要
        Android是一个开源的移动终端操作系统,其系统结构组成如下图所示,共分成Linux内核层(Linux Kernel)、系统运行库层(Libraries和Android Runtime)、应用程序框架层(Application Framework)和应用程序层(Applications)。
        
        Android系统架构示意图
        Android系统的各层都面临着不同程度的安全威胁。其中,Android系统的基础层安全威胁来自Linux内核攻击,目前,Linux内核漏洞时有出现,内核漏洞常常导致攻击者能够获得系统最高权限,严重危及Android整体系统的安全。Android系统成为恶意代码利用的重点目标,常见的形式有APK重打包(repackaging)、更新攻击、诱惑下载、提权攻击、远程控制、恶意付费、敏感信息搜集。
 
       操作系统
        防火墙的运行依赖于操作系统,操作系统的安全性直接影响防火墙的自身安全。目前,防火墙的操作系统主要有Linux、Windows、设备定制的操作系统等。操作系统的安全增强是防火墙的重要保障。
 
       Android
        Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日发布的手机操作系统。Android早期由原名为Android的公司开发,Google公司在2005年收购Android公司后,继续对Android系统进行开发和运营。
               Android系统的优势
               Android系统目前的市场占有率仍在急剧提高,这主要得益于其以下优势。
               . 平台的开放性允许任何厂商加入,使其拥有了更多的开发者,新的应用和创意可以不断地出现。
               . 摆脱了运营商的束缚,让手机更加贴近互联网。
               . 应用程序都是基于Java开发的,Java具有一次编写、四处运行的跨平台性,实现了在所有的Android设备中运行,真正做到了硬件无关性,降低了开发者的负担。
               . 提供了标准的API和SDK开发包,手机厂商可以根据需要自行开发或者使用已有的程序,从而打造出富有特色的Android平台。
               Android的体系架构
               Android采用了软件堆层的架构,一共分为四层,自下向上分别是Linux内核层、系统运行库层、应用框架层和应用层,如下图所示。
               
               Android体系结构
               ①Linux内核层。
               Android基于Linux 2.6内核提供系统的核心服务,如安全性、内存管理、进程管理、网络协议栈和驱动模型。内核层的驱动包括显示驱动、键盘驱动、Flash内存驱动、照相机驱动、音频驱动、蓝牙驱动、Wi-Fi驱动、Binder IPC驱动、Power Manager驱动。其中,Binder IPC驱动用来提供进程之间通信的功能。
               系统运行库层主要包括两个部分,一是程序库(Libraries),二是Android运行库(RunTime)。程序库通过Android应用程序框架为开发者提供服务,主要包括以下几种。
               . 系统C库。从BSD继承而来的标准C系统函数库,是专门为基于嵌入式的Linux设备制定的。
               . 媒体库。该库支持多种常用的音频、视频格式的回放和录制,同时支持静态图像文件。编码格式包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。
               . Surface Manager。用于管理、显示子系统,并为多个应用程序提供2D和3D图形层的无缝融合。
               . LibWebCore。Web浏览器引擎,支持Android浏览器和可嵌入的Web视图。
               . SGL。底层的2D图形引擎。
               . 3D libraries。基于OpenGL ES 1.0 APIs实现,该库可以使用硬件3D加速或者高度优化的3D软加速。
               . FreeType。位图和矢量字体显示。
               . SQLite。轻量级的关系型数据库。
               所有Android应用程序都运行在它自己的进程中,该进程是一个Dalvik虚拟机的实例。Dalvik虚拟机是由Google公司自主研发的,它被设计成一个设备,可以同时高效地运行多个虚拟系统。Dalvik在保证API兼容的同时,针对移动手机进行了优化,以占用更小的资源,提高了运行效率。Dalvik虚拟机依赖于底层Linux内核提供的功能,如线程机制和内存管理机制。
               Android应用程序的开发基于应用程序框架(Application Framework)和组件,开发人员拥有同核心应用程序一样的APIs访问权限。应用程序后面是一系列的服务和系统,其中包括以下几种。
               . 视图(Views)。构造应用程序的视图部分,包括列表(Lists)、文本框(Textboxes)、按钮(Buttons)等。
               . 内容提供器(Content Providers)。提供一种实现数据互访和共享的机制。
               . 资源管理器(Resources Marager)。负责管理非代码的访问,如本地字符串、图片资源及涉及布局的XML文件。
               . 通知管理器(Notification Manager)。用于将提示信息显示在状态栏上。例如,当收到短信的时候在状态栏上显示新信息。
               . 活动管理器(Activity Manager)。用于管理应用程序的生命周期,并提供应用页面的退出机制。
               ②应用程序(Application)。
               Android的应用程序通常涉及用户界面和用户交互。Android本身提供了桌面(Home)、联系人(Contact)、电话(Phone)和浏览器(Browsers)等众多的核心应用。所有核心应用都使用Java编写,开发者可以使用应用程序框架层的API实现自己的程序,这也是Android开源优势的体现。
               从总体架构上看,Android平台显示出了自身的特点,如集成了WebKit浏览器、Dalvik虚拟机等模块。这些模块的应用也成为Android开发的焦点,开发者可以利用Android提供的模块接口开发出具有特色的应用程序。
 
       Linux
        Linux是一个类似于UNIX的操作系统,Linux系统不仅能够运行于PC平台,还在嵌入式系统方面大放光芒。在各种嵌入式Linux迅速发展的状况下,Linux逐渐形成了可与Windows CE等嵌入式操作系统进行抗衡的局面。嵌入式Linux的特点如下:
        (1)精简的内核,性能高、稳定,多任务。
        (2)适用于不同的CPU,支持多种体系结构,如X86、ARM、ALPHA、SPARC等。
        (3)能够提供完善的嵌入式图形用户界面以及嵌入式X-Windows。
        (4)提供嵌入式浏览器、邮件程序、音频和视频播放器、记事本等应用程序。
        (5)提供完整的开发工具和软件开发包,同时提供PC上的开发版本。
        (6)用户可定制,可提供图形化的定制和配置工具。
        (7)常用嵌入式芯片的驱动集,支持大量的周边硬件设备,驱动丰富。
        (8)针对嵌入式的存储方案,提供实时版本和完善的嵌入式解决方案。
        (9)完善的中文支持,强大的技术支持,完整的文档。
        (10)开放源码,丰富的软件资源,广泛的软件开发者的支持,价格低廉,结构灵活,适用面广。
 
       系统架构
               客户机/服务器系统
               C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到客户机端和服务器端来实现,降低了系统的通信开销。目前大多数应用软件系统都是客户机/服务器形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和客户机/服务器应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
               浏览器/服务器系统
               B/S (Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(浏览器)实现,但是主要事务逻辑在服务器端(服务器)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握,成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(如LAN,WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
               多层分布式系统(Multi-tier System)
               (1)概念。
               随着中间件与Web技术的发展,三层或多层分布式应用体系越来越流行。在多层体系中,各层次按照以下方式进行划分,实现明确分工:
               ①瘦客户:提供简洁的人机交互界面,完成数据的输入/输出。
               ②业务服务:完成业务逻辑,实现客户与数据库对话的桥梁。同时,在这一层中,还应实现分布式管理、负载均衡、Fail/Recover、安全隔离等。
               ③数据服务:提供数据的存储服务。一般就是数据库系统。
               (2)多层系统主要特点。
               多层系统主要特点是:
               .安全性。中间层隔离了客户直接对数据服务器的访问,保护了数据库的安全。
               .稳定性。对于要求24×7工作的业务系统,多层分布式体系提供了更可靠的稳定性。一是中间层缓冲Client与数据库的实际连接,使数据库的实际连接数量远小于Client应用数量。当然,连接数越少,数据库系统就越稳定。二是Fail/Recover机制能够在一台服务器宕机的情况下,透明地把客户端工作转移到其他具有同样业务功能的服务上。
               .易维护。由于业务逻辑在中间服务器,当业务规则变化后,客户端程序基本不做改动。
               .快速响应。通过负载均衡以及中间层缓存数据能力,可以提高对客户端的响应速度。
               .系统扩展灵活。基于多层分布体系,当业务增大时,可以在中间层部署更多的应用服务器,提高对客户端的响应,而所有变化对客户端透明。
               (3)多层系统举例。
               目前最为流行的两类多层应用架构为Sun的J2EE和Microsoft.Net,下面简单介绍J2EE的多层架构。
               
               J2EE多层应用架构
               (4)客户层。
               客户层用于与企业信息系统的用户进行交互以及显示根据特定商务规则进行计算后的结果。基于J2EE规范的客户端可以是基于Web的,也可以是不基于Web的独立(Stand Alone)应用程序。
               在基于Web的J2EE客户端应用中,用户在客户端启动浏览器后,从Web服务器中下载Web层中的静态HTML页面或由JSP或Servlets动态生成的HTML页面。
               在不基于Web的J2EE客户端应用中,独立的客户端应用程序可以运行在一些基于网络的系统中,例如手持设备或汽车电话等。同样,这些独立的应用也可以运行在客户端的Java Applet中。这种类型的客户端应用程序可以在不经过Web层的情况下直接访问部署在EJB容器(EJB Container)中的EJB组件。
               (5) Web层。
               J2EE规范定义的Web层由JSP页面、基于Web的Java Applets以及用于动态生成HTML页面的Servlets构成。这些基本元素在组装过程中通过打包来创建Web组件。运行在Web层中的Web组件依赖Web容器来支持诸如响应客户请求以及查询EJB组件等功能。
               (6)业务层。
               在基于J2EE规范构建的企业信息系统中,将解决或满足特定业务领域商务规则的代码构建成为业务层中的Enterprise JavaBean (EJB)组件。EJB组件可以完成从客户端应用程序中接收数据、按照商务规则对数据进行处理、将处理结果发送到企业信息系统层进行存储、从存储系统中检索数据以及将数据发送回客户端等功能。
               部署和运行在业务层中的EJB组件依赖于EJB容器来管理诸如事务、生命期、状态转换、多线程及资源存储等。这样由业务层和Web层构成了多层分布式应用体系中的中间层。
               (7)企业信息系统层。
               在企业应用系统的逻辑层划分中,企业信息系统层通常包括企业资源规划(ERP)系统、大型机事务处理(Mainframe Transaction Processing)系统、关系数据库系统(RDMS)及其他在构建J2EE分布式应用系统时已有的企业信息管理软件。
   题号导航      2019年上半年 信息安全工程师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第18题    在手机中做本题