Nga vjen UNIX?

Përshëndetje për të gjithë ... këto javë jam argëtuar mjaft duke lexuar disa libra mbi programimin, e vërteta është se mënyra më e mirë për të mësuar të programosh është gjithmonë me një libër, çdo artikull, udhëzues, udhëzues që mund të gjesh (përfshirë edhe timin) janë thjesht standardet kur i krahason me një libër të vërtetë për këtë temë. Tani, ne duhet të përcaktojmë se çfarë është një libër "i vërtetë" gjithashtu, pasi që jo të gjithë librat janë zakonisht të mirë, dhe shumë prej tyre madje mund të kushtojnë më shumë sesa vlejnë me të vërtetë dhe humbin kohë.

Përgjatë këtyre viteve, lista e librave që kam lexuar dhe lista e librave që unë mund të rekomandoj kanë ndryshuar mjaft, por pa dyshim midis disa prej të preferuarve të mi që kemi (në asnjë mënyrë specifike):

  • Hacker Etik të Çertifikuar nga CEH nga Matt Walker.
  • Fillimi Python: Nga fillestari te profesionisti nga Magnus Lie Hetland.
  • Hacking: arti i shfrytëzimit nga Jon Erickson.
  • Fillimi me Arduino nga Massimo Banzi.
  • Mësoni bash Shell nga Cameron Newbam & Bill Rosenblatt.
  • Mësoni redaktorët e vi dhe vim nga Arnold Robbins, Elbert Hannah & Linda Lamb.
  • Kernel Linux në pak fjalë nga Greg Kroah-Hartman (gjithashtu një zhvillues i Gentoo).
  • Modern C nga Jens Gustedt
  • Manuali i Shellcoder's nga Chris Anley, John Heasman, Felix «FX» Linder & Gerardo Richarte.
  • Gjuha e programimit C nga Brian W. Kernighan & Dennis M. Ritchie (krijuesit e C)
  • Korrigjimi i gabimeve me GDB nga Richard Stallman, Roland Pesch, Stan Shebs, et al.
  • Hacking Linux Ekspozuar: Sekretet dhe Zgjidhjet e Sigurisë Linux nga një grup i madh studiuesish ISECOM, përfshirë Pete Herzog, Marga Barceló, Rick Tucker, Andrea Barisani (një tjetër ish zhvillues i Gentoo), Thomas Bader, Simon Biles, Colby Clark, Raoul Chiesa , Pablo Endres, Richard Feist, Andrea Ghirardini, Julian "HammerJammer" Ho, Marco Ivaldi, Dru Lavigne, Stephane Lo Presti, Christopher Low, Ty Miller, Armand Puccetti & et al.
  • Sistemet Operative: Një Qasje e Bazuar në Koncept nga Dhananjay M. Dhamdhere
  • Pro Git nga Scott Chacon dhe Ben Straub
  • Programimi i ekspertit C: Sekretet e thella nga Peter Van Der Linden.

Unë mund të flas shumë për secilin prej këtyre librave, por për sot do të marrim disa nga pasazhet nga i fundit në listë, pasi shumë prej këtyre anektodave më kanë mahnitur dhe më kanë ndihmuar të kuptoj më mirë disa nga sekretet e ndërlikuara të C dhe programimit në përgjithësi.

Unix dhe C

Kur flasim për UNIX, historia ndërthuret me origjinën e këtij sistemi dhe zhvillimin e gjuhës që deri më sot është një nga më të përdorurat në zhvillimin e tij dhe derivateve të saj (përfshirë Linux). Dhe për kuriozitet, këta të dy kanë lindur nga një "gabim".

Multikë Ishte një mega projekt që bashkoi laboratorët Bell, General Electric dhe vetë MIT për të krijuar një sistem operativ.Ky sistem paraqiti shumë gabime, dhe ndër një nga më të rëndësishmit, dështimet e performancës që e bënë sistemin praktikisht të papërdorshëm. Po flasim për vitin 1969, kështu që hardueri i asaj kohe nuk mund të mbështeste sasinë e softuerit që nevojitej për të ekzekutuar vetë sistemin.

Vetëm në vitin 1970 disa inxhinierë Bell filluan të punonin në një sistem operativ të thjeshtë, të shpejtë dhe të lehtë për PDP-7. I gjithë sistemi ishte shkruar në assembler dhe ishte thirrur UNIX si një parodi e Multikë meqenëse ai donte të bënte vetëm disa gjëra, por t'i bënte ato mirë në vend të punës së jashtëzakonshme të humbur që donte të thoshte e dyta. Tani mund ta kuptoni pse epokë fillon me 1 janar, 1970. 🙂 Një fakt mjaft kurioz për mua. Në atë kohë, ende nuk flitej për një C, por për një a B i ri meqenëse idetë e Ritchie-t vinin nga gjuha B e përdorur tashmë e asaj kohe.

Herët C

Me kalimin e viteve (1972-3) termi C filloi të përdoret që kur gjuha e re filloi të merrte formë, dhe rreth kësaj kohe lindi një fakt tjetër kurioz, shumë programues dhe shaka programuesish thonë:

Programuesit e dinë që ju filloni të numëroni nga 0 në vend të 1.

Epo, kjo nuk është plotësisht e vërtetë 🙂 arsyeja e vërtetë pse kjo konsiderohet në këtë mënyrë deri më sot është sepse gjatë krijimit të saj, për hartuesit e përpiluesve ishte më e lehtë për të llogaritur një grup duke përdorur offsets, këto tregojnë distancën që ekziston nga një pikë e origjinës në objektivin e dëshiruar, kjo është arsyeja pse:

array[8]=2;

Na tregon se elementi i vargut përcaktohet si 2, sepse 8 njësi i shtohen grupit për të arritur hapësirën e kujtesës ku do të ruhet elementi 2. Para C, shumë gjuhë filluan të numërojnë nga 1, falë C, tani pothuajse të gjitha fillojnë me 0 kështu që nuk është faji i programuesve, por fajtori i hartuesve të përpiluesve që është kështu.

Shell Bourne

Kjo është një temë që, edhe pse nuk lidhet drejtpërdrejt me C, mund të ndihmojë më shumë se një për të kuptuar pse programimi Shell është kaq i veçantë, dhe sigurisht është kurioz të dihet. Steve Bourne shkroi një përpilues për Algol-68 atë sezon, kjo është një gjuhë në të cilën çelësat ( {} ) zëvendësohen me fjalë, kështu që ne mund ta përcaktojmë atë si më poshtë në C:

#define IF if(

#define THEN ){

#define ELSE }else{

#define FI };

Këto janë vetëm disa shembuj të asaj që Algol kupton, por nëse ne e zbatojmë atë në programimin shell sot, ju do të kuptoni pse në shell programet tuaja kërkojnë një fi për secilën if 🙂 sigurisht interesante.

Filloni të lexoni

Unë nuk mund t'ju them të gjitha detajet e librit, veçanërisht pasi shumë nga këto janë tashmë tema programimi që kërkojnë një sfond paraprak për t'u kuptuar, por mendova se do të ndaja me ju disa nga anekdotat kurioze që gjeta gjatë rrugës 🙂 Nuk kam pasur kohë për të punuar në disa prej artikujve që kanë qenë në listën e gjërave sepse këto libra të fundit thjesht më kanë kapur dhe po i shijoj çdo ditë dhe mbi të gjitha duke u përpjekur t'i kuptoj ato në maksimum. Përshëndetje dhe së shpejti do të jem në gjendje të ndaj me ju më shumë tema, përshëndetje.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   John dijo

    Artikulli juaj ka qenë shumë interesant për mua. Faleminderit shume.

  2.   Ho2gi dijo

    Shumë interesante si gjithmonë.

  3.   Jose Rafael dijo

    Shumë interesante sqarimet janë të mira.

  4.   Alex dijo

    I shkëlqyer

  5.   danielga dijo

    Interesante !!! Faleminderit shume.

  6.   i dytë dijo

    shumice? nuk do te jete multike (https://en.wikipedia.org/wiki/Multics)

    gjuhët me indekse nga 1 janë një shpikje e shejtanit ...

    1.    ChrisADR dijo

      Shënim interesant 🙂 Supozoj se në një moment të historisë janë përdorur të dy termat:

      https://www.landley.net/history/mirror/collate/unix.htm

      dhe padyshim i njëjti libër që është shkruar në mes të viteve '90.

      Faleminderit për sqarimin 🙂 përshëndetjet

      1.    i dytë dijo

        wa, çfarë gjë e çuditshme, ju më keni bërë të dyshoj, unë kam shikuar në një kopje të "blerë" të Programit Expert C: Sekrete të thella dhe ka shumë multimediale që vijnë, është hera e parë që kam dëgjuar që shumica. Sa kurioz, të kujton pak lepurin trix

        1.    ChrisADR dijo

          hahaha sigurisht kurioz, kam kontrolluar kopjen time angleze te sekreteve te thella, aty thuhet gjithashtu Multrics (sepse edhe ti me kishe bere te dyshoja) ... mbase ishte shprehje e kohes

          të fala

  7.   ED774 dijo

    Kontribut i madh

  8.   anonim dijo

    Interesante, megjithëse me siguri, Multrics është për shkak të një shtypjeje të gabuar, pasi që emri origjinal i këtij sistemi operativ ishte Multics, dhe Unix fillimisht u quajt Unics, pikërisht duke iu referuar atij sistemi operativ të shkëlqyeshëm, përfundimisht dhe nga fonetika, Unics se i shndërruar në Unix, tani, ju vetëm duhet të përmendni emrin e kush konsiderohet autori i Unix; Ken Thompson, legjenda thotë se të dy Thompson dhe Ritchie ishin në kafeterinë e Bell Labs duke komentuar mbi projektet e tyre dhe ishte se Ritchie i sugjeroi Thomposon që ai të rishkruante programin e tij Unics me C, gjuhën që kishte shkruar ... , është histori. 😉

    Nga rruga, më parë të gjitha programet ishin shkruar me udhëzimet e makinës, gjë që i bënte ata plotësisht të varur nga hardueri, inovacioni i C, përveç lehtësimit të shkrimit të programeve, ishte se gjuha ishte e pavarur nga hardueri që zbatonte përpiluesit, një filozofi që shumë vite më vonë Java do të merrte, në kuptimin që programet nuk ishin të varura nga sistemi operativ, duke shtuar makinën e famshme virtuale Java.

    1.    ChrisADR dijo

      E keqja për legjendat është se ato shtrembërojnë historinë, në më shumë mënyra sesa një ... dhe ato mund t'ju bëjnë të mendoni se diçka ndodh kur nuk është ... si fakti i bisedës ekzistuese midis Thompson dhe Ritchie (të cilën unë e harrova sipas dëshirës) pasi çon në gabime historike dhe teknike (C nuk ishte para UNIX) ...

      Dhe sa i përket të dytës ... një legjendë tjetër që shtrembëron realitetin, pasi që para C kishte B, A, pascal, Ada, algol-60, PL / 1 dhe disa më shumë që ishin gjuhë programimi siç duhet (shumë ndryshe nga Asambleja dhe dialektet e tyre nga arkitektura që janë të varura nga hardueri i procesorit) kështu që C nuk "përtëriti" në këtë kuptim, ai thjesht miratoi zgjidhje që tashmë ekzistonin në gjuhë të tjera dhe në fund u bë e njohur më shpejt dhe më mirë se këto ... E vetmja pjesë E vërteta është se Java u bazua në këtë koncept të transportueshmërisë për të krijuar më vonë makinerinë e saj virtuale, por jo vetëm që u mbështet në C për këtë, por ndoqi modele të tjera, përndryshe nuk do të kishim paradigmën e programimit të orientuar drejt objektit në java ...

      Ndjeva se duhet ta sqaroja situatën, sepse kushdo që e din më pak mund ta konsideronte atë si të vërtetë dhe pastaj të besoja se ndodhi kështu ... përshëndetje

  9.   Ignatius Esquivel dijo

    Si gjithmonë, artikulli është shumë interesant, faleminderit për kontributin.