计算机系统由硬件系统和软件系统两大部分组成
内核功能:
内核(Kernel,又称核心)就是操作系统的核心,它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并由内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的。所以内核通常提供一种硬件抽象的方法,来完成这些操作。有了这个,通过进程间通信机制及系统调用,应用进程可间接控制所需的硬件资源(特别是处理器及IO设备)。
内核作用:
所谓的Linux发行版就是由个人或者各大厂商根据不同的功能需求在内核版本的基础上增加了不同的功能,如:增加图形界面、增加各种小工具等等,这样就组成了一个Linux发行版。
常见的Linux发行版:
1、按打包方式划分:
基于Dpkg(Debian系)
Debian GNU / Linux是一种强调使用自由软件的发行版。它支持多种硬件平台。Debian及其派生发行版使用deb软件包格式,并使用dpkg及其前端作为包管理器。
Ubuntu:知名Linux发行版之一,由Canonical有限公司赞助,基于Debian,使用自己的软件包库,与Debian的有所不同,旨在开发出更加友好的桌面。
以下基于Ubuntu
基于RPM(Red Hat系)
Red Hat Linux和SUSE Linux是最早使用RPM格式软件包的发行版,如今RPM格式已广泛运用于众多的发行版。这两种发行版后来都分为商业版本和社区支持版本。Red Hat Linux的社区支持版本现称为Fedora,商业版本则称为Red Hat Enterprise Linux。
2、按发行方式划分
部分或全部的商业版
专用包
GPL: GNU通用公共许可协议(GNU General Public License,缩写GNU GPL 或 GPL),是被广泛使用的自由软件许可证,给予了终端用户运行、学习、共享和修改软件的自由。许可证最初由自由软件基金会的理查德·斯托曼为GNU项目所撰写,并授予计算机程序的用户自由软件定义(The Free Software Definition)的权利。 GPL是一个Copyleft许可证,这意味着派生作品只能以相同的许可条款分发。 这与宽松自由软件许可证有所区别 ,如BSD许可证和MIT许可证就是其中被广泛使用的例子。 GPL是第一个普遍使用的Copyleft许可证。
LGPL(Lesser General Public License): LGPL相对于GPL较为宽松,允许不公开全部源代码
BSD (Berkeley Software Distribution license): 是自由软件中使用最广泛的许可协议之一。BSD 就是遵照这个许可证来发布,也因此而得名 BSD 许可协议。跟其他条款相比,从GNU通用公共许可证(GPL)到限制重重的著作权(Copyright),BSD许可证比较宽松,甚至跟公有领域更为接近。事实上,BSD许可证被认为是copycenter(中间著作权),介乎标准的copyright与GPL的copyleft之间。“Take it down to the copy center and make as many copies as you want”。可以说,GPL强迫后续版本必须一样是自由软件,BSD的后续版本可以选择要继续是BSD或其他自由软件条款或封闭软件等等。
Apache许可证(Apache License),是一个由Apache软件基金会发布的自由软件许可证,最初为Apache http服务器而撰写。Apache许可证要求被授权者保留著作权和放弃权利的声明,但它不是一个反著作权的许可证。
一切皆文件
在Linux系统中,一切皆文件,也就是包括硬件设备、网络通信接口等等都是一个文件。
小型,单一用途的程序
一个程序只负责做好自己的本职工作。
链接程序,共同完成复杂的任务
当遇到复杂任务,通过不同功能用途的程序组合起来完成任务。
避免令人困惑的用户界面
在Linux系统中,主打的就是命令行,命令行的优势管理效率高,还能够节省一些硬件资源,很容易实现自动化批量管理。
配置数据存储在文本中
Linux系统中,服务的相关配置都是存储在一个文件中,结合文本处理工具及脚本管理效率非常高,用文本的方式也能够节省系统资源及硬件资源。
Linux目录被组织成一个单根倒置树结构,从根目录下开始,用“/”表示
系统中常见目录作用:
/boot:
引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub) 都存放于此目录
/bin:
所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:
管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/lib:
启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:
专用于x86_64系统上的辅助共享库文件存放位置
/etc:
配置文件目录
/home:
普通用户家目录
/root:
管理员的家目录
/media:
便携式移动设备挂载点
/mnt:
临时文件系统挂载点
/dev:
设备文件及特殊文件存储位置
/opt:
第三方应用程序的安装位置
/srv:
系统上运行的服务用到的数据
/tmp:
临时文件存储位置
/usr:
universal shared, read-only data
bin:
保证系统拥有完整功能而提供的应用程序sbin:
此目录包含系统管理员专用的任何非必需二进制文件lib:
存放库文件,32位系统使用lib64:
存放库文件,只存在64位系统include:
C程序的头文件(header files)share:
结构化独立的数据,例如doc, man等local:
第三方应用程序的安装位置,bin, sbin, lib, lib64, etc, share/var:
variable data files
cache:
应用程序缓存数据目录lib:
应用程序状态信息数据local:
专用于为/usr/local下的应用程序存储可变数据;lock:
锁文件log:
日志目录及文件opt:
专用于为/opt下的应用程序存储可变数据;run:
运行中的进程相关数据,通常用于存储进程pid文件spool:
应用程序数据池tmp:
保存系统两次重启之间产生的临时数据/proc:
用于输出内核与进程信息相关的虚拟文件系统
/sys:
用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux:
security enhanced Linux,selinux相关的安全策略等信息的存储位置
文件命令规则:
文章浏览阅读3.2w次,点赞16次,收藏90次。对于这个问题我也是从网上找了很久,终于解决了这个问题。首先遇到这个问题,应该确认虚拟机能不能正常的上网,就需要ping 网关,如果能ping通说明能正常上网,不过首先要用命令route -n来查看自己的网关,如下图:第一行就是默认网关。现在用命令ping 192.168.1.1来看一下结果:然后可以看一下电脑上面百度的ip是多少可以在linux里面ping 这个IP,结果如下:..._linux桥接ping不通baidu
文章浏览阅读512次。小妹在这里已经卡了2-3天了,研究了很多人的文章,除了低版本api 17有成功外,其他的不是channel null 就是没反应 (channel null已解决)拜托各位大大,帮小妹一下,以下是我的程式跟 gradle, 我在这里卡好久又没有人可问(哭)![image](/img/bVcL0Qo)public class MainActivity extends AppCompatActivit..._android 权限申请弹窗 横屏
文章浏览阅读1.4k次,点赞4次,收藏6次。valid padding(有效填充):完全不使用填充。half/same padding(半填充/相同填充):保证输入和输出的feature map尺寸相同。full padding(全填充):在卷积操作过程中,每个像素在每个方向上被访问的次数相同。arbitrary padding(任意填充):人为设定填充。..._cnn “相同填充”(same padding)
文章浏览阅读790次,点赞29次,收藏28次。手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长![外链图片转存中…(img-Qpoc4gOu-1712656009273)][外链图片转存中…(img-bSWbNeGN-1712656009274)]
文章浏览阅读469次。Date对象取得年份有getYear和getFullYear两种方法经 测试var d=new Date;alert(d.getYear())在IE中返回 2009,在Firefox中会返回109。经查询手册,getYear在Firefox下返回的是距1900年1月1日的年份,这是一个过时而不被推荐的方法。而alert(d.getFullYear())在IE和FF中都会返回2009。因此,无论何时都应使用getFullYear来替代getYear方法。例如:2016年用 getFullYea_getyear和getfullyear
文章浏览阅读182次。Unix传奇(上篇) 陈皓 了解过去,我们才能知其然,更知所以然。总结过去,我们才会知道我们明天该如何去规划,该如何去走。在时间的滚轮中,许许多的东西就像流星一样一闪而逝,而有些东西却能经受着时间的考验散发着经久的魅力,让人津津乐道,流传至今。要知道明天怎么去选择,怎么去做,不是盲目地跟从今天各种各样琳琅满目前沿技术,而应该是去 —— 认认真真地了解和回顾历史。 Unix是目前还在存活的操作系_unix传奇pdf
文章浏览阅读308次。哈希算法:将字符串映射为数字形式,十分巧妙,一般运用为进制数,进制据前人经验,一般为131,1331时重复率很低,由于字符串的数字和会很大,所以一般为了方便,一般定义为unsigned long long,爆掉时,即为对 2^64 取模,可以对于任意子序列的值进行映射为数字进而进行判断入门题目链接:AC代码:#include<bits/stdc++.h>using na..._ac算法 哈希
文章浏览阅读952次,点赞13次,收藏27次。由于觉得Qt的编辑界面比较丑,所以想用vs2022的编辑器写Qt加MySQL的项目。_在vs中 如何装qt5sqlmysql模块
文章浏览阅读1k次。选择题题目:下面的哪个调研内容属于经济环境调研?()题目:()的目的就是加强与客户的沟通,它是是网络媒体也是网络营销的最重要特性。题目:4Ps策略中4P是指产品、价格、顾客和促销。题目:网络市场调研是目前最为先进的市场调研手段,没有任何的缺点或不足之处。题目:市场定位的基本参数有题目:市场需求调研可以掌握()等信息。题目:在开展企业网站建设时应做好以下哪几个工作。()题目:对企业网站首页的优化中,一定要注意下面哪几个方面的优化。()题目:()的主要作用是增进顾客关系,提供顾客服务,提升企业_画中画广告之所以能有较高的点击率,主要由于它具有以下特点
文章浏览阅读1k次,点赞2次,收藏5次。以爬取CSDN为例子:第一步:导入请求库第二步:打开请求网址第三步:打印源码import urllib.requestresponse=urllib.request.urlopen("https://www.csdn.net/?spm=1011.2124.3001.5359")print(response.read().decode('utf-8'))结果大概就是这个样子:好的,继续,看看打印的是什么类型的:import urllib.requestresponse=urllib.r_urlopen the read operation timed out
文章浏览阅读304次。修正sina.com/sina.cn邮箱获取不到联系人,并精简修改了其他邮箱代码,以下就是升级版版本的介绍:完整版本,整合了包括读取邮箱通讯录、MSN好友列表的的功能,目前读取邮箱通讯录支持如下邮箱:gmail(Y)、hotmail(Y)、 live(Y)、tom(Y)、yahoo(Y)(有点慢)、 sina(Y)、163(Y)、126(Y)、yeah(Y)、sohu(Y) 读取后可以发送邮件(完..._通讯录 应用读取 邮件 的相关
文章浏览阅读213次。云计算及虚拟化教程学习云计算、虚拟化和计算机网络的基本概念。此视频教程共2.0小时,中英双语字幕,画质清晰无水印,源码附件全课程英文名:Cloud Computing and Virtualization An Introduction百度网盘地址:https://pan.baidu.com/s/1lrak60XOGEqMOI6lXYf6TQ?pwd=ns0j课程介绍:https://www.aihorizon.cn/72云计算:概念、定义、云类型和服务部署模型。虚拟化的概念使用 Type-2 Hyperv_云计算与虚拟化技术 教改