WolfgangMauerer《深入Linux内核架构》作品简介与读书感悟

喜欢的可以收藏转发加关注计算机行业发展非常快,大学里的教育基本都跟不上实际的社会需求。如果你所在的学校还在指定大家使用谭浩强的教材,或使用VC6.0来教大家上机实验,那你不妨看看本文,这里有一些建议可

喜欢的可以收藏转发加关注

计算机行业发展非常快,大学里的教育基本都跟不上实际的社会需求。如果你所在的学校还在指定大家使用谭浩强的教材,或使用VC6.0来教大家上机实验,那你不妨看看本文,这里有一些建议可以帮助你不会脱离社会太远。

链接: https://pan.baidu.com/s/1yRF9TEhTOntTjtSjCElkfw 提取码: dq13 书名:深入Linux内核架构 作者:Wolfgang Mauerer 译者:郭旭 豆瓣评分:9.0 出版社:人民邮电出版社 出版年份:201005 页数:1038 内容简介:众。

考虑到这是一个过来人感觉很基础,但是对于初学者又觉得困难重重的问题,我想如果这篇文章要想写得不让你觉得专业名词扎堆,内容高深莫测,读完还是不知所云,那最好的办法也许是,我们通过沟通的方式把整个「C语言应该怎么学」的问题由小及大的展开,慢慢来谈。

在开始之前,我们先来做一个小测试。

一、小测试,你准备好学习C语言了吗?

1. 你是否听说过二进制数,他们是如何进行运算的?(基本的数的进制知识)

2. 你能说出一个最小的计算机系统由哪些部分构成吗?(基本的计算机结构知识)

3. 计算机是如何存储图像的? (数字化原理)

上面这三个问题,能回答的同学举手。如果你举手了,那么我们进入下阶段的讨论,否则,我将告诉你,你现在最重要的事情,是赶紧找一本《计算机科学导论》把预备知识补充好。

因为——

C语言说到底是一门以内存为中心的编程语言,你能不能学懂它,其实很大程度上不是取决于你智商高低,而是你是否拥有扎实的计算机结构、存储、运算原理方面的知识!!

在这里,我想强调,任何新知识的学习都是有一定的前提条件的。C语言学习的前提条件就是,对计算机系统要有一个整体的,科学的基础认识。 脱离了这个基础认识,一切都很困难。

所以,有些同学学不会C语言,不是因为他们智商不行,而是因为他们没有准备好。

WolfgangMauerer《深入Linux内核架构》作品简介与读书感悟

在这篇文章的最后,我推荐了一本我曾经读过的《计算机科学导论》。这本书可以说是我的启蒙书,我读过,真心觉得好,所以推荐给需要的同学。

好了,接下来我们进入C语言的学习过程。

二、学C语言到底学些什么—— 「语法」和「函数库」

C语言学习的关键,是要先搞明白,学C语言到底是在学些什么?

所谓「语法」,就是入门教材里最着重讲解的内容。也就是那些所谓的变量、数据类型、分支判断、循环、函数、指针等等。

这些内容比较枯燥,但是好消息是这些内容并不难,都是一些格式化的东西。只要你多练习,就会自动的刻在你的脑子里,成为一种下意识的习惯。

但是 「语法」本身其实没什么用。因为它只是一种格式规范,你学得再好,也不能引导你写出厉害的程序。因为在软件设计中,实际上最核心的部分还是在于其 「函数库」部分。

什么是 「函数库」?

简单来说,函数库就是别人编写好的C函数,直接提供给你用,你只要调用里面的函数,就能实现一定的功能。例如 printf() 函数,你肯定知道,只要调用这个函数,你就能够在那个黑糊糊的窗口里显示一段文字。你并不明白 printf() 的内部工作原理,但是你知道你只要按照说明去调用,就能够实现对应的功能。

这就是函数库——别人写好的,打包送到你面前,你可以自由调用来做各种各样的事情的函数集合。

诶?你从来没听说过还有这些东西?课本里也没提到?

那是因为你看的是入门教材,着重讲解语法,顺带提到了少量的 C 语言自带的库函数而已。事实上 C 语言包含的库函数本身就有不少,但是更多更强大的还是许多第三方库函数,例如我上面提到的这些。

重点是在于,我想告诉你,库函数才是你学习C语言并将其应用于实际的关键!!

学会调用别人的库函数,甚至写出自己的库函数,都是极其重要的。因为一个函数,本质上就是一个功能单位。你拥有的基础设施越多,你的发挥空间越大。道理就是这么简单。这就是我需要向大家强调的第二个观点,要想写出实用的C程序,一大关键就是研究并学会使用各种库函数。

你看见隔壁王二写了个三维程序能让一个彩色的立方体在空中旋转?快找 OpenGL 库函数来用。什么?刘大宝写了个网络软件能在局域网里聊天?快找 Socket 库来用。

看见了吗?库函数有多重要?

但是,函数库的学习并不是孤立的。许多库函数背后需要一定的领域知识支撑。同样如我第一个观点所述,需要预备知识。学懂一个函数库,代表的不仅仅是明白如何调用那么简单, 而更反映了我们对一个特定领域——网络、数字图像、密码学、操作系统等的认识。

三、基本的学习过程与一般规律

高教版计算机等级考试二级C语言教程就可以

如我前面所述,C语言学习主要是以语法入门,然后到函数库。再具体一些来说,包括以下阶段:

1. 学习基础语法

《深入Linux内核架构》(Professional Linux Kernel Architecture, Wolfgang Mauerer)3、应用 《UNIX网络编程》(Unix Network Programming, W. Richard Stevens)《UNIX环境高级编程》(Advanced Programming in the UNIX 。

2. 学习简单的少数几个C语言自带的函数

3. 学习一些程序设计的基础知识(数据结构,算法)

4. 学习更多更强大的C语言自带的函数

5. 学习一些特定应用领域的基本理论知识(操作系统,数据库,网络,图像……)

6. 应用上一阶段学习的到知识进一步学习其他人提供的函数库(网络处理、操作系统管理、图像、密码学等等)

对于本科阶段的同学来说,着重学好1-4,有选择的学习一下5-6,做一些小作品出来,就已经非常非常不错了。这就是一般的学习规律。说得很简短,但是要做到真的很不容易。

四、书籍推荐

基础(C语言入门,初学,编程基础)

1. 《C语言程序设计:现代方法》(第2版)(C Programming: A Modern Approach,2nd Edition,K.N.King)

Device Driver, 3rd Edition, Jonathan Corbet et al)《深入Linux内核架构》(Professional Linux Kernel Architecture, Wolfgang Mauerer)应用 《UNIX环境高级编程》(Advanced Programming in the UNIX Environment, W. Richard 。

2. 《深入理解计算机系统》(修订版或第2版)(Computer Systems: A Programmer's Perspective,Randal E. Bryant et al),阅读建议

3. 《C语言程序设计》(第2版)(The C Programming Language,Brian W. Kernighan & Dennis M. Ritchie)

4. 《程序员修炼之道》(The Pragmatic Programmer: From Journeyman to master,Andy Hunt & Dave Thomas)

《深入Linux内核架构》(Professional Linux Kernel Architecture, Wolfgang Mauerer)应用 《UNIX环境高级编程》(Advanced Programming in the UNIX Environment, W. Richard Stevens)《UNIX网络编程》(Unix Network Prog。

内核/驱动

1. 《Linux内核设计与实现》(第3版)(Linux Kernel Development,3rd Edition,Robert Love)

2. 《Linux设备驱动程序》(第3版)(Linux Device Driver,3rd Edition,Jonathan Corbet et al)

3. 《深入Linux内核架构》(Professional Linux Kernel Architecture,Wolfgang Mauerer)

应用

1. 《UNIX环境高级编程》(Advanced Programming in the UNIX Environment,W. Richard Stevens)

2. 《UNIX网络编程》(Unix Network Programming,W. Richard Stevens)

进阶

1. 《C陷阱与缺陷》(C Traps and Pitfalls,Andrew Koenig)

WolfgangMauerer《深入Linux内核架构》作品简介与读书感悟

2. 《C专家编程》(Expert C Programming,Peter van der Linden)

3. 《ARM嵌入式系统开发:软件设计与优化》(ARM System Developer's Guide: Designing and Optimizing System Software,Andrew Sloss et al)

学习C/C++的伙伴可以转发+私信回复小编“学习”领取全套免费C/C++学习资料

上一篇 2022年12月31 11:02
下一篇 2023年06月05 04:06

相关推荐

  • 电信卡怎么激活,电信新卡怎么在手机上激活

    iPhone卡贴机作为特殊的iPhone机型,一直是很多用户又爱又恨的存在,特别是电信卡用户,老司机就不说了,因为都懂,但是新手小白就很苦恼了。花了钱买到手的卡贴机iPhone,却不知道怎么用电信卡激

    2023年01月15 222
  • adobe怎么卸载,Adobe产品卸载不了

    Adobe产品卸载不了,很多Mac用户都在烦恼Adobe软件总是卸载不彻底,导致新版本的软件安装不上,怎么办?AdobeCreativeCloudCleanerToolforMac就可以帮您解决这个问

    2023年05月15 207
  • 微信怎么设置正在输入,微信有统计消息条数的功能吗

    随着时代的发展和社会的进步,智能手机基本上是“人手一部”了。无论是男女老少,都有属于自己的一部手机,甚至可以说,如果你没有手机的话,微信有统计消息条数的功能吗,都很难在这个社会“存活”了,因为现在线上

    2023年05月23 260
  • 怎么设置自动回复,很扎心的QQ自动回复

    很扎心的QQ自动回复,淘宝自动回复可谓是卖家/客服必备的技能,在每天接待顾客的过程中,一些被顾客常问的问题都可以使用到自动回复,省时省力。那淘宝自动回复怎么设置呢?下面就跟着小编一起来看看吧!(更多详

    2023年01月15 220
  • 苹果平板怎样截图,ipad

    “买前生产力,买后爱奇艺”,这是购买iPad用户对其的总结。截屏,而其实,iPad是被苹果当成生产力工具来打造的,其中有许多提高效率的操作技巧,就如常用到的截屏,iPad就有高达7种方法!那么,iPa

    2022年12月29 218
  • 怎么切换键盘,小键盘功能键切换

    很多朋友工作生活中,经常要在电脑、手机还有平板之间切换,特别是需要打字的时候会特别不方便,一会儿用键盘、一会儿用屏幕,既费时间又容易出错。之前我看到市面上有支持多设备连接的键盘挺好用,最近我也尝试了一

    2023年06月04 265
  • 怎样可以查询关机后谁打电话了,关机漏接电话怎么查询

    现在每个人都离不开手机,但手机没有电或没有信号导致的漏接电话也时有发生。但一个小小的一通电话漏接,小则产生误会,大则影响一单生意。其实三家运营商,为了解决这个问题,也推出了相关服务,最初是为了用户在手

    2023年01月05 295
  • 大王卡QQ怎样免流量,大王卡免流量为什么还走流量

    周末去郊游啦!拍了那么多美美的照片却因为没有流量不能发;心塞~本想野餐时放首嗨皮的歌应下景。却因为没有流量不敢在线播放;心痛~赶紧用腾讯大王卡,近200款APP畅享!感受非一般的周末~大王卡月套餐29

    2023年01月07 292
  • 路由器怎么改ip地址,手机怎么手动改路由器IP地址

    没WiFi,不成活!手机和WiFi之间,就像空调加棉被,谁也离不开谁。图片来源于网络如今WiFi已经填满了我们生活的每个角落,很难想象,如果哪天没了网,世界会变成什么样!可是家里的WiFi是越用越慢,

    2023年05月18 233
  • 怎么在百度上发布信息,我想在百度发布信息

    自动发布软件是一款非常实用的工具,我想在百度发布信息,它可以帮助企业、博客、个人等快速、便捷地发布信息,提高信息的传播效率和覆盖面。同时,自动发布软件也可以减轻人工发布的工作负担,提高工作效率,节省时

    2023年05月29 214
  • 爱普生打印机怎么安装,爱普生打印机滴滴响吸不进纸

    一直以来在办公打印的话题上,用激光还是用喷墨都是讨论最热烈的话题。有人说用喷墨因为喷墨有彩打,有人说当然选激光因为激光不堵头,其实都不尽然。今天我们就选择在日常办公中最常见的黑白文档打印,拿两款200

    2023年05月14 225
  • 台电固态硬盘怎么样,台电的固态硬盘靠谱吗

    2021年了,SSD固态硬盘早已成了主机的标配装备,而对于那些还在使用老电脑的用户来说,如果想提升电脑性能,最简单直接的方法就是加装SATASSD,虽然在性能上不及目前的NVMeSSD,但是相比HDD

    2023年06月04 288
  • 怎样知道qq匿名是谁

    QQ的匿问我答有不少小伙伴都在玩,每天都能看到各种的匿名提问。不过相信大家一定都有同一个问题,那就是QQ匿问我答怎么看谁问的?QQ的匿名提问可以知道是谁吗?下面小编也为大家带来了详细的解答,我们一起来

    2023年01月04 221
关注微信