Kust UNIX pärineb?

Tervitused kõigile 🙂 Nendel nädalatel olen olnud mõnus programmeerimisraamatute lugemisega rahul, tõsi on see, et parim viis programmeerimiseks on alati raamat, mõni artikkel, õpetus, juhend, mille leiate (ka minu), on lihtsalt võrdlusaluseid, kui võrrelda neid selle teema tegeliku raamatuga. Nüüd peame määratlema, mis on ka "päris" raamat, kuna kõik raamatud pole tavaliselt head ja paljud neist võivad isegi maksta rohkem, kui nad tegelikult väärt on, ja raiskavad aega.

Nende aastate jooksul on loetud raamatute loetelu ja soovitatud raamatute loetelu üsna palju lahknenud, kuid kahtlemata on mõned meie lemmikud (kindlas järjekorras):

  • CE Walkeri sertifitseeritud eetiline häkker, autor Matt Walker.
  • Pythoni algus: algajast professionaalini, autor Magnus Lie Hetland.
  • Häkkimine: Jon Ericksoni ekspluateerimise kunst.
  • Massimo Banzi Arduinoga alustamine.
  • Baser Shelli õppimine Cameron Newbami ja Bill Rosenblatti poolt.
  • Arnold Robbins, Elbert Hannah ja Linda Lamb vi ja vim toimetajate õppimine.
  • Greg Kroah-Hartman (ka Gentoo arendaja) Linuxi tuum lühidalt.
  • Jens Gustedti kaasaegne C
  • Shellcoderi käsiraamat Chris Anley, John Heasman, Felix «FX» Linder ja Gerardo Richarte.
  • C-programmeerimiskeel, autorid Brian W. Kernighan ja Dennis M. Ritchie (C loojad)
  • Silumise GDB-ga autorid Richard Stallman, Roland Pesch, Stan Shebs jt.
  • Varjatud Linuxi häkkimine: suure turu ISECOMi teadlaste Linuxi turvasaladused ja -lahendused, sealhulgas Pete Herzog, Marga Barceló, Rick Tucker, Andrea Barisani (teine ​​endine Gentoo arendaja), 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 jt.
  • Operatsioonisüsteemid: kontseptsioonipõhine lähenemisviis, autor Dhananjay M. Dhamdhere
  • Pro Chiti autorid Scott Chacon ja Ben Straub
  • Ekspert C programmeerimine: Peter Van Der Lindeni sügavad saladused.

Ma oskasin kõigist neist raamatutest väga rääkida, kuid tänaseks võtame mõned lõigud nimekirja viimasest, kuna paljud neist anektoodidest on mind köitnud ja aidanud mul paremini mõista mõnda C ja üldiselt programmeerimise keerukat saladust. 🙂

Unix ja C

Kui me räägime UNIX-ist, siis on ajalugu põimunud selle süsteemi päritolu ja keele arenguga, mida tänaseni on selle ja selle derivaatide (sh Linux) arendamisel kõige enam kasutatud. Ja kummalisel kombel on need kaks sündinud "eksimusest".

Multikad See oli megaprojekt, mis tõi operatsioonisüsteemi loomiseks kokku Belli laborid, General Electricu ja MITi. See süsteem esitas palju vigu ja ühe olulisema jõudlusprobleemi, mis muutsid süsteemi praktiliselt kasutuskõlbmatuks. Me räägime aastast 1969, nii et tollane riistvara ei suutnud toetada tarkvara enda hulka töötamiseks vajalikku tarkvara.

Alles 1970. aastal alustasid paar Belli inseneri PDP-7 lihtsa, kiire ja kerge operatsioonisüsteemi väljatöötamist. Kogu süsteem oli sisse kirjutatud Assembler ja talle oli helistatud UNIX paroodiana Multikad kuna ta tahtis teha vaid mõnda asja, kuid teha neid hästi selle tohutu raisatud töö asemel, mida teine ​​tähendas. Nüüd saate aru, miks Ajastu algab 1. jaanuaril 1970. 🙂 Minu jaoks üsna kurioosne fakt. Sel ajal ei räägitud veel C-st endast, vaid a-st Uus B kuna Ritchie ideed tulid juba tolleaegsest B-keelest.

Varajane C

Aastate jooksul (1972–3) hakati kasutama terminit C, kuna uus keel hakkas kuju võtma ja umbes sel ajal on sündinud veel üks kurioosne fakt, ütlevad paljud programmeerijad ja programmeerijate naljad:

Programmeerijad teavad, et loendama hakatakse 0 asemel 1-st.

Noh, see pole päris tõsi 🙂 tegelik põhjus, miks seda tänaseni niimoodi peetakse, on see, et selle loomisel oli kompilaatorite jaoks massiivi arvutamine lihtsam korvab, need näitavad kaugust, mis eksisteerib lähtekohast soovitud eesmärgini, mistõttu:

array[8]=2;

See ütleb meile, et element array on määratletud kui 2, kuna massiivile lisatakse 8 ühikut, et jõuda mäluruumi, kuhu salvestatakse element 2. Enne C-d hakkasid paljud keeled tänu C-le lugema 1-st, nüüd algavad peaaegu kõik 0-ga 🙂 nii et see pole programmeerijate, vaid kompilaatori kirjutajate süü, et see nii on.

Bourne'i kest

See on teema, mis, ehkki pole otseselt seotud C-ga, võib aidata rohkem kui ühel mõista, miks Shelli programmeerimine nii omapärane on, ja kindlasti on seda uudishimulik. Steve Bourne kirjutas sel hooajal Algol-68 koostaja, see on keel, milles klahvid ( {} ) asendatakse sõnadega, nii et võiksime selle defineerida C-s järgmiselt:

#define IF if(

#define THEN ){

#define ELSE }else{

#define FI };

Need on vaid mõned näited sellest, mida Algol mõistab, kuid kui seda rakendada tänapäeval shelliprogrammeerimisel, saate aru, miks shellis vajavad teie programmid fi igaühe jaoks if 🙂 kindlasti huvitav.

Alustage lugemist

Ma ei saa teile raamatu kõiki üksikasju öelda, eriti kuna paljud neist on juba programmeerimise teemad, mille mõistmiseks on vaja eelnevat tausta, kuid mõtlesin, et jagan teiega mõnda uudishimulikku anekdooti, ​​mille leidsin teekonna pealt 🙂 mul pole olnud Aeg töötada mõne artikliga, mis on olnud to-do nimekirjas, sest need viimased raamatud on mind lihtsalt köitnud ja ma naudin neid iga päev ning proovin ennekõike neid täiel määral mõista. Tervitused ja varsti saan teiega jagada rohkem teemasid, tervitusi.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   John DIJO

    Teie artikkel on olnud minu jaoks väga huvitav. Tänud.

  2.   HO2Gi DIJO

    Väga huvitav nagu alati.

  3.   Jose Rafael DIJO

    Väga huvitav, selgitused on head.

  4.   Alex DIJO

    Suurepärane

  5.   danielga DIJO

    Huvitav !!! Tänud.

  6.   Segundo DIJO

    multikad? see ei ole multics (https://en.wikipedia.org/wiki/Multics)

    keeled indeksiga 1 on saatana leiutis ...

    1.    ChrisADR DIJO

      Huvitav märkus 🙂 Oletan, et mingil ajal ajaloos on kasutatud mõlemat mõistet:

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

      ja ilmselt sama raamat, mis on kirjutatud 90ndate keskel.

      Täname selgituste eest 🙂 tervitused

      1.    Segundo DIJO

        va, mis imelik asi, sa oled pannud mind kahtlema, olen uurinud eksperdi C programmeerimise "ostetud" eksemplari: sügavad saladused ja multikaid tuleb, see on esimene kord, kui ma neid multikat kuulen. Kui uudishimulik, meenutab see natuke trix-küülikut

        1.    ChrisADR DIJO

          hahaha kindlasti uudishimulik, kontrollisin oma ingliskeelset sügavate saladuste koopiat, seal on ka kirjas Multrics (sest ka sina olid mind kahtlema pannud) ... võib-olla oli see aja väljendus 😛

          seoses

  7.   ED774 DIJO

    Suur panus

  8.   anonüümne DIJO

    Huvitav, ehkki kindlasti on Multrics seotud vale trükiga, kuna selle operatsioonisüsteemi algne nimi oli Multics ja Unixit kutsuti algselt Unicsiks, viidates täpselt sellele suurepärasele operatsioonisüsteemile, lõpuks ja foneetika järgi, Unics se Unixiks ümberkujundatuna pidite nüüd mainima ainult selle nime, keda peetakse Unixi autoriks; Ken Thompson, legend räägib, et nii Thompson kui ka Ritchie olid Bell Labsi kohvikus oma projekte kommenteerimas ja just see, et Ritchie soovitas Thomposonile oma Unics C-ga kirjutada, kirjutatud keele ... ja ülejäänud , on ajalugu. 😉

    Muide, varem olid kõik programmid kirjutatud masina juhistega, mis muutis need täielikult riistvarast sõltuvaks, lisaks C-i uuendusele, lisaks programmide kirjutamise lihtsustamisele, oli see, et keel oli riistvarast sõltumatu riistvara kompilaatorid, filosoofia, mis võtab aastaid hiljem Java, selles mõttes, et programmid ei sõltunud operatsioonisüsteemist, lisades kuulsa Java virtuaalse masina.

    1.    ChrisADR DIJO

      Legendide halb asi on see, et nad moonutavad ajalugu mitmel viisil ... ja võivad panna teid mõtlema, et midagi juhtub siis, kui seda pole ... nagu Thompsoni ja Ritchie vahelise vestluse fakt (mille ma omal soovil välja jätsin), kuna see viib ajalooliste ja tehniliste vigade juurde (C ei olnud enne UNIX-i) ...

      Ja mis puudutab teist ... veel üks legend, mis moonutab reaalsust, kuna enne C olid veel B, A, pascal, Ada, algol-60, PL / 1 ja veel mõned, mis olid korralikult programmeerimiskeeled (väga erinevad Assambleest ja nende dialektid arhitektuuri järgi, mis sõltuvad protsessori riistvarast), nii et C ei "uuendanud" selles mõttes, ta lihtsalt võttis kasutusele lahendused, mis olid juba olemas teistes keeltes, ja lõpuks sai see populaarsemaks ja kiiremini kui need ... Ainus osa Tõde on see, et Java põhines sellel teisaldatavuse kontseptsioonil, et hiljem oma virtuaalmasinat luua, kuid mitte ainult ei tuginenud selles C-le, vaid järgis ka teisi mudeleid, vastasel juhul ei oleks meil Java-s objektipõhist programmeerimisparadigmat ...

      Tundsin, et peaksin olukorra selgeks tegema, sest kõik, kes pole nii hästi kursis, võiks seda tõeks pidada ja siis uskuda, et see juhtus niimoodi ... tervitused 🙂

  9.   Ignatius Esquivel DIJO

    Nagu ikka, on artikkel väga huvitav, aitäh panuse eest.