计算机系统由硬件系统和软件系统两大部分组成
内核功能:
内核(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相关的安全策略等信息的存储位置
文件命令规则:
文章浏览阅读1.6k次。一、关于 fluent计算时壁面函数法和网格的关系,还有一个小问题1:各位用 fluent的同仁和高手们,我想要比较好的使用 fluent软件,最重要的就是要学好理 论,在这里我想请教各位一个问题,在使用标准 k-eplison和一些其他的封闭模型时,对于近壁区的流动要使用壁面函数法求解。那么在划分网格时,是不是一定要把把第一个内节点布置在湍流充分发展的区域内呢?我们如果自动生成网格时,如果说第一..._fluent k-eplison
文章浏览阅读920次。8.LED指示灯开发板底板具有1个电源指示灯,以及1个DAC输出波形指示灯,它们分别是C67和C53。图 12图 13图 14图 15核心板具有1个电源指示灯,1个PROGRAM下载指示灯,以及2个用户可编程指示灯,分别是R7,R36,R41和R46。图 16核心板各个用户可编程指示灯对应的CPU引脚如下:表1 LED编号 FPGA管脚 KD1 ..._xilinx sparta6两个指示灯
文章浏览阅读1.5k次。进入:D:\Oracle\Middleware\user_projects\domains\base_domain\startWebLogic.cmd在call 上一行增加:set USER_MEM_ARGS=-Xms512m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=1024m例如:@ECHO OFF@REM WARNING: This file i..._wljrecm
文章浏览阅读4.5k次,点赞29次,收藏131次。程序员英语单词册经过几天的整理将程序员必备的 600 词汇,和有关计算机需要掌握的词汇整理出来,分享给大家学习,希望对你有所帮助。程序员必备的 600 个英语词汇,对于时刻需要和国际接轨的码农们,英语的重要性是毋庸置疑的。尤其是那些胸怀大志的潜在大牛们,想在码农行业闯出一片天地,秒杀身边的小弟们,熟练掌握英语更是实现其目标最关键的因素之一。否则,试想在你捧着某出版社刚刚翻译出来的《JSP ..._程序员需要掌握的英语
文章浏览阅读295次。本次产生原因:IE某些版本不支持axios //为解决IE 不支持axios import Promise from 'es6-promise'; Promise.polyfill();引入es6-promise后,IE就出现如下错误:原因:应该是webpack出于安全考虑,因为不检查主机的应用程序容易受到DNS重新绑定攻击。但是,在我们的开发环境下,可以禁用掉disableHostCheck这一配置项。解决:在webpack.dev.config.js中..._vue项目报不正确的请求头origin
文章浏览阅读840次。3,config类如果扫描不到,可以添加org.springframework.boot.autoconfigure.AutoConfiguration.imports。1,首先pom文件引入mybatis-flex依赖,mybatis-flex版本为1.5.3。2,创建config配置类,配置mapper的扫描路径,可以设置主键的生成方式等配置,4, 配置application.yml。6,启动测试类,进行测试。_spring boot 集成mybatis-flex
文章浏览阅读1.8k次。 我想很多初学者对上图<project>标签内的:xmlns、xmlns:xsi、schemaLocation都表示不解,那么今天就科普一下它们代表的含义:xmlns:是xml的命名空间(XML Namespaces),为了避免元素命名冲突。目的是为当前的xml元素命名,以区别其他的同名元素。它有两种命名方式:xmlns="namespaceURI" 默认命名空间 xmlns..._pom.xml的namespace
文章浏览阅读1k次。游戏玩法:可以通过鼠标点击选中人物,然后通过键盘 ↑ ↓ ← → 控制人物移动最后如果曹操处于最下方的正中间,那么就算游戏成功!那么我们看下代码怎么实现吧!..._头哥实践平台答案java华容道小程序之模拟曹操csdn
文章浏览阅读1.9k次,点赞6次,收藏6次。将XML文档转换为计算机程序可读取的格式的过程。XML文档中的元素、属性、实体等都需要被解析成程序能够理解的形式,以便程序能够对其进行处理和操作。1.2 解析方式(四种)1.2.1 DOM解析:DOM(文档对象模型)解析器将整个XML文档读入内存,并创建一个文档树,程序可以遍历该文档树并操作其中的节点。DOM解析器适用于文档相对较小的情况。_xml文件解析
文章浏览阅读234次。什么是JDBCJDBC的作用JDBC的编程步骤_j2ee java service query 数据库
文章浏览阅读3.7k次,点赞4次,收藏29次。开发的时候总是在调用这个函数的时候发现 //总是会卡在return USBD_BUSY; uint8_t CDC_Transmit_HS(uint8_t* Buf, uint16_t Len){ uint8_t result = USBD_OK; /* USER CODE BEGIN 12 */ USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_..._if(usbdevcdc->cdctx.state != usbd_cdc_xfer_idle)
文章浏览阅读2.3k次。前言如果你不能拼爹,或者不想拼爹,最好的方法是拼实力。合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。所以,你必须要从基层做起。当然,所谓的基层,并不是端茶倒水,但多一些体验,总是无害的。前两年的时间,应当主要打好基础的累积,认清职业现状和社会经济发展趋势,适应工作后的生活,对心灵浮躁的洗涤。这一阶段最大的敌人是自身的态度,切忌不可眼高手低,牢记一句话——“心比天高,命比纸薄。”脚踏实地,一步一个脚印,为未来做好铺垫。一、分布式架构学习路线图据统计,人的阅读时间在20分钟以内是_java技术搭建的大型分布式异构系统