- عنوان: SYSTEM PROGRAMMING IN LINUX
- نویسنده: Stewart Weiss
- حوزه: برنامه نویسی سیستمی
- سال انتشار: 2026
- تعداد صفحه: 1051
- زبان اصلی: انگلیسی
- نوع فایل: pdf
- حجم فایل: 4.68 مگابایت
داستان این کتاب به سال ۱۹۸۳ برمیگردد. در آن سال، من دانشجوی کارشناسی ارشد در موسسه علوم ریاضی کورانت در دانشگاه نیویورک بودم. کورانت، همانطور که نامیده میشد، ایستگاههای کاری سان میکروسیستمز را خریداری کرده بود که برکلی نرمافزار توزیع ۴.۱، نسخه اولیه یونیکس، را اجرا میکردند. پس از یادگیری اصول اولیه یونیکس، مدت زیادی طول نکشید که به یونیکس روی آوردم. وقتی در سال ۱۹۸۷ برای تدریس تمام وقت در کالج هانتر استخدام شدم، یک شبکه کوچک یونیکس با کامپیوترهای تحقیقاتیام راهاندازی کردم. نمیتوانستم تصور کنم که بدون یک سیستم یونیکس که به من کمک کند، بتوانم به طور موثر کار کنم. مدتی بعد، تصمیم گرفتم که دانشجویانم نیز باید این فرصت را داشته باشند که یاد بگیرند چگونه در یک محیط یونیکس کار کنند. استدلال کردم که اگر این برای من چیز خوبی است، پس میتواند برای آنها نیز چیز خوبی باشد. در آن زمان زیاد به این موضوع فکر نمیکردم، اما به چیزی تبدیل شده بودم که امروزه مردم آن را مبلغ یونیکس مینامند. در سال ۱۹۹۶، دوست عزیزم متیو اسموسنا در حال تدریس یک دوره مقدماتی در مورد استفاده از ابزارهای یونیکس و اسکریپتنویسی در دانشگاه نیویورک بود و لطف کرد و یادداشتها و اسلایدهای سخنرانی خود را با من به اشتراک گذاشت. با استفاده از یادداشتهای او به عنوان نقطه شروع، در سال ۱۹۹۷ یک دوره مشابه در کالج هانتر ایجاد کردم. متیو در آن سال به طور غیرمنتظرهای درگذشت، اما قدردانی من از او همچنان ادامه دارد. این دوره به عنوان یک آموزش در مورد مجموعهای نسبتاً بزرگ از ابزارهای یونیکس، از ابزارهای فیلتر متن مانند sed، awk و grep گرفته تا اسکریپتنویسی پوسته و کمی پرل، و مروری بر سیستم عامل یونیکس و ساختار آن، آغاز شد. بسیاری از دانشجویانی که به آنها تدریس میکردم پس از فارغالتحصیلی به من مراجعه کردند و از من به خاطر دادن فرصت یادگیری یونیکس تشکر کردند، زیرا به همین دلیل اولین شغل خود را به دست آورده بودند. بسیاری از دانشجویان میخواستند آن را عمیقتر یاد بگیرند، بنابراین در سال ۲۰۰۱، این دوره را به مقدمهای بر برنامهنویسی سیستم در یونیکس تبدیل کردم. هدف من تدریس دورهای در برنامهنویسی سیستم یونیکس بود که برای هر دانشجوی علوم کامپیوتر که یک سال برنامهنویسی (در آن زمان در C++) گذرانده بود و در کلاس سیستمهای عامل شرکت کرده بود، قابل دسترسی باشد. من شروع به قرار دادن تمام یادداشتهای سخنرانیام در وبسایتم کردم و از مردم سراسر جهان به خاطر در دسترس قرار دادن آنها، یادداشتهای تشکر دریافت کردم. دریافت این نوع بازخورد خوب بود، اما در عین حال، باعث شد متوجه شوم که چون یادداشتها بسیار قابل مشاهده بودند، باید آنها را کامل کنم. در نهایت، تمرکز روی یونیکس بیشتر به لینوکس، نوع رایگان و متنباز آن، تبدیل شد، زیرا دانشجویان بیشتری آن را به عنوان اولین انتخاب خود برای سیستم عامل انتخاب میکردند. سپس مطالب به ترکیبی از مفاهیم یونیکس و رابطهای برنامهنویسی مخصوص لینوکس تبدیل شد. با محبوبیت بیشتر این دوره در بین دانشجویان سطح متوسط، آن را دوباره طراحی کردم تا دوره سیستمهای عامل دیگر پیشنیاز نباشد. این تغییر به دانشجویانی که مهارتهای برنامهنویسی خوبی داشتند و تمایل صادقانهای برای یادگیری و تسلط بر مطالب داشتند، اجازه میداد. در طول سالهای تدریسم، متوجه شدهام که اکثر، اگر نگوییم همه، دانشآموزان فقط در صورتی برنامهنویسی را یاد میگیرند که فرصتی برای نوشتن برنامههای زیاد و دیدن مثالهای زیاد از هر مفهوم یا رابط کاربری در حین آموزش ما داشته باشند. تحقیقات زیادی در مورد نحوه یادگیری افراد از این اصل پشتیبانی میکند. بنابراین، من همیشه برنامههای زیادی را که من آنها را برنامههای نمایشی مینامم، با دانشآموزان ایجاد و به اشتراک گذاشتهام و به آنها گفتهام که باید آنها را کپی کرده و تغییرات زیادی ایجاد کنند تا ببینند تغییرات آنها چگونه بر رفتار آن تأثیر میگذارد. برای تسهیل این امر، مجوزی را برای نرمافزار، مجوز عمومی عمومی گنو، قرار دادم که به آنها حق ایجاد تغییرات و توزیع مجدد برنامهها را میداد. هیچ چیز مانند کار عملی برای هدایت ایدهها به خانه وجود ندارد. این کتاب بر اساس این اصل الگوبرداری شده است. همچنین بر اساس این باور من است که یک معلم خوب به دانشآموزان نحوه یادگیری را آموزش میدهد.
The story of this book can trace its origins to 1983. In that year, I was a graduate student in the Courant Institute of Mathematical Sciences at New York University. The Courant, as it was called, had acquired Sun Microsystems workstations, which were running Berkeley Software Distribution 4.1, an early version of Unix. After I learned the rudiments of Unix, it didn’t take long for me to become a Unix convert. When I was hired to teach in a full-time position at Hunter College in 1987, I set up a small Unix network with my research computers. I couldn’t imagine working efficiently without a Unix system to help me. Some time later, I decided that my students should also have the opportunity to learn how to work in a Unix environment. If it was a good thing for me, I reasoned, then it could be a good thing for them too. I didn’t give much thought to it back then, but I had become what these days people would call a Unix evangelist. In 1996, my dear friend Matthew Smosna was teaching an elementary course in the use of Unix tools and scripting at NYU and was kind enough to share his lecture notes and slides with me. Using his notes as a starting point, I created a similar course at Hunter College in 1997. Matthew passed away unexpectedly that year, but my gratitude to him has endured. The course began as a tutorial on a rather large collection of Unix tools, ranging from text filtering tools such as sed, awk, and grep, to shell scripting and a smattering of Perl, to an overview of the Unix operating system and its structure. Many of the students whom I taught returned to me after graduation, thanking me for giving them the chance to learn Unix, as they had landed their first jobs because of it. Many students wanted to learn it in more depth, and so, in 2001, I converted the course to an introduction to system programming in Unix. My goal was to teach a course in Unix system programming that was accessible to any computer science student who had taken a year of programming (in C++ at the time) and who had taken a class in operating systems. I started putting all of my lecture notes on my website and began to receive thank-you notes from people around the world for making them available. It was nice to get this kind of feedback, but at the same time, it made me realize that because the notes were highly visible, I needed to perfect them. Eventually, the focus on Unix became more of a focus on Linux, the free and open source variant of it, because more and more students were making it their first choice of operating system. The material then became a blend of Unix concepts and Linux-specific programming interfaces. As the course became more popular among mid-level students, I redesigned it so that a course in operating systems was no longer a prerequisite. This change allowed students with good programming skills and a sincere desire to learn to master the material. Throughout my years of teaching, I’ve learned that most, if not all, students learn programming only if they get a chance to write lots of programs and see many examples of each concept or interface as we cover it. A lot of research on how people learn supports this principle. Therefore, I’ve always created and shared many programs, which I call demo programs, with the students and told them that they should copy them and make lots of modifications to see how their changes affect its behavior. To facilitate this, I put a license on the software, the GNU General Public License, that granted them the right to make changes and redistribute the programs. There is nothing like hands-on work to drive ideas home. This book is modeled on this principle. It is also modeled on my belief that a good teacher teaches students how to learn.
این کتاب را میتوانید بصورت رایگان از لینک زیر دانلود نمایید.
Download: SYSTEM PROGRAMMING IN LINUX
نظرات کاربران