深度学习工程师第一步:linux!这两大核心点,让你事半功倍

linux其实并不讨人喜欢,因为它大部分操作是通过命令行完成的,这对于没有计算机基础的人来说简直是噩梦般的存在,但对于程序员,这实在是用来充门面最好的工具了,只需要打开一个终端页面,随便安装一个一个软件,在黑与白的酷炫交织中,我们的脸上写满了傲娇。

深度学习工程师第一步:linux!这两大核心点,让你事半功倍

但是,我们程序员是一个有内涵有文化的群体,我们选择使用linux不仅是因为酷炫,也是出于工作需求。因为在工作过程中,企业一般都会选择使用linux操作系统。原因有三点。

第一,linux是一个开源产品。企业要盈利,就要节省成本,使用linux系统做服务器不会带来任何版权问题。

第二,linux足够稳定。你有没有试过把自己的windows电脑打开一个月不关机?你肯定没试过,因为开机最多两百个小时的时候,windows就已经宕机了(几万元的神机免谈),windows系统运行时间越长,系统就越卡顿,直到最后,不得不通过宕机来解决问题。但是,这种现象不会出现在linux系统的身上,这就是linux的稳定性。正常来说,一台linux服务器半年不关机是没有问题的,所以企业一般都是过上几个月才会重启一次。

下面是linux操作系统稳定原理分析:

操作系统一般都由几个比较重要的模块组成,下面对他们进行一一对比,首先是系统初始化,这个方面linux与windows很相似,对比性不强。两个系统的主要区别在于进程管理和文件系统,在文件系统中,windows几乎所有安装包都是二进制文件,这样主要是为了保密。而在linux中,一般是源代码安装,下载好源代码后,通过configure进行配置,再通过make、make all,等进行编译安装,这是很多大牛用linux的重要原因之一,一个开放的世界,我们可以对源代码进行自己需要的更改。

同时,与windows操作系统不同,在linux操作系统中,进程就是一个可以直接执行的基本单位,那怎样执行这一个进程呢?fork函数会直接调用父进程,然后将整个进程复制下来,复制出来的产品,我们称之为子进程,这样的一个子进程就可以直接被执行了,这样执行进程有什么好处呢?当一个进程需要被执行时就直接被复制就可以了,这样当多个进程并发时,就不会出现对这个进程的争抢,可以提高系统在多用户并发下的运行效率。

深度学习工程师第一步:linux!这两大核心点,让你事半功倍

打个比方,本来大家来买饭都是要排队的,然后摊主做一个卖一个,这就是windows的做法。而在linux中,每份饭已经做好了,大家直接过来拿就可以带走了。想对比下,即便同时来的人再多,系统也能承受住。

所以说,linux为这样的复制操作,建立了一个分区,叫做交换分区,英文名字是swap,这样再去理解为什么设立交换分区就容易多了。这里要做一个小笔记,就是安装linux操作系统时,都是要设立交换分区的,交换分区的大小一般设置为你实际内存的大小,假如你的运行内存是4G/8G,那对应的交换分区也应该设置为4G/8G。

现在既然已经理解了swap交换分区是干什么的了,那么剩下的几个分区又有什么功能呢?

第一个最重要的分区,就是系统的起点,引导分区,一般有以下两种,/boot和/efi,这两个是不同的系统启动方式,如果你的电脑是bios启动方式,就建立boot分区,如果你的电脑是uefi启动方式的,就建立一个efi分区。这个分区存储的是linux系统的内核,是整个系统开始的地方,所以也叫做引导分区,开机命令启动后,便会这个分区第一时间响应,完成对整个系统的初始化。

第二个重要的分区,就是存储系统程序的分区,大部分linux操作系统都是在linux内核基础上改造出来的,也就是说内核+系统=linux操作系统,而这些系统程序就被存储在这个分区中,这个分区的盘符是”/“,就是表示根的意思,整个系统的根。在内核启动后,便会启动这个分区里的对应程序,唤醒整个系统。这个分区,在安装系统时一般设置为10G。

第三个重要分区就是上文已经提到的交换分区了。

第四个重要的分区的功能是,存储用户安装的程序,这个分区的盘符是”/usr“,跟它的名字所表达的信息一样,这个分区就是为用户提供服务的,用户通过yum、apt-get工具安装的程序都会被装到这里。这个分区的大小设置就得看情况了,如果你只是临时进行学习,10-30个G就够了,如果你可能会安装大量的软件,建议最好选大一点。

第五个分区,”/home“,这个分区其实大家都是很熟悉的,因为使用的频率很高,一旦新建了一个用户,这个用户的全部数据就被存储在这个文件下,主要是用户的下载,和桌面文档、视频等,例如用户zcj,对应的用户zcj的存储路径就是/home/zcj。这个分区的大小同上,用的多,就多选一点。

当然啦,如果你实在没有选好,后期变化大的话,也是可以通过分区工具进行更改的。

所以说,而这些优点恰好是深度学习所需要的,因为深度学习所运行的数据量大,所以对服务器要求较高,除了提高自己的配置,选择适合的系统也是很重要的一部分。

深度学习工程师第一步:linux!这两大核心点,让你事半功倍

最后真的非常抱歉,linux原理部分,我描述的并不全面,因为这一知识涉及的范围实在太广。但是作为深度学习方向,小编认为了解到这个程度就可以了,系统只是我们使用的工具,最重要的还是对于算法和代码的实践。我会陆续更新更多深度学习技术文章。


分享到:


相關文章: