logo

Define bilan ishlash,

Yuklangan vaqt:

12.08.2023

Ko'chirishlar soni:

0

Hajmi:

50.5966796875 KB
Reja:
Kirish
Asosiy qism :
1. Define bilan ishlash,
2. Interfeys ishlash uchun dasturlar (figma, xd va k.k)
3. Fayl tizimlari(NTFS, FAT32, exFAT va h.k.)
4. Tarmoq protokollari
5. MD5, MD6, CRC, SHA1, SHA2  HESHLASH USLUBLARI 
6. O'z Hesh funksiyamizni yaratish.
Xulosa
Foydalanilgan adabiyotlar Kirish
Tizim   dasturchiligi   dasturchilik   va   dasturchilik   boshqaruvining   fanlararo
sohasi   bo'lib,   u   murakkab   tizimlarni   hayot   davrlari   davomida   loyihalash,
integratsiyalash   va   boshqarishga   qaratilgan   .   Asosiysi,   tizim   dasturchiligi   ushbu
bilimlarni tartibga solish uchun tizimli fikrlash tamoyillaridan foydalanadi. Bunday
sa'y-harakatlarning   individual   natijasi,   ya'ni   ishlab   chiqilgan   tizim   foydali
funktsiyani birgalikda bajarish uchun sinergiyada ishlaydigan tarkibiy qismlarning
kombinatsiyasi   sifatida   belgilanishi   mumkin.   Muvaffaqiyatli   tizimni   loyihalash,
ishlab   chiqish,   amalga   oshirish   va   yakuniy   bekor   qilish   uchun   zarur   bo'lgan
dasturchilik   talablari   ,   ishonchlilik,   logistika   ,   turli   guruhlarni   muvofiqlashtirish,
sinov va baholash, texnik xizmat ko'rsatish va boshqa ko'plab fanlar kabi masalalar
yirik   yoki   murakkab   loyihalar   bilan   ishlashda   qiyinlashadi.   Tizim   dasturchiligi
bunday   loyihalarda   ish   jarayonlari,   optimallashtirish   usullari   va   risklarni
boshqarish  vositalari   bilan   shug'ullanadi.  U  sanoat  dasturchiligi  ,  ishlab   chiqarish
tizimlari   dasturchiligi   ,   texnologik  tizim   dasturchiligi   ,  mashinasozlik   kabi   texnik
va   insoniy   yo'naltirilgan   fanlarni   bir-biriga   moslashtiradi   .ishlab   chiqarish
dasturchiligi   ,   ishlab   chiqarish   dasturchiligi   ,   nazorat   dasturchiligi   ,   dasturiy
ta'minot   dasturchiligi   ,   elektrotexnika   ,   kibernetika   ,   aerokosmik   dasturchilik   ,
tashkiliy   tadqiqotlar   ,   qurilish   dasturchiligi   va   loyihalarni   boshqarish   .   Tizim
dasturchiligi   loyiha   yoki   tizimning   barcha   mumkin   bo'lgan   jihatlari   ko'rib
chiqilishini va bir butunga birlashtirilishini ta'minlaydi. Tizim dasturchilik jarayoni
ishlab chiqarish jarayoniga o'xshamaydigan kashfiyot jarayonidir. Ishlab chiqarish
jarayoni minimal xarajat va vaqt bilan yuqori sifatli mahsulotlarga erishish uchun
takrorlanadigan   faoliyatga   qaratilgan.   Tizim   dasturchiligi   jarayoni   hal   qilinishi
kerak   bo'lgan   haqiqiy   muammolarni   aniqlash   va   yuzaga   kelishi   mumkin   bo'lgan
eng mumkin bo'lgan yoki eng yuqori ta'sir ko'rsatadigan nosozliklarni aniqlashdan
boshlanishi   kerak   -   tizim   dasturchiligi   ushbu   muammolarga   yechim   topishni   o'z
ichiga oladi.
2 1. Define bilan ishlash.
C++   dilida,   #define   komandasi   boshqa   nomlarni   belgilangan   konstantlar,
masalan,   pi,   yoki   max_value,   qo'shish   uchun   ishlatiladi.   Misol   uchun,   #define   pi
3.14 yoki #define max_value 100 kabi. Bu, xohlagan joyda boshqa kodning o'ziga
xos   joyda   konstantlarni   ishlatishga   imkon   beradi.   Bu   komanda   kompilyatorga
so'zni boshqa so'zga o'zgartirishni buyuradi va kompilyator kodni o'zgartirish bilan
o'zgaruvchan   bo'ladi.   Bu,   kodni   o'qish   va   tuzishni   osonlashtiradi   va   xatoliklarini
kamaytiradi.   Bu   komanda   yaxshi   ishlatilganda,   kodni   o'zgartirish   va   qayta
kompilyatsiyalash uchun kam vaqt sarflanadi va kodning performansini oshiradi.
#include <iostream>
#define multiply(a, b) (a * b)
int main() {
    int x = 5, y = 7;
    int result = multiply(x, y);
    std::cout << x << " * " << y << " = " << result << std::endl;
    return 0;
}
//ikki sonni kopaytirish kodi
#define komandasi bilan ikki sonni ko'paytirish kodida 'multiply' quyidagicha
ishlatilgan   (a   *   b)   va   bu   quyidagicha   ishlatilgan   (x   *   y)   va   natijani   chiqarish
(result)   va   natijani   chiqarish   (result).   #define   komandasi   kodni   o'qish   va   tuzishni
osonlashtiradi   va   xatoliklarini   kamaytiradi   va   yaxshi   ishlatilganda   kodni
o'zgartirish   va   qayta   kompilyatsiyalash   uchun   kam   vaqt   sarflanadi   va   kodning
performansini oshiradi.
#define   komandasi   bilan   tuzilgan   konstantlar   va   funksiyalar   bir   necha
avzaliklarga ega bo'ladi:
3 #define komandasi bilan tuzilgan konstantlar va funksiyalar kompilyatorning
ishga tushirish davrida tuziladi va shuning uchun kompilyatorning ishga tushirish
davrida qo'shilgan xatoliklar ko'rilmasa bo'ladi.
#define komandasi bilan tuzilgan konstantlar va funksiyalar kompilyatorning
ishga   tushirish   davrida   tuzilgan   bo'lib,   kodning   ishga   tushirish   davrida   yangi
xatoliklar yuzaga kelmasa bo'ladi.
#define komandasi bilan tuzilgan konstantlar va funksiyalar kompilyatorning
ishga   tushirish   davrida   tuzilgan   bo'lib,   kodning   ishga   tushirish   davrida   yangi
xatoliklar yuzaga kelmasa bo'ladi va bu kodni o'qish va tuzishni osonlashtiradi va
xatoliklarini kamaytiradi.
#define komandasi bilan tuzilgan konstantlar va funksiyalar kompilyatorning
ishga   tushirish   davrida   tuzilgan   bo'lib,   kodning   ishga   tushirish   davrida   yangi
xatoliklar yuzaga kelmasa bo'ladi va bu kodni o'qish va tuzishni osonlashtiradi va
xatoliklarini   kamaytiradi   va   yaxshi   ishlatilganda   kodni   o'zgartirish   va   qayta
kompilyatsiyalash uchun kam vaqt sarflanadi va kodning performansini oshiradi.
#include <iostream>
#define TEST_EQUAL(a, b) \
    if ((a) == (b)) { \
        std::cout << #a << " is equal to " << #b << std::endl; \
    } else { \
        std::cout << #a << " is not equal to " << #b << std::endl; \
    }
int main() {
    int x = 5, y = 7;
    TEST_EQUAL(x, y);
    return 0;
}
//test tuzish kodi
#define   komandasi   bilan   test   tuzish   kodida   TEST_EQUAL   quyidagicha
ishlatilgan (a == b) va natijani chiqarish (cout) va natijani chiqarish (cout). #define
komandasi  kodni  o'qish  va tuzishni  osonlashtiradi  va xatoliklarini  kamaytiradi  va
yaxshi ishlatilganda kodni o'zgartirish va qayta kompilyatsiyalash uchun kam vaqt
sarflanadi va kodning performansini oshiradi.
4 2. Interfeys ishlash uchun dasturlar (figma, xd va k.k)
Interfeys bilan ishlovchi dasturlar, kompyuter foydalanuvchilari va kompyuter
tizimlarini   boshqarish   uchun   ishlatiladigan   dasturlardir.   Interfeys   bilan   ishlovchi
dasturlar,   kompyuter   foydalanuvchilari   va   kompyuter   tizimlarini   boshqarishga
yordam   beradigan   grafik   interfeys   (GUI)   va   komandalar   interfeysi   (CLI)   ni
ta'minlaydi.
Grafik interfeys (GUI) bilan ishlovchi dasturlar:
Windows   Explorer,   Mac   Finder   va   Linux   Nautilus   -   Fayl   tizimini   ko'rib
chiqish va boshqarish uchun ishlatiladigan dastur
Microsoft   Office,   LibreOffice   va   Google   Docs   -   Matn,   kalendar,   tablitsa   va
boshqa dokumentlar bilan ishlash uchun ishlatiladigan dastur
Adobe   Photoshop,   GIMP   va   Inkscape   -   Rassomlik   bilan   ishlash   uchun
ishlatiladigan dastur.
Komandalar interfeysi (CLI) bilan ishlovchi dasturlar:
Command   Prompt   va   Terminal   -   Windows   va   Linux/Mac   kompyuterlarda
komandalar yuborish va kompyuter tizimini boshqarish uchun ishlatiladigan dastur
Git - Fayl tizimini boshqarish va versiyalashtirish uchun ishlatiladigan dastur
SSH - Xar doimiy kompyuter tizimini boshqarish uchun ishlatiladigan dastur
Interfeys bilan ishlovchi dasturlar, foydalanuvchilar uchun kompyuter tizimini
boshqarish va fayllarni saqlash va yuklashga yordam beradigan komfortli va oson
interfeysni ta'mllaydi.
Grafik interfeys (GUI) bilan ishlovchi dasturlar, kompyuter foydalanuvchilari
uchun   kompyuter   tizimini   boshqarishga   yordam   beradigan   grafik   interfeysni
ta'minlaydi. GUI bilan ishlovchi dasturlar, foydalanuvchilarga kompyuter tizimini
boshqarishda   qulaylik   va   osonlikni   ta'minlaydi.   GUI   bilan   ishlovchi   dasturlar
quyidagilardan iborat bo'ladi:
Fayl tizimini ko'rib chiqish va boshqarish dasturlari: Windows Explorer, Mac
Finder va Linux Nautilus gibi dasturlar fayl tizimini ko'rib chiqish va boshqarishga
yordam beradigan interfeysni ta'minlaydi.
5 Dokumentlar   bilan   ishlash   dasturlari:   Microsoft   Office,   LibreOffice   va
Google   Docs   gibi   dasturlar   matn,   kalendar,   tablitsa   va   boshqa   dokumentlar   bilan
ishlashga yordam beradigan interfeysni ta'minlaydi.
Rassomlik bilan ishlash dasturlari: Adobe Photoshop, GIMP va Inkscape gibi
dasturlar rassomlik bilan ishlashga yordam beradigan interfeysni ta'minlaydi.
Multimedia dasturlari: Windows Media Player, VLC va iTunes gibi dasturlar
audio va video fayllarni chop etish va ko'rishga yordam beradi.
Komandalar   interfeysi   (CLI)   bilan   ishlovchi   dasturlar,   kompyuter
foydalanuvchilari   va   kompyuter   tizimlarini   boshqarishga   yordam   beradigan
komandalar   interfeysini   ta'minlaydi.   CLI   bilan   ishlovchi   dasturlar,
foydalanuvchilarga   kompyuter   tizimini   boshqarishda   qulaylik   va   osonlikni
ta'minlaydi. CLI bilan ishlovchi dasturlar quyidagilardan iborat bo'ladi:
Komandalar yuborish va kompyuter tizimini boshqarish dasturlari: Command
Prompt   va   Terminal   gibi   dasturlar   Windows   va   Linux/Mac   kompyuterlarida
komandalar   yuborish   va   kompyuter   tizimini   boshqarishga   yordam   beradigan
interfeysni ta'minlaydi.
Fayl tizimini boshqarish va versiyalashtirish dasturlari: Git gibi dasturlar fayl
tizimini   boshqarish   va   versiyalashtirishga   yordam   beradigan   interfeysni
ta'minlaydi.
Xar doimiy kompyuter tizimini boshqarish dasturlari: SSH gibi dasturlar xar
doimiy kompyuter tizimini boshqarishga yordam beradigan interfeysni ta'minlaydi.
Scripting va automation dasturlari: Bash, PowerShell va Python gibi dasturlar
kompyuter  tizimini  avtomatlashtirish va scriptingga yordam  beradigan interfeysni
ta'minlaydi.
3. Fayl tizimlari(NTFS, FAT32, exFAT va h.k.)
NTFS   (New   Technology   File   System)   -   Bu   tizim,   Windows   kompyuterlar
uchun   ishlatiladigan   tizimdir.   Ushbu   tizim,   fayllarning   saqlanadigan   joylarini
belgilash,   kompyuterga   qo'shilgan   disklarning   kapasitetini   boshqarish,   fayllarni
ko'rib   chiqish,   yozish   va   o'chirishni   ta'minlaydi.   NTFS,   fayllarning   saqlanadigan
joylarini   belgilashda   dinamik   bir   tizim   hisoblanadi,   shu   sababli   diskda
6 saqlanadigan   fayllarning   hajmi   katta   bo'lganda   ham,   uni   boshqarishga   imkon
beradi.   Ayniqsa,   NTFS   fayl   sistemasi   Windowsda   fayllarning   hajmi,   kiritilgan
vaqti,   o'zgartirilgan   vaqti   va   boshqa   fayl   xarakteristikalarini   saqlashga   imkon
beradi.
FAT   (File   Allocation   Table)   -   Bu   tizim,   kompyuterlarning   oldindan
yozuvlarida   ishlatilgan   tizim.   Ushbu   tizim,   fayllarning   saqlanadigan   joylarini
belgilash   uchun   ishlatiladi   va   fayllarni   ko'rib   chiqish,   yozish   va   o'chirishni
ta'minlaydi.
NTFS   (New   Technology   File   System)   -   Bu   tizim,   Windows   kompyuterlar
uchun   ishlatiladigan   tizimdir.   Ushbu   tizim,   fayllarning   saqlanadigan   joylarini
belgilash,   kompyuterga   qo'shilgan   disklarning   kapasitetini   boshqarish,   fayllarni
ko'rib chiqish, yozish  va o'chirishni  ta'minlaydi. ext  (Extended  File System)  -  Bu
tizim, Linux kompyuterlar  uchun ishlatiladigan tizimdir. Ushbu tizim, fayllarning
saqlanadigan   joylarini   belgilash,   kompyuterga   qo'shilgan   disklarning   kapasitetini
boshqarish, fayllarni ko'rib chiqish, yozish va o'chirishni ta'minlaydi.
HFS+   (Hierarchical   File   System   Plus)   -   Bu   tizim,   Mac   kompyuterlar   uchun
ishlatiladigan   tizimdir.   Ushbu   tizim,   fayllarning   saqlanadigan   joylarini   belgilash,
kompyuterga   qo'shilgan   disklarning   kapasitetini   boshqarish,   fayllarni   ko'rib
chiqish, yozish va o'chirishni ta'minlaydi.
BFS (Btrfs File System) - Bu tizim, Linux kompyuterlar uchun ishlatiladigan
tizimdir.
Fayl   tizimlari   asosan   kompyuter   hard   disklarida,   flash   disqlarda   va   sd
kartlarda   ishlatiladi.   Fayl   tizimlari   fayllarni   saqlamoqda   va   ularni   kataloglar   va
papkalar   tizimida   tashkil   etmoqda,   boshqa   fayllarni   birlashtirish   va   ularni   qaysi
katalogda, papkada saqlamoqda. Fayl tizimlarining boshqa vazifalari:
Fayllarni saqlash va o'chirish,
Fayllarni yozish, o'zgartirish va ko'rib chiqish,
Fayllarni kataloglar va papkalar tizimida tashkil etish,
Fayllarni birlashtirish va ularni qaysi katalogda, papkada saqlamoqda,
Fayllarning saqlanadigan joylarini belgilash
7 Fayllarning   saqlanadigan   joylarini   boshqarish,   disklarning   kapasitetini
boshqarish va boshqa fayl tizimini boshqarish bo'limlarini ta'minlash.
Asosiy   fayl   tizimlarining   eng   ko'p   ishlatiladiganlar   Windowsda   NTFS,
Linuxda ext4 va Macda HFS+ tizimlaridir.
Fayl tizimlaridan foydalanadiganlar:
Barcha   kompyuter   ishchilari,   masalan,   ofis   ishlab   chiqarish,   internet
foydalanish,   multimedia,   3D   grafikalar   va   boshqa   kompyuter   ishlarini   bajarish
uchun foydalanadiganlar.
Serverlar   va   saytlar,   masalan,   web-serverlar   va   boshqa   serverlar,   internet
saytlarini boshqarish va saqlash uchun foydalanadiganlar.
Uzatuvchi   qurilmalar,  masalan,   flash   disqlar,   sd   kartlar   va  boshqa   uzatuvchi
qurilmalar, fayllarni saqlash va yuklash uchun foydalanadiganlar.
Backup va kompyuter tizimlarini saqlash uchun foydalanadiganlar
Cloud qilish va fayllarni internet orqali saqlash uchun foydalanadiganlar
4. Tarmoq protokollari
Tarmoq   pratakollar,   kompyuterlarning   bir-biriga   va   internetga   ulanish   va
ma'lumotlar   o'zaro   almashtirish   uchun   ishlatiladigan   standartlar   va   protokollar
hisoblanadi. Tarmoq pratakollar quyidagilardan iborat bo'ladi:
TCP/IP   (Transmission   Control   Protocol/Internet   Protocol)   -   Bu   tarmoq
pratakollarining   asosiy   tarmoq   pratakollaridir.   Ushbu   pratakollar,   internet   va
kompyuter tarmoqlari uchun ma'lumotlar o'zaro almashtirishni ta'minlaydi.
HTTP   (Hypertext   Transfer   Protocol)   -   Bu   pratakollar,   internetda   veb-
sahifalarni o'qish va yuklash uchun ishlatiladi.
HTTPS   (Hypertext   Transfer   Protocol   Secure)   -   Bu   pratakollar,   veb-
sahifalarning ma'lumotlarini himoyalash uchun ishlatiladi.
FTP (File Transfer Protocol) - Bu pratakollar, fayllarni internet orqali yuklash
va o'chirish uchun ishlatiladi.
SMTP   (Simple   Mail   Transfer   Protocol)   -   Bu   pratakollar,   elektron   pochta
xabarlarini internet orqali yuborish uchun ishlatiladi.
8 DNS (Domain Name System) - Bu pratakollar, internetdagi veb-sahifalarning
IP manzillarini nomlar bilan aloqalashtirish uchun ishlatiladi.
DHCP (Dynamic Host Configuration Protocol) - Bu pratakollar, kompyuterlar
va tarmoqlar uchun IP manzillarni avtomatik tarzda tayinlash uchun ishlatiladi.
TCP/IP   (Transmission   Control   Protocol/Internet   Protocol)   tarmoq
pratakollarining   asosiy   tarmoq   pratakollaridir.   Ushbu   pratakollar,   internet   va
kompyuter tarmoqlari uchun ma'lumotlar o'zaro almashtirishni ta'minlaydi.
TCP (Transmission Control Protocol) - Bu pratakollar, ma'lumotlarni internet
orqali   yuborishda   qo'llaniladi   va   ma'lumotlar   yuborilishida   tuzatish   yoki
zaxiralangan   bo'lishi   mumkin   bo'lganda,   ma'lumotlarni   qayta   yuborishni
ta'minlaydi.
IP   (Internet   Protocol)   -   Bu   pratakollar,   ma'lumotlarni   internet   orqali
yuborishda   qo'llaniladi   va   ma'lumotlarning   manzili   va   boshqa   xarakteristikalarini
belgilashni ta'minlaydi.
TCP/IP tarmoq pratakollarini ishlatilgan kompyuterlar va tarmoqlar, bir-biriga
ma'lumotlar   o'zaro   almashtirish   uchun   internet   protokollar   standartlariga   amal
qilishgan, deb hisoblanadi. IP manzil va port nummerlarini ishlatib, ma'lumotlarni
manzilga   yuborish   va   manzilga   yuborilgan   ma'lumotlarni   qabul   qilishni
ta'minlaydi.
TCP/IP   tarmoq   pratakollarining   ishlatilishi,   internetdagi   kompyuterlar   va
tarmoqlar   o'rtasida   ma'lumotlar   o'zaro   almashtirishni   ta'minlaydi   va   internetda
ma'lumotlar o'zaro almashtirishni qulay va oson etkazishga imkon beradi.
TCP/IP   (Transmission   Control   Protocol/Internet   Protocol)   tarmoq
pratakollarining   yaratilish   tarixi,   1960-yillarda   boshlangan   va   1990-yillarda
yangilangan.
1960-yillarda, US Department of Defense (DoD) Advanced Research Projects
Agency   Network   (ARPANET)   proyekti   boshlandi.   Bu   proyekt,   kompyuter
tarmoqlarini bir-biriga ulashga yordam beradigan tarmoq pratakollarini yaratishga
qaratilgan   edi.   Bu   proyektda,   ARPANET   kompyuterlarini   bir-biriga   ulash   uchun
ishlatiladigan tarmoq pratakollarini yaratishga harakat qilindi.
9 1970-yillarda, ARPANET proyekti kompyuter tarmoqlarini bir-biriga ulashga
yordam   beradigan   TCP/IP   tarmoq   pratakollarini   yaratishga   muvaffaq   bo'ldi.
TCP/IP   tarmoq   pratakollarini   ishlatish,   internetdagi   kompyuterlar   va   tarmoqlar
o'rtasida ma'lumotlar o'zaro almashtirishni ta'minlab boshladi.
1980-yillarda,   TCP/IP   tarmoq   pratakollarini   ishlatish,   internetga   manbalar
qo'shilishi  va  internetning  chegaralanishi  bilan  birga  keng tarqaldi.  1990-yillarda,
internetga   manbalar   qo'shilishi   va   chegaralanishi   sababli,   TCP/IP   tarmoq
pratakollarining yangilanishi lozim bo'ldi. 
TCP/IP  (Transmission   Control   Protocol/Internet  Protocol)  va   boshqa  tarmoq
pratakollarining farqlari quyidagicha:
TCP/IP   (Transmission   Control   Protocol/Internet   Protocol)   -   Bu   tarmoq
pratakollarining   asosiy   tarmoq   pratakollaridir.   Ushbu   pratakollar,   internet   va
kompyuter tarmoqlari uchun ma'lumotlar o'zaro almashtirishni ta'minlaydi.
OSI   (Open   Systems   Interconnection)   -   Bu   tarmoq   pratakollarining   asosiy
tarmoq pratakollaridir. Ushbu pratakollar, kompyuter tarmoqlari va internet uchun
ma'lumotlar   o'zaro   almashtirishni   ta'minlaydi.   OSI   pratakollarining   asosiy   farqi,
TCP/IP   pratakollaridan   farqli   o'laroq,   OSI   pratakollarining   layering   sistemasiga
asoslanganligi   va   layering   sistemasini   ishlatib   ma'lumotlar   o'zaro   almashtirishni
ta'minlaydi.
SNA   (Systems   Network   Architecture)   -   Bu   tarmoq   pratakollarining   IBM
kompaniyasi   tarmoqlari   uchun   ishlatiladigan   tarmoq   pratakollaridir.   SNA
pratakollarining   asosiy   farqi,   TCP/IP   va   OSI   pratakollaridan   farqli   o'laroq,   SNA
pratakollarining IBM kompaniyasi tarmoqlari uchun ishlatiladiganligidir.
NetBIOS (Network Basic Input/Output System) - Bu tarmoq pratakollarining
Windows tarmoqlari uchun ishlatiladigan tarmoq pratakollaridir.
5. MD5, MD6, CRC, SHA1, SHA2  HESHLASH USLUBLARI
Heshlash   usullari,   ma'lumotlarni   himoyalash   uchun   ishlatiladigan   usullardir.
Heshlash usullari quyidagilardan iborat bo'ladi:
Symmetric   Key   Cryptography   -   Symmetric   key   cryptography   ishlatilganda,
heshlash   va   chiqarish   uchun   bitta   unikal   kalit   yordamida   ma'lumotlar
10 himoyalanadi.   Bu   usul,   AES   (Advanced   Encryption   Standard)   va   DES   (Data
Encryption Standard) gibi usullarda ishlatiladi.
Asymmetric Key Cryptography - Asymmetric key cryptography ishlatilganda,
ma'lumotlar   himoyalanib   chiqarish   uchun   ikkita   unikal   kalit   yordamida   amalga
oshiriladi. Bu usul, RSA (Rivest-Shamir-Adleman) va Elliptic Curve Cryptography
(ECC) gibi usullarda ishlatiladi.
Hashing   -   Hashing   usuli   ma'lumotlarni   himoyalashda   ishlatiladi   va
ma'lumotlarning   asliy   holatini   tiklashga   yordam   beradi.   Bu   usul,   MD5   (Message
Digest 5) va SHA (Secure Hash Algorithm) gibi usullarda ishlatiladi.
Salting - Salting usuli ma'lumotlarni himoyalashda ishlatiladi va ma'lumotlar
himoyalangan holda salting ni qo'shilgan holda saqlanadi
MD5 (Message Digest 5) bir heshlash algoritmi hisoblanadi. Bu algoritm, 128
bitlik   bir   hesh   qiymatini   yaratishga   qodir.  MD5   algoritmi   ma'lumotlarni   heshlash
uchun ishlatiladi va ma'lumotlarning asliy holatini tiklashga yordam beradi. MD5
algoritmi, fayllar, parollar, veb-manzillar va boshqa ma'lumotlar heshlanishi uchun
ishlatiladi.
MD5 algoritmi, ma'lumotlarni heshlashda asosiy o'zgaruvchilarni ishlatadi va
ma'lumotlarni   bir   marta   heshlab,   hesh   qiymatini   chiqaradi.   Hesh   qiymat,
ma'lumotlarning   asliy   holatini   tiklashga   yordam   beradi   va   ma'lumotlarni
himoyalash uchun ishlatiladi.
MD5   algoritmi,   o'z   navbatida   o'zgaruvchilar   bilan   ishlatilganda,   hesh
qiymatlarini   yaratishda   kamchiliklar   mavjud   bo'lib,   ma'lumotlarni   himoyalashda
noto'g'ri hesh qiymatlar yaratishi  mumkin. Bu sababli, MD5 algoritmi heshlashda
ishlatilmasa kerak va boshqa algoritmlar ishlatilishi kerak bo'lib qolgan.
MD6 (Message Digest 6) bu MD5 ga nisbatan takomillashtirish sifatida ishlab
chiqilgan   xeshlash   algoritmidir.   U   MD5   algoritmida   topilgan   kamchiliklarni
bartaraf   etish   uchun   ishlab   chiqilgan.   MD6   algoritmi   MD5   algoritmining
ixtirochisi   Ronald   Rivest   va   uning   Massachusets   texnologiya   institutida   (MIT)
jamoasi   tomonidan   ishlab   chiqilgan.MD6   algoritmi   MD5   (128   bit)   ga   qaraganda
kattaroq   xesh   qiymatidan   (256   bit)   foydalanadi   va   shuningdek,   xavfsizlikni
11 yaxshilash,   ishlash   samaradorligini   oshirish  va  uzoqroq  kirish   xabarlarini  qo'llab-
quvvatlash   kabi   bir   qator   yangi   xususiyatlarni   o'z   ichiga   oladi.   Bundan   tashqari,
MD6   kalitli   xesh   funktsiyasidan   foydalanadi,   bu   xesh   qiymatining   xavfsizligini
oshirish uchun maxfiy kalitdan foydalanishga imkon beradi.
SHA-1 (Secure Hash Algoritm 1) kriptografik xesh funksiyasi bo‘lib, u kirish
xabaridan 160 bitli  xesh qiymatini yaratish uchun ishlatiladi. U Milliy Xavfsizlik
Agentligi (NSA) tomonidan ishlab chiqilgan va Xavfsiz Hash Algoritmlari (SHA)
xesh   funksiyalari   oilasidan   biridir.   SHA-1   MD5   ga   o'xshaydi,   chunki   u
ma'lumotlarning   yaxlitligini   tekshirish   va   asl   xabardagi   har   qanday   buzish   yoki
o'zgarishlarni aniqlash uchun ishlatiladi.
SHA-1   ko'plab   xavfsizlik   dasturlari   va   protokollarida,   jumladan   SSL   va
TLSda   keng   qo'llaniladi,   ular   Internet   aloqalarini   himoya   qilish,   shuningdek,
raqamli imzolar va fayllarning yaxlitligini tekshirish uchun ishlatiladi.
Biroq,   MD5   kabi,   uning   zaif   tomonlari   borligi   aniqlandi   va   endi   xavfsiz
algoritm   hisoblanmaydi.   SHA-1   da   amalga   oshirilishi   mumkin   bo'lgan   ma'lum
to'qnashuv   hujumlari   mavjud   bo'lib,   bu   hujumchilarga   bir   xil   xeshni   ishlab
chiqaradigan ikki xil fayl yaratishga imkon beradi. Shuning uchun SHA-256 yoki
SHA-3 kabi yangiroq va xavfsiz xesh funksiyalaridan foydalanish tavsiya etiladi.
SHA-2 (Secure Hash Algorithm 2) kriptografik xesh-funksiyalar oilasi bo lib,ʻ
turli chiqish uzunliklariga ega bo lgan bir nechta turli xil algoritmlarni o z ichiga	
ʻ ʻ
oladi:
SHA-224: 224 bitli xesh qiymatini ishlab chiqaradi
SHA-256: 256 bitli xesh qiymatini ishlab chiqaradi
SHA-384: 384 bitli xesh qiymatini ishlab chiqaradi
SHA-512: 512 bitli xesh qiymatini ishlab chiqaradi
SHA-2   Milliy   xavfsizlik   agentligi   (NSA)   tomonidan   SHA-1   algoritmiga
nisbatan   takomillashtirish   sifatida   ishlab   chiqilgan   bo'lib,   uning   xavfsizlik   nuqtai
nazaridan   zaif   tomonlari   borligi   aniqlangan.   SHA-1   dan   farqli   o'laroq,   SHA-2
yanada   xavfsizroq   algoritm   hisoblanadi   va   ko'plab   xavfsizlik   mutaxassislari
tomonidan tavsiya etiladi.
12 SHA-2   turli   xil   xavfsizlik   dasturlari   va   protokollarida,   jumladan   raqamli
imzolar,   SSL   va   TLS   va   fayllarning   yaxlitligini   tekshirishda   keng   qo'llaniladi.
Ko'pgina   sertifikat   idoralari   va   dasturiy   ta'minot   kompaniyalari   SHA-1   dan
foydalanishni   to'xtatdilar   va   raqamli   sertifikatlar   va   dasturiy   ta'minotni   imzolash
uchun SHA-2 ga o'tdilar.
SHA-256   va   SHA-512   SHA-2   oilasida   eng   ko'p   qo'llaniladigan   algoritmlar
bo'lib,   ular   juda   xavfsiz   deb   hisoblanadi   va   ular   yangi   dizaynlar   uchun   tavsiya
etiladi.
CRC (Cyclic Redundancy Check) - bu ma'lumotlarni uzatish yoki saqlashdagi
xatolarni   aniqlash   uchun   ishlatiladigan   xesh   funktsiyasining   bir   turi.   SHA-2   va
MD5   kabi   kriptografik   xesh-funksiyalardan   farqli   o'laroq,   ular   har   qanday   kirish
uchun   yagona   va   qat'iy   o'lchamli   chiqishni   ta'minlash   uchun   mo'ljallangan,   CRC
funktsiyasining   chiqishi   qat'iy   o'lchamli   bit   qatoridir   (odatda   bir   nechta   bitlar   8
ning ko'paytmasi, masalan, 16, 32 yoki 64 bit), bu kirish ma'lumotlaridagi xatolarni
aniqlash   uchun   ishlatiladi.CRC   ko'p   nomli   bo'linish   deb   ataladigan   oddiy
matematik   operatsiyaga   asoslanadi,   u   "bo'linuvchi"   sifatida   belgilangan,   oldindan
belgilangan "ko'pnom" qiymatidan foydalanadi va kiritilgan ma'lumotlarni ajratadi,
bu bo'linishning qolgan qismi funktsiyaning chiqishi sifatida ishlatiladi, bu qoldiq
"checkssum"  deb ham ataladi. Keyin ma'lumotlarni qabul qiluvchi qabul qilingan
ma'lumotlar bo'yicha bir xil hisob-kitoblarni amalga oshirishi va xatolarni aniqlash
uchun natijani uzatilgan nazorat summasi bilan solishtirishi mumkin.
O'z Hesh funksiyamizni yaratish.
Siz   ushbu   funksiyadan   istalgan   turdagi   ma lumotlarni   xeshlash   uchunʼ
foydalanishingiz   mumkin,   shunchaki   xeshlanmoqchi   bo lgan   ma lumotlarni	
ʻ ʼ
funksiyaga satr sifatida o tkazing va u xeshning o n oltilik ko rinishini qaytaradi.	
ʻ ʻ ʻ
Shuni ta'kidlash kerakki, BLAKE2 nisbatan yangi xesh-funksiya bo'lib, u juda
tez   va   xavfsiz   xesh-funksiya   hisoblanadi,   u   IETF   tomonidan   ham
standartlashtirilgan va zamonaviy tizimlarda yaxshi tanlov hisoblanadi.
Ushbu heshlash Python dasturlash tilida BLAKE2 
HESHLASH MUXITIDA QILINDI
13 import hashlib
def blake2b_hash(data):
    # Create a new BLAKE2b hash object
    h = hashlib.blake2b()
   # Update the hash object with the input data
    h.update(data.encode())
     # Get the hexadecimal representation of the hash
    hex_hash = h.hexdigest()
    return hex_hash
# Test the function
data = "example data to hash"
print("BLAKE2b Hash:", blake2b_hash(data)).
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>
#include <cstring>
#include <blake2.h>
std::string blake2b_hash(const std::string& data) {
    std::stringstream ss;
    std::vector<unsigned char> hash(BLAKE2B_OUTBYTES);
    blake2b(hash.data(), data.c_str(), NULL, hash.size(), data.size(), 0);
    for (unsigned char i : hash) {
      ss << std::hex << (int)i; }return ss.str();}
int main() {
    std::string data = "example data to hash";
14     std::string hash = blake2b_hash(data);
    std::cout << "BLAKE2b Hash: " << hash << std::endl;
    return 0;}
import java.security.MessageDigest;
public class HashExample {
    public static String sha256(String data) {
        try {
                        MessageDigest   digest   =   MessageDigest.getInstance("SHA-
256");
            byte[] hash = digest.digest(data.getBytes("UTF-8"));
            StringBuffer hexString = new StringBuffer();
            for (int i = 0; i < hash.length; i++) {
                String hex = Integer.toHexString(0xff & hash[i]);
                if(hex.length() == 1) hexString.append('0');
                hexString.append(hex);
            }
            return hexString.toString();
        } catch(Exception ex){
            throw new RuntimeException(ex);
        }
    }
    public static void main(String[] args) {
        String data = "example data to hash";
        String hash = sha256(data);
        System.out.println("SHA-256 Hash: " + hash);
    }
}
15 Xulosa
Garchi   ko'plab   mualliflar   ajralib   tursa   ham   (mening   fikrimcha   noto'g'ri)
superkompyuter   serverlari   Va   hatto   meynfreymlar,   men   sizni   superkompyuter
qildim degan ta'rifga ko'ra, serverlar superkompyuterlar singari mukammal tarzda
qamrab   olinishi   mumkin   edi,   chunki   ular   oddiy   kompyuterlardan   ancha   ustun
bo'lgan kompyuterlardan boshqa narsa emas, faqat ular biron bir turdagi xizmatni
taqdim   etishga   bag'ishlangan.   tarmoq   ...   Bir-biridan   farqlanishi   kerak   bo'lgan
yagona narsa shundaki, mashina nimaga mo'ljallanganiga qarab, biz boshqalar yoki
boshqalarnikidan   ustunroq   bo'lgan   qobiliyatlarga   ega   bo'lamiz.   Dasturlashni
Umumiy   Dasturlash   teoriyasidan   o’rganasiz.   Bu   kursni   o’rganayotganingizda
kompyuter   halaqit   beradi.   Dastulash   –   o’ylash   degani.   Kompyuter   oldida   esa
o’ylash   qiyinroq.   Odam   negadir   daftar   va   ruchkadan   foydalanganida   yaxshiroq
fikrlaydi.   Olimlarning   aytishicha,   ruchkada   yozayotganimizda   kichik   motorika
(ruscha   maqola|   ingilizcha   maqola)   ishlar   ekan   va   odam   yozayotgan   narsasini
yaxshiroq eslab qolar ekan. Shuning uchun ham, hattoki kompyuteringiz bo’lsada,
umumiy dasturlash teoriyasining kerakli joylarini aynan daftarda konspekt qilishni
maslahat  beraman. Vazifalardagi  kodlarni  ham  daftarda yozib, miyada bajaramiz.
Ushbu   teoriya   sizni   dasturchidek   o’ylashga   majbur   qiladi   va   yozilgan   kodlarni
hech   qanaqa   kompyuterdagi   kompilyator   bajara   olmaydi.   Bu   esa   dasturlashni
o’rganish   uchun   kompyuter   kerak   emasligining   yana   bir   isboti.   Siz   dasturlashni
o’rgandingiz   va   endi   kompyuter   olish   niyatingiz   bor.   Mablag’ingiz   kam   bo’lsa   –
xavotir olmang. Barcha tildagi dasturlar: PHP, Java, JavaScript, Python, C, C#, C+
+   va   hokazo,   barchasini   oddiy   bloknot   dasturida   ham   yozish   imkoningiz   bor.
Shuning   uchun   ham   eng   oddiy,   kuchsiz   kompyuter   ham   yetarli   bo’ladi.   Lekin,
professional   dasturlarni   bloknotda   yozish   juda   qiyin.   Ko’plab   xatolarni   ko’rmay
qolasiz.   Xatolarni   qidirishda   qiynalasiz.   Dastur   yozish   uchun   mo’ljallangan
dasturlar   esa,   kodingizni   ko’p   joylarini   o’zi   yozib,   qayerda   hato   bo’lishi
mumkinligini   ko’rsatib   ham   beradi.   Ushbu   maqolada   uchta   shunaqa   dasturlani
ko’rganmiz.   Ushbu   dasturlani   kuchsiz   kompyuterlarda   ishlatish   qiyin,   ular   juda
katta operativ xotira talab qilishadi. Undan tashqari chome brauzerdan foydalamiz.
16 U ham juda ko’p operativ xotira talab qiladi. Demak komfort ishlar uchun kuchli
kompyuter kerak ekan. Lekin “kuchli” tushunchasi hamma uchun har-xil. Bozorga
borib   kuchli   kompyuter   so’rasangiz,   sizga   o’yin   o’ynash   uchun   moslashgan
kompyuterni   ko’rsatishadi.   Ushbu   turdagi   kompyuterlarning   video   kartasi   kuchli
bo’ladi.   Bizning   esa   kuchli   o’yinlar   o’ynash   niyatimiz  yo’q.   Demak  bizga   kuchli
video karta kerak emas. Video karta kompyuterning eng qimmat qismlaridan.
Foydalanilgan adabiyotlar :
1. Bruner D. S. Psixologiya poznaniya. - M., 1977
2. Gamezo M. V., Domashenko I. A. Atlas po psixologii. - M.,1986
3. Gippenreyter   Yu.   B.   Vvedenie   v   obshuyu   psixologiyu.   Kurs   leksiy.   -   M.,
1996
4. Granovskaya R. M. Elementi prakticheskoy psixologii.  SPb, 1997
5. Karimova   V.   M.   Auditoriyada   bahs-munozarali   darslarni   tashkil   etishning
psixologik texnikasi. - T., 2000
6. Karimova V. M. Psixologiya. - T., 2002
7. Karimova V. M., Akramova F. Psixologiya.  Ma’ruzalar matni - T., 2000
8. Nemov R. S. Psixologiya M. 1990
9. Nemov R. S. Psixologiya. - Kn.1.  Obshie osnovi psixologii. - M., 1994
Internet resurslar :
10. https://uz.atomiyme.com/fayl-tizimi-bu-nima-ntfs-fayl-tizimi-fat-raw-udf/   
11. https://uzbekdevs.uz/maqolalar/fayl-tizimi-fayl-tizimi-turlari   
12. https://uz.wikial.top/wiki/File_system   
13. https://uz.denemetr.com/docs/294/index-20614-1.htmlpage=7   
14. http://www.myshared.ru/slide/1414933/   
17

Reja: Kirish Asosiy qism : 1. Define bilan ishlash, 2. Interfeys ishlash uchun dasturlar (figma, xd va k.k) 3. Fayl tizimlari(NTFS, FAT32, exFAT va h.k.) 4. Tarmoq protokollari 5. MD5, MD6, CRC, SHA1, SHA2 HESHLASH USLUBLARI 6. O'z Hesh funksiyamizni yaratish. Xulosa Foydalanilgan adabiyotlar

Kirish Tizim dasturchiligi dasturchilik va dasturchilik boshqaruvining fanlararo sohasi bo'lib, u murakkab tizimlarni hayot davrlari davomida loyihalash, integratsiyalash va boshqarishga qaratilgan . Asosiysi, tizim dasturchiligi ushbu bilimlarni tartibga solish uchun tizimli fikrlash tamoyillaridan foydalanadi. Bunday sa'y-harakatlarning individual natijasi, ya'ni ishlab chiqilgan tizim foydali funktsiyani birgalikda bajarish uchun sinergiyada ishlaydigan tarkibiy qismlarning kombinatsiyasi sifatida belgilanishi mumkin. Muvaffaqiyatli tizimni loyihalash, ishlab chiqish, amalga oshirish va yakuniy bekor qilish uchun zarur bo'lgan dasturchilik talablari , ishonchlilik, logistika , turli guruhlarni muvofiqlashtirish, sinov va baholash, texnik xizmat ko'rsatish va boshqa ko'plab fanlar kabi masalalar yirik yoki murakkab loyihalar bilan ishlashda qiyinlashadi. Tizim dasturchiligi bunday loyihalarda ish jarayonlari, optimallashtirish usullari va risklarni boshqarish vositalari bilan shug'ullanadi. U sanoat dasturchiligi , ishlab chiqarish tizimlari dasturchiligi , texnologik tizim dasturchiligi , mashinasozlik kabi texnik va insoniy yo'naltirilgan fanlarni bir-biriga moslashtiradi .ishlab chiqarish dasturchiligi , ishlab chiqarish dasturchiligi , nazorat dasturchiligi , dasturiy ta'minot dasturchiligi , elektrotexnika , kibernetika , aerokosmik dasturchilik , tashkiliy tadqiqotlar , qurilish dasturchiligi va loyihalarni boshqarish . Tizim dasturchiligi loyiha yoki tizimning barcha mumkin bo'lgan jihatlari ko'rib chiqilishini va bir butunga birlashtirilishini ta'minlaydi. Tizim dasturchilik jarayoni ishlab chiqarish jarayoniga o'xshamaydigan kashfiyot jarayonidir. Ishlab chiqarish jarayoni minimal xarajat va vaqt bilan yuqori sifatli mahsulotlarga erishish uchun takrorlanadigan faoliyatga qaratilgan. Tizim dasturchiligi jarayoni hal qilinishi kerak bo'lgan haqiqiy muammolarni aniqlash va yuzaga kelishi mumkin bo'lgan eng mumkin bo'lgan yoki eng yuqori ta'sir ko'rsatadigan nosozliklarni aniqlashdan boshlanishi kerak - tizim dasturchiligi ushbu muammolarga yechim topishni o'z ichiga oladi. 2

1. Define bilan ishlash. C++ dilida, #define komandasi boshqa nomlarni belgilangan konstantlar, masalan, pi, yoki max_value, qo'shish uchun ishlatiladi. Misol uchun, #define pi 3.14 yoki #define max_value 100 kabi. Bu, xohlagan joyda boshqa kodning o'ziga xos joyda konstantlarni ishlatishga imkon beradi. Bu komanda kompilyatorga so'zni boshqa so'zga o'zgartirishni buyuradi va kompilyator kodni o'zgartirish bilan o'zgaruvchan bo'ladi. Bu, kodni o'qish va tuzishni osonlashtiradi va xatoliklarini kamaytiradi. Bu komanda yaxshi ishlatilganda, kodni o'zgartirish va qayta kompilyatsiyalash uchun kam vaqt sarflanadi va kodning performansini oshiradi. #include <iostream> #define multiply(a, b) (a * b) int main() { int x = 5, y = 7; int result = multiply(x, y); std::cout << x << " * " << y << " = " << result << std::endl; return 0; } //ikki sonni kopaytirish kodi #define komandasi bilan ikki sonni ko'paytirish kodida 'multiply' quyidagicha ishlatilgan (a * b) va bu quyidagicha ishlatilgan (x * y) va natijani chiqarish (result) va natijani chiqarish (result). #define komandasi kodni o'qish va tuzishni osonlashtiradi va xatoliklarini kamaytiradi va yaxshi ishlatilganda kodni o'zgartirish va qayta kompilyatsiyalash uchun kam vaqt sarflanadi va kodning performansini oshiradi. #define komandasi bilan tuzilgan konstantlar va funksiyalar bir necha avzaliklarga ega bo'ladi: 3

#define komandasi bilan tuzilgan konstantlar va funksiyalar kompilyatorning ishga tushirish davrida tuziladi va shuning uchun kompilyatorning ishga tushirish davrida qo'shilgan xatoliklar ko'rilmasa bo'ladi. #define komandasi bilan tuzilgan konstantlar va funksiyalar kompilyatorning ishga tushirish davrida tuzilgan bo'lib, kodning ishga tushirish davrida yangi xatoliklar yuzaga kelmasa bo'ladi. #define komandasi bilan tuzilgan konstantlar va funksiyalar kompilyatorning ishga tushirish davrida tuzilgan bo'lib, kodning ishga tushirish davrida yangi xatoliklar yuzaga kelmasa bo'ladi va bu kodni o'qish va tuzishni osonlashtiradi va xatoliklarini kamaytiradi. #define komandasi bilan tuzilgan konstantlar va funksiyalar kompilyatorning ishga tushirish davrida tuzilgan bo'lib, kodning ishga tushirish davrida yangi xatoliklar yuzaga kelmasa bo'ladi va bu kodni o'qish va tuzishni osonlashtiradi va xatoliklarini kamaytiradi va yaxshi ishlatilganda kodni o'zgartirish va qayta kompilyatsiyalash uchun kam vaqt sarflanadi va kodning performansini oshiradi. #include <iostream> #define TEST_EQUAL(a, b) \ if ((a) == (b)) { \ std::cout << #a << " is equal to " << #b << std::endl; \ } else { \ std::cout << #a << " is not equal to " << #b << std::endl; \ } int main() { int x = 5, y = 7; TEST_EQUAL(x, y); return 0; } //test tuzish kodi #define komandasi bilan test tuzish kodida TEST_EQUAL quyidagicha ishlatilgan (a == b) va natijani chiqarish (cout) va natijani chiqarish (cout). #define komandasi kodni o'qish va tuzishni osonlashtiradi va xatoliklarini kamaytiradi va yaxshi ishlatilganda kodni o'zgartirish va qayta kompilyatsiyalash uchun kam vaqt sarflanadi va kodning performansini oshiradi. 4

2. Interfeys ishlash uchun dasturlar (figma, xd va k.k) Interfeys bilan ishlovchi dasturlar, kompyuter foydalanuvchilari va kompyuter tizimlarini boshqarish uchun ishlatiladigan dasturlardir. Interfeys bilan ishlovchi dasturlar, kompyuter foydalanuvchilari va kompyuter tizimlarini boshqarishga yordam beradigan grafik interfeys (GUI) va komandalar interfeysi (CLI) ni ta'minlaydi. Grafik interfeys (GUI) bilan ishlovchi dasturlar: Windows Explorer, Mac Finder va Linux Nautilus - Fayl tizimini ko'rib chiqish va boshqarish uchun ishlatiladigan dastur Microsoft Office, LibreOffice va Google Docs - Matn, kalendar, tablitsa va boshqa dokumentlar bilan ishlash uchun ishlatiladigan dastur Adobe Photoshop, GIMP va Inkscape - Rassomlik bilan ishlash uchun ishlatiladigan dastur. Komandalar interfeysi (CLI) bilan ishlovchi dasturlar: Command Prompt va Terminal - Windows va Linux/Mac kompyuterlarda komandalar yuborish va kompyuter tizimini boshqarish uchun ishlatiladigan dastur Git - Fayl tizimini boshqarish va versiyalashtirish uchun ishlatiladigan dastur SSH - Xar doimiy kompyuter tizimini boshqarish uchun ishlatiladigan dastur Interfeys bilan ishlovchi dasturlar, foydalanuvchilar uchun kompyuter tizimini boshqarish va fayllarni saqlash va yuklashga yordam beradigan komfortli va oson interfeysni ta'mllaydi. Grafik interfeys (GUI) bilan ishlovchi dasturlar, kompyuter foydalanuvchilari uchun kompyuter tizimini boshqarishga yordam beradigan grafik interfeysni ta'minlaydi. GUI bilan ishlovchi dasturlar, foydalanuvchilarga kompyuter tizimini boshqarishda qulaylik va osonlikni ta'minlaydi. GUI bilan ishlovchi dasturlar quyidagilardan iborat bo'ladi: Fayl tizimini ko'rib chiqish va boshqarish dasturlari: Windows Explorer, Mac Finder va Linux Nautilus gibi dasturlar fayl tizimini ko'rib chiqish va boshqarishga yordam beradigan interfeysni ta'minlaydi. 5