Computer Systems A Programmer’s Perspective ----阅读翻译日志

本书旨在帮助程序员深入了解计算机系统的组成部分及其实现原理,包括避免数值错误、优化C代码、理解编译器行为、编写Unix shell等,从而成为精通底层系统的高级程序员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

借助google 翻译读一下这本书吧,做个记录

Computer Systems A Programmer’s Perspective 简称 --CSAPP 

译文: 从程序员的角度透视计算机系统

Randal E. Bryant

Carnegie Mellon University 卡内基·梅隆大学

David R. O’Hallaron

Carnegie Mellon University and Intel Labs卡内基梅隆大学和英特尔实验室

Chapter 1 A Tour of Computer Systems

第1章计算机系统之旅

A computer system consists of hardware and systems software that work together to run application programs. Specific implementations of systems change over time, but the underlying concepts do not. All computer systems have similar hardware and software components that perform similar functions. This book is written for programmers who want to get better at their craft by understanding how these components work and how they affect the correctness and performance of their programs.

计算机系统由硬件和系统软件组成,它们一起工作来运行应用程序。 系统的具体实施随着时间而改变, 但底层的概念没有。所有的计算机系统都有相似的硬件和软件组件,执行类似的功能。本书是为希望通过理解这些组件的工作方式以及它们如何影响其程序的正确性和性能而更好地掌握其技巧的程序员编写的。

You are poised for an exciting journey. If you dedicate yourself to learning the concepts in this book, then you will be on your way to becoming a rare “power programmer,” enlightened by an understanding of the underlying computer system and its impact on your application programs.

你准备好了一个令人兴奋的旅程。 如果你致力于学习本书中的概念,那么你将成为一名难得的“大牛”通过了解计算机系统的底层及其对应用程序的影响,将对你有更多的启发。

You are going to learn practical skills such as how to avoid strange numerical errors caused by the way that computers represent numbers. You will learn how to optimize your C code by using clever tricks that exploit the designs of modern processors and memory systems. You will learn how the compiler implements procedure calls and how to use this knowledge to avoid the security holes from buffer overflow vulnerabilities that plague network and Internet software. You will learn how to recognize and avoid the nasty errors during linking that confound the average programmer. You will learn how to write your own Unix shell, your own dynamic storage allocation package, and even your own Web server. You will learn the promises and pitfalls of concurrency, a topic of increasing importance as multiple processor cores are integrated onto single chips

你将学习实用技能,例如如何避免由计算机表示数字的方式引起的奇怪数值错误。您将学习如何使用利用现代处理器和内存系统设计的巧妙技巧来优化您的C代码。您将了解编译器如何实现过程调用以及如何使用这些知识来避免困扰网络和Internet软件的内存溢出安全漏洞。您将学习如何识别和避免链接过程中令人讨厌的错误,这会让普通程序员感到困惑, 你将学习如何编写你自己的Unix shell,你会有自己的动态存储分配包,甚至你自己的Web服务器。 您将了解并发的特性和缺陷, 随着多个处理器内核集成到单个芯片上,这个话题变得越来越重要

In their classic text on the C programming language [58], Kernighan and Ritchie introduce readers to C using the hello program shown in Figure 1.1. Although hello is a very simple program, every major part of the system must work in concert in order for it to run to completion. In a sense, the goal of this book is to help you understand what happens and why, when you run hello on your system.

在C语言编程的经典文本[58]中, Kernighan和Ritchie使用图1.1中显示的hello程序向读者介绍C语言。
虽然你好是一个非常简单的程序,  该系统的每个主要部分都必须协同工作才能完成。
从某种意义上说, 本书的目标是帮助你理解当你在你的系统上运行hello时,发生了什么,为什么。

We begin our study of systems by tracing the lifetime of the hello program, from the time it is created by a programmer, until it runs on a system, prints its simple message, and terminates. As we follow the lifetime of the program, we will briefly introduce the key concepts, terminology, and components that come into play. Later chapters will expand on these ideas.

我们通过追踪hello程序的生命周期来开始我们的系统研究, 从程序员创建时开始,直到它在系统上运行,
打印它的简单信息,并终止。 当我们追随程序的生命周期时, 我们将简要介绍一些关键概念,术语和组件。 后面的章节将会扩展这些想法。

#include 
 int main() 
 { 
 printf("hello, world\n"); 
 } 

 

转载于:https://my.oschina.net/u/3267498/blog/1630847

经典计算机操作系统教材第三版,详细内容可见亚马逊。 https://www.amazon.com/Computer-Systems-Programmers-Perspective-Engineering/dp/0134123832/ref=sr_1_2?ie=UTF8&qid=1541476471&sr=8-2&keywords=computer+systems+a+programmer's+perspective Computer systems: A Programmer’s Perspective explains the underlying elements common among all computer systems and how they affect general application performance. Written from the programmer’s perspective, this book strives to teach readers how understanding basic elements of computer systems and executing real practice can lead them to create better programs. Spanning across computer science themes such as hardware architecture, the operating system, and systems software, the Third Edition serves as a comprehensive introduction to programming. This book strives to create programmers who understand all elements of computer systems and will be able to engage in any application of the field--from fixing faulty software, to writing more capable programs, to avoiding common flaws. It lays the groundwork for readers to delve into more intensive topics such as computer architecture, embedded systems, and cyber security. This book focuses on systems that execute an x86-64 machine code, and recommends that programmers have access to a Linux system for this course. Programmers should have basic familiarity with C or C++. Personalize Learning with MasteringEngineering MasteringEngineering is an online homework, tutorial, and assessment system, designed to improve results through personalized learning. This innovative online program emulates the instructor’s office hour environment, engaging and guiding students through engineering concepts with self-paced individualized coaching With a wide range of activities available, students can actively learn, understand, and retain even the most difficult concepts.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值