linux学习5 Linux开篇入门和基本操作
一、完整的操作系统

1、GNU系统:表示GNU is Not Unix。表示不做商业化。制定了GPL(General Public License)即任何软件程序只要遵循GPL协议就是自由软件。还制定了FSF:Free Software Foundation即自由软件基金会。 像gcc即gnu c complier,即gnu的c编译器,或vi ,即visual interface。虽然gnu声称不是unix但是他其实还是跑在unix系统之上的。因此严格意义上来讲我们gnu是跑在内核之上的操作系统。
2、kernel:内核负责驱动底层硬件并把底层各硬件资源抽象成为简单的资源。并且管理各程序的运行,把有限的资源分配给运行中的程序让彼此之间相安无事。
3、像BSD,unix,linux都只是内核,表示狭义上的操作系统,不包含运行在其上的各种应用程序,而刚刚提到的GNU组织有很多应用程序,像gcc,vi,x-widown等,这些都是应用程序需要跑在kernel之上用kernel虚拟出来的环境运行他们的特定的具体的专用的应用程序。如果我们干掉kernel这些应用程序也就没法运行了。
4、因此虽然GNU声称自己不是unix但是他自己的程序都是基于unix开发的而不是基于硬件开发的。因此gun与linux结合就开放了一个新时代,这个新时代在于linux提供了内核而gnu提供了应用程序。此时一个完整意义的OS出现了。也正是由于gnu的GPL协议使linux程序软件能够开源。能够大规模推广被众人所应用。
二、操作系统接口
1、GUI(Graphic User Interface):图形界面接口
GNome:用c语言开发的图形界面,开发环境叫gtk
KDE:用c++研发,开发环境叫qt
FACE:
2、CLI(Command Line Interface):命令行界面接口
bash
zsh
sh
csh
3、TUI:Text User Interface:文本用户接口
4、相当于在内核之外给我们提供了一个接口。即当我们装完一个操作系统后我们硬盘上准备了很多应用程序,这个程序需要运行起来需要我们手动打开。即我们通过接口将一个静态的程序启动为一个动态的进程。
三、操作系统功能
1、驱动程序
2、进程管理
3、安全
4、网络协议栈
5、内存管理
6、文件系统
7、操作系统为了保证足够底层他们通常仅仅会把最底层硬件所提供的功能抽象出有限的调用接口来,我们通常称之为api。对于整个操作系统来讲他要把底层的复杂性隐藏起来,隐藏完以后还要把对应的功能用更简洁的方式向上提供,这种通常我们称之为系统调用,即System call。有了系统调用我们应用程序都是基于System call来实现的。并且我们操作系统还可以将系统调用封装为标准库向外提供库接口让开发者更容易调用,即libraries,因此程序员开发时既可以用System call也可以用库接口。

8、接口:
API(Application Program Interface):应用编程接口。程序员面对的编程接口。
POSIX(Portable Operating System):称为可移植操作系统。
ABI(Application Binary Interface):应用二进制接口,程序应用者面对运行程序的接口。
四、GNU组织发起了开源程序运动,即任何程序发行以后都需要把其源代码公开至互联网上。
1、gcc,glibc,vi,linux等都是源码的,因此其需要编译,所以需要编译器。因此就有不同的发行商将该源码通过自己的方式编译后组织成二进制格式组成自己的发行版linux操作系统。比如redheat,centos,ubutu....
2、目前主流的发行版linux有:
a、debian(唯一没有企业支持的,由黑客自动更新维护的,用起来稍微难一点)
ubutu(基于debian的二次发行版)
knopix
b、slackware(suse为其的一个子分支)
c、RedHat
RedHat9.0后分裂为两个版本:
RedHat Enterprise Linux:RHEL :十八个月发行一个版本,即企业版
centos(Community ENTerprise OS:基于RedHat企业版的二次发行版):
Fedora Core:每6个月发行一个版本。个人桌面版。
也有其他的比较流行的:
Gentoo
ArchLinux
3、linux完整意义上应该叫GNU/linux,他由linux内核和GNU组织的各种开源软件联合起来构成的一个庞大的完整的操作系统。
4、linux软件程序版本号:
major(主版本号).minor(次版本号).release(发行【修正】号)。翻天覆地的大变化时主版本号会提升。分支变化时次版本号会提升,修改bug时发行版本号会提升。
linux官方站点:www.kernel.org
linux版本 + GNU程序版本 = 发行版本
五、课外作业
GPL,BSD,Apache,Android
linux学习5 Linux开篇入门和基本操作的更多相关文章
- Linux学习笔记-Linux系统简介
Linux学习笔记-Linux系统简介 UNIX与Linux发展史 UNIX是父亲,Linux是儿子. UNIX发行版本 操作系统 公司 硬件平台 AIX IBM PowerPC HP-UX HP P ...
- Linux学习之三-Linux系统的一些重要配置文件
Linux学习之三-Linux系统的一些重要配置文件 1.网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 说明: DEVICE=eth0 ...
- Linux 学习 (一) Linux简介
Linux达人养成计划 I 学习笔记 Linux 内核官网:www.kernel.org 内核版本说明:主版本.次版本.末版本,如2.6.18 Linux 主要发行版本 RedHat: 服务器领域,部 ...
- 【Linux学习】Linux文件系统4—Linux文件硬链接与软连接
Linux文件系统4-Linux文件硬链接与软连接 inode:索引节点 (连接文件)link 一.文件硬链接 1.Linux文件系统中,inode只相同的文件是硬链接文件 2.不同文件名,inode ...
- 【Linux学习】Linux文件系统2—linux常用目录结构、绝对路径、相对路径
Linux文件系统2-linux常用目录结构.绝对路径.相对路径 一. 常见目录结构总结 Linux目录结构就是"树形结构",常见的目录结构: /bin 系统需要的命令位于此目录 ...
- Linux学习之四-Linux发行版及版本比较
Linux发行版及版本比较 三大家族: Fedora是基于RHEL,CentOS,Scientific Linux, 和Oracle Linux的社区版本.相比RHEL,Fedora打包了显著的更多的 ...
- Linux学习之路-基础入门 20191104
1.计算机组成 2.开发接口标准 ABI--(Application Binary Interface) ABI描述了应用程序与OS之间的底层接口,允许编译好的目标代码在使用兼容ABI的系统中无需改动 ...
- Linux学习之路2 Bash的基本操作
一.SHELL的介绍 shell分为两种:CLI(command Line Interface)和GUI(Graphical User Interface) 操作系统中的shell: GUI:GNOM ...
- Linux学习之Linux目录及文件系统
以往的 Windows 一直是以存储介质为主的,主要以盘符(C 盘,D 盘...)及分区来实现文件管理,然后之下才是目录,目录就显得不是那么重要,除系统文件之外的用户文件放在任何地方任何目录也是没有多 ...
随机推荐
- 小程序发起get请求====post请求
- 精确选择识别png图片有像素的区域
/** * * *---------------------------------------* * | ***精确选择识别png图片有像素的区域*** | * *----------------- ...
- Spring Cloud Alibaba学习笔记(22) - Nacos配置管理
目前业界流行的统一配置管理中心组件有Spring Cloud Config.Spring Cloud Alibaba的Nacos及携程开源的Apollo,本文将介绍Nacos作为统一配置管理中心的使用 ...
- C盘清理、C盘瘦身、省出30G
三招C盘瘦身30G,清理win10系统中虚占C盘空间的三大祸害 1.对C盘进行“磁盘清理” C盘右键->属性->磁盘清理->清理系统文件->勾选“windows更新清理”-&g ...
- trie树(前缀树)详解——PHP代码实现
trie树常用于搜索提示.如当输入一个网址,可以自动搜索出可能的选择.当没有完全匹配的搜索结果,可以返回前缀最相似的可能. 一.Tire树的基本性质 根节点不包含字符,除根节点外每一个节点都只包含一个 ...
- 【转载】C#中string.IsNullOrEmpty和string.IsNullOrWhiteSpace区别
在C#中判断字段是否为空或者Null的时候,我们一般会使用到string.IsNullOrEmpty和string.IsNullOrWhiteSpace方法,这两个方法在大部分情况下判断的结果是一致的 ...
- PHP写的简单数字验证码
用PHP写的随机生成的5位数字验证码 $yzm = ""; for($i=0;$i<5;$i++) { $a = rand(0,9); $yzm.= $a; } echo $ ...
- Oracle 创建数据表
数据库中的每一个表都被一个模式(或用户)所拥有,因此表是一种典型的模式对象.在创建数据表时,Oracle 将在一个指定的表空间中为其分配存储空间.最初创建的表时一个空的逻辑存储结构,其中不包含任何数据 ...
- 使用ngspice进行电路仿真
电路spice仿真工具已经比较成熟,开源的免费工具也有不错的性能.使用ngspice可以得到不错的仿真结果. 在Linux系统上,例如写一个RLC谐振的电路: RLCV1 1 0 AC 1V L 1 ...
- 轻量ORM-SqlRepoEx介绍
轻量级 ORM-SqlRepoEx 介绍 SqlRepoEx是 .Net平台下兼容.NET Standard 2.0人一个轻型的ORM.解决了Lambda转Sql语句这一难题,SqlRepoEx使用的 ...