# Dastur Nima?

Kompyuterlar dasturlarsiz hech qanday ishga qodir emas. Oddiy misol siz foydalanayotgan kompyuter ham Operatison Tizim(Windows,Mac OS) larsiz biror ishga yaramaydi. Aslida Operatsion Tizimlar ham dastur hisoblanadi. Dastur bu kompyuter bajarishi uchun dasturchilar tomonidan beriladigan buyruqlar ketma ketligi. Va bu buyruqlarni dasturchilar turli xil dasturlash tillari orqali yozishadi.

> **Dastur** - bu kompyuter bajarishi uchun dasturchilar tomonidan beriladigan buyruqlar ketma ketligi. Va bu buyruqlarni dasturchilar turli xil dasturlash tillari orqali yozishadi.

Biz foydalanadigan web-brauzer, kompyuter o'yinlari, word kabi dasturlar to'g'ridan to'g'ri kompyuterning **hardware(uskunalar)** qismi bilan aloqa qila olmaydi. Kompyuter dasturlari va kompyuterning hardware qismini bog'lab turuvchi narsa bu **Operatsion Tizim**lardir.

> **Hardware -** kompyuterni tashkil etadigan ichki qismlari. Masalan, kompyuterning ichki qismidagi qattiq disk , tezkor xotira, web-camera va boshqa shunga o'xshash qismlari.\
> **Operating System(Operatsion tizim)** - bu biz ishlatadigan dasturlar va protsessor, xotira, qattiq disklar, klaviatura kabi kompyuterning hardware qismlari o'rtasidagi to'g'ridan -to'g'ri aloqani ta'minlovchi dastur. Ha to'g'ri eshitdingiz Operatsion tizim ham dastur faqat juda quyi darajada turadigan murakkab dastur hisoblanadi. Ko'p ishlatiladigan operatsion tizimlar bular Microsoft Windows, Mac OS, Linux sistemalaridir.

Operatsion tizimlar biz foydalanadigan dasturlar bilan bog'lanishi uchun maxsus dasturlarni talab qiladi. Bu dasturlarga **device drivers**(**qurilma drayverlari)** deyiladi. Bu qanday ishlashini biroz soddalashtirilgan diagrammada ko'rishingiz mumkin:<br>

<div align="center"><img src="https://2062696785-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MkzrOIg4qdZUyKWjlT1%2F-Ml1S-LqZLpG30CdcxyE%2F-Ml1SDsxJ0_mdkcNbZ6F%2Fimage.png?alt=media&#x26;token=2cc89be0-d4e3-47fb-87e9-826e3f94a09c" alt="Sistema Arxitekturasi"></div>

Biz har doim foydalanadigan dasturlar, Operatsion tizimlar va qurilma drayverlari dasturchilar tomonidan yaratiladi. Bular ichida eng keng tarqalgani **User Applications**,ya'ni biz har kuni foydalanadigan web-browser, word , excelga kabi dasturlardir. Dasturchilar yaratgan dasturlar operatsion tizimning markaziy, eng muhim qismi bo'lgan **System Kernel** bilan to'g'ridan to'g'ri aloqa qiladi.

> **Operating System Kernel(Yadro)**  - bu kompyuter operatsion tizimining yadrosidagi kompyuter dasturi va tizimdagi hamma narsani to'liq nazorat qiladi. Bu "operatsion tizim kodining har doim xotirada saqlanadigan qismi" bo'lib, apparat(hardware) va dasturiy komponentlar o'rtasidagi o'zaro aloqani osonlashtiradi.

Ushbu tuzilishning ya'ni Dasturlar faqatgina Operatsion tizim bilan aloqa qilishining yaxshi tomoni shundaki, biz dastur yozish vaqtida hardware qismlar bilan qanday qilib aloqa qilish haqida deyarli etiborga olinmaydi. Bu Operation sistemaning vazifasi , kompyuterning istalgan hardware qismi bilan  shu qismning maxsus drayverlari orqali bog'lanadi. <br>

Masalan, esingizda bo'lsa Yangi kompyuter sotib olganinigizda kompyuterga birinchi navbatda Operatsion sistema o'rnatiladi(masalan Windows 10). Operatsion tizim o'rnatilgandan keyin etibor bergan bo'lsangiz kompyuterning karnaylari, webkamerasi, mikrofoni va shu kabi qismlari ishlamaydi. DUndan keyin esa Biror Disk yoki Usb Flash karta orqali Drayverlar to'plami o'rnatiladi va kompyuterning qurilmalari ishlashni boshlaydi. Huddi manashu holat Operatsion tizim va kompyuterning qurilma qismlari orasidagi bog'liqlikning hayotiy misoli.

Tasavvur qiling, biz ekranga **"Hi there computer (Salom Kompyuter)"** so'zini chiqaradigan dastur yozmoqchimiz. Dastlab dasturimiz so'rovni Operatsion tizimga jo'natadi. Operatsion tizim buni qurilma monitor drayveriga uzatadi va natijada dasturimiz ichidagi yozuv monitorda ko'rinadi.

![](https://2062696785-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MkzrOIg4qdZUyKWjlT1%2F-MlEyfULd08Eyu7nE9u_%2F-MlF-N42qVTftFvBA25D%2Fimage.png?alt=media\&token=1c05710d-11fa-4e2f-a9cb-84bc39fd44e9)

Avval aytganimizdek, kompyuterlar faqatgina bitta narsani tushunishi mumkin, bu ham bo'lsa  - **machine code**(mashina kodi). Mashina kodi - bu sonlar to'plami, va bu sonlarni kompyuter buyruq deb qabul qiladi. Kompyuterlar faqatgina **binary(ikkilik sanoq sistemasi)** shakldagi sonlar bilan ishlaydi, ya'ni mashina kodi faqat ikki xil sondan iborat bo'ladi, bullar 0 va 1. Rasmda ko'rib turganingiz bu mashina kodi hisoblanadi:

![Mashina Kodi](https://2062696785-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MkzrOIg4qdZUyKWjlT1%2F-MlURLQPaOk-Qapi845m%2F-MlURvSmZnVLKUkZ5D0w%2FSample-CHIP-8-machine-code-for-project-1.png?alt=media\&token=9fce993f-e421-43bb-87d9-d2cbacbd15bb)

> **Binary Numbers** - bu ikkilik sanoq sistemasida ifodalangan raqamlar ketma-ketligi, ikkilik sanoq sistemasi faqat 0 lar va 1 lardan iborat va shu sababli 2 lik sanoq sistemasi deb ataladi.\
> **Machine Code (Mashna Kodi)** -  bu kompyuterning markaziy protsessorini boshqarish uchun ishlatiladigan, mashina tili ko'rsatmalaridan tashkil topgan.

### Sanoq sistemalari nima va ular nimaga kerak?

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mtechdocs.gitbook.io/m-tech-docs/computer-sciencega-kirish/dastur-nima.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
