介绍

笨兔兔的故事——带你了解Ubuntu,了解Linux 免疫 第十九章

别说谁变了你拦得住时间么 提交于 2020-12-18 06:56:55
(19)免疫   有人问,查皮那里的病毒那么可怕,你这里怎么没有病毒呢?好~      笨兔兔老师第二讲——为什么linux不中毒 首先我们来了解一下病毒,病毒是什么?其实说简单了,病毒只是一个程序,一个坏坏的程序。既然是程序,就跟其他的正常程序一样,依赖于不同的平台。啥意 思?就是说,给查皮打工的,没法给我干活,给我干活的,也不理查皮那一套。我要是拎过一个查皮那边的程序跟他说,快起床干活。他压根也听不懂,闭上眼睛继 续睡,语言不通啊。所以,病毒也一样,针对查皮的病毒传染不了我,针对我们linux的病毒也不可能传染查皮。 那有没有针对linux的病毒呢?答案是有的。第一个linux病毒诞生于1996年,澳大利亚的一个叫VLAD的组织用汇编语言编写了linux系统下 的第一个病毒:Staog,不过这个病毒只是个试验品,只是证明一下linux也会感染病毒。这个病毒会感染二进制文件,获取root权限,然后说:你 看,我获取了root权限。炫耀完了也就算了,并不做任何破坏性的事情。后来也有了一些有破坏性的病毒,但是数量很少,经过科学家计算,一个不装任何杀毒 软件或防火墙的linux在互联网上中毒的几率大约比一个人花两块钱买彩票中五百万后立刻被雷劈中的概率大那么一点点。(这是哪门子科学家)病毒少,这是 linux不容易中毒的一个原因。可为什么病毒少呢? 话说有一个邪恶的人,出于某种邪恶的目的

Introduction To Nginx

喜你入骨 提交于 2020-05-07 16:29:32
Nginx 是一款轻量级的Web 服务器/反向代理服务器及电子邮件代理服务器,并在一个BSD-like 协议下发行 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好. Nginx由内核和模块组成 内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block,而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。 Nginx的模块从结构上分为核心模块、基础模块和第三方模块, HTTP模块、EVENT模块和MAIL模块等属于核心模块,HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块属于基本模块,而HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块属于第三方模块,用户根据自己的需要开发的模块都属于第三方模块。正是有了这么多模块的支撑,Nginx的功能才会如此强大。 Nginx的模块从功能上分为三类: Handlers此类模块直接处理请求,并进行输出内容和修改headers信息等操作。handlers处理器模块一般只能有一个。 Filters 此类模块主要对其他处理器模块输出的内容进行修改操作,最后由Nginx输出。 Proxies

笨兔兔的故事——带你了解Ubuntu,了解Linux 第十二章 本事

Deadly 提交于 2020-05-06 02:45:22
(12) 本事 这一天,一如既往的起床,一如既往的看老p跑进内存,本以为他会一如既往的待在那里,一言不发,没想到他竟然说话了:firefox赶快起床,做好准备。 狐狸妹妹被叫醒,一头雾水的看看我,因为每次都是我叫她。我也同样迷惑的看看老p,主人还没有发命令要用firefox阿,怎么就把她叫醒了呢?但既然被 吵醒了,狐狸妹妹也就不睡了,迷惑的走进内存,看着老p。老p倒是镇定自若,一点没觉得有什么不对劲,转脸又说:Audacious起床,做好准备。 Audacious是一个多媒体软件,他会使用那个叫做声卡的硬件设备,唱出优美的歌声来。我问过我们这里学问最高的星际译王老先生,星爷告诉我 Audacious这个名字是大胆,鲁莽的意思。大胆,唱歌,所以,我们就管这个会唱歌的家伙叫“想唱就唱”吧。想唱就唱也被老p叫进内存,跟 firefox站在一起,刚要问什么,这时主人发话了,要开网页。我马上明白了,看了一眼狐狸妹妹,她也很麻利,当我看她的时候,她已经在工作状态了。省 去了平时狐狸妹妹起床的时间,反应快了不少,主人很满意。没过多会,主人果然又叫想唱就唱来唱歌了,一切都在老p的预料之中……    原来,老p这几天一直在记录分析主人的使用习惯,获得足够的数据之后,就可以知道哪些软件是常用的,哪些是不常用的,哪些软件哪些时候用,哪些软件哪些时 候基本不用,正所谓金风未动蝉先觉,春江水暖鸭先知

笨兔兔的故事——带你了解Ubuntu,了解Linux 第九章 邻居

寵の児 提交于 2020-04-17 03:11:55
【推荐阅读】微服务还能火多久?>>> (9)邻居    科普也科普完了,该干正事了。开始搬照片吧。    先拿出这屋的文件列表来看看——我当然知道文件列表在哪,因为我学过NTFS格式。好,上面写着,照片在窗台底下,好,我来到窗台底下,没看见照片,却发现了一个熟悉的面孔…… 他带着个圆圆的眼镜,文质彬彬的样子,看上去像个学究,两道浓眉如同飞翔的海鸥。衣着并不华丽,倒也搭配的很是顺眼。人们喜欢叫他OO,可能是因为他的眼 镜吧,而他的全名,叫做OpenOffice.org——相信我,这确实是个软件的名字,当然,同时还是个网站的名字。之所以我认识这家伙,是因为在我屋 里也躺着一个。 这并不奇怪,很多Linux下的软件都有相应的Windows版本,OO老先生也是这样。基本上这个OO可以算是我屋里那个的兄弟吧,他们是相同的版本, 相同的外表,相同的功能,只是一个跟着查皮混,另一个跟着我干。我绕过这位OO老先生,没有吵醒他的美梦(事实上我也叫不醒他)。终于自他身后的窗台下面 发现了要复制的照片,不过别急仔细看一下,果然,上面写着“照片,第一部分,第二部分见里间屋写字台底下”哎~~我恨碎片………………   来到里 间屋,还没找到照片,先看见了床上躺着的查皮,这是我第一次看到这位可爱的邻居。他穿着红黄蓝绿四色的衣服,很是鲜艳。可是,不知道为什么,脸被涂黑了, 上面还写着“使用正版,跟风黑屏”

llvm每日谈之二 LLVM IR

北城以北 提交于 2020-02-29 07:47:18
作者: snsn1984 在介绍LLVM IR之前,我们需要先了解下LLVM的结构。传统的静态编译器分为三个阶段:前端、优化和后端。 LLVM的三阶段设计是这样的: 这样做的优点是如果需要支持一种新的编程语言,那么我们只需要实现一种新的前端。如果我们需要支持一种新的硬件设备,那我们只需要实现一个新的后端。而优化阶段因为是针对了统一的LLVM IR,所以它是一个通用的阶段,不论是支持新的编程语言,还是支持新的硬件设备,这里都不需要对优化阶段做修改。所以从这里可以看出LLVM IR的作用。 LLVM IR主要有三种格式:一种是在内存中的编译中间语言;一种是硬盘上存储的二进制中间语言(以.bc结尾),最后一种是可读的中间格式(以.ll结尾)。这三种中间格式是完全相等的。 LLVM IR是LLVM优化和进行代码生成的关键。根据可读的IR,我们可以知道再最终生成目标代码之前,我们已经生成了什么样的代码。而且根据IR,我们可以选择使用不同的后端而生成不同的可执行代码。同时,因为使用了统一的IR,所以我们可以重用LLVM的优化功能,即使我们使用的是自己设计的编程语言。 如果想直观的看下llvm的IR到底是什么样的,可以先写一个helloworld的程序,文件名字叫做hello.c。根据下列文档的步骤配置llvm: http://clang.llvm.org/get_started.html

react学习(1)-Why React?

牧云@^-^@ 提交于 2020-02-28 11:40:07
react出来好久了,留意了一下突然火了半边天。在下也只能随波逐流的来学习下了,希望能通过写博客的方式让自己坚持学习下去。 React是Facebook和Instagram用来创建用户界面的JavaScript库。很多人将React认为是MVC中的V。 React的创建是为了解决一个问题:如何构建一个数据交互频繁的大型应用程序 简单 在任何时候都能很不费劲的展现数据,并且当你的数据改变时,React会自动管理UI的更新。 声明的 当数据改变时,React就好像点击了更新按钮,并且只更新有改变的部分。 构建通用组件 React旨在构建通用组件。试试上,写React代码就是在构建组件。因为组件式封装的,所以组件使得代码的复用性、测试性和关注分离变得简单。 来源: oschina 链接: https://my.oschina.net/u/218583/blog/751471

笨兔兔的故事——带你了解Ubuntu,了解Linux 第八章 碎片

笑着哭i 提交于 2020-01-07 09:30:30
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> (8)碎片   笨兔兔老师第一讲:什么是磁盘碎片 同学们都坐好啦,都把手机铃声关了,小灵通调成震动,BP机直接扔了——台都没了你还留着它干嘛。好,上课了,首先说说什么叫磁盘碎片。磁盘,是我们程序 居住的空间,我们用不同的方式对整个磁盘的空间进行管理。上次说过了,包括各种方式,什么ext3,xfs,查皮的ntfs等等。而磁盘里放的东西,就是 一个一个的文件,同学们可以把磁盘想象成你家的屋子,文件就像一个一个,大小小的箱子。每个箱子上面写着字,就是文件名。查皮喜欢把每个箱子都紧挨着放, 一个挨一个,上下左右前前后后都紧贴着,这样,看上去很规整。可以让剩余的空闲空间比较完整。有同学说了,我家也这么收拾,这样很利索呀。不过,对于操作 系统,这样做虽然也有好处,但是会有一些问题。    比如,一开始存了一个文件,也就是搬来了一个箱子,比如叫“日记”。查皮把它放在最靠墙的位置,然后又存了很多其他的文件,在“日记”文件的前前后后,左 左右右,上上下下都放满了。忽然这一天,日记文件被修改了,加了点内容,就相当于往“日记”那个箱子里加了东西。可是箱子已经满了,再往里加,箱子就要增 大,或者理解为再拿个箱子也写上“日记”放在原来的箱子边上,可是不管怎样,箱子周围堆满了其他的箱子,没地方了,怎么办呢?可以把边上的箱子挪开一点,

llvm每日谈之三 如何创建一个LLVM工程

[亡魂溺海] 提交于 2019-12-10 08:15:24
作者: snsn1984 阅读了文档《Creating an LLVM Project》(地址:http://llvm.org/docs/Projects.html)之后,自己照着做了一遍,记录一下自己的过程。 实际做的时候跟文档上还是有不同的。 1.首先我系统上的llvm3.1是之前已经下好,并且make过的。我打开llvm-3.1/projects目录,看到下面有一个我之前放的compiler-rt目录和另外一个本来这里就有的sample。把sample这个文件夹copy到llvm3.1的同级目录。修改文件夹名字为MyFirstLLVM。 2. 打开MyFirstLLVM/autoconf目录,打开configure.ac. 3. AC_INIT后面的括号里面有三个中括号,第一个中括号要填的是这个项目的名字,第二个是这个项目的版本号,第三个是作者的联系邮箱,可改可不改。 4. 因为现在MyFirstLLVM已经和llvm-3.1在同级目录了,所以修改接下来的LLVM_SRC_ROOT="../../llvm-3.1" LLVM_OBJ_ROOT="../../llvm-3.1/build"。llvm-3.1/build目录是我编译llvm-3.1的目录。 5. 修改AC_CONFIG_AUX_DIR后面的内容为:(["../../llvm-3.1/autoconf"])。 6.

使用NGUINGUI的相关介绍

时光毁灭记忆、已成空白 提交于 2019-12-06 01:29:55
1.3 使用 NGUI 要使用 NGUI ,需要首先为游戏项目导入 NGUI 插件资源,然后再创建 UI Root 对象,在这以后才可以添加各种 UI 控件,下面本节会详解介绍这些知识本文选自 NGUI从入门到实战 ! 1.3.1 导入 NGUI 插件 NGUI 插件在 Unity 的应用商店里,是需要先购买然后才能使用的,具体的介绍如图 1-1 所示。 图 1-1 不同 NGUI 插件的收费情况说明 NGUI 学习的成本居然这么昂贵,很多人都会望而怯步吧,但这根本就不成问题!实际上网上有很多人购买了 NGUI ,然后将它做成资源分享了出来,读者就可以直接拿来学习了。本书所使用的 NGUI 也是来自于网上,版本是 3.0.2 本文选自 NGUI从入门到实战 。 提示:本书附带了这一版本 NGUI 的下载资源。才 3.0.2 !现在都 3.7.2 了!没错, NGUI 的版本更新很快,每个月基本都会更新两次,但是就学习使用 NGUI 而言,根本就没有必要追求最新的,学会一个版本的以后,其它的版本根本就不是问题!不就是功能更加强大,而且还添加了新的功能么!学会本书介绍的这些方法,再学习新的功能,会更加容易上手。 在游戏项目中使用 NGUI 的方法很简单,直接将 NGUI 资源包拖动到 Unity 中即可! 1.3.2 创建 UI 要让 NGUI 创建 UI ,可以使用它提供的“ UI

翻译:introduce to tornado

别等时光非礼了梦想. 提交于 2019-12-05 01:30:11
在上一章节中,我们看到了如何使用tornado去创建和配置一个简单的web应用。我们学习了:handlers、http方法和tornado的整体框架结构。在这个章节,我们将要开始学习如何在web应用中使用更多更强大的功能。 和大部分web的框架一样,tornado设计的其中一个目标就是帮助你通过tornado更快的完成应用程序,实现代码的高可用和整洁。tornado非常灵活,它几乎支持所有的模板语言,它包括了一个轻量级、快速、灵活的模板。 简单的例子Poem Maker Pro 让我们通过这个名为Poem Maker Pro的例子开始吧!Poem Maker Pro 是一个web应用,它会通过一个html表格去接收用户填写的东西。并且将结果重新在网页中显示出来。 例2-1 poemmaker.py Code View Copy Print import os .path import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web from tornado.options import define, options define(“port”, default=8000, help=”run on the given port”, type = int )