首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux网络编程书籍

《计算机网络(第5版)》是国内外使用最广泛、最权威计算机网络经典教材。 目前已经是第五版,本书作者80年代就开发出MINIX,是一个用于操作系统教学类UNIX(小型操作系统。...说明:搞Linux网络编程,想学TCP/IP一定要看大师W.Richard Stevens这六本书,基本上六本书看完基础也就搭好了。 ? ? ? ? ? ?...Stevens先生1951年生于赞比亚,早年,他就读于美国弗吉尼亚州费什本军事学校,后获得密歇根大学学士、亚利桑那大学系统工程硕士和博士学位。他曾就职于基特峰国家天文台,从事计算机编程。   ...本书称不上非常通俗,但是在有一定基础情况下还是比较容易看懂。本书是世面上极少见讲述内部网关路由技术经典书籍,内容极为丰富。...一本在kernel实现网络功能基础书籍,最好还是看英文版,翻译实在太烂了。有条件还是看原版吧,没办法啊,中国此类书籍基本上落后老美3-4年。结合linux源代码分析一书收获更多。

3.4K30

苹果系统编程必看书籍

Core Animation 不只是动画,更多是对图层操作。 2.iOS编程(第4版) 全书涵盖了开发iOS应用方方面面。...从Objective-C基础知识到新增加语言特性;从AppKit库到常见Cocoa设计模式;从Xcode技巧到Instruments等。如果读者刚 接触iOS编程,阅读本书前两章可以快速入门。...如果读者已经有iOS编程经验,阅读本书可以拾遗补缺。...3.Objective-C Programming (2nd Edition) 这本书涉及到内容比较初级,但是也写很全面,看完后,可以对整个 Objective-C 语法、常用类跟初学事经常遇到问题都有个全面的了解...这本书最大优点在于它一次次带你入坑,再帮你拔出来,这恐怕是最浅显告诉你如何一步步从做一个App到做好一个App。

1K40
您找到你想要的搜索结果了吗?
是的
没有找到

Linux内核书籍

Linux设备驱动》   --  也就是我们所说LDD3了; 适合一定基础的人阅读,深入学习Linux不可或缺知识; 《UNIX环境高级编程》 这本书并不是面对linux内核书,但是我是从最基础看这本书逐步入门...; 《Linux内核完全剖析》 本书对早期Linux内核(v0.12)全部代码文件进行了详细、全面的注释和说明,旨在帮助读者用较短时间对Linux工作机理获得全面而深刻理解,为进一步学习和研究Linux...虽然选择版本较低,但该内核已能够正常编译运行,并且其中已包括了Linux工作原理精髓。...《Linux那些事》 由复旦一群大神所写,团队为fudan_adc,主要写了我是xxx系列,本人比较喜欢对USB 部分描述,不得不说大神就是大神。...《Linux设备驱动开发详解》 由华清远见出身大神所写,宋宝华大神所写,华清远见出来技术杠杠。 《深入理解计算机操作系统》 当然啦,不得不说大学学过操作系统啊!!!!

3.8K60

书中学编程:挑选有关编程书籍

毋庸置疑,经典编程书籍仍然是开发者学习编程和提升能力不错资源。 真正问题是,您该如何去挑选适合自己编程书籍呢?...我有几个忠告可以帮助您在市场上纷杂编程书籍中,找到您所需要编程书籍,我在后面的文章中也会推荐几本经典编程书籍给有兴趣学习计算机编程和软件开发的人。...快速甄别 阅读TOC(目录)是甄别编程书籍质量高低最好起点。如果目录中没有囊括您所想学习主题,那么其正文部分很可能会粗制滥造,不会对您有太大帮助。...摒弃糟粕 最糟糕选书方式莫过于单单凭借标题或者封面去选购编程书籍,但是有很多程序员仍旧习惯以这种方式去挑选编程书籍,殊不知唯一能从封面上获得有价值信息只有作者资质和本书主题。...根据编程书籍美誉度进行甄选也相当重要,但书籍质量和出版商或丛书声誉并不会有直接关系,任何出版商都可能会生产出劣质书籍,甚至精品丛书中也难免会出现个别劣质书籍,只根据出版商声誉选购书籍很少能保证高质量书籍或内容满足您需求

79790

设计模式、重构、编程规范等经典书籍书籍推荐

有关设计模式、重构、编程规范等经典书籍很多,有很多你应该已经听说过、甚至看过。今天,我就结合我经验,对这些书籍进行一个整理和点评。...如果你特别想系统地学一下的话,看看这本书也完全足够了。 5.《代码大全》 这是一本有近千页大部头。不过,这本书讲东西很杂,不是很聚焦,涵盖了软件开发方法、编程技巧、编码规范、重构等等诸多方面。...它主要是讲编码规范,除此之外,还讲到了一些有关设计原则、单元页游测试、并发编程东西。因为内容比较侧重编码规范,所以每个知识点都非常明确,能够很容易落地指导你开发,能够立竿见影地改善你代码质量。...我推荐本书原因倒不是说书里面的内容有多真知灼见、让人耳目一新,而是这本书内容总结得非常全面,很适合帮你去做一个整体、系统梳理。 9....,能真正提升你代码能力,让编程内功转化为直接开发生产力。

6.1K20

Github开源免费编程书籍

) 极客学院 计蒜客 大数据 Spark 编程指南简体中文版 大型集群上快速和通用数据处理架构 大数据/数据挖掘/推荐系统/机器学习相关资源 数据挖掘中经典算法实现和详细注释 操作系统 Debian...Guide for Complete Beginners Linux 构建指南 Linux 系统高级编程 Linux工具快速教程 Mac 开发配置手册 Operating Systems: Three...University UNIX TOOLBOX 命令行艺术 嵌入式 Linux 知识库 (eLinux.org 中文版) 开源世界旅行手册 深入分析Linux内核源码 理解Linux进程 鸟哥 Linux...私房菜 基础学习篇 鸟哥 Linux 私房菜 服务器架设篇 数据库 Redis 设计与实现 The Little MongoDB Book 中文版 智能系统 一步步搭建物联网系统 正则表达式...Elasticsearch(中文版) Puppet 2.7 Cookbook 中文版 编程艺术 取悦工序:如何理解游戏 (豆瓣阅读,免费书籍) 每个程序员都应该了解内存知识(译)【第一部分】

7.6K40

Linux编程系统僵尸们)

下图给出Linux进程从被创建(生)到被回收(死)全部状态,以及这些状态发生转换时条件: ?...3,刚被创建进程都处于“就绪”状态,等待系统调度,内核中函数sched( )被称为调度器,他会根据各种参数来选择一个等待进程去占用CPU。...进程占用CPU之后就可以真正运行了,运行时间有个限定,比如20毫秒,这段时间被称为time slice,即“时间片”概念。时间片耗光情况下如果进程还没有结束,那么会被系统重新放入等待队列中等待。...当进程所等待资源变得可获取时,又会被系统置为TASK_RUNNING状态重新就绪排队。...5,当进程收到SIGSTOP或者SIGTSTP中其中一个信号时,状态会被置为TASK_STOPPED,此时被称为“暂停态”,该状态下进程不再参与调度,但系统资源不释放,直到收到SIGCONT信号后被重新置为就绪态

1.3K20

分享Go书籍-《Go Web编程

最近几天在看一本Go书籍,看了100来页,感觉不错,分享给大家。...书籍基本信息 书籍信息: 书名:Go Web编程 作  者:(新加坡)郑兆雄(Sau Sheong Chang) 著;黄健宏 译 著作 定  价:79 出 版 社:人民邮电出版社 出版日期:2017年12...本书通过大量实例介绍核心概念(如处理请求和发送响应、模板引擎和数据持久化),并深入讨论更多不错主题(如并发、Web应用程序测试以及部署到标准系统服务器和PaaS提供商)。...本书以一个网络论坛为例,讲解如何使用请求处理器、多路复用器、模板引擎、存储系统等核心组件构建一个Go Web应用,然后在这一应用基础上,构建出相应Web服务。...Sau Sheong Chang),既是新加坡能源有限公司数字技术总裁,也是Ruby社区以及Go社区活跃贡献者,著有《Go Web编程》《R和Ruby数据分析之旅》等4 部著作。

82300

Linux系统编程基础

Linux不是一个具体操作系统,而是一类操作系统总称,具体版本成为发行版。...Red Hat:目前被IBM收购,收费版,目前最大Linux供应商 CentOS: Red Hat退出免费版 Ubuntu:界面比较友好 虚拟机 学习Linux系统,就需要有一个可用Linux系统...我们也不能将自己系统换成Linux系统,因为Linux系统并不适合日常办公使用,所以我们需要借助虚拟机来获得可用Linux系统环境进行学习。 什么是虚拟机?...借助虚拟化技术,我们可以在系统中,通过软件:模拟计算机硬件,并给虚拟硬件安装真实操作系统。 这样,就可以在电脑中,虚拟出一个完整电脑,以供我们学习Linux系统。...对于操作系统使用,有2种使用形式: 图形化页面使用操作系统 以命令形式使用操作系统 不论是Windows还是Linux亦或是MacOS系统,都是支持这两种使用形式。

10410

工具 | 编程书单:十本Python编程语言入门书籍

本文与大家分享一些Python编程语言入门书籍,其中不乏经典。我在这里分享,大部分是这些书英文版,如果有中文版我也加上了。有关书籍介绍,大部分截取自是官方介绍。...评语:初学者入门Python一本好教材 适合对计算机了解不多,没有学过编程,但对编程感兴趣读者学习使用。...这本书以习题方式引导读者一步一步学习编程,从简单打印一直讲到完整项目的实现,让初学者从基础编程技术入手,最终体验到软件开发基本过程。...和其他编程设计语言书籍不同,它不拘泥于语言细节,而是尝试从初学者角度出发,用生动示例和丰富练习来引导读者渐入佳境。 Python入门(Introducing Python) ?...《Python入门》容易理解而且读起来幽默风趣,对于编程初学者和Python语言新手而言是理想书籍

2.2K80

linux系统编程(3)

[3]信号 (2)System 5 IPC对象进程间通信方式   [1]消息队列   [2]共享内存   [3]信号灯集 (3)socket通信 (4)Android系统中增加...Binder进程间通信方式 Linux 支持以上所有进程间通信方式 三 管道进程间通信 (1)无名管道 特点: 只能用于具有亲缘关系进程间通信(具有亲缘关系进程具有数据拷贝动作...返回值: 成功返回0,失败返回-1 (2)管道读写规则  读端存在  ,写管道 ---->只要管道没有满,都可以写入数据到管道 读端不存在,写管道 ---->此时写管道没有意义,操作系统会发送...,返回值0 (3)有名管道 特点:可以用于任意进程间通信,它是一种特殊文件,在文件系统存在名字,      而文件中存放数据是在内核空间,而不是在磁盘上 1.创建一个有名管道文件...  子进程状态发生改变时候,操作系统向父进程发送SIGCHLD,默认对它处理方式是忽略 typedef  void (*sighandler_t)(int); sighandler_t signal

1K20

Linux系统进程编程(二)

哈哈哈,听到僵尸两个字是不是有点小害怕,言归正传,在Linux系统中,我们要明白:进程在运行时是需要消耗系统资源(内存、IO),进程终止时理应完全释放这些资源(如果进程消亡后仍然没有释放相应资源则这些资源就丢失了...),所以linux系统设计时规定:每一个进程退出时,操作系统会自动回收这个进程涉及到所有的资源(譬如malloc申请内容没有free时,当前进程结束时这个内存会被释放,譬如open打开文件没有close...但是操作系统只是回收了这个进程工作时消耗内存和IO,而并没有回收这个进程本身占用内存(8KB,主要是task_struct和栈内存),因为进程本身8KB内存操作系统不能回收需要别人来辅助回收,因此我们每个进程都需要一个帮助它收尸的人...同时,linux系统规定:所有的孤儿进程都自动成为一个特殊进程(进程1,也就是init进程)子进程。...\n", getpid()); return 0; } 输出结果: 说明:这里父进程先运行死掉了,但是我们后面并没有发现特殊进程init为1,而是908,这其实是跟ubuntu系统有关系,真实是为

1.7K10

Linux系统编程Linux背景知识

这是操作系统根本要义!! Linux操作系统是一个免费且开源操作系统,它基于Unix操作系统。...操作系统可以分为不同类型,常见操作系统包括Windows、macOS、Linux等。 2.Linux发展史 在这里简要介绍Linux发展史。要说Linux,还得从UNIX开始介绍。...此外,Linux还应用于嵌入式系统、超级计算机、云计算等领域,展示了其广泛适用性和灵活性。 目前,Linux已经成为全球最流行操作系统之一。...但是,从系统整体功能、性能来看,Linux桌面系统与Windows系列相比还有一定差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件丰富程度等方面。...企业已经使用Linux操作系统进行云计算、大数据平台构建,目前,Linux已开始取代Unix成为最受青睐云计算、大数据平台操作系统

12010

Linux系统编程:基本IO系统调用

文件描述符 表示 宏 0 标准输入(stdin) STDIN_FILENO 1 标准输出(stdout) STDOUT_FINENO 2 标准错误(stderr) STDERR_FILENO 遵循Linux...open()系统调用 对文件进行读写之前,必须先打开文件。Linux提供了系统调用open()。...read()系统调用 文件打开后,就能够读文件了。read()是最基础、最常见读取文件机制。...系统调用write()时,数据从用户空间缓冲区中拷贝到了内核空间缓冲区,但并没有立即把数据写入磁盘中,这称为延迟写。延迟写问题在于,如果在数据真正写入磁盘之前系统崩溃了,则数据可能丢失。...内核设置了一个时间,在该时间内将内核空间缓冲区上数据写入磁盘,该时间称为"最大存放时效"。Linux系统也支持强制文件立即写入磁盘上,这在后面介绍。

3K30

【高级编程Linux read系统调用

比如 fork、clone、execve、exit等 那为什么一定要用系统调用来访问操作系统内容呢,其实这可以看做对内核保护,linux分为用户空间和内核空间,而用户空间是不允许访问内核空间数据...引入 cache 层目的是为了提高 linux 操作系统对磁盘访问性能。 Cache 层在内存中缓存了磁盘上部分数据。...文件page cache结构 在 Linux 操作系统中,当应用程序需要读取文件中数据时,操作系统先分配一些内存,将数据从存储设备读入到这些内存中,然后再将数据分发给应用程序;当需要往文件 中写数据时...Linux内核中文件预读算法具体过程是这样:对于每个文件第一个读请求,系统读入所请求页面并读入紧随其后少数几个页面(不少于一 个页面,通常是三个页面),这时预读称为同步预读。...缓存目标是任何基于页对象,这包含各种类型文件和各种类型内存映射。为了满足普遍性要求,linux使用定义在linux/fs.h中结构体address_space结构体描述页高速缓存中页面。

6.1K110

Linux系统编程fork详解

如果返回pid_t等于0的话表示当前进程是子进程,如果返回pid_t是大于0数说明当前进程是父进程,如果返回-1说明出错并设置errno。...其中父进程id为3912,子进程id为3913,其中父进程父进程应该为终端进程,id为2149。  ...最开始linux创建子进程实现方法是在子进程创建时就直接将父进程所有内容复制到子进程中,但是这一操作会造成不必要资源和时间消耗。所以就有了读时共享,写时复制机制。...系统会为子进程创建其自己4G虚拟内存,而虚拟内存又分为内核内存和用户内存,大小比为1:3。子进程虚拟地址映射了父进程虚拟地址所指向物理内存,所以父子进程实际上共享了同一块物理内存。...那么对于父子进程来说它们应该是两个独立进程,所以当父子进程对物理内存进行读操作时,二者是共享,但是如果父或子进程要进行写操作时候,此时父进程才会将要操作内容复制给子进程。

2.2K30

Linux系统下进程编程(一)

,记得刚开始学编程时候,那时候就是从这里开始萌芽。那么写了这么多函数,为啥要从这里开始“进门”呢,个人理解就是一种规定。...main()函数: 然而在我们Linux系统里面编程,它也是要准备一些前期工作:它要有编译链接时引导代码-------操作系统应用程序其实在main执行前也需要先执行一段引导代码才能去执行main...另外,这里可执行文件既可以是二进制文件,也可以是Linux下任何可执行脚本文件。)来运行)加载器负责将这个程序加载到内存中去执行这个程序。...在我们Linux系统有一些函数可以获得进程号:getpid(获得当前进程ID)、getppid(获得父进程ID)、getuid(获取当前进程用户ID,比如root用户或是普通用户)、geteuid(...它一般在Linux启动时开始执行,系统关闭时才结束。

2.5K10

Linux系统编程】进程状态

因为这两个状态是操作系统中进程比较核心两个状态,当然还有一个运行状态它相对比较好理解,我们后面针对具体Linux操作系统去讲解。...当然如果我们去看一些操作系统书籍或去网上搜进程状态: 可能大部分都是这种 有的可能会有挂起状态。...而我们上面了解内容其实就是基于操作系统这门课程来说,可以认为它对于所有具体操作系统都是成立,可能比较抽象。 而我们下面呢,要针对一款具体操作系统——Linux来学习一下进程状态。...看看Linux内核源代码怎么说 一个进程可以有多个状态(在Linux内核里,进程有时候也叫做任务),那首先我们可以来看一下在kernel源代码里关于进程状态定义: /* * The task state...所以,为了方便子进程退出后父进程或操作系统获取该进程退出结果,Linux进程退出时,进程一般不会立即死亡,而是要维持一个Z状态即——僵尸状态。 等这个进程真正被回收了,它状态就会变成X死亡状态。

18810

Linux系统编程】操作系统概念、定位 及系统调用

这个我们之前也提过,操作系统是一款进行软硬件管理软件! 概念: 任何计算机系统都包含一个基本程序集合,称为操作系统(OS)。...比如校长告诉辅导员,让他下周一举办一个编程大赛,然后辅导员去落实,去准备,最后我们学生去执行。...那同样,对于操作系统来说: 我们能直接访问或修改操作系统内部东西吗? 当然是不行,操作系统给我们提供服务,但是他不相信任何人。...所以,和银行做法类似: 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己部分接口,供上层开发使用,这部分由操作系统提供接口,叫做系统调用。...比如有些操作系统上有人就基于系统调用接口写了图形化界面,有的操作系统设计者就基于系统调用接口写了shell和工具集,还有比如C语言里面的一些库函数或者Linux一些命令,我们可以直接使用,但他底层可能就是去调用对应系统调用去完成对应操作

14010
领券