نکات کلیدی
1. کدها برای ارتباط بین انسانها و ماشینها ضروری هستند.
در این کتاب، واژهی کد معمولاً به معنای سیستمی برای انتقال اطلاعات بین انسانها و ماشینها است.
ارتباط کلیدی است. کدها سیستمهایی هستند که امکان انتقال اطلاعات را فراهم میکنند، چه بین افراد و چه بین انسانها و ماشینها. آنها پایهگذار ارتباط هستند و بیان و درک دادهها را ممکن میسازند.
نمونههایی از کدها:
- کد مورس: از نقطهها و خطها برای نمایش حروف و اعداد استفاده میکند.
- بریل: از نقطههای برجسته برای نمایش حروف برای افراد نابینا استفاده میکند.
- زبان گفتاری: از صداها برای تشکیل کلمات و انتقال معنا استفاده میکند.
- زبان نوشتاری: از نمادها برای نمایش کلمات بر روی کاغذ استفاده میکند.
کدها اهداف خاصی دارند. کدهای مختلف در زمینههای مختلف مفید هستند. کد مورس امکان ارتباط بیصدا در فواصل دور را فراهم میکند، در حالی که بریل امکان خواندن را برای نابینایان فراهم میآورد. انتخاب کد بستگی به نیازها و محدودیتهای ارتباطدهندگان دارد.
2. کد باینری برای کامپیوترها بنیادی است و اطلاعات را با دو حالت نمایش میدهد.
کلمه کلیدی در اینجا دو است. دو نوع چشمک زدن، دو صدای مصوت، دو چیز متفاوت، واقعاً میتوانند با ترکیبهای مناسب تمام انواع اطلاعات را منتقل کنند.
باینری نمایندگی را ساده میکند. کد باینری، با دو حالت خود (۰ و ۱)، سادهترین و کارآمدترین روش برای نمایش اطلاعات در کامپیوترها است. این حالات به راحتی با استفاده از سیگنالهای الکتریکی، سوئیچها یا سایر پدیدههای فیزیکی پیادهسازی میشوند.
تحلیل ترکیبی. با ترکیب بیتها، کامپیوترها میتوانند دامنه وسیعی از اطلاعات را نمایندگی کنند. تعداد ترکیبهای ممکن بهطور نمایی با تعداد بیتها افزایش مییابد. به عنوان مثال:
- ۱ بیت: ۲ ترکیب (۰، ۱)
- ۲ بیت: ۴ ترکیب (۰۰، ۰۱، ۱۰، ۱۱)
- ۳ بیت: ۸ ترکیب (۰۰۰، ۰۰۱، ۰۱۰، ۰۱۱، ۱۰۰، ۱۰۱، ۱۱۰، ۱۱۱)
بیتها به عنوان بلوکهای سازنده. بیت واحد بنیادی اطلاعات در محاسبات است. دادههای پیچیدهتر، مانند اعداد، متن، تصاویر و صداها، در نهایت به عنوان دنبالههایی از بیتها نمایندگی میشوند.
3. برق، که توسط سوئیچها و رلهها کنترل میشود، پایه سختافزاری محاسبات را تشکیل میدهد.
چراغ قوه قطعاً یکی از سادهترین وسایل الکتریکی است که در اکثر خانهها یافت میشود.
برق محاسبات را ممکن میسازد. جریان الکترونها از طریق مدارها، پایه فیزیکی محاسبات است. با کنترل این جریان با سوئیچها و رلهها، میتوانیم مدارهایی ایجاد کنیم که عملیات منطقی را انجام دهند.
مفاهیم پایه الکتریکی:
- ولتاژ: پتانسیل انجام کار، اندازهگیری شده به ولت.
- جریان: جریان الکترونها، اندازهگیری شده به آمپر.
- مقاومت: مخالفت با جریان الکترونها، اندازهگیری شده به اهم.
سوئیچها و رلهها به عنوان عناصر کنترل. سوئیچها به ما اجازه میدهند تا بهصورت دستی جریان برق را کنترل کنیم، در حالی که رلهها از یک سیگنال الکتریکی برای کنترل یک سوئیچ استفاده میکنند. رلهها میتوانند برای تقویت سیگنالها یا ایجاد سوئیچهای کنترل از راه دور استفاده شوند.
4. سیستمهای عددی فراتر از دهدهی، بهویژه باینری، برای سیستمهای دیجیتال حیاتی هستند.
خوشبختانه، ما نیازی به نوشتن تمام کدهای ممکن برای تعیین تعداد آنها نداریم.
محدودیتهای دهدهی. در حالی که انسانها معمولاً از سیستم عددی دهدهی (پایه ۱۰) استفاده میکنند، این سیستم بهطور ذاتی برتر از سایر سیستمها نیست. انتخاب پایه ۱۰ احتمالاً به تعداد انگشتان دست ما مربوط میشود.
سیستمهای عددی جایگزین:
- هشتدهی (پایه ۸): از ارقام ۰-۷ استفاده میکند.
- چهاردهی (پایه ۴): از ارقام ۰-۳ استفاده میکند.
- باینری (پایه ۲): از ارقام ۰ و ۱ استفاده میکند.
اهمیت باینری. سیستم عددی باینری بهویژه در محاسبات اهمیت دارد زیرا بهطور مستقیم با دو حالت سوئیچهای الکتریکی (روشن/خاموش، ۱/۰) همراستا است. این امر نمایندگی و دستکاری اعداد را با استفاده از مدارهای الکترونیکی آسان میسازد.
5. جبر بولی و دروازههای منطقی پایهگذار ریاضی برای مدارهای کامپیوتری هستند.
رله یک دستگاه شگفتانگیز است. این یک سوئیچ است، اما سوئیچی که نه با دستهای انسان بلکه با یک جریان روشن و خاموش میشود.
جبر بولی و منطق. جبر بولی، با عملگرهای AND، OR و NOT، چارچوب ریاضی برای توصیف عملیات منطقی را فراهم میکند. این عملیات میتوانند با استفاده از مدارهای الکتریکی به نام دروازههای منطقی پیادهسازی شوند.
دروازههای منطقی پایهای:
- دروازه AND: خروجی فقط زمانی ۱ است که هر دو ورودی ۱ باشند.
- دروازه OR: خروجی ۱ است اگر هر یک از ورودیها ۱ باشد.
- دروازه NOT (معکوسکننده): خروجی معکوس ورودی است.
- دروازه NAND: خروجی فقط زمانی ۱ است که هر دو ورودی ۱ باشند.
- دروازه NOR: خروجی ۱ است اگر هر یک از ورودیها ۱ باشد.
- دروازه XOR: خروجی ۱ است اگر هر یک از ورودیها ۱ باشد، اما نه هر دو.
دروازههای منطقی به عنوان بلوکهای سازنده. با ترکیب دروازههای منطقی، میتوانیم مدارهایی ایجاد کنیم که عملیات منطقی پیچیدهتری را انجام دهند. این مدارها میتوانند برای پیادهسازی عملیات حسابی، سیستمهای کنترلی و سایر وظایف محاسباتی استفاده شوند.
6. حافظه، که با فلیپفلاپها پیادهسازی میشود، به کامپیوترها اجازه میدهد تا اطلاعات را ذخیره و بازیابی کنند.
دستگاهی که ما اختراع کردهایم به نام تکرارکننده یا رله شناخته میشود.
فلیپفلاپها به عنوان عناصر حافظه. فلیپفلاپ یک مدار است که میتواند یک بیت اطلاعات را ذخیره کند. این مدار دارای دو حالت پایدار است که نمایانگر ۰ و ۱ است و میتواند با اعمال سیگنالهای ورودی مناسب بین این حالات سوئیچ شود.
انواع فلیپفلاپها:
- فلیپفلاپ R-S: فلیپفلاپ پایهای با ورودیهای Set و Reset.
- فلیپفلاپ نوع D: مقدار ورودی داده را زمانی که سیگنال ساعت فعال است ذخیره میکند.
- فلیپفلاپ نوع D با تحریک لبه: مقدار ورودی داده را فقط در لحظهای که سیگنال ساعت از ۰ به ۱ تغییر میکند ذخیره میکند.
آرایههای حافظه. با ترکیب چندین فلیپفلاپ، میتوانیم آرایههای حافظهای ایجاد کنیم که چندین بیت اطلاعات را ذخیره کنند. این آرایهها میتوانند بهصورت حافظه خواندنی/نوشتنی (RAM) یا حافظه فقط خواندنی (ROM) سازماندهی شوند.
7. میکروپروسسورها واحدهای پردازش را بر روی یک تراشه واحد ادغام میکنند و محاسبات را متحول میسازند.
اختراع تلگراف واقعاً آغاز ارتباطات مدرن را نشان میدهد.
میکروپروسسورها به عنوان CPU. میکروپروسسور یک مدار یکپارچه است که تمام اجزای ضروری واحد پردازش مرکزی (CPU) را در خود جای داده است. این شامل واحد منطق حسابی (ALU)، ثباتها و منطق کنترل است.
ویژگیهای کلیدی میکروپروسسور:
- عرض داده: تعداد بیتهایی که پردازنده میتواند در یک زمان پردازش کند (به عنوان مثال، ۸ بیت، ۱۶ بیت، ۳۲ بیت).
- سرعت ساعت: نرخ اجرای دستورات توسط پردازنده، اندازهگیری شده به هرتز (Hz).
- حافظه قابل آدرسدهی: مقدار حافظهای که پردازنده میتواند به آن دسترسی داشته باشد.
تأثیر میکروپروسسور. توسعه میکروپروسسور محاسبات را متحول کرد و امکان ایجاد کامپیوترهای کوچک، مقرون به صرفه و قدرتمند را فراهم آورد. این امر منجر به انقلاب کامپیوترهای شخصی و پذیرش گسترده کامپیوترها در تمام جنبههای زندگی شد.
8. سیستمعاملها منابع کامپیوتر را مدیریت کرده و یک رابط کاربری فراهم میکنند.
من میخواهم کد کتابی باشد که به شما این موارد را بفهماند، نه بهصورت انتزاعی، بلکه با عمق که شاید حتی با مهندسان برق و برنامهنویسان رقابت کند.
سیستمعاملها به عنوان مدیران منابع. یک سیستمعامل (OS) مجموعهای از نرمافزارها است که منابع سختافزاری یک کامپیوتر را مدیریت کرده و مجموعهای از خدمات را به برنامههای کاربردی ارائه میدهد.
عملکردهای کلیدی یک سیستمعامل:
- سیستم فایل: سازماندهی و مدیریت فایلها بر روی دستگاههای ذخیرهسازی.
- مدیریت حافظه: تخصیص و مدیریت حافظه برای برنامهها.
- مدیریت ورودی/خروجی (I/O): ارائه یک رابط استاندارد برای برنامهها برای دسترسی به دستگاههای جانبی.
- رابط کاربری: ارائه راهی برای تعامل کاربران با کامپیوتر.
نمونههایی از سیستمعاملها: CP/M، MS-DOS، UNIX، Linux، macOS، Windows.
9. استانداردهای کدگذاری کاراکتر مانند ASCII و Unicode امکان نمایندگی متن را فراهم میکنند.
اگرچه کد مورس هیچ ارتباطی با کامپیوترها ندارد، آشنا شدن با ماهیت کدها پیشنیازی ضروری برای دستیابی به درک عمیق از زبانهای پنهان و ساختارهای درونی سختافزار و نرمافزار کامپیوتر است.
کدگذاری کاراکتر ضروری است. برای نمایندگی متن در کامپیوترها، به سیستمی نیاز داریم که یک کد منحصر به فرد به هر کاراکتر اختصاص دهد. این کدها سپس بهعنوان بیتها در حافظه ذخیره میشوند.
استانداردهای کدگذاری کاراکتر:
- ASCII: یک کد ۷ بیتی که ۱۲۸ کاراکتر، از جمله حروف، اعداد، نشانهگذاری و کاراکترهای کنترلی را نمایندگی میکند.
- ASCII گسترشیافته: گسترشهای ۸ بیتی از ASCII که کاراکترهای اضافی، مانند حروف با لهجه را فراهم میکند.
- Unicode: یک کد ۱۶ بیتی که بیش از ۶۵۰۰۰ کاراکتر را نمایندگی میکند و شامل بیشتر سیستمهای نوشتاری جهان است.
اهمیت استانداردها. سیستمهای کدگذاری کاراکتر استاندارد برای اطمینان از اینکه متن میتواند بهدرستی بین کامپیوترها و پلتفرمهای مختلف تبادل و نمایش داده شود، حیاتی هستند.
10. تکامل محاسبات شامل پیشرفتی از دستگاههای مکانیکی به دستگاههای الکترونیکی است.
کدها حدود یک دهه در ذهن من جابجا شدند قبل از اینکه شروع به نوشتن آنها کنم.
از چرتکهها تا تراشهها. تاریخ محاسبات داستانی از نوآوری مداوم است، از ابتداییترین دستگاههای محاسبه مکانیکی تا کامپیوترهای الکترونیکی پیشرفته امروزی.
نقاط عطف کلیدی در تاریخ محاسبات:
- چرتکه: یک ابزار قدیمی برای شمارش.
- استخوانهای ناپیر: یک وسیله مکانیکی برای ضرب.
- پاسکالین و ماشین حساب لایبنیتس: ماشینهای حساب مکانیکی اولیه.
- بافندگی ژاکارد: از کارتهای پانچ برای خودکارسازی الگوهای بافت استفاده میکرد.
- ماشین تحلیلی بابیج: پیشدرآمد مفهومی برای کامپیوترهای مدرن.
- ماشین محاسبهگری هولریث: از کارتهای پانچ برای پردازش دادههای سرشماری استفاده میکرد.
- کامپیوترهای الکترومکانیکی: از رلهها برای انجام محاسبات استفاده میکردند.
- کامپیوترهای الکترونیکی: از لامپهای خلاء و ترانزیستورها برای انجام محاسبات استفاده میکردند.
- میکروپروسسورها: تمام اجزای CPU را بر روی یک تراشه واحد ادغام کردند.
آینده محاسبات. روند به سمت کامپیوترهای کوچکتر، سریعتر و قدرتمندتر احتمالاً ادامه خواهد یافت. فناوریهای جدید، مانند محاسبات کوانتومی و نانوتکنولوژی، ممکن است منجر به تغییرات انقلابیتری در آینده شوند.
آخرین بهروزرسانی::
نقد و بررسی
کتاب کد: زبان پنهان سختافزار و نرمافزار کامپیوتر به خاطر توضیحات قابل فهمش دربارهی نحوهی کارکرد کامپیوترها، از مفاهیم پایه تا سیستمهای پیچیده، مورد تحسین قرار گرفته است. خوانندگان از سبک نوشتاری واضح پتزلد، زمینه تاریخی و ساختار تدریجی مفاهیم قدردانی میکنند. بسیاری این کتاب را روشنگر میدانند و شکافهای موجود در درک خود از معماری کامپیوتر را پر میکند. برخی اشاره میکنند که فصلهای بعدی بیشتر جنبهی فنی پیدا میکنند و ممکن است برای مبتدیان چالشبرانگیز باشد. این کتاب به عنوان منبعی ارزشمند برای حرفهایهای فناوری و همچنین افراد کنجکاو غیرحرفهای در نظر گرفته میشود، هرچند که به دلیل انتشار آن در سال 1378، کمی قدیمی به نظر میرسد.