如果在我目前的职业生涯中要选出一本对我影响最大的书籍,我一定会选择ESR的《UNIX编程艺术》。第一次此书时资历尚浅,更多的是当做一本课外读物来看,但是随着职业中接触了更多不同的操作系统,完成了更多项目产品的设计、架构、实现,对书中所讲内容产生了更大的共鸣。在第三次此书之际,把书中很多有价值的思想提取出来给自己一个总结,希望也能给大家带来一次分享。本书关注的重点:不止于方法,更重乎理念。知识(
推荐 原创 2014-01-09 22:22:23
10000+阅读
5点赞
6评论
近来翻看《Unix编程艺术》,至17种原则时,遂觉其甚好。便拿来和大家分享: 1.模块原则:使用简洁的接口拼合简单的部件。 2.清晰原则:清晰胜于机巧。 3.组合原则:设计时考虑拼接组合。 4.分离原则:策略同机制分离,接口同引擎分离。 5.简洁原则:设计要简洁,复杂度能低则低。 6.吝啬原则:除非确无它法,不要编写庞大的程序。 7.透明性原则:设计要课件,以便审查和调试。 8.
原创 2012-09-26 22:07:57
728阅读
2点赞
6评论
   初UNIX痛恨者手册》,有感,    伟大与渺小、辉煌与毁灭这些相悖逆的词语和人世间的种种万千总有千丝万缕的情缘。    古老的国度,曾经的沧桑,还是那句话,人过留名鸭过留声,曾经的曾经曾经----可以称之为叫做历史的东西吧,呵呵,‘既生瑜何生亮’这是周瑜对比自己大六岁的诸葛孔明而言,在此不说历史。    
原创 2013-07-15 21:34:12
2044阅读
2评论
unix早期的代码中,schedule和swap两个核心任务都是由0号进程来负责的,这个朴实的设计就是unix系统最最原始的设计,因为unix在开始设计的时候十分清楚进程应该做什么不应该做什么,应该做它本职的工作,而诸如调度和置换之类的任务不应该由用户进程负责,但是linux后来颠覆了这个想法,毕竟频繁的切换带来的开销已经基本抵消了分工设计带来的优雅,于是就将调度工作分担给了各个进程本身,而置换
原创 2010-02-09 17:57:00
1413阅读
UNIX下C语言的学习路线。 工具篇 “公欲善其事,必先利其器”。编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工具。 (一)操作系统 在UNIX或Linux系统中学习C很方便,所以在开始您的学习旅程前请先选择一个UNIX或Linux操作系统。 目前可供个人免费使
转载 2023-12-09 12:42:22
0阅读
swift 基础:swift 是完全由一个工程师设计完成,编译型语言和脚本语言的结合,编译型语音就是需要保证每一行都通过编译才能够运行,编译语言功能更强大,脚本语言功能更灵活,不需要代码完全通过编译,能执行一行代码就执行一行代码,直到执行到错误的代码行后,才停止运行代码swift 的首席架构师是 chris lattner,是 llvm 项目的主要发起人和作者之一(llvm 项目即编译器),c
JetBrains 怎么?IntelliJ IDEA 怎么
原创 2024-08-02 10:10:10
208阅读
开头前先热热身HDFS,全称是hadoop distributed file system,是Hadoop框架下的分布式的存储系统。所谓分布式存储系统就是指不再将数据和文件集中的存储在某一台机器上,而是采用分布式的方法,将存储空间扩展到多台机器上。这种分布式文件存储系统的理论和业界先例于谷歌的GFS。而HDFS则是由Apache基金会开源实现的软件框架hadoop中的文件存储
JAVA07EclipseEclipse单词解释         英 [ɪˈklɪps]         美 [ɪˈklɪps]n.    [天] (日、月) 食; 消失,黯然失色; 漆黑;vt.   使黯然失
转载 2023-07-20 21:14:59
0阅读
Java--介绍语言:人与人之间交流的语言。计算机语言:人与计算机交流的语言。什么是JAVA?java就是一门可以实现跨平台的计算机编程语言,运用领域十分广泛.编写程序分为三个步骤:1.编写程序2.编译程序3.运行程序.java语言的特点:简单性,面向对象,安全性,跨平台性,支持多线程,垃圾回收机制。Java语言是由Sun(Stanford University Network)公司在1995年詹
转载 2024-01-15 20:05:11
125阅读
1. 什么是Redis?它主要用来什么的?Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓
转载 2023-08-11 20:12:24
219阅读
简介和下载1、简介jQuery是一个轻量级的“写得少,做得多”的JavaScript函数库,并且它兼容所有主流浏览器。2、下载下载地址: http://jquery.com 英文网站中下载jQuery库文件。中文网站:http://www.jquery123.com/ 下载版本: Production version 用于实际的网站中,已被精简和压缩。Development version 用于测
转载 2024-01-13 14:58:27
102阅读
Rhino软件介绍什么是rhino设计功能性能特点下载地址: 什么是rhinoRhino是美国Robert McNeel & Assoc开发的PC上强大的专业3D造型软件,它可以广泛地应用于三维动画制作、工业制造、科学研究以及机械设计等领域。它能轻易整合3DS MAX 与Softimage的模型功能部分,能输出obj、DXF、IGES、STL、3dm等不同格式,并适用于几乎所有3D软件,
转载 2023-08-09 13:38:38
155阅读
摘要本文介绍HBase在CentOS下的安装部署,以及基于Scala语言在Spark上读写HBase的简单实例。1.HBase简介Hbase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,主要用来存储非结构化和半结构化的松散数据。Hbase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。那么关系型数据库已经流行了很多年,并且
1. k8s概要首先我要讲下k8s全称为kubernetes, 发音为[kubə’netis]。从音标可以看出重音在第三音节上,大家都别读错了。如果不认识音标就是百度上看下标准读音吧,我不在这里写中文了。kubernetes最初源自于谷歌内部的borg项目,提供了面向应用的容器的集群和管理系统。k8s目标是消除编排虚拟机,网络和存储等基础设施的负担,并使应用程序运营商和开发人员将重点放在
转载 2024-05-15 11:16:34
316阅读
Hive的简介Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的
转载 2024-01-13 22:32:11
84阅读
1.1 java概述 Java是一种特殊的解释型语言(编译型语言:在程序执行前,有一个单独的过程,将程序直接编译成机器语言,以后运行时都不用再编译;解释型语言:在程序运行时,将源文件解释成机器语言),Java文件在运行前先被编译(工具:javac.exe)成字节码文件(class文件),然后在虚拟机中被解释(工具:java.exe或javaw.exe(非阻塞执行))运行。1.1.1 java语言的
转载 2023-08-20 12:17:04
159阅读
上一篇五、每次一行的IO        上一篇总结到了标准IO库中,单个字符的IO操作。紧接上篇,Unix中提供了两个 以行为单位操作的IO:#include<stdio.h>char *fgets(char *restrict buf, int n,FILE* restrict  fp);char *gets(char *buf);&
1、Wireshark简介Wireshark (前称Ethereal)是一个免费开源的网络数据包分析软件。网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据。Wireshark官方网站:https://www.wireshark.org,可以去官网查看这款软件的详细信息2、Wireshark基本使用方法kali中内置有wireshark,打开wireshark&nbs
转载 2024-02-18 12:28:51
180阅读
Python的定义 Python,维基百科给出了如下介绍: Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象、解释型的计算机程序语言。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。 此处提到的解释型语言,说的是源代码先翻译
  • 1
  • 2
  • 3
  • 4
  • 5