Linux kernel

Kerneli Linux është një burim i lirë dhe i hapur,  : 4 Kernel i ngjashëm me UNIX që përdoret në shumë sisteme kompjuterike në mbarë botën. Kerneli u krijua nga Linus Torvalds në 1991 dhe u miratua shpejt si kernel për sistemin operativ GNU (OS) i cili u krijua për të qenë një zëvendësim falas për Unix . Që nga fundi i viteve 1990, ai është përfshirë në shumë shpërndarje të sistemeve operative, shumë prej të cilave quhen Linux . Një sistem i tillë operativ i kernelit Linux është Android i cili përdoret në shumë pajisje celulare dhe të integruara.

Shumica e kodit të kernelit është shkruar në C siç mbështetet nga koleksioni i përpiluesit GNU (GCC) i cili ka zgjerime përtej standardit C.  : 18  Kodi përmban gjithashtu kodin e montimit për logjikën specifike të arkitekturës, siç është optimizimi i përdorimit të kujtesës dhe ekzekutimi i detyrave.  : 379–380 Kerneli ka një dizajn modular të tillë që modulet mund të integrohen si komponentë softuerësh – duke përfshirë edhe ngarkimin dinamik. Kerneli është monolit në kuptimin arkitektonik pasi i gjithë OS funksionon në hapësirën e kernelit .

Linux ofrohet nën versionin 2 të Licencës së Përgjithshme Publike GNU, megjithëse përmban skedarë nën licenca të tjera të përputhshme . 

 Historia 
Në prill 1991, Linus Torvalds, një student 21-vjeçar i shkencave kompjuterike në Universitetin e Helsinkit filloi të punojë në një sistem operativ, të frymëzuar nga UNIX, për një kompjuter personal.  Ai filloi me një ndërrues detyrash në gjuhën e asamblesë Intel 80386 dhe një drejtues terminali .  Më 25 gusht 1991, Torvalds postoi sa vijon në comp.os.minix, një grup lajmesh në Usenet : 

Më 17 shtator 1991, Torvalds përgatiti versionin 0.01 të Linux dhe vendosi në "ftp.funet.fi" - serverin FTP të Rrjetit të Universitetit Finlandez dhe Kërkimit ( FUNET ). Ai nuk ishte as i ekzekutueshëm pasi kodi i tij kishte ende nevojë për Minix për ta përpiluar dhe testuar. 

Më 5 tetor 1991, Torvalds njoftoi versionin e parë "zyrtar" të Linux, versionin 0.02.  

Linux u rrit me shpejtësi pasi shumë zhvillues, duke përfshirë komunitetin MINIX, kontribuan në projekt. [ citim i nevojshëm ] Në atë kohë, Projekti GNU kishte përfunduar shumë komponentë për zëvendësimin e tij të lirë UNIX, GNU OS, por kerneli i tij, GNU Hurd, ishte i paplotë. Projekti miratoi kernelin Linux për sistemin e tij operativ. 

Torvalds e etiketoi kernelin me versionin kryesor 0 për të treguar se ai nuk ishte ende i destinuar për përdorim të përgjithshëm.  Versioni 0.11, i lëshuar në dhjetor 1991, ishte versioni i parë që u organizua vetë ; kompiluar në një kompjuter që ekzekuton kernelin Linux.

Kur Torvalds lëshoi versionin 0.12 në shkurt 1992, ai miratoi Licencën e Përgjithshme Publike GNU versionin 2 (GPLv2) mbi licencën e tij të mëparshme të hartuar vetë, e cila nuk kishte lejuar rishpërndarjen komerciale.  Ndryshe nga Unix, të gjithë skedarët burimorë të Linux janë të disponueshëm lirisht, duke përfshirë drejtuesit e pajisjes . 

Suksesi fillestar i Linux-it u nxit nga programuesit dhe testuesit në të gjithë botën. Me mbështetjen e API-ve POSIX, përmes libC-së që, nëse është e nevojshme, vepron si pikë hyrëse në hapësirën e adresave të kernelit, Linux mund të ekzekutojë softuer dhe aplikacione që ishin zhvilluar për Unix. 

Më 19 janar 1992, u dërgua postimi i parë në grupin e ri të lajmeve alt.os.linux .  Më 31 mars 1992, grupi i lajmeve u riemërua comp.os.linux . 

Fakti që Linux është një kernel monolit dhe jo një mikrokernel ishte tema e një debati midis Andrew S. Tanenbaum, krijuesi i MINIX, dhe Torvalds.  Debati Tanenbaum–Torvalds filloi në 1992 në grupin Usenet comp.os.minix si një diskutim i përgjithshëm rreth arkitekturave të kernelit.  

Versioni 0.95 ishte i pari i aftë për të ekzekutuar sistemin X Window .  Në mars 1994, Linux 1.0.0 u lëshua me 176,250 rreshta kodi.  Siç tregohet nga numri i versionit, ishte versioni i parë i konsideruar i përshtatshëm për një mjedis prodhimi .  Në qershor 1996, pas lëshimit 1.3, Torvalds vendosi që Linux kishte evoluar mjaftueshëm për të garantuar një numër të ri madhor, dhe kështu e etiketoi versionin e ardhshëm si versionin 2.0.0.   Karakteristikat e rëndësishme të 2.0 përfshinin shumëpërpunimin simetrik (SMP), mbështetjen për më shumë lloje të procesorëve dhe mbështetjen për zgjedhjen e objektivave specifike të harduerit dhe për të mundësuar veçori dhe optimizime specifike të arkitekturës.  Familja make *config e komandave të kbuild mundëson dhe konfiguron opsionet për ndërtimin e ekzekutuesve të kernelit ad hoc ( vmlinux ) dhe moduleve të ngarkueshme.  

Versioni 2.2, i lëshuar më 20 janar 1999,  përmirësoi granularitetin e mbylljes dhe menaxhimin e SMP, shtoi mbështetjen e m68k, PowerPC, Sparc64, Alpha dhe platformat e tjera 64-bit.  Për më tepër, ai shtoi sisteme të reja skedarësh duke përfshirë aftësinë NTFS të Microsoft -it vetëm për lexim.  Në vitin 1999, IBM publikoi arnimet e saj në kodin Linux 2.2.13 për mbështetjen e arkitekturës S/390 . 

Versioni 2.4.0, i lëshuar më 4 janar 2001,  përmbante mbështetje për kartat ISA Plug and Play, USB dhe PC. Linux 2.4 shtoi mbështetjen për Pentium 4 dhe Itanium (ky i fundit prezantoi ia64 ISA që u zhvillua së bashku nga Intel dhe Hewlett-Packard për të zëvendësuar PA-RISC më të vjetër), dhe për procesorin më të ri MIPS 64-bit .  Zhvillimi për 2.4. x ndryshoi pak në atë që u vunë në dispozicion më shumë veçori në të gjithë serinë, duke përfshirë mbështetjen për Bluetooth, Logical Volume Manager (LVM) version 1, mbështetjen RAID, InterMezzo dhe sistemet e skedarëve ext3 .

Versioni 2.6.0 u lëshua më 17 dhjetor 2003.  Zhvillimi për 2.6. x ndryshoi më tej drejt përfshirjes së veçorive të reja në të gjithë serinë. Ndër ndryshimet që janë bërë në serinë 2.6 janë: integrimi i μClinux në burimet kryesore të kernelit, mbështetja PAE, mbështetja për disa linja të reja të CPU-ve, integrimi i arkitekturës së tingullit të avancuar Linux (ALSA) në burimet kryesore të kernelit, mbështetje për deri në 2 32 përdorues (deri nga 2 16 ), mbështetje për deri në 2 29 ID të procesit (64-bit vetëm, arkitekturat 32-bitëshe ende të kufizuara në 2 15 ),  rritën ndjeshëm numrin e llojeve të pajisjeve dhe numrin e pajisjeve të secilit lloj, përmirësimin e mbështetjes 64-bit, mbështetjen për sistemet e skedarëve që mbështesin madhësitë e skedarëve deri në 16 terabytes, parandalim brenda kernelit, mbështetje për Bibliotekën Native të Temave POSIX (NPTL), integrim Linux në modalitetin e përdoruesit në burimet kryesore të kernelit, Integrimi i SELinux në burimet kryesore të kernelit, mbështetja e InfiniBand dhe shumë më tepër.

Duke filluar me lëshimet 2.6.x, kerneli mbështeti një numër të madh sistemesh skedarësh; disa të dizajnuara për Linux, si ext3, ext4, FUSE, Btrfs,  dhe të tjera të lindura në sisteme të tjera operative si JFS, XFS, Minix, Xenix, Irix, Solaris, System V, Windows dhe MS-DOS . 

Megjithëse zhvillimi nuk kishte përdorur një sistem kontrolli versioni deri më tani, në vitin 2002, zhvilluesit e Linux miratuan BitKeeper, i cili u bë i disponueshëm falas për ta edhe pse nuk ishte softuer falas . Në vitin 2005, për shkak të përpjekjeve për ta rindërtuar atë, kompania që zotëronte softuerin anuloi mbështetjen e saj për komunitetin Linux. Si përgjigje, Torvalds dhe të tjerët shkruan Git . Sistemi i ri u shkrua brenda javësh dhe brenda dy muajsh u lëshua kerneli i parë zyrtar i bërë duke e përdorur atë. 

Në vitin 2005 u formua ekipi i qëndrueshëm si përgjigje ndaj mungesës së një peme bërthamore ku njerëzit mund të punonin në rregullimin e gabimeve dhe do të vazhdonte të përditësonte versionet e qëndrueshme .  Në shkurt 2008 linux-next pema u krijua për të shërbyer si një vend ku arnimet synonin të bashkoheshin gjatë ciklit të ardhshëm të zhvillimit.   Disa mirëmbajtës të nënsistemit miratuan gjithashtu prapashtesën -next për pemët që përmbajnë kod të cilin ata duan ta paraqesin për t'u përfshirë në ciklin e ardhshëm të lëshimit.   , versioni në zhvillim i Linux-it mbahet në një degë të paqëndrueshme të quajtur linux-next . 

20 vjetori i Linux u festua nga Torvalds në korrik 2011 me lëshimin e versionit 3.0.0.  Duke qenë se 2.6 kishte qenë numri i versionit për 8 vjet, një personalitet i ri uname26 që raporton 3.x si 2.6.40+x duhej të shtohej në kernel në mënyrë që programet e vjetra të funksiononin. 

Versioni 3.0 u lëshua më 22 korrik 2011.  Më 30 maj 2011, Torvalds njoftoi se ndryshimi i madh ishte "ASGJE. Absolutisht asgjë". dhe pyeti, "...le të sigurohemi që vërtet ta bëjmë publikimin e radhës jo vetëm një numër të ri të shndritshëm, por gjithashtu një kernel të mirë."  Pas 6-7 javëve të pritura të procesit të zhvillimit, ai do të lëshohej afër 20 vjetorit të Linux.

Më 11 dhjetor 2012, Torvalds vendosi të reduktojë kompleksitetin e kernelit duke hequr mbështetjen për procesorët i386 — veçanërisht duke mos pasur nevojë të imitojë  instruksionin atomik CMPXCHG të prezantuar me i486 për të lejuar mutexe të besueshëm — duke e bërë serinë e kernelit 3.7 të fundit që ende mbështet procesori origjinal.   E njëjta mbështetje e unifikuar e serisë për procesorin ARM . 

Ndryshimi i numrave nga 2.6.39 në 3.0 dhe nga 3.19 në 4.0, nuk përfshinte asnjë diferencim teknik domethënës; numri i versionit kryesor u rrit thjesht për të shmangur numrat e mëdhenj të vegjël.   Kernelet e qëndrueshme 3.xy u lëshuan deri në 3.19 në shkurt 2015. Versioni 3.11, i lëshuar më 2 shtator 2013,  shtoi shumë veçori të reja si p.sh. Flamuri  për open(2) për të reduktuar dobësitë e përkohshme të skedarëve, menaxhimin eksperimental të energjisë dinamike të AMD Radeon, sondazhin e rrjetit me vonesë të ulët dhe zswap (cache e këmbimit të kompresuar). 

Në prill 2015, Torvalds lëshoi versionin 4.0 të kernelit.  Deri në shkurt 2015, Linux kishte marrë kontribute nga afro 12,000 programues nga më shumë se 1,200 kompani, duke përfshirë disa nga shitësit më të mëdhenj të softuerëve dhe pajisjeve në botë.  Versioni 4.1 i Linux, i lëshuar në qershor 2015, përmban mbi 19.5 milionë rreshta kodi të kontribuar nga pothuajse 14,000 programues. 

Linus Torvalds njoftoi se versioni 4.22 i kernelit në vend të kësaj do të numërohej 5.0 në mars 2019, duke deklaruar se "5.0" nuk do të thotë asgjë më shumë se sa që numrat 4.x filluan të rriteshin aq sa më mbaruan gishtat e duarve dhe këmbëve."  Paraqiste shumë shtesa kryesore si mbështetja për ekranin AMD Radeon FreeSync dhe NVIDIA Xavier, rregullime për F2FS, EXT4 dhe XFS, rivendosi mbështetjen për skedarët e shkëmbimit në sistemin e skedarëve Btrfs dhe punën e vazhdueshme në grafikët Intel Icelake Gen11 dhe më shumë SoC-të NXP i.MX8 .   Ky version ishte dukshëm më i madh se pjesa tjetër, Torvalds duke përmendur se "Ndryshimet e përgjithshme për të gjithë versionin 5.0 janë shumë më të mëdha." 

Një total prej 1,991 zhvilluesish, nga të cilët 334 ishin bashkëpunëtorë për herë të parë, shtuan më shumë se 553,000 rreshta kodi në versionin 5.8, duke thyer rekordin e mbajtur më parë nga versioni 4.9. 

 Shënime 

 Referime