Linux学习笔记——基于鸟哥的Linux私人民居房菜,学习笔记私人民居房菜

鸟哥私房菜学习(一)——Linux背景了解,私房菜linux

1、Linux,继承鱼Unix

2、Unix档案系统的两个重要概念

3、几个主要的 Linux distributions 发行者网址:

• Red Hat:
• Fedora:
• Mandriva:
• Novell SuSE:
• Debian:
• Slackware:
• Linpus:
• Gentoo:
• Ubuntu:
• CentOS:

 

4、Linux 的应用

• 网络服务器:
承袭了 Unix 高稳定性的良好传统, Linux 上面的网络功能特别的稳定与强大!
此外,由于 GNU 计划与 Linux 的 GPL 授权模式,让很多优秀的软件都在 Linux
上面发展, 且这些在 Linux 上面的服务器软件几乎都是自由软件!
因此,做为一部网络服务器,例如 WWW, Mail Server, File Server, FTP Server
等等, Linux 绝对是上上之选!当然,这也是 Linux 的强项!

• 工作站计算机:

• 桌上型计算机:•  上网浏览;• 文书处理;• 网络接口之公文处理系统;•
办公室软件( Office Software )处理数据;• 收发电子邮件;

 

5、图形界面熟悉

• 杨老师的图解桌面
• 中文指南

 

6、Linux学习推荐

1.
先理解一下基础的硬件知识,不用一定要全懂(没那么多时间),但是至少要『听过、有概念』即可;

  1. 先了解一下 Linux
    的基础知识,这些包含了『使用者、群组的概念』、『权限的观念』,『程序的定义』等等;
  2. 必需至少学会一种以上的文书编辑器,例如最好学会通用版本的 vi 啰!
  3. 实际操作 Linux 时,必定要学习的 Shell ,最好 Shell scripts
    也能够了解;
    5.
    如果上面你都通过了,那么网络的基础就是下一阶段要接触的咚咚,这部份包含了『IP
    概念』『路由概念』『TCP/IP』等等;
    6.
    如果连网络基础都通过了,那么网站的架设对你来说,简直就是『太简单啦!』

资源推荐:

• 计算机基础 ()
• 网络基础 ()

Netman 推荐的相关网络书籍:
• 请推荐有关网络的书

• Study-Area
• 鸟哥的私房菜馆
• 狼主的网络实验室
• 卧龙大师的网络技术文件
• 大南国小(林克敏主任文件集)
• 张毓麟先生的小文章

• 台湾 Linux 社群
• 吴仁智的文件集

 

Linux常见错误

• Linux 自己的文件数据: /usr/share/doc (在你的 PC 中)
威尼斯网址开户网站,• CLDP 中文文件计划
• Unix 的一般常见问题
• The Linux Documentation Project:

 

提问方法

『 提问的智慧
这一篇讨论!然后,你可以到底下几个讨论区发问看看:
• Study-Area 讨论区
• 鸟哥的私房菜馆讨论区
• 狼主的网络实验室讨论区
• telnet://bbs.sayya.org

1、Linux,继承鱼Unix 2、Unix档案系统的两个重要概念 3、几个主要的 Linux
distributions 发行者网址…

在Linux
中,每一个装置都被当做文件,然后有文件路径与之对应,比如内存卡在dev/sd[ad]
,[ad]表示a或者d。Linux中几乎所有硬件装置都在dev/目录下面。

Linux的起源:
(比起windows为了赢得用户挣钱而创建就更科学了,哈哈)
  Linux是Unix系的,它源于Unix。
  最早的计算机输入是采用读卡纸进行输入,后来引入了键盘。并且最开始的计算机都是体积很大的,并且很稀有的,一般只有军事,高科技,或前沿学术单位才能使用,并且是多人使用一台。通过一台主机,多个终端的,利用相容分时系统,提供给多个操作者。这也是终端,用户的最初由来吧。

为啥学,我只想说因为感觉好玩。有时间去玩觉得有趣的事情,快事。

Linux学习笔记——基于鸟哥的Linux私房菜,学习笔记私房菜

Linux学习笔记——基于鸟哥的Linux私房菜 *****
ARM与嵌入式linux的入门建议 (1)
学习基本的裸机编程:ARM7或ARM9,理解硬件架构和控制原理
(这一步是绝对的根基) (2) 使用Linux系统进行一些基本的实验 (3)
研究完整的Linux系统的运行过程 : 完整Linux = bootloader + linux kernel +
rootfile根文件系统 (4) 开始做Linux系统移植
:修改开源的Linux源代码,直到可以运行在你的板子上,这就叫移植 (5)
编写硬件的Linux驱动程序 (6) 编写应用程序

Linux学习笔记——基于鸟哥的Linux私房菜*****
ARM与嵌入式linux的入门建议(1) 学习…

一、磁盘分割

  
后来,由于相容分时系统不够强大,增强开发难以成功。参与此系统增强开发的贝尔实验室成员**
Ken Thompson **
(C语言前身B语言作者,图灵奖得主,在部分Unix系统里加了后门,十几年没被发现)在
** 1969年
**根据从中得到的一些经验开发的一个小系统供自己使用。他用汇编语言写成,开始大家称之为unics,后来就称作Unix。Thompson的这个系统中有两个重要的概念,影响至今:

个人是通过学习《鸟哥的linux私房菜》学习的,所以这些应该都是我的笔记。
这篇博文主要内容为硬盘分区,linux安装,linux文件树的知识。

** 磁盘结构 **

  • 所有设备、程序、文档都被当做文档处理,
    -所有程序、应用都只有一个目标(作用),且要有效的完成目标。
    ** 1973年
    **由于Thompson写的系统太好用了,但使用汇编写的,不能通用,就和Dennis
    Ritchie(将B语言重新改写为C语言)一起合作用C语言重写了Unix核心,最后正名与发行出Unix的正式版。

磁盘分区

威尼斯网址开户网站 1

  后来Unix与学术机构合作开发,产生了一个重要的分支** BSD
**,SUN公司持有。开始Unix是开放的,随后就有很多公司基于Unix开发自己的商业系统。于是AT&T(贝尔实验室所在公司)出于商业的考量,开始收回Unix
的版权。
  由于AT&T公司收回版权,学校使用Unix教学收到很大影响。1984年美国西北大学的谭宁邦教授决定自己动手开始写Minix这样一个系统。在完全不看Unix源码的情况下,与Unix相容,遵循其概念,开发出Minix系统。系统与1986年完成,谭宁邦教授规定Minix也不是免费的,但只需要很少的钱买,不能在网络上传播(学术机构里蕴藏着改变世界的人才与力量,IT世界亦是如此)。

what?

秒懂概念:就是windows下分区D,E,F 盘这样的概念。
具体概念涉及硬盘。

风景

  Richard Mathew
Stallman(史托曼)在1984年发起的GNU计化,对于现今的自由软体风潮,
真有不可磨灭的地位!他还建立了自由软件基金会(FSF),发布了GPL等相关宣言。很多重要的基础软件在此基础上被开发出来,包括GCC,Emacs,Base
shell。不过那时他们仍在那些有专利的系统上运行。
  GPL宣言就是,软件挂上这个宣告之后,他就成了自由软件。其他人可以做如下事情:
取得软件与原始码:你可以根据自己的需求来执行这个自由软件;
复制:你可以自由的复制该软件;
修改:你可以将取得的原始码进行程序修改工作,使之适合你的工作;
再发行:你可以将你修改过的程序,再度的自由发行,而不会与原先的撰写者冲突,再发行时不能取消原来的GPL宣告。
回馈:你应该将你修改过的程序代码回馈于社群!
使用挂上GPL宣告的自由软件,加上适当服务可以用于商业售卖等,但不能仅仅使用自由软件。
1988年,MIT与其它第三方组织发表了X Windows
System,并成立XFree86组织,1994年此窗口系统整合到Linux中。

硬盘结构

威尼斯网址开户网站 2

硬盘的简单概念图

我们把硬盘当成一个光盘,我们以圆点为圆心等宽扩大半径画圆,你能得到许多的同心环,这一个个的环在硬盘中就称为柱面。将柱面分成若干个等面积的扇形就称之为扇区。在硬盘中每个扇区都能储存512B。

在众多的扇区中有一个很特别,这个扇区被拿来储存操作系统有关的信息。内容包括两个:
MBR : 安装引导加载程序的地方,大小为446B。
partition table : 记录硬盘分区信息的地方。大小为 64B 。

MBR 记录的信息比较多我们后面再说。
partition table 可以理解为一个表格,像下面

分区 开始柱面 结束柱面
分区1 1 100
分区2 101 200
分区3 201 300
分区4 301 400

上面的意思为 1-100 柱面 为一个分区,101-200 柱面 分第二分区 。。。。

我们能得到信息

  • 分区的最小单位为柱面
  • partition table 只能写入4组分区信息

喜欢折腾的同学会知道分区不知能能分4个。

威尼斯网址开户网站 3

牛逼哦

想了解怎么分更多的区,需要了解一些概念。
利用partition table分出来的区分按照功能为两类。
主分区:分区后直接拿来存储的分区。
扩展分区 : 那个继续分区的区(聪明的大大都猜到了)

威尼斯网址开户网站 4

我的磁盘,我装了SSD所以有两个硬盘

扩展分区利用一个扇区来记录分区信息(这个就跟partition
table一样)。分区信息中记录了如何分这个扩展分区。

这里需要注意:

  • 一个硬盘只有一个扩展分区,(操作系统的限制)
  • 扩展分区中的分出来的区叫做逻辑分区
  • 逻辑分区的个数有限制,如果是IDE接口接入的硬盘为
    59个,SATA接口接入的为11个。

右图是比较经典的磁盘结构,从图中可以看到,磁盘是从上到下堆叠的若干个圆盘组成,叫做盘片。
而一个圆盘又被划分为如下的结构
[图片上传失败…(image-801765-1516276124809)]
一圈一圈的叫磁道,每个磁道又被划分为不同的扇区,原本的每个磁道扇区数是相同的,后面有改变。
而磁盘是盘片叠在一起的,不同盘片的同一磁道叫做一个柱面。之所以多个叠在一起,是为了节省体积以及加快访问速度而设计的。

Linux来了

Linus从小就接触一些微电脑。当他进入大学时开始接触Unix系统,然后用使用谭宁邦教授的Minix系统,并阅读了其中的源码。加上他对一台386机器的探索,利用只有软件计划下的GCC等工具,写出了最初的核心,然后将它放在网络上供大家下载,初始版本是0.02,并提供建议。系统放在一个名叫Linux的目录下,后来就被大家称作Linux.Linux最初就与Unix兼容,能够运行Unix上的软件,故传播很快。
** linux的发展
**linus明白光靠一个人的力量无法壮大整个系统,他遍接收大家的力量,一起完成系统的各个模块。是Linux便逐渐发展成具有模块的功能,
也为因应这种随时都有程序代码加入的状况。Linux是由众多的世界各地的开发者们通过网络群策群力的共同发展出来的,大家工作的网站是
http://www.kernel.org。

1994年,linux的 version
1.0,然后与1996年完成了2.0版。Linux的核心版本号,

2.6.18-92.el5
主版本.次版本.释出版本-修改版本

因为对于Linux核心的开发者太多了,以致于造成Linux核心经常性的变动.但对一般的家庭或者核心应用来说,常变动的核心并不合适。所以托瓦兹将Linux的发布分为两股:
次版本为奇数:发展中版本(development)
如2.5.xx,这种核心版本主要用在测试与发展新功能
次版本为偶数:稳定版本(stable)
如2.6.xx,等到核心功能发展成熟后会加到这类的版本中

释出版本,就是在主、次版本不变的情况下新功能累积到一定程度之后释放出的一个版本。
修改版本:如果是第三方或其他人基于发布的某个主+次+释出版本上修改过的版本,就可在后面加上修改版本。

Linux distribution:
Linux方面发出的Linux仅有kernel及kernel提供的工具,然后还需要加上相关的软件就能组成一个完整的操作系统。许多商业公司或者社群会集合kernel和需要的套件,然后发布操作系统,叫做Linux
distribution。Linux的发布者有很多,但差异并不大,对于Linux distribution
也有一个相应的标准 Linux standard Base(LSB),让系统
的架构差异不至于太大。
  对于linux
distribution的选择,一般来说企业使用的服务器,关键应用需要,一般采用商业版,因为他们会选择比较稳当的内核及套件,较不容易长生错误,包括Red
Hat,
SuSE等。而个人使用一般用社群版即可,这里面通常会加入最新的版本和特性。包括Fedora,
Ubuntu, OpenSuSE等。

Linux
kernel小巧精致,可以在省电,低硬件资源的环境下运行。很多嵌入式设备使用精简过的Linux系统。从各种嵌入式到手机到PC,再到服务器,关键应用大都使用Linux,可见这个系统写的确实太好了。IT世界纷繁复杂的东西,各种各样的软件,硬件,应用,都由这些架构起来,写Linux这样的系统这也相当于一种基础研究了吧。

要学的内容:Linux的安装与指令、Linux的基本操作、务必学会VI编辑器、Shell与Shell脚本、软件管理员

why

分区的好处:
1.安全
比如说你C盘中有数据被删了,开不了机,你重装,但是你有一部珍藏放在C盘,那就很尴尬了。但是如果你放在D盘,美滋滋。
2.性能
分区后数据存放的更集中了,想想你读一个文件一会要在 3 柱面,一会要跑到
3000 柱面。然后又要回到 3 柱面。

l 磁头(head)数:每个盘片一般有上下两面,分别对应1个磁头,共2个磁头;
l
磁道(track)数:磁道是从盘片外圈往内圈编号0磁道,1磁道…,靠近主轴的同心圆用于停靠磁头,不存储数据;
l 柱面(cylinder)数:同磁道数量;
l
扇区(sector)数:每个磁道都别切分成很多扇形区域,每道的扇区数量相同;
l 圆盘(platter)数:就是盘片的数量。

开机过程

为了了解 MBR 我们需要了解计算机开机过程,计算机开机之后首先跑动的是 BIOS
(一个写在硬件里的程序),我们可以通过这个程序去启动相应的硬盘(或者U盘、光盘,下面我们以硬盘为例),然后BIOS就会读取硬盘的第一分区中的
MBR 。MBR 这里存放着一个Boot loader程序.
Boot loader 的功能是 :

  1. 引导到操作系统中的内核文件。
  2. 引导到其他 Boot loader 的位置。

注:其他的Boot Loader
存放的位置为另外一个分区的启动扇区(每个分区都有自己的启动扇区)

磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数。
寻址,早期采用CHS的方式,根据磁头、磁道、扇区的编号定位,后面磁盘变大变复杂,硬盘所有的物理扇区的C/H/S编号通过一定的规则转变为一线性的编号,效率大大提升。

Linux下的目录树

Linux的安装与Windows的安装不同,Windows只需要找一个合适大小的分区,安装就行了。
Linux的安装需要考虑哪些目录安装在哪个分区。
Linux下什么目录保存的文件有一套规定,下图是一般的规则。

威尼斯网址开户网站 5

linux目录树

** Linux的磁盘分区 **
硬盘的分区主要分为基本分区和扩充分区,扩充分区最多一个,且二者之和个数不能超过4个。扩充分区需要在进行逻辑分区,之后才能使用,逻辑分区没有数量上的限制。
有两种类型的硬盘,
IDE的硬盘(现在不多见了),驱动器的标识符为”hdx~”,x表盘号, a、b、c、d
等 ,
~代表分区。逻辑分区的编号会从5开始,前面的交给主分区或扩展分区了。
另一种是SCSI类型的硬盘,dev/sd[x~]
代表不同的盘,正常的实体机是这样的,不过虚拟机会不同可能会使用dev/vd[ap]这样的名字。

我的安装

我使用的Ubuntu 16 Kylin ,我只是简单的分了 /boot 在第3主分区 /dev/sda3 ,
/ 在第1逻辑分区 /dev/sda5 .
分区情况

威尼斯网址开户网站 6

我的分区情况.jpg

** 磁盘分割表 **
目前的分割表有两种格式,一种是MBR的方式,一种GPT。
MBR的方式有一个512Bytes的扇区用来存储开机管理程序和分割表。
开机管理程序:顾名思义,有448bytes。分割表:记录整颗硬碟分割的状态,有64
bytes。由于分割表只有64bytes,所以只能记录四组编号,也即只能将磁盘分成四个分区。也就是上面所说的基本分区和扩充分区。从上面可以看出,分区实际上就是对分割表进行设定而已。分隔的最小单位通常为柱面。

合并分区的时候,逻辑分区好合并。如果两个分区一个是主分区,一个是逻辑分区,那么和并起来就很麻烦了,会破坏掉逻辑分区的整个分区情况。

显然可以想到MGR的方式存在一下缺点:
MGR存储数据的区域太小
,只有512byte,不管是存取开机管理程序还是存储分割表,能存储的数据都太少。这也是计算机技术发展过程中常出现的现象,设定的标准,没有准备好为那么强的硬件服务,没有预测到银监会发展这么快。比如IPV4这些。
另一方面,如果一个硬盘的MGR存储区域坏掉的话,这个硬盘基本上就不能用了,因为操作系统无法读取关键信息。

GPT方式:
与MGR只是用一个区块不同,GPT使用34个区块来记录,每个区块称作LBA区块,并且磁盘的最后还有34个备用的区块。第0块记录开机管理程序第一段,而原本记录分割表的用来存入特殊标志。第1块记录34个LBA块以及备用快的基本信息。后面的块都用于存储分区记录,每块记录4个,这种记录下的容量可达2
的30次方TB。目前较新的Linux都可以师表GPT格式,但是有部分应用软件,比如fdisk时不能识别的,要使用GPT
的话,得要操作类似gdisk 或者是parted
指令才行!还有硬件接口也可能不识别。

BIOS 搭配MBR/GPT 的开机流程:
计算机的启动叫做boot,起这个名字原理是计算机想要启动就必须运行程序,而运行程序又必须先启动,这是一个鸡生蛋蛋生鸡的问题,于是人们用boot,来源于一句谚语,”pull
oneself up by one’s
bootstraps”,提着鞋带把自己拉起来,这怎么可能呢,来形容这个过程。
第一阶段:BIOS basic input/output system 基本输入输出系统。
BIOS主要存放的包括
,自诊断程序,CMOS设置(也即我们使用的选择启动那个OS)、系统自动装载程序、主要I/O驱动和中断服务。
——>硬件自检,没问题
—–>BIOS把控制权交给MGR中的主引导记录也即开机管理程序,选择那个盘中的MGR有一定的顺序,可设置,
这个主引导记录的主要作用是告诉计算机到硬盘哪个(或哪几个,供选择)位置去找操作系统,
具体作用可以如下表示
提供选单:使用者可以选择不同的开机项目,这也是多重开机的重要功能!
载入核心档案:直接指向可开机的程式区段来开始作业系统;
转交其他loader:将开机管理功能转交给其他loader负责。
——>然后会根据位置直接加载操作系统,或者通过界面让用户选择加载哪个操作系统
——->由此,操作系统开始启动了(加载内核,运行初始化代码,创建第一个进程……)

同样的BIOS也是一个很老的设计了,有点跟不上计算机的发展,BIOS也无法支持GPT。所以,新的开机启动程序规范来了。叫做UEFI,相对于BIOS,它有如下有点:
1、具有GPT所拥有的优点,而BIOS没有
2、使用C语言开发,而BIOS使用汇编语言,具有更多优势,比如可移植性,厂商统一等。
3、安全性更高。
4、启动速度更快。
5、更能更多。

相关文章