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 盘...)及分区来实现文件管理,然后之下才是目录,目录就显得不是那么重要,除系统文件之外的用户文件放在任何地方任何目录也是没有多 ...
随机推荐
- Shell编程学习记录
一.shell中单引号和双引号的区别: 1).单引号属于强引用,它会忽略所有被引起来的字符的特殊处理,被引用起来的字符会被原 封不动的使用,唯一需要注意的点是不允许引用自身: 2).双引号属于弱引用, ...
- Nvidia Jetson TX2开发板学习历程(1)- 详细开箱、上电过程
考试周已经结束了,开发板也已经到了.希望借着这个假期能够好好的利用这块开发板学习Linux系统以及Tensorflow的相关知识. 我打算将学习历程通过博客的方式写出来,作为自己的笔记,也可以供以后拿 ...
- docker(一): 安装
开始 docker是一个可以帮助开发者使用容器(containers)开发.部署和运行应用程序的平台.llinux下使用容器部署系统称为containerization. container 是映像( ...
- Goroutines和线程对比
目录 栈不同 调度不同 GOMAXPROCS Goroutine没有ID号 栈不同 线程:每一个OS线程都有一个固定大小的内存块(一般会是2MB)来做栈,这个栈会用来存储当前正在被调用或挂起(指在调用 ...
- UOJ348 WC2018 州区划分 状压DP、欧拉回路、子集卷积
传送门 应该都会判欧拉回路吧(雾 考虑状压DP:设\(W_i\)表示集合\(i\)的点的权值和,\(route_i\)表示点集\(i\)的导出子图中是否存在欧拉回路,\(f_i\)表示前若干个城市包含 ...
- Python爬虫快速上手教程
1 这个是什么 整理Python中requests常用的API 2 代码 from bs4 import BeautifulSoup import requests import re ...
- The Day Two 找到一个具有最大和的连续子数组,返回其最大和
""" 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5, ...
- 用js写的简单的下拉菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js实现frame框架部分页面的刷新
一.先来看一个简单的例子: 下面以三个页面分别命名为frame.html.top.html.bottom.html为例来具体说明如何做. frame.html 由上(top.html)下(bottom ...
- EhLib使用全攻略
使用 TDBSumList 组件 还记得以前有朋友问过这样一个问题:在 DBGrid 下如何像 Excel 一样能够做统计计算,实话说,使用 DBGrid 来做的话着实不易,不过现在有了这个咚咚, ...