Linux学习必备基础知识_链接程序,共同完成任务-程序员宅基地

技术标签: Linux  系统  

1. 计算机的组成及功能

1.1 计算机的组成

计算机系统由硬件系统和软件系统两大部分组成
在这里插入图片描述

1.2 计算机功能

  • 科学计算
  • 数据处理
  • CAD(Computer-Aided Design)计算机辅助设计
  • CAE(Computer-Aided Engineering)计算机辅助工程
  • CAM(Computer-Aided Manufacturing)计算机辅助制造
  • CAI(computer-aided instruction)计算机辅助教学

2. 内核功能以及作用

内核功能:
内核(Kernel,又称核心)就是操作系统的核心,它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并由内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的。所以内核通常提供一种硬件抽象的方法,来完成这些操作。有了这个,通过进程间通信机制及系统调用,应用进程可间接控制所需的硬件资源(特别是处理器及IO设备)。
内核作用:

  • 进程管理
  • 内存管理
  • 文件管理
  • 驱动管理
  • 网络管理

3. Linux发行版

所谓的Linux发行版就是由个人或者各大厂商根据不同的功能需求在内核版本的基础上增加了不同的功能,如:增加图形界面、增加各种小工具等等,这样就组成了一个Linux发行版。
常见的Linux发行版:
1、按打包方式划分:
基于Dpkg(Debian系)
Debian GNU / Linux是一种强调使用自由软件的发行版。它支持多种硬件平台。Debian及其派生发行版使用deb软件包格式,并使用dpkg及其前端作为包管理器。

  • Ubuntu:知名Linux发行版之一,由Canonical有限公司赞助,基于Debian,使用自己的软件包库,与Debian的有所不同,旨在开发出更加友好的桌面。

    以下基于Ubuntu

    • Linux Mint:基于Ubuntu,人气与Ubuntu不相上下的发行版。
    • Elementary OS:基于Ubuntu,使用基于GNOME名为Pantheon的桌面环境。
    • Ubuntu Kylin:添加了少量中国化定制的 Ubuntu 发行版。
    • Ubuntu GNOME:基于Ubuntu是Linux发行版,但使用的是桌面环境是Gnome。

基于RPM(Red Hat系)
Red Hat Linux和SUSE Linux是最早使用RPM格式软件包的发行版,如今RPM格式已广泛运用于众多的发行版。这两种发行版后来都分为商业版本和社区支持版本。Red Hat Linux的社区支持版本现称为Fedora,商业版本则称为Red Hat Enterprise Linux。

  • CentOS:由社群支持的包,旨在100%地与Red Hat Linux企业版兼容,但不包含Red Hat的商业软件。
  • Fedora:可用作工作站、桌面以及服务器,由红帽公司及其社群开发。
  • Red Hat Enterprise Linux:红帽Linux家族中唯一的商业分支。
  • SUSE/openSUSE:来自德国,是欧洲最流行的包之一。跟红帽一样,也包括大量的软件,需要7张以上的CD,现在则用双DVD。这个包有独特的配置工具YaST。也是United Linux的创立者之一,已经被Novell公司收购。openSUSE是一个新的版本,基于社区,完全开源。

2、按发行方式划分
部分或全部的商业版

  • Red Hat Enterprise Linux:从Red Hat Linux派生出的纯商业版。
  • SUSE:基于德国的纽伦堡,以前叫SuSE,是欧洲最流行的Linux包,由自己独特的配置工具YaST,用户可以下载到体验版(跟专业版类似)。该公司是United Linux的创建者,被Novell收购。
  • Novell Linux 桌面:Novell收购SUSE后,两家的包就互相融合了。

专用包

  • Android:来自Google,以apk格式打包,采用Android Runtime虚拟机提供类似Java (编程语言)的应用程序接口,当前已成为用户最多的智能手机系统之一。
  • Maemo:来自诺基亚,基于Debian,当前专用于诺基亚的N770、N800、N810网络终端,以及N900手机。
  • MeeGo:Maemo与Moblin计划结合的产物。

4. 常见开源协议

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许可证要求被授权者保留著作权和放弃权利的声明,但它不是一个反著作权的许可证。

5. Linux哲学思想

一切皆文件
在Linux系统中,一切皆文件,也就是包括硬件设备、网络通信接口等等都是一个文件。
小型,单一用途的程序
一个程序只负责做好自己的本职工作。
链接程序,共同完成复杂的任务
当遇到复杂任务,通过不同功能用途的程序组合起来完成任务。
避免令人困惑的用户界面
在Linux系统中,主打的就是命令行,命令行的优势管理效率高,还能够节省一些硬件资源,很容易实现自动化批量管理。
配置数据存储在文本中
Linux系统中,服务的相关配置都是存储在一个文件中,结合文本处理工具及脚本管理效率非常高,用文本的方式也能够节省系统资源及硬件资源。

6. 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相关的安全策略等信息的存储位置

文件命令规则:

  • 文件名最长255个字节
  • 包括路径在内文件名称最长4095个字节
  • 除了斜杠和NUL,所有字符都有效。但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们
  • 标准Linux文件系统(如ext4),文件名称大小写敏感,例如:MAIL, Mail, mail, mAiL(很多人都说Linux系统区分大小写,其实说法是错误的,区分大小写是和文件系统有关的。)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ICT_fengyun/article/details/101677726

智能推荐

matlab速度梯度,[转载]关于FLUENT中Y+的一些讨论-程序员宅基地

文章浏览阅读1.6k次。一、关于 fluent计算时壁面函数法和网格的关系,还有一个小问题1:各位用 fluent的同仁和高手们,我想要比较好的使用 fluent软件,最重要的就是要学好理 论,在这里我想请教各位一个问题,在使用标准 k-eplison和一些其他的封闭模型时,对于近壁区的流动要使用壁面函数法求解。那么在划分网格时,是不是一定要把把第一个内节点布置在湍流充分发展的区域内呢?我们如果自动生成网格时,如果说第一..._fluent k-eplison

Xilinx Spartan-6 FPGA开发板硬件说明书(2)_xilinx sparta6两个指示灯-程序员宅基地

文章浏览阅读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两个指示灯

weblogic配置java参数_修改weblogic jvm启动参数-程序员宅基地

文章浏览阅读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 ..._程序员需要掌握的英语

vue在IE下报 webpack `Invalid Host/Origin header` 的问题_vue项目报不正确的请求头origin-程序员宅基地

文章浏览阅读295次。本次产生原因:IE某些版本不支持axios //为解决IE 不支持axios import Promise from 'es6-promise'; Promise.polyfill();引入es6-promise后,IE就出现如下错误:原因:应该是webpack出于安全考虑,因为不检查主机的应用程序容易受到DNS重新绑定攻击。但是,在我们的开发环境下,可以禁用掉disableHostCheck这一配置项。解决:在webpack.dev.config.js中..._vue项目报不正确的请求头origin

springboot3.0 整合mybatis-flex1.5.3_spring boot 集成mybatis-flex-程序员宅基地

文章浏览阅读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

随便推点

pom.xml常用元素(maven)_pom.xml的namespace-程序员宅基地

文章浏览阅读1.8k次。 我想很多初学者对上图<project>标签内的:xmlns、xmlns:xsi、schemaLocation都表示不解,那么今天就科普一下它们代表的含义:xmlns:是xml的命名空间(XML Namespaces),为了避免元素命名冲突。目的是为当前的xml元素命名,以区别其他的同名元素。它有两种命名方式:xmlns="namespaceURI" 默认命名空间 xmlns..._pom.xml的namespace

【Java小项目练习】华容道-经典华容道游戏_头哥实践平台答案java华容道小程序之模拟曹操csdn-程序员宅基地

文章浏览阅读1k次。游戏玩法:可以通过鼠标点击选中人物,然后通过键盘 ↑ ↓ ← → 控制人物移动最后如果曹操处于最下方的正中间,那么就算游戏成功!那么我们看下代码怎么实现吧!..._头哥实践平台答案java华容道小程序之模拟曹操csdn

XML解析_xml文件解析-程序员宅基地

文章浏览阅读1.9k次,点赞6次,收藏6次。将XML文档转换为计算机程序可读取的格式的过程。XML文档中的元素、属性、实体等都需要被解析成程序能够理解的形式,以便程序能够对其进行处理和操作。1.2 解析方式(四种)1.2.1 DOM解析:DOM(文档对象模型)解析器将整个XML文档读入内存,并创建一个文档树,程序可以遍历该文档树并操作其中的节点。DOM解析器适用于文档相对较小的情况。_xml文件解析

j2ee与数据库有关的学习_j2ee java service query 数据库-程序员宅基地

文章浏览阅读234次。什么是JDBCJDBC的作用JDBC的编程步骤_j2ee java service query 数据库

STM32CUBEIDE USB下载总是连接不上 总是USBD_BUSY_if(usbdevcdc->cdctx.state != usbd_cdc_xfer_idle)-程序员宅基地

文章浏览阅读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)

java分布式系统架构图,2022吊打面试官系列_java技术搭建的大型分布式异构系统-程序员宅基地

文章浏览阅读2.3k次。前言如果你不能拼爹,或者不想拼爹,最好的方法是拼实力。合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。所以,你必须要从基层做起。当然,所谓的基层,并不是端茶倒水,但多一些体验,总是无害的。前两年的时间,应当主要打好基础的累积,认清职业现状和社会经济发展趋势,适应工作后的生活,对心灵浮躁的洗涤。这一阶段最大的敌人是自身的态度,切忌不可眼高手低,牢记一句话——“心比天高,命比纸薄。”脚踏实地,一步一个脚印,为未来做好铺垫。一、分布式架构学习路线图据统计,人的阅读时间在20分钟以内是_java技术搭建的大型分布式异构系统

推荐文章

热门文章

相关标签