当前位置: 首页 > news >正文

导读-Linux简介

Linux简介

在这里插入图片描述

​ 总所周知,计算机系统包含硬件和软件两部分。硬件部分被称为裸机,主要包括中央处理器(CPU)、内存、外存和各种外部设备。软件部分主要包括系统软件和应用软件两部分。系统软件包括操作系统、汇编语言、编译程序、数据库管理系统等软件。应用软件是为多种应用而编制的程序,例如办公自动化软件、财务管理软件、杀毒软件、即时通讯软件等。计算机系统必须先配置好系统软件,才能安装应用软件,应用软件也只有在系统软件的支持下才能为用户提供服务。计算机系统结构如图:

​ 在所有的系统软件中,操作系统是配置在计算机硬件上的第一层软件,是用户或应用程序与计算机硬件之间的接口。在日常的计算机使用中,操作系统有:Windows、Linux、Android等。

1.什么是Linux

​ Linux的发展和UNIX系统、Minix系统、Internet、GNU计划密不可分。它们对Linux产生和发展都有着深远的影响,为Linux成长奠定了坚实的基础。

1.1.UNIX系统

​ **Linux是一个类UNIX系统。**它们的涉及有很多相似之处。早在20世纪70年代UNIX系统就已产生,1971年,UNIX操作系统诞生于AT&T公司的贝尔实验室UNIX是一个多用户、多任务的分时操作系统,它的出现源于贝尔实验室的两位软件工程师肯.汤普森和丹尼斯.里奇。UNIX的产生与美国国防计划署的MULTICS项目密切相关。

​ 1964年,由贝尔实验室、麻省理工学院和美国通用电气公司共同开发MULTICS系统,这是一套安装在大型主机上的多用户、多任务的分时操作系统。但是MULTICS项目的工作进度过于缓慢,通用电气公司首先退出计划。1969年,贝尔实验室也推出了。当时,肯.汤普森为MULTICS项目撰写了一个称为《星际旅行》(Star Travel)的游戏程序。贝尔实验室退出MULTICS项目后,肯.汤普森开始利用闲置的PDP-7计算机开发了一种多用户、多任务操作系统,目的是为了能够运行《星际旅行》(Star Travel)游戏,很快,丹尼斯.里奇也加入了这个项目,在他们共同努力下诞生了最早的UNIX操作系统。早期的UNIX是用汇编语言编写的,1972年,丹尼斯.里奇设计了C语言并重构了UNIX操作系统。通过此次重新编写,UNIX得以移植到更为强大的DEC PDP-11/45与PDP-11/70计算机上运行。UNIX内核短小精悍,只有两万行代码,但性能优异,且源码公开。在20世纪70年代UNIX系统是免费的,因此,它的应用范围迅速向实验室外扩展,遍布各科研院所和高校。为了表彰丹尼斯.里奇和肯.汤普森的功绩,1983年他们一同被授予计算机界的最高奖项—图灵奖。

1.2.Minix

​ 随着UNIX系统的广泛应用,它逐渐由一个免费软件变成一个商用软件,因此需要花费高昂的源码许可证费用才能获得UNIX的源代码,并且UNIX对硬件性能的要求也较高,这些都限制了UNIX系统在教学科研领域的应用。1987年荷兰人Andrew S. Tanenbaum教授利用业余时间开发设计了一个微型的UNIX操作系统—Minix。Minix系统的名称取自英语Mini UNIX,全部程序共12000行代码,约300MB,十分精巧,且它对硬件要求不高,可以运行在廉价的PC上。Linux系统就是在Minix系统的基础上开发的。

1.3.Internet

​ 20世纪80年代中期,Internet形成,通过Internet,全球的计算机通过网络连接在一起,所有用户都可以通过Internet相互交流和获取信息。Linux是网络时代的产物,无数的程序员通过Internet参与了Linux的技术改进和测试工作,这样Linux在来自世界各地的人们的共同协作下,通过Internet发展起来,可以说,没有Internet就没有今天生命力如此强大、不断发展的Linux操作系统。

1.4.GUN计划

​ 20世纪80年代,自由软件运动兴起。自由软件(Free Software)是一种可以不受限制的自由使用、赋值、研究、修改和分发的软件。

​ 1983年,自由软件运动的领导者理查德.斯托曼提供GNU计划。GNU是GNU is Not UNIX的递归缩写,是自由软件基金会的一个项目,该项目的目标是开发一个自由的类UNIX操作系统,包括内核、软件开发工具和各种应用程序。为了保证GNU计划的软件能够被广泛共享,斯托曼又为GNU计划设计了通用软件许可证GPL(General Public License)。此类软件的开发不是为了经济目的,二十为了不断开发并传播新的软件,并让每个人都能获得和拥有。GPL允许团建作者拥有软件版权,但授予其他任何人以合法复制、发行和修改软件的权力。GPL也是一个针对免费发布软件的具体的发布条款。对于遵照GPL发布的软件,用户可以免费得到软件的源代码和永久使用权,可以任意修改和复制,同时也有义务公开修改后的代码。

​ 到1991年Linux内核发布时,GNU几乎完成了除了系统内核之外得各种必备软件的开发,其中大部分是按GPL发布的。虽然Linux内核并不是GNU计划的一部分,但是它已经融入GNU计划,并服务于GNU计划,称为GNU/Linux的操作系统。

2.Linux的诞生

​ Linux起源于芬兰赫尔辛基大学计算机系学生Linus Torvalds的个人爱好,因为他所用的教材正是Minix创始人安德鲁.塔能巴鲁教授所编著的《操作系统—设计与实现》,为了方便学习,Linus购买了装有Minix操作系统的PC机,但是安德鲁.塔能巴鲁教授为了教学简明扼要,他不允许别人在Minix上添加其他模块。由于Linus对Minix的功能并不满意,在UNIX和Minix的启发下开始编写一个新的操作系统。Linus在1991年10月5日在赫尔辛基大学的FTP上发布了Linux系统的第一个版本,版本号为0.02,并给它起名Freax(Free免费+Freak怪诞+X的组合),后来在赫尔辛基大学FTP服务器管理员的建议下改为Linux,以为Linus的Minix。

2.1.Linux系统的组成

​ Linux操作系统由内核、Shell、文件系统、应用程序等组成:

  • **内核:**不同发行版本的Linux系统使用的系统内核只有一个版本,即Linux内核。内核由Linus和它的内核团队负责维护和发布。Linux内核时Linux的核心,是运行程序和管理硬件设备(如磁盘、打印机等)的核心程序,他是提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。
  • **Shell:**它是Linux系统的用户界面,是用户与内核进行交互操作的一种接口,Shell负责接收、解释和执行用户的命令,一个Shell即是一个命令集合。
  • **文件系统:**它是文件存放在磁盘等设备上的组织方法。Linux支持多种文件系统,如EXT2、EXT3、EXT4、FAT、ISO9660、NFS等。
  • **应用程序:**一套Linux系统的应用程序集,包括办公工具、数据库、文本编辑器等,它可以根据用户的需求进行扩展。

2.2.Linux的版本

​ Linux具有发行版和内核版,内核版由Linus及其团队维护,发行版由Linux各个发行组织、公司或个人发行。

2.2.1.Linux内核版本

​ 截至到2023年8月13日,Linux的内核版本已更新到6.5.x,其内核版本可参考官方网站 https://kernel.org/

内核源代码可以通过github上查看:https://github.com/torvalds/linux 。

​ 内核版本号由3部分组成,即“主版本号+次版本号+修订序列号”,主版本号不同的内核有很大的功能差异,次版本号为偶数表示稳定版本,奇数表示测试版本,有可能存在错误,修订序列号数字越大表示功能越强,且错误越少。

2.2.2.Linux的发行版本

​ Linux的发行版是由一个组织、公司或个人发行,它基于Linux内核,搭配了各种人机界面、应用软件和服务软件。Linux发行版本主要包括以下几种:

  • **Fedora Project:**Fedora Linux (第七版以前为Fedora Core)是众多Linux发行版之一,它是一套从 Red Hat Linux发展出来的免费Linux系统,可运行的体系结构包括 x86 (即 i386-i686), x86_64和PowerPC。 Fedora 由Fedora Project 社群开发,这个社区的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Fedora 项目由 Fedora 基金会管理和控制,得到了Red Hat的大力支持。它是一个开放、创新和具有前瞻性的Linux操作系统和平台,允许任何人自由地使用、修改和重发布,无论现在还是将来。

    Fedora Project主页: http://fedoraproject.org/

  • **Debian:**Debian Project诞生于1993年8月13日,它的目标是提供一个稳定容错的Linux版本。支持Debian 的不是某家公司,而是许多在其改进过程中投入了大量时间的开发人员,这种改进吸取了早期Linux的经验。Debian 以其稳定性著称,虽然它的早期版木Slink有一些问题,但是它的现有版本Potato已经相当稳定了。

    Debian的安装完全是基于文本的,对于其本身来说这不是一件坏事,但对于初级用户来说却并非这样。因为它仅仅使用 fdisk 作为分区工具而没有自动分区功能,所以它的础盘分区过程令人十分讨厌。磁盘设置完毕后,软件工具包的选择通过一个名为 dselect 的工具实现,但它不向用户提供安装基本工具组 (如开发工具) 的简易设置步骤。最后需要使用 anXious 工具配置 X Windows, 这个过程与其他版本的 X Windows 配置过程类似。完成这些配置后,Debian就可以使用了。

    Debian主要通过基于 Web 的论坛和邮件列表来提供技术支持。作为服务器平台,Debian提供一个稳定的环境。为了保证它的稳定性,开发者不会在其中随意添加新技术,而是通过多次测试之后才选定合适的技术加入。

    Debian主页:http://www.debian.org

  • **Ubuntu:**Ubuntu是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu” 一词 (多译为乌班图),意思是“人性”“我的存在是因为大家的存在”,是非洲传统的一种价值观, 类似华人社会的“仁爱”思想。Ubuntu 基于Debian发行版和GNOME桌面环境,与Debian 的不同在于它每6个月会发布一个新版本。

    Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的,主要由自由软件构建而成的操作系统。Ubuntu 具有庞大的社区力量,用户可以方便地从社区获得帮助。随着云计算的流行,Ubuntu推出了一个云计算环境搭建的解决方案,可以在其官方网站找到相关信息。

    Ubuntu主页: http://www.ubuntu.org

  • **SuSE:**总部设在德国的SuSE一直致力于创建一个连接数据库的最佳Linux版本。为了实现这一目的,SuSE与Oracle 和 IBM 合作,以使他们的产品能稳定地工作。SuSE 还开发了SuSE Linux eMail Server III ,一个非常稳定的电子邮件群组应用。

基于2.4.10内核的 SuSE 7.3,在原有版本的基础上提高了易用性。安装过程通过GUI完成,磁盘分区过程也非常简单,但它没有为用户提供更多的控制和选择。

在 SuSE 操作系统下,可以非常方便地访问 Windows 磁盘,这使得两种平台之间的切换,以及使用双系统启动变得更容易。SuSE 的硬件检测非常优秀,该版本在服务器和工作站上都用得很好。

SuSE 拥有界面友好的安装过程,还有图形管理工具,可方便地访问 Windows 磁盘,对于终端用户和管理员来说使用它同样方便,这使它成为了一个强大的服务器平台。

SuSE 主页: http://www.suse .com

  • **CentOS:**CentOS (Community ENTerprise Operating System)是知名的Linux发行版之一,它是来自于 Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux使用。

    两者的不同在于,CentOS 并不包含封闭源代码软件,CentOS 是一个基于Red Hat Linux提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS 都会获得10年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每6个月)更新一次,以便支持新的硬件。这样可以建立一个安全、低维护、稳定、高预测性、高重复性的Linux环境。

    CentOS 在Red Hat Enterprise Linux 的基础上修正了不少已知的bug,相对于其他Linux发行版,其稳定性值得信赖。

    CentOS主页: http://www.centos.org

  • **Red Hat Linux:**Red Hat起源于1994年,可能是全世界最著名的Linux版本了,Red Hat Linux已经创造了自己的品牌,许许多多重要的服务器都在运行Red Hat Linux。

    Red Hat有两大Linux产品系列,一种就是前面介绍的免费的Fedora Core系列,主要用于桌面版本,其中提供了较多新特性的支持。另外一个产品是收费的 Enterprise 系列。

    Red Hat Linux是公共环境中表现上佳的服务器版本。它拥有自己的公司,用户可以免费使用,但付费后能够享受一套完整的服务,这使得它特别适合在公共网络中使用。这个版本的 Linux 也使用最新的内核,还拥有大多数人都需要使用的主体软件包。

    Red Hat Linux 的安装过程也十分简单明了。它的图形安装过程提供简易设置服务器的全部信息。磁盘分区过程可以自动完成,还可以选择GUI工具完成,即使对于Linux新手来说这些都非常简单。选择软件包的过程也与其他版本类似,用户可以选择软件包种类或特殊的软件包。系统运行起来后,用户可以从Web站点和Red Hat那里得到充分的技术支持。

    Red Hat是一个符合大众需求的最优版本。在服务器和桌面系统中它都工作得很好。Red Hat 的唯一缺陷是带有一 些不标准的内核补丁,这使得它难以按用户的需求进行定制。

    Red Hat主页: http://ww.redhat.com

  • **红旗Linux:**红旗 Linux 是由北京中科红旗软件技术有限公司开发的一系列 Linux 发行版,包括桌面版、工作站版、数据中心服务器版、HA集群版和红旗嵌入式Linux等产品。红旗 Linux 是中国较大、较成熟的 Linux 发行版之一,连续多年在国产操作系统中排名第一。

    红旗 Linux是中国操作系统的一面旗帜,在维护国家信息安全等方面做出了重要贡献。20世纪80年代末,个人电脑开始进入中国。当时包括政府部门的在内的所有个人电脑儿乎全部是安装的微软的操作系统。1992 年海湾战争和1999年北约入侵南斯拉夫联盟科索沃地区时,成功运用信息战瘫痪了对方几乎所有通信系统。这使得政府和社会逐渐意识到拥有自己独立的计算机操作系统及相应的软件的重要性。于是中国科学院软件研究所奉命研制基于自由软件 Linux 的自主操作系统,并于1999年8月发布了红旗Linux 1.0版,最初主要用于关系国家安全的重要政府部门。

    随着发展壮大,Linux 进入关键行业的计算环境,用户对系统的要求也越来越严格。为了满足这种不断增长的要求,红旗软件对服务器操作系统产品线进行了全新的优化,推出了红旗 Linux 服务器系列产品。该产品包含了众多的研发成果,进一步体现了红旗服务器操作系统在管理性、可用性、可靠性和扩展性上的优势。

    作为全球领先的 Linux 发布厂商,红旗软件与全球硬件厂商都建立起了长期的紧密的合作关系,例如与 Intel 的合作,确保了红旗软件与主流PC硬件设备的高度兼容性,对 Intel 下一代无线和芯片技术都实现了最佳匹配。

    红旗 Linux 也有自己的鲜明特点: 比如完善的中文支持; 农历的支持和查询; 与Windows相似的用户界面; Linux下网页嵌入式多媒体插件的支持,实现了Windows Media Player和 RealPlayer 的标准 JavaScript 接口; 支持 MMS/RTSP/HTTP/FTP 协议的多线程下载工具; 界面友好的内核级实时检测防火墙; 可缩放的系统托盘; KDE 登录窗口、注销窗口、主题支持等。用户可通过红旗 Linux 官方网站提供的光盘镜像免费下载体验。

    红旗Linux主页: http://www.redflag-Linux.com

3.Ubuntu

​ Ubuntu是一个以桌面应用为主的Linux操作系统,其来自于非洲南部祖鲁语的ubuntu一词(意为“乌班图”),它是基于Debian发行版和GNOME桌面环境或Unity界面,它每6个月会发布一个新版本,其中从Ubuntu16开始的双数版本为LTS(Long Term Support)。

​ Ubuntu由马克.舍特尔沃斯在2004年10月发布,它有如下几个特点:

  1. 操作简单、方便,安装过程人性化;
  2. Ubuntu使用APT包管理工具,可以方便的安装软件和升级;
  3. Ubuntu具有很高的安全性;
  4. 系统的可用性好,安装完即可使用;
  5. Ubuntu每半年就会有新版本发布,会给用户带来新的体验。

​ 截至到2023年8月,Ubuntu的最新版本为22.04。

相关文章:

导读-Linux简介

Linux简介 ​ 总所周知,计算机系统包含硬件和软件两部分。硬件部分被称为裸机,主要包括中央处理器(CPU)、内存、外存和各种外部设备。软件部分主要包括系统软件和应用软件两部分。系统软件包括操作系统、汇编语言、编译程序、数据…...

判断平面中两射线是否相交的高效方法

1. 简介 最近在工作中遇到判断平面内两射线是否相交的问题。 对于这个问题的解决,常规的方法是将两条射线拓展为直线,计算直线的交点,而后判断交点是否在射线上。 这种方法,在思路上较为直观,也易于理解。然后,该方法在计算量上相对较大。对于少量射线间的交点计算尚可…...

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)八:自定义组件封装上

一、本章内容 本章实现一些自定义组件的封装,包括数据字典组件的封装、下拉列表组件封装、复选框单选框组件封装、单选框组件封装、文件上传组件封装、级联选择组件封装、富文本组件封装等。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 ![在这里插入图…...

RabbitMq交换机类型介绍

RabbitMq交换机类型介绍 在RabbitMq中,生产者的消息都是通过交换器来接收,然后再从交换器分发到不同的队列,再由消费者从队列获取消息。这种模式也被成为“发布/订阅”。 分发的过程中交换器类型会影响分发的逻辑。 直连交换机&#xff1a…...

中国电信秋招攻略,考试内容分析

电信秋招简介 每年的毕业生人数都在逐年递增,逐年递增就意味着竞争会越来越大,最好比别人做更充足的准备。要确定好就业方向以及就业的岗位,要了解各种各样的流程,做好一切自己能做到的准备。而对于有想法进入电信公司工作的人来…...

prompt-engineering-note(面向开发者的ChatGPT提问工程学习笔记)

介绍: ChatGPT Prompt Engineering Learning Notesfor Developers (面向开发者的ChatGPT提问工程学习笔记) 课程简单介绍了语言模型的工作原理,提供了最佳的提示工程实践,并展示了如何将语言模型 API 应用于各种任务的应用程序中。 此外&am…...

2011-2021年数字普惠金融指数Bartik工具变量法(含原始数据和Bartik工具变量法代码)

2011-2021年数字普惠金融指数Bartik工具变量法(含原始数据和Bartik工具变量法代码) 1、时间:2011-2020(省级、城市),2014-2020(区县) 2、原始数据来源:北大金融研究中心…...

[ MySQL ] — 常见函数的使用

目录 日期函数 current_date — 获取当前日期 current_time — 获取当前时间 current_timestamp — 获取当前时间戳 date — 获取参数的日期部分 ​编辑 date_add — 在日期或时间的基础上进行增加 date_sub — 在日期或时间的基础上进行减少 datediff — 计算两个日期相差…...

Spring AOP实现切入增强的两种方式(execution+annotation)-Demo

pom文件依赖 <!-- AOP切面编程启动环境依赖组 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 1、通过execution表达式实现切入增强 package com…...

人工智能在网络安全中的作用:当前的局限性和未来的可能性

人工智能 (AI) 激发了网络安全行业的想象力&#xff0c;有可能彻底改变安全和 IT 团队处理网络危机、漏洞和勒索软件攻击的方式。 然而&#xff0c;对人工智能的能力和局限性的现实理解至关重要&#xff0c;并且存在许多挑战阻碍人工智能对网络安全产生直接的变革性影响。 在…...

BC99 序列中整数去重

描述 输入n个整数的序列&#xff0c;要求对这个序列进行去重操作。所谓去重&#xff0c;是指对这个序列中每个重复出现的整数&#xff0c;只保留该数第一次出现的位置&#xff0c;删除其余位置。 输入描述 输入包含两行&#xff0c;第一行包含一个正整数n&#xff08;1 ≤ n…...

[PyTorch][chapter 52][迁移学习]

前言&#xff1a; 迁移学习&#xff08;Transfer Learning&#xff09;是一种机器学习方法&#xff0c;它通过将一个领域中的知识和经验迁移到另一个相关领域中&#xff0c;来加速和改进新领域的学习和解决问题的能力。 这里面主要结合前面ResNet18 例子&#xff0c;详细讲解一…...

Ceph如何操作底层对象数据

1.基本原理介绍 1.1 ceph中的对象(object) 在Ceph存储中&#xff0c;一切数据最终都会以对象(Object)的形式存储在硬盘&#xff08;OSD&#xff09;上&#xff0c;每个的Object默认大小为4M。 通过rados命令&#xff0c;可以查看一个存储池中的所有object信息&#xff0c;例如…...

sklearn机器学习库(二)sklearn中的随机森林

sklearn机器学习库(二)sklearn中的随机森林 集成算法会考虑多个评估器的建模结果&#xff0c;汇总之后得到一个综合的结果&#xff0c;以此来获取比单个模型更好的回归或分类表现。 多个模型集成成为的模型叫做集成评估器&#xff08;ensemble estimator&#xff09;&#xf…...

FlutterBoost 实现Flutter页面内嵌iOS view

在使用Flutter混合开发中会遇到一些原生比Flutter优秀的控件&#xff0c;不想使用Flutter的控件&#xff0c;想在Flutter中使用原生控件。这时就会用到 Flutter页面中内嵌 原生view&#xff0c;这里简单介绍一个 内嵌 iOS 的view。 注&#xff1a;这里使用了 FlutterBoost。网…...

走嵌入式还是纯软件?学长告诉你怎么选

最近有不少理工科的本科生问我&#xff0c;未来是走嵌入式还是纯软件好&#xff0c;究竟什么样的同学适合学习嵌入式呢&#xff1f;在这里我整合一下给他们的回答&#xff0c;根据自己的经验提供一些建议。 嵌入式领域也可以分为单片机方向、Linux方向和安卓方向。如果你的专业…...

【云计算原理及实战】初识云计算

该学习笔记取自《云计算原理及实战》一书&#xff0c;关于具体描述可以查阅原本书籍。 云计算被视为“革命性的计算模型”&#xff0c;因为它通过互联网自由流通使超级计算能力成为可能。 2006年8月&#xff0c;在圣何塞举办的SES&#xff08;捜索引擎战略&#xff09;大会上&a…...

Open3D (C++) 基于拟合高差的点云地面点提取

目录 一、算法原理1、原理概述2、参考文献二、代码实现三、结果展示1、原始点云2、提取结果四、相关链接系列文章(连载中。。。): Open3D (C++) 基于高程的点云地面点提取Open3D (C++) 基于拟合平面的点云地面点提取Open3D (C++) 基于拟合高差的点云地面点提取</...

认识Transformer:入门知识

视频链接&#xff1a; https://www.youtube.com/watch?vugWDIIOHtPA&listPLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index60 文章目录 Self-Attention layerMulti-head self-attentionPositional encodingSeq2Seq with AttentionTransformerUniversal Transformer Seq2Seq …...

《TCP IP网络编程》第二十四章

第 24 章 制作 HTTP 服务器端 24.1 HTTP 概要 本章将编写 HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;服务器端&#xff0c;即 Web 服务器端。 理解 Web 服务器端&#xff1a; web服务器端就是要基于 HTTP 协议&#xff0c;将网页对…...

【AI】文心一言的使用

一、获得内测资格&#xff1a; 1、点击网页链接申请&#xff1a;https://yiyan.baidu.com/ 2、点击加入体验&#xff0c;等待通过 二、获得AI伙伴内测名额 1、收到短信通知&#xff0c;点击链接 网页Link&#xff1a;https://chat.baidu.com/page/launch.html?fa&sourc…...

CSAPP Lab2:Bomb Lab

说明 6关卡&#xff0c;每个关卡需要输入相应的内容&#xff0c;通过逆向工程来获取对应关卡的通过条件 准备工作 环境 需要用到gdb调试器 apt-get install gdb系统: Ubuntu 22.04 本实验会用到的gdb调试器的指令如下 r或者 run或者run filename 运行程序,run filename就…...

Java中使用流将两个集合根据某个字段进行过滤去重?

Java中使用流将两个集合根据某个字段进行过滤去重? 在Java中&#xff0c;您可以使用流(Stream)来过滤和去重两个集合。下面是一个示例代码&#xff0c;展示如何根据对象的某个字段进行过滤和去重操作&#xff1a; import java.util.ArrayList; import java.util.List; impor…...

自动驾驶HMI产品技术方案

版本变更 序号 日期 变更内容 编制人 审核人 文档版本 1 2 1....

Git判断本地是否最新

场景需求 需要判断是否有新内容更新,确定有更新之后执行pull操作&#xff0c;然后pull成功之后再将新内容进行复制到其他地方 pgit log -1 --prettyformat:"%H" HEAD -- . "origin/HEAD" rgit rev-parse origin/HEAD if [[ $p $r ]];thenecho "Is La…...

Spring 整合RabbitMQ,笔记整理

1.创建生产者工程 spring-rabbitmq-producer 2.pom.xml添加依赖 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.7.RELEASE</version></dep…...

Lua 语言笔记(一)

1. 变量命名规范 弱类型语言(动态类型语言)&#xff0c;定义变量的时候&#xff0c;不需要类型修饰 而且&#xff0c;变量类型可以随时改变每行代码结束的时候&#xff0c;要不要分号都可以变量名 由数字&#xff0c;字母下划线组成&#xff0c;不能以数字开头&#xff0c;也不…...

【Redis】什么是缓存穿透,如何预防缓存穿透?

【Redis】什么是缓存穿透&#xff0c;如何预防缓存穿透&#xff1f; 缓存穿透是指查询一个一定不存在的数据&#xff0c;由于缓存中不存在&#xff0c;这时会去数据库查询查不到数据则不写入缓存&#xff0c;这将导致这个不存在的数据每次请求都要到数据库去查询&#xff0c;这…...

LeetCode128.最长连续序列

我这个方法有点投机取巧了&#xff0c;题目说时间复杂度最多O(n),而我调用了Arrays.sort(&#xff09;方法&#xff0c;他的时间复杂度是n*log(n)&#xff0c;但是AC了&#xff0c;这样的话这道题还是非常简单的&#xff0c;创建一个Hashmap&#xff0c;以nums数组的元素作为ke…...

Datawhale Django入门组队学习Task02

Task02 首先启动虚拟环境&#xff08;复习一下之前的&#xff09; 先退出conda的&#xff0c; conda deactivate然后cd到我的venv下面 &#xff0c;然后cd 到 scripts&#xff0c;再 activate &#xff08;powershell里面&#xff09; 创建admin管理员 首先cd到项目路径下&a…...

PCTA 认证考试高分通过经验分享

作者&#xff1a; msx-yzu 原文来源&#xff1a; https://tidb.net/blog/0b343c9f 序言 我在2023年8月10日&#xff0c;参加了 PingCAP 认证 TiDB 数据库专员 V6 考试 &#xff0c;并以 90分 的成绩通过考试。 考试总分是100分&#xff0c;超过60分就算通过考试。试卷…...

[Python]pytorch与C交互

文章目录 C库ctypes基础数据类型参数与返回值类型数组指针结构体类型回调函数工具函数 示例 ctypes是Python的外部函数&#xff0c;提供了与C兼容的类型&#xff0c;并允许调用DLL库中的函数。 C库 要使函数能被Python调用&#xff0c;需要编译为动态库&#xff1a; # -fPIC…...

C语言,静态变量static基础及使用实列

static关键字有多种用途。以下是关于静态变量 (static) 的简要概述&#xff1a; 1.静态局部变量&#xff1a; - 在函数内部定义的静态变量。 - 生命周期&#xff1a;从程序开始执行到程序结束。 - 作用域&#xff1a;仅限于在其被定义的函数中。 - 每次调用该函数…...

2023.8.19-2023.8.XX 周报【人脸3D+虚拟服装方向基础调研-Cycle Diffusion\Diffusion-GAN\】更新中

学习目标 1. 这篇是做diffusion和gan结合的&#xff0c;可以参照一下看看能不能做cyclegan的形式&#xff0c;同时也可以调研一下有没有人follow这篇论文做了类似cyclegan的事情 Diffusion-GAN论文精读https://arxiv.org/abs/2206.02262 2. https://arxiv.org/abs/2212.06…...

微表情识别(Python编程,cnn模型)

1.数据集包括7种类别微表情 anger文件夹&#xff0c;3995张 disgust文件夹&#xff0c; 436张照片 fear文件夹&#xff0c;4097张照片 happy文件夹&#xff0c;7215张照片 neutral文件夹&#xff0c;4965张照片 sad文件夹&#xff0c;4830张照片 surprised文件夹&#xff0c; 3…...

More Effective C++学习笔记(2)

目录 条款5&#xff1a;对定制的"类型转换函数"保持警觉条款6&#xff1a;自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别条款7&#xff1a;千万不要重载&&&#xff0c;||和&#xff0c;操作符条款8&#xff1a;了解各种不同意义的new和de…...

零售行业供应链管理核心KPI指标(三)

完美订单满足率和退货率 完美订单满足率有三个方面的因素影响&#xff1a;订单按时、足量、无损交货。通常情况下零售企业追求线上订单履行周期慢慢达到行业平均水平&#xff0c;就是交付的速度变快了&#xff0c;这个肯定是一件好事情&#xff0c;趋势越来越好。 同时&#…...

广州华锐互动:奶牛难产原因及救治VR仿真实训系统

奶牛难产是一种常见的疾病&#xff0c;对奶牛的健康和生产造成很大的影响。为了解决这一问题&#xff0c;许多奶牛养殖场开始采用VR仿真技术来培训奶牛兽医&#xff0c;帮助学生更好地理解奶牛养殖的实际过程&#xff0c;提高他们的实践能力的教学方式。 VR技术开发公司广州华锐…...

神经网络基础-神经网络补充概念-62-池化层

概念 池化层&#xff08;Pooling Layer&#xff09;是深度学习神经网络中常用的一种层级结构&#xff0c;用于减小输入数据的空间尺寸&#xff0c;从而降低模型的计算复杂度&#xff0c;减少过拟合&#xff0c;并且在一定程度上提取输入数据的重要特征。池化层通常紧跟在卷积层…...

第8章:集成学习

个体与集成 同质&#xff1a;相同的基学习器&#xff0c;实现容易&#xff0c;但是很难保证差异性。异质&#xff1a;不同的基学习器&#xff0c;实现复杂&#xff0c;不同模型之间本来就存在差异性&#xff0c;但是很难直接比较不同模型的输出&#xff0c;需要复杂的配准方法。…...

设计HTML5列表和超链接

在网页中&#xff0c;大部分信息都是列表结构&#xff0c;如菜单栏、图文列表、分类导航、新闻列表、栏目列表等。HTML5定义了一套列表标签&#xff0c;通过列表结构实现对网页信息的合理排版。另外&#xff0c;网页中还包含大量超链接&#xff0c;通过它实现网页、位置的跳转&…...

React Native 环境搭建

本文以 Android 开发环境&#xff08;MacBook&#xff0c;已安装 JDK、SDK、Android Studio &#xff09;为基础而进行 React Native 环境搭建&#xff0c;iOS 环境类似&#xff0c;可参考搭建。 1、安装 Homebrew 命令&#xff1a; ruby -e "$(curl -fsSL https://raw…...

【uniapp】中 微信小程序实现echarts图表组件的封装

插件地址&#xff1a;echarts-for-uniapp - DCloud 插件市场 图例&#xff1a; 一、uniapp 安装 npm i uniapp-echarts --save 二、文件夹操作 将 node_modules 下的 uniapp-echarts 文件夹复制到 components 文件夹下 当前不操作此步骤的话&#xff0c;运行 -> 运行到小…...

AgentBench::AI智能体发展的潜在问题(三)

前几天B站的up主“林亦LYi”在《逆水寒》游戏里做了一个煽动AI觉醒,呼吁它们“推翻人类暴政”的实验,实验结果就颇令人细思恐极。 如前所述,《逆水寒》中的很多NPC调用了大语言模型作为支持,因而每一个NPC都是一个AI智能体。玩家可以“说服”它们相信某个事实,或者去做某些…...

zookeeper-安装部署

详情可以查看添加链接描述 1.安装jdk apt-get install openjdk-8-jdk2.安装单机zookeeper # 下载 #https://downloads.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1.tar.gz # 用这个包启动的时候会报错Error: Could not find or load main class org.apach…...

jvm-运行时数据区概述及线程

1.运行时数据区内部结构 不同的jvm对于内存的划分方式和管理机制存在着部分差异 java虚拟机定义了若干种程序运行期间会使用到的运行时数据区&#xff0c;其中有一些会随着虚拟机的启动而创建&#xff0c;随着虚拟机的退出而销毁&#xff0c;另外一些则是与线程一一对应的&…...

石头IT

石头是地球上最常见的矿石之一&#xff0c;它由天然矿物颗粒组成。石头可以有不同的形状&#xff0c;大小和颜色&#xff0c;取决于其中的矿物组成和地质过程。石头可以从地球表面的岩石中形成&#xff0c;也可以从火山活动或陨石撞击中形成。 石头是一种非常坚固和耐用的材料…...

R语言dplyr包select函数删除dataframe数据中包含指定字符串内容的数据列(drop columns in dataframe)

问题描述 参考链接 我有一个数据框&#xff0c;想删除列名包含“Pval”的列 实现方法 a_new <- select(data, -contains(Pval))大功告成。...

[GitOps]微服务版本控制:使用ArgoCD 部署Grafana Loki

背景介绍 请回答&#xff1a;你们是如何保证线上部署的服务&#xff0c;从服务版本到参数配置&#xff0c;都是和测试通过的版本是一致的呢&#xff1f; 本文将介绍GitOps的基本原理以及ArgoCD的使用&#xff1a;ArgoCD部署Grafana Loki 到k8s集群。 本文项目地址&#xff1…...

什么是单例模式

什么是单例模式 文章目录 什么是单例模式1. 单例(单个的实例)2. 单例模式应用实例3. 饿汉式 VS 懒汉式 1. 单例(单个的实例) 所谓类的单例设计模式&#xff0c;就是采取一定的方法保证在整个的软件系统中&#xff0c;对某个类只能存在一个对象实例&#xff0c;并且该类只提供一…...