نوشته‌های ترمینالی
2.7K subscribers
425 photos
12 videos
32 files
2.26K links
Download Telegram
در مورد کامپایل با gcc/g++ و makefile و linking و کلی نکته جالب.
https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html
از بچگی همیشه برام سوال بود not gate چطوری کار میکنه؟
وقتی ورودیش صفره چطوری ۵ ولت تولید میکنه؟
حقیقت:
لازم نیست محیط توسعه نرم افزار jet brains رو نصب کنید تا بتونید با یه زبانی برنامه نویسی کنید.
با احتمال زیاد منقضی شده دیگه.
همین احتمال زیاد بسمونه.
آیا روشن کردن بهینه‌سازی کامپایلر ممکنه باعث باگ بشه؟
بله! چرا که نه.
البته معمولا اگه ازشون اگاه باشیم قابل پیشگیری هستند. اما خب باگه دیگه. کلا باگ رو اگر از قبل اگاه باشی پیشبینیش میکنی و باگ نیست.

جاهایی که پیش میاد ایناست:
+ وقتی که زبان undefined behavior داره. توی حالت دیباگ یه جور رفتار میکنه و شما روش حساب میکنین اما توی حالت بهینه شده یه جور دیگه کار میکنه.
+ کلا کارهای عجیب غریب کردن مثل حساب کردن روی اورفلو شدن یه متغیر کامپایلر رو گیج میکنه.

https://stackoverflow.com/a/2722330/10999348
دیتابیس‌ها (DBMSها) چطوری اطلاعات رو روی دیسک ذخیره میکنند؟
واقعیت اینه که وقتی حجم اطلاعاتمون زیاده و نیاز به پایداری داریم، نگهداریشون توی Ram امکان‌پذیر نیست و مجبوریم توی دیسک بنویسیم.
اما این DMBSها چطوری اطلاعات رو توی دیسک می‌نویسن که حداکثر کارایی رو داشته باشه؟

چیزی که خوندم (لینک هاش در پایین) اینطوریه که اطلاعات رو در یکسری بلوک ۴ کیلوبایتی نگهداری می‌کنن. این ۴کیلوبایت احتمالا یه ضریبی از بلوک های هارد دیسکه، در نتیجه هربار که یه بلوک رو بخواد، هارد دیسک هم همونقدر میخونه نه بیشتر (که باعث هدر رفتنه) نه کمتر (که باعث میشه دو یا چند بار دیسک بلوک بخونه)

علاوه بر این دیتابیس بلوک های خونده شده رو توی رم نگه میداره (تا جایی که سیستم عامل اون دیتا رو باز نبره توی هارد و page fault بشه). حتی اگه یه پیج تغییر کردی هم توی مموری می نویسه ولی یادش هست اون پیج dirty شده و بعدا دوباره می‌نویسه توی هارد.

منابع:
https://stackoverflow.com/questions/7901581/how-does-a-typical-rdbms-store-and-locate-blocks
و
https://www.quora.com/How-does-a-relational-DBMS-internally-store-its-data-In-what-type-of-data-structure-How-does-it-offer-the-rapid-retrieval-without-loading-the-entire-database-into-the-main-memory-I-have-heard-many-DBMS-use-B-trees
دوست دارید دوستاتون از طریق دیسکورد بدونن شما مشغول ادیت فایل با ویم هستین؟

این افزونه برای شماست.
https://github.com/vimsence/vimsence
Knock knock Race condition Who's there?

— I Am Devloper
همونطور که می‌دونین، هم‌روندی در گو به کمک چنل هاست.
این مدل رو میگن csp یا
communicating sequential processes

در موردش بیشتر بخونین:
https://en.wikipedia.org/wiki/Communicating_sequential_processes
به نظرم دوستانه‌ترین و واضح ترین مطلبی بود که در مورد چرا لینوکس خونده بودم.

اگر خودمم میخواستم بنویسم همین رو می‌نوشتم، فقط مثال هام با arch بود.
https://vrgl.ir/zpgFH