马哥教育网络班22期第一周课程练习1-未闻花名

一、cpu架构

计算机体系结构:

运算器、控制器(cpu还包含寄存器)、存储器(内存)、输入设备(键盘、硬盘等)、输出设备(显示器、硬盘等)

cpu组成:

核心部件:运算器(加法器)、控制器()、寄存器(由于数据总线复用,为cpu保存现场,过程数据记录)。

辅助部件:一、二、三级缓存:弥合CPU和内存速率不匹配。频率控制器?

地址总线:内存寻址。

数据总线:存储器传输数据至运算器的带宽。

控制总线:存储器传输控制指令至运算器的带宽。

前端总线:cpu与北桥相连的带宽

存储器:”物理内存“采用数字平面编址、”逻辑内存“采用三维分段编址。”虚拟地址空间大小“,32bit系统下内存大小默认1G给OS,3G给程序。由”内核“转换至物理地址

北桥:高速总线。早期连接内存,显卡等。目前架构,内存直连CPU,ssd,flash等,无北桥。设备+总线+设备取最低速率。南桥:低俗总线。连接IO设备等

频率:1次操作过程或事件的工作时间

cpu计算过程:

”程序指令“使用”复用线路“由”控制器“协调将某存储地址段数据加载至”运算器“,”运算器“需要将数据保存至”寄存器“,然后读取下一个值。将两者运算,输出结果由”控制器“存放在某内存段。控制指令和数据均放在存储器

程序移植:

程序–>api(弥合不同cpu的汇编语言,库或systemcall,不同os库是不同的,所以不能跨os)–>汇编编译器–>微码(厂商提供的汇编语言)–>二进制编译器–>cpu(二进制即针脚变化)

程序组成:

指令+数据。由系统提供的”库“弥合底层硬件不同。库:api,源码+gcc编译的二进制。一大堆功能函数组成,整合systerm call的功能函数块

程序运行过程:程序调用”库“功能(系统调用的某些功能集),通过”内核“代为对硬件进行控制

程序源码+编译器(弥合硬件不同)–>二进制程序(gcc和glibc一致才能在不同OS间使用,和内核没关系)+链接相关共享库(重新开发后可在不通OS移植)

计算机速率:

cpu–1级缓存2级缓存(时间【访问之后再次被访问概率大】和空间【访问目标周围被访问概率大】局部性)–内存(线性地址–逻辑地址–虚拟内存地址)–硬盘缓存–硬盘

post–bios通过”硬件逻辑“方式自启动,将rom存储的指令映射至ram最低一段(DMZ??)

io中断–>cpu–>内核–>应用程序

硬件中断号表示不同设备的IO中断

操作系统:

负责管理硬件资源,将硬件计算能力抽象出来,并行多任务:cpu通过时间片。内存通过虚拟内存地址。io设备通过模拟??监视应用程序。启动、结束、销毁、回收、切换进程。

程序+shell–>程序库–>内核–>system库–>硬件

后台服务:提供OS运行环境

cpu有ring0-3,内核运行在ring0,硬件虚拟化将敏感程序剥离至-1,应用程序无法访问0级别的内存。即bios的最底层内存,系统内存空间,应用内存空间

内存碎片

内核功能:进程管理。内存管理。文件系统。网络功能。硬件驱动。安全机制

批处理:单线程处理。并行计算:多任务

虚拟终端、物理终端、模拟终端

二、linux发行版本

最好的回归发行版:openSUSE

openSUSE背后的SUSE公司是最老的 Linux 企业,它成立于 Linus Torvalds宣布放出Linux的一年后。它其实早于Red Hat的诞生,它也是社区主导的发行版openSUSE的赞助商。在2015,openSUSE团队决定靠拢SUSE Linux企业版(SLE)以便用户可以共享企业服务版本的DNA,就像CentOS和 Ubuntu 一样。之后,openSUSE变成了 openSUSE Leap,直接基于 SLE SP1。这两个发行版将共享代码库以互惠互利,SUSE将吸取openSUSE的优秀内容,openSUSE也抛弃了常规的发行周期,一个新的版本将和SLE保持一致。这意味着每个版本将有更长的生命周期。这一举措的结果是openSUSE将变成一个非常重要的发行版,因为潜在的SLE用户可以使用openSUSE Leap 。这还不是全部,openSUSE同时发布了一个纯粹的滚动发行版——Tumbleweed。可以参考Linux Story 闻其详撰写的这篇文章《生命、宇宙以及Linux系统的终极答案?openSUSE Leap 42.1华丽发布》,所以现在用户可以使用超稳定的openSUSE Leap和始终保持最新的 openSUSE Tumbleweed 。

最可定制的发行版: Arch Linux

Arch Linux是一个为那些想了解Linux一切的人准备的发行版,因为你必须手动安装一切,它会让你学会基于Linux的操作系统的每个部分。Arch Linux是最可定制的发行版,你获得的只是一个基础系统,然后你可以在它上面建立属于你个人的发行版。不论好坏,它都不像openSUSE和 Ubuntu ,它没有额外的补丁和整合内容,你甚至可以获得上游开发者创建的内容。Arch Linux也是最好的滚动发行版之一。他总是更新,用户始终使用最新的软件包,并且他们还可以通过稳定的存储库运行预发布软件。Arch也因优异的文档闻名。Arch Wiki可以让我得到任何Linux相关的资料。Arch中的内容是它提供的所有的包和软件都可在“任何”Linux发行版上运行。感谢Arch User Repository(AUR)。

最好看的发行版:elementary OS

不同的Linux发行版有不同的侧重点,在大多数情况下这都是技术差异。在很多Linux发行版中外观和感觉是无足轻重的——更像是一个边缘项目。不管什么角度,Linux Story 一直觉得它是一个非常漂亮的系统。elementary OS 正试图改变这一切。在它里面,设计走在了前列,其原因是很明显的。该发行版漂亮的图标是Linux世界闻名的设计师们设计开发的。elementary OS非常严格要求整体的外观和感觉。开发者已经创建了包括桌面环境在内的自己的组件,此外,他们只选择那些符合自己设计模式的应用程序。可以在该系统上看到Mac OS X的影子。

最佳新人:Solus

Solus 操作系统最近已经获得了相当多的关注,它是一个从头开始创建的前瞻性操作系统。它并不是Debian或 Ubuntu 的衍生物。它搭配了为集成GNOME从头开始构建的Budgie桌面环境。Solus 有和Google Chrome OS 相同的极简主义方法。Linux Story 完全认同Solus 为最佳新人。Solus不是一个“新的”操作系统,它曾经以不同的形式和名称存在。但是整个项目的新名称是在2015年才提出的。

最好的教育操作系统:ezgo Linux

ezgo 是一套开源、公益、免费、面向教育的电脑操作系统,基于Linux而开发,它包含有丰富的互动教学软件和开放教材、知识,涵盖了物理、化学、地理、天文、生物、数学、计算机等学科,矢志帮助学校的学生和教师的教育信息化,帮助孩子们和家长、老师以最方便最有效的方式接触、获取全世界最先进的知识和智慧,这是一个发源于台湾的开源项目,目前在国内是ezgo中国社区,重庆Linux用户组ChongqingLUG在维护、开发和推广。搜集了包括PhET在内的大量开源教材,Linux Story 有幸也曾经报道过跟ezgo 有关的消息,它的官方网站是 http://ezgolinux.org/。关心教育的家长、学生和老师值得关注。

最好的云操作系统:Chrome OS

Chrome OS不是一个典型的基于Linux的发行版,因为它是一个为在线活动设计的基于浏览器的操作系统。而且,由于它基于Linux同时它的源码是供所有人编译,所以它也很有吸引力。我每天都使用Chrome OS,这是一个对纯粹为网络活动而设计的极好的,免维护的,不断更新的操作系统。Chrome OS和Android一起值得所有的新人来实现PC和其他平台的Linux普及。Linux Story 曾经也试用过Acer Chromebook 11,感觉相当不错。

最好的笔记本操作系统:Ubuntu MATE

大多数笔记本没有非常高端的硬件,如果你正在运行一个非常消耗资源的桌面环境的话你将不会有太多的系统资源或电池续航来供你使用,因为系统已经占用了很多。这就是我发现为什么 Ubuntu MATE 是一个优秀的操作系统。因为它是轻量级的,但也有应有尽有的内容给你提供不错的体验。正是由于它轻量级的设计,大部分的系统资源可供你去完成繁重的工作。我认为它在低端硬件上是一个真正优秀的发行版。

最好的旧硬件支持系统:Lubuntu

如果你有闲置的旧笔记本或者台式机,可以使用 Lubuntu 来令它焕发生机。Lubuntu使用LXDE桌面环境,但该项目已经和Razor Qt合并为LXQt项目了。尽管最新的15.04版本仍然使用LXDE ,但是以后的版本将使用LXQt。Lubuntu确实是一款适合旧硬件的操作系统。

最好的物联网操作系统:Snappy Ubuntu Core

Snappy Ubuntu Core 是最好的物联网以及其他类似设备的基于Linux的操作系统。该操作系统有很大的潜力将近乎的所有东西都变成智能设备,比如路由器、咖啡机、无人驾驶飞机等等。优秀的软件管理和为增强安全性设计的容器化将它变得更加好玩。

最好的台式机操作系统:Linux Mint Cinnamon

Linux Mint Cinnamon 是最好的台式机操作系统,它对硬件强大的笔记本也是最好的。我将它当成Linux世界的Mac OS X。老实说,我曾经因为Cinnamon 的不稳定而十分不愉快。但是,只要开发者选择LTS版本,它就变得难以置信的稳定。因为开发者不必花太多时间去跟上 Ubuntu,所以他们可以花更多时间去让Cinnamon更好。

最好的游戏系统:Steam OS

游戏一直是桌面版 Linux的弱点,许多用户启动双系统的 Windows 只是为了玩游戏。Valve Software正在努力改变这一现状。Valve是一个提供使游戏在不同平台上运行的客户端的游戏分销商。而且,为了创建基于Linux的游戏框架,Valve已经创建了他们自己的开放式操作系统—— Steam OS 。在2015年底,合作伙伴开始将Steam机器推向市场。

最好的隐私保护操作系统:Tails

当下大量的监视和营销者的跟踪(匿名跟踪的目标内容是可接受的)让隐私保护已经成为一个主要的问题。如果你的业务需要避免政府和营销机构的追踪,你就需要考虑一款从底层设计隐私保护的操作系统。而且,在这一方面没有其他的能打败 Tails 。它是基于Debian的设计用来实现隐私保护和匿名化的操作系统。Tails 非常棒,据报道,美国国家安全局(NSA)认为它是自己使命的重要威胁。

最好的多媒体制作系统:Ubuntu Studio

多媒体制作是基于Linux的操作系统的主要缺点之一,所有专业级的程序在 Windows 和Mac OS X上都可找到。Linux上却没有像样的音频/视频制作软件,但一个多媒体制作系统需要的不仅仅是像样的应用程序。它应该使用轻量级的桌面环境使宝贵的系统资源如CPU、RAM被系统尽量少的使用,以便用于多媒体制作程序。因此,最好的Linux多媒体制作系统是Ubuntu Studio,它使用Xfce桌面环境并配备了众多的音频,视频和图像编辑应用程序。Linux Story  网站很长时间也用过它来制作一些影音多媒体素材。

最好的企业级系统:SLE/RHEL

企业用户不会四处寻找运行在自己服务器上的发行版。他们已经知道选择范围:Red Hat Enterprise Linux或者SUSE Linux Enterprise。这两个名字已经成为企业级系统的代名词。这些公司也在设法在容器化和软件定义上的创新来推倒当前的壁垒。Linux Story 认为RHEL 确实稳定,确实好用。

最好的服务器操作系统:Debian/CentOS

如果你正打算运行一个服务器,但是又不想为 RHEL或SLE的维护付费,那么Debian或CentOS是你最好的选择。这些发行版是社区主导的服务器版本,它们有着黄金标准。而且,它们的支持周期很长,所以你不必担心经常升级系统。

最好的移动操作系统:Plasma Mobile

尽管基于Linux的操作系统——Android正在主宰移动领域,包括我在内的很多开源社区的成员仍然希望有一个发行版能够在移动设备上提供传统的Linux桌面应用程序。同时,它最好是由一个社区负责运营维护而不是一个公司以便让用户仍然是受关注的焦点,而不是以公司的财务目标为焦点。而这正是KDE的 Plasma Mobile 带来的希望。该版本是基于Kubuntu的,发布于2015年。因为KDE社区在公众环境中遵守标准和发展东西是众所周知的,所以我对Plasma Mobile的未来充满希望。

最好的ARM设备发行版:Arch Linux ARM

随着Android的成功,我们已经被ARM设备所包围——从树莓派到Chromebook再到Nvidia Shield。为Intel/AMD处理器编写的传统发行版将不能在这些设备上运行。虽然一些发行版专为ARM设计,但是大多数都只针对具体的硬件,比如为树莓派设计的Raspbian。这也是为什么 Arch Linux ARM(ALARM)让人眼前一亮。因为它是一个纯粹由社区主导的基于Arch Linux的发行版,你可以在树莓派、Chromebook、Android设备、Nvidia Shield等上面运行它。这个发行版更有趣的是,因为Arch User Repository(AUR)的原因,所以你可以安装许多你可能在其他发行版上无法获得的应用程序。

三、linux哲学思想

1、一切皆文件;

2、单一目的的小程序;

3、组合小程序完成复杂任务;

4、文本文件保存配置信息;

5、尽量避免捕获用户接口;

6、提供机制,而非策略。

四、命令介绍

linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。

Net tools vs Iproute2

设置和删除Ip地址

要给你的机器设置一个IP地址,可以使用下列ip命令:

$ sudo ip addr add 192.168.0.193/24 dev wlan0

请注意IP地址要有一个后缀,比如/24。这种用法用于在无类域内路由选择(CIDR)中来显示所用的子网掩码。在这个例子中,子网掩码是255.255.255.0。

在你按照上述方式设置好IP地址后,需要查看是否已经生效。

$ ip addr show wlan0

set ip address

你也可以使用相同的方式来删除IP地址,只需用del代替add。

$ sudo ip addr del 192.168.0.193/24 dev wlan0

delete ip address

列出路由表条目

ip命令的路由对象的参数还可以帮助你查看网络中的路由数据,并设置你的路由表。第一个条目是默认的路由条目,你可以随意改动它。

在这个例子中,有几个路由条目。这个结果显示有几个设备通过不同的网络接口连接起来。它们包括WIFI、以太网和一个点对点连接。

$ ip route show

ip route show

假设现在你有一个IP地址,你需要知道路由包从哪里来。可以使用下面的路由选项(译注:列出了路由所使用的接口等):

$ ip route get 10.42.0.47

ip route get

更改默认路由

要更改默认路由,使用下面ip命令:

$ sudo ip route add default via 192.168.0.196

default route

显示网络统计数据

使用ip命令还可以显示不同网络接口的统计数据。

ip statistics all interfaces

当你需要获取一个特定网络接口的信息时,在网络接口名字后面添加选项ls即可。使用多个选项-s会给你这个特定接口更详细的信息。特别是在排除网络连接故障时,这会非常有用。

$ ip -s -s link ls p2p1

ip link statistics

ARP条目

地址解析协议(ARP)用于将一个IP地址转换成它对应的物理地址,也就是通常所说的MAC地址。使用ip命令的neigh或者neighbour选项,你可以查看接入你所在的局域网的设备的MAC地址。

$ ip neighbour

ip neighbour

监控netlink消息

也可以使用ip命令查看netlink消息。monitor选项允许你查看网络设备的状态。比如,所在局域网的一台电脑根据它的状态可以被分类成REACHABLE或者STALE。使用下面的命令:

$ ip monitor all

ip monitor all

激活和停止网络接口

你可以使用ip命令的up和down选项来激某个特定的接口,就像ifconfig的用法一样。

在这个例子中,当ppp0接口被激活和在它被停止和再次激活之后,你可以看到相应的路由表条目。这个接口可能是wlan0或者eth0。将ppp0更改为你可用的任意接口即可。

$ sudo ip link set ppp0 down $ sudo ip link set ppp0 up

ip link set up and down

获取帮助

当你陷入困境,不知道某一个特定的选项怎么用的时候,你可以使用help选项。man页面并不会提供许多关于如何使用ip选项的信息,因此这里就是获取帮助的地方。

比如,想知道关于route选项更多的信息:

$ ip route help

ip route help

原创文章,作者:未闻花名,如若转载,请注明出处:http://www.178linux.com/34486

(0)
上一篇 2016-08-15 12:06
下一篇 2016-08-15 12:06

相关推荐

  • 软件包管理详解

      软件包管理器 1、功能: (1)将软件包打包成一个文件,其中包括: ①二进制程序 ②库文件 ③配置文件 ④帮助文件 (2)生成数据库,追中所安装的每一个文件。 2、软件包管理器的核心功能: (1)制作软件包 (2)安装、卸载、升级、查询、校验 3、不同发行版的不同的…

    2017-08-11
  • linux多网卡绑定

    为了增加网络牢固性,linux服务器通过多块网卡来实现网卡冗余或链路聚合、负载均衡的技术。网卡绑定mode共有七种(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6常用的有三种mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援…

    系统运维 2016-06-23
  • 命令read

    read命令是一个bash命令,它用于从键盘或标准输入中读取文本.我们可以使用read以交互的形式读取来自用户的输入.并且read还提供一种不需要按回车就能够输入参数的方法. read可以从标准输入中读取单独的一行,或者使用-u选项,从文件描述符FD中读取.并且这单独的行被分隔成多个域,第一个词被赋值给第一个变量,第一个赋值给第二个变量,以此类推,直到剩下的…

    Linux干货 2016-08-12
  • 一个不想被打断腿的人的学习宣言

    听说不晒学习宣言的会被某人打断腿,忍了好几天,思考了好几天,想了想,还是腿比较重要。废话就不多说了。上图~~!  生命中总要去经历一些,好让自己在老的时候回忆起来,不至于说:“哎,怎么就没有去拼一下呢!”

    Linux干货 2016-10-27
  • Linux运维学习历程-第八天-Linux文本工具sed与Vim(vi)

    概述:    本篇我们主要学习两个功能非常强大的文本编辑器,了解这两种文本编辑器的各自的特点 一、sed命令:  1、sed简介:     sed(Stream EDitor)是一种流编辑器、行编辑器。逐行处理文本内容,即一次处理一行内容,处理时,当前处理的行存储在“模式空间”(pattern sp…

    Linux干货 2016-08-15
  • 计算机扫盲闲谈

    什么是计算机?计算机是干什么的?什么又是操作系统?来上车,坐好了,听老司机给你娓娓道来。(大神勿喷)

    2018-03-26

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-17 15:48

    写的很好,排版还可以在漂亮一点,加油,有没有感觉到黑屏很丑?