OS操作系统的功能是什么?
1.作为计算机系统资源的管理者
(1)处理机管理
进程控制,进程同步,进程通信,调度
(2)存储器管理
内存分配,内存保护,地址映射,内存扩充
(3)I/O设备管理
缓冲管理,设备分配,设备处理
(4)文件管理
文件存储空间的管理,目录管理,文件的读/写管理和保护
2.作为用户与计算机硬件系统之间的接口
(1)程序接口(例如微信、QQ之类的应用软件)
(2)命令接口(打开文件目录,cmd之类的操作)
(3)GUI:图形用户接口
3.实现了对计算机资源的抽象
请说出3-5家操作系统和名称和特征
Windows操作系统的特点:
- Windows操作系统由微软开发和维护,是全球最广泛使用的操作系统之一。
- Windows操作系统界面友好,提供了丰富的应用程序和游戏支持。
- Windows操作系统兼容性强,能够运行大量的第三方软件和硬件设备。
- Windows操作系统广泛用于个人电脑、笔记本电脑和服务器等设备。
iOS操作系统的特点:
- iOS操作系统由苹果公司开发,专门用于iPhone、iPad和iPod Touch等苹果设备。
- iOS操作系统界面简洁、直观,并且具有良好的稳定性和安全性。
- iOS操作系统拥有丰富的应用程序选择,并且与其他苹果设备的互联互通性强。
- iOS操作系统严格控制应用程序的发布和安装,以确保用户的安全和隐私。
Android操作系统的特点:
- Android操作系统由谷歌公司开发,广泛用于手机、平板电脑和智能电视等设备。
- Android操作系统具有开放源代码的特点,使开发者能够自由定制和扩展系统功能。
- Android操作系统支持丰富的应用程序和游戏,用户可以从Google Play商店下载和安装。
- Android操作系统具有多任务处理能力和与谷歌服务的良好集成。
鸿蒙操作系统的特点:
- 鸿蒙操作系统是由华为公司自主研发的多设备统一操作系统。
- 鸿蒙操作系统致力于实现全场景智慧互联,适用于手机、平板、智能穿戴和物联网等设备。
- 鸿蒙操作系统具有分布式架构,能够实现设备之间的无缝协同和资源共享。
- 鸿蒙操作系统强调安全性和性能优化,并提供了开发者友好的开发工具和生态系统。
Linux操作系统的特点:
- Linux操作系统是一种开源的操作系统,由全球社区共同开发和维护。
- Linux操作系统具有高度的可定制性和灵活性,可以根据不同需求进行自定义配置。
- Linux操作系统具有良好的稳定性和安全性,被广泛用于服务器和嵌入式设备。
- Linux操作系统支持多用户和多任务处理,适用于不同规模的计算环境
常用的Linux发行版本
-
Ubuntu:基于Debian的Linux发行版,用户友好,广泛应用于个人电脑和服务器。
-
CentOS:基于Red Hat Enterprise Linux(RHEL)构建,提供稳定性和安全性,广泛用于服务器环境。
-
Fedora:由Fedora项目支持的Linux发行版,注重最新技术和功能,面向桌面和开发者。
-
Debian:长期支持的Linux发行版,注重稳定性和安全性,广泛应用于服务器。
-
openSUSE:基于SUSE Linux Enterprise的开源版本,强调用户友好性和易用性。
-
Arch Linux:面向技术和Linux爱好者的滚动更新发行版,提供定制性和灵活性。
-
Manjaro:基于Arch Linux的易用性发行版,注重简单安装和用户友好性。
-
CentOS Stream:CentOS的轻量级发行版,提供及时的软件更新和技术支持。
-
Linux Mint:基于Ubuntu的发行版,注重易用性和桌面环境的美观性。
-
Kali Linux:专注于网络安全和渗透测试的Linux发行版,提供丰富的安全工具。
Linux常用命令
shutdown Ch now :关机
shutdown Cr now :立即重启
reboot :立即重启
su -:切换用户
password:修改密码
logout :用户注销
mkdir 目录名 :建立目录
rmdir 目录名 :删除目录
cd 目录名 :进入目录
pwd :查看自己所在目录
du:查看当前目录大小
more 文件名;less 文件名 :浏览文件
cp 源文件 目标文件 :复制文件
df -T -h :检查硬盘使用情况
fdisk -l :查看磁盘分区
ps -auxw :列出当前进程id
kill 进程id号:终止该进程
xkill :终止X-Window 程序
Killall 程序名 :终止改程序的所有进程
top;free;dmesg :查看资源占用情况
whereis 命令名:查询程序
命令名 –help | less :简明帮助
man 命令名 :更多帮助
ifconfig :显示网络接口参数
mail :显示系统邮件
Linux防火墙相关操作命令,理解防火墙相关概念
1.iptables防火墙
#查看防火墙状态
service iptables status
# 停止防火墙
service iptables stop
# 启动防火墙
service iptables start
# 重启防火墙
service iptables restart
#开启8080端口
1.编辑iptables文件:
vim /etc/sysconfig/iptables
2.在末尾加上以下代码:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
3.保存退出后重启防火墙:
service iptables restart
2.firewall防火墙
#查看firewall的状态
firewall-cmd --state
#查看firewall服务的状态
systemctl status firewalld
#查看防火墙规则
firewall-cmd--list-all
# 停止防火墙
service firewalld stop
# 启动防火墙
service firewalld start
# 重启防火墙
service firewalld restart
# 查询8080端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放8080端口
firewall-cmd --permanent --add-port=8080/tcp
# 移除8080端口
firewall-cmd --permanent --remove-port=8080/tcp
防火墙的概念
防火墙是一种网络安全设备,用于监控和控制进出网络的数据流量。它可以根据预定义的规则,过滤、阻止或允许特定类型的数据流量通过网络边界,以保护网络免受未经授权的访问、恶意攻击或数据泄漏。
防火墙可以分为软件防火墙和硬件防火墙两种类型。软件防火墙是在操作系统或应用程序层面实现的,常见的如iptables、Windows防火墙等;硬件防火墙是一种独立的物理设备或网络设备,通常放置在网络边界处,如路由器、防火墙设备等。
防火墙的主要功能包括:
-
访问控制
-
包过滤
-
网络地址转换(NAT)
-
虚拟专用网络(VPN)支持
-
事件日志和监控
通过配置和管理防火墙,组织和个人可以提升网络安全性,并保护敏感数据免受未经授权的访问和恶意攻击。不同类型的防火墙提供了各种功能和灵活性,适应不同的网络环境和需求。
关于网络端口的相关理论知识
1.网络端口的作用
网络端口是在计算机网络中用于标识应用程序或服务的逻辑通信终点。每个网络通信使用一个特定的端口号来分配资源和建立连接。网络端口在数据传输中扮演着重要的角色,其主要作用包括:
-
标识服务和应用程序
-
建立连接
-
多路复用
-
数据过滤和安全性
-
提供服务
总之,网络端口作为网络通信的关键组成部分,扮演着应用程序、服务识别和连接建立的角色,同时也对网络安全和数据传输起到重要的作用。
2.网络端口的范围
一个IP地址的端口通过16bit进行编号,最多可以有65536个端口。端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535。
3.网络端口的分配原则
-
IANA分配:知名端口(Well-known Ports)从0到1023的端口号由IANA(Internet Assigned Numbers Authority)进行分配和管理。这些端口号已经预留给特定的服务或协议使用。
-
注册端口(Registered Ports):范围从1024到49151的端口号可以由用户自定义或为特定应用程序或服务分配使用,但需要在IANA进行注册。此过程有助于避免重复使用相同的端口号,确保兼容性和标准化。
-
动态/私有端口(Dynamic/Private Ports):范围从49152到65535的端口号通常用于动态分配给客户端应用程序,用于临时的会话和连接。这些端口号不需要进行注册,可以在需要时临时分配使用。
-
避免常用端口冲突:在分配端口号时,需要避免与已知的常用端口冲突。例如,80端口已经被HTTP协议使用,22端口已经被SSH协议使用等。遵循常用的协议和服务的端口号,有助于确保互操作性和避免冲突。
-
安全性考虑:在分配端口号时,需要考虑安全性。一些具有安全敏感性的服务(如SSH、HTTPS等)通常使用较为安全的端口号,以确保网络安全和防止未经授权的访问。
-
灵活性和可配置性:在特定的网络环境中,可能需要对端口号进行自定义和调整,以适应特定应用程序或服务的需要。这可以通过配置和管理相应的网络设备、防火墙等来实现。
对Lunix操作系统的理解和看法
Linux作为一个开源、免费、稳定和安全的操作系统,在互联网、服务器和嵌入式系统等领域得到广泛应用。它不仅具备强大的功能和灵活性,还有一个庞大的社区支持和活跃的开发者生态系统。
软件的开发模式
-
瀑布模型(Waterfall Model):瀑布模型是一种线性、顺序的开发模式,包括需求分析、设计、编码、测试和维护等阶段。每个阶段的输出作为下个阶段的输入,开发流程是线性的,一旦一个阶段完成,就进入下一个阶段。特点是结构化、清晰,适用于稳定需求和较小规模项目。
-
原型模型(Prototyping Model):原型模型强调通过快速创建和演化原型来理解和验证用户需求。开发人员和用户密切合作,迭代地构建原型并进行反馈,以逐步完善需求和设计。特点是迭代、灵活,适用于对需求不确定或需求变化频繁的项目。
-
迭代和增量模型(Iterative and Incremental Model):迭代和增量模型是将软件开发过程划分为多个迭代和增量的阶段,每个阶段都演进和增强前一个阶段的功能。每个迭代都会增加新的功能,并通过用户反馈进行调整。特点是灵活性高、快速交付可用产品,适用于大型和复杂项目。
-
敏捷模型(Agile Model):敏捷模型强调通过自组织团队、迭代交付和持续反馈来应对需求的变化。核心原则是快速响应变化和持续改进,通过短周期的迭代开发来逐渐交付高质量的软件。特点是快速适应变化、强调团队合作,适用于需要灵活性和高度协作的项目。
-
融合模型(Hybrid Model):融合模型是将不同的开发模式和方法结合在一起,以适应具体项目的需求。可以根据项目的复杂性、规模和开发环境选择合适的模型组合。特点是灵活可定制,根据项目的需求进行灵活调整和适应。
软件的开发流程
项目立项:可行性分析
需求分析
概要设计
详细设计
编码实现
软件测试
软件上线或部署
软件运维
二次开发--迭代开发
结束软件生命周期