No kurienes rodas UNIX?

Sveiciens visiem 🙂 šajās nedēļās esmu ļoti izklaidējies, lasot dažas grāmatas par programmēšanu, patiesība ir tāda, ka labākais veids, kā iemācīties programmēt, vienmēr ir grāmata, jebkurš raksts, apmācība, ceļvedis, ko var atrast (ieskaitot manu), ir vienkārši salīdzinot tos ar reālu grāmatu par šo tēmu. Tagad mums ir jādefinē arī tā, kas ir "īsta" grāmata, jo ne visas grāmatas parasti ir labas, un daudzas no tām var pat maksāt dārgāk, nekā tās patiesībā ir vērts, un tērēt laiku.

Šajos gados grāmatu, kuras esmu lasījis, un to grāmatu saraksts, kuras es varu ieteikt, ir diezgan atšķirīgas, taču, bez šaubām, daži no maniem izlases veidiem mums ir (bez īpašas secības):

  • CEH sertificēts ētiskais hakeris, Matt Matter.
  • Python sākums: no iesācēja līdz profesionālam, ko izstrādājis Magnuss Lī Hetlands.
  • Datorurķēšana: Jona Ēriksona ekspluatācijas māksla.
  • Masimo Banzi darba sākšana ar Arduino.
  • Kamerona Ņūbama un Bila Rozenblata mācīšanās.
  • Arnolda Robinsa, Elberta Hannas un Lindas Lambas vi un vim redaktoru mācīšanās.
  • Greg Kroah-Hartman (arī Gentoo izstrādātājs) Linux kodols īsumā.
  • Mūsdienu C autors Jens Gustedt
  • Shellcoder rokasgrāmata, ko sastādījuši Kriss Anlijs, Džons Hīzmans, Fēlikss «FX» Linder un Džerardo Ričarte.
  • C programmēšanas valoda, kuras autori ir Braiens V. Kernigans un Deniss M. Ričijs (C veidotāji)
  • Atkļūdošana ar GDB, ko veica Ričards Stallmans, Rolands Pešs, Stens Šebs u.c.
  • Hacking Linux Exposed: Linux drošības noslēpumi un risinājumi no lielas ISECOM pētnieku grupas, tostarp Pete Herzogs, Marga Barcelo, Riks Takers, Andrea Barisani (vēl viens bijušais Gentoo izstrādātājs), Tomass Baders, Saimons Biless, Kolbijs Klarks, Rauls Čīsa , Pablo Endres, Ričards Feists, Andrea Ghirardini, Julian "HammerJammer" Ho, Marco Ivaldi, Dru Lavigne, Stephane Lo Presti, Christopher Low, Ty Miller, Armand Puccetti u.c.
  • Operētājsistēmas: Dhananjay M. Dhamdhere pieeja, kas balstīta uz koncepciju
  • Skots Šekons un Bens Štraubs Pro Git
  • Eksperta C programmēšana: Pītera Van Der Lindena dziļi noslēpumi.

Es varētu runāt par katru no šīm grāmatām, taču šodien mēs ņemsim dažus fragmentus no pēdējā sarakstā esošā, jo daudzi no šiem anektodiem mani ir aizrāvuši un palīdzēja labāk izprast dažus sarežģītos C un vispārīgi programmēšanas noslēpumus. 🙂

Unix un C

Kad mēs runājam par UNIX, vēsture ir savstarpēji saistīta ar šīs sistēmas izcelsmi un valodas attīstību, kas līdz šai dienai ir viena no visbiežāk izmantotajām tās un tās atvasinājumu (ieskaitot Linux) attīstībā. Un interesanti, ka šie divi ir dzimuši no "kļūdas".

Multikri Tas bija mega projekts, kas pulcēja Bell laboratorijas, General Electric un pašu MIT, lai izveidotu operētājsistēmu.Šī sistēma parādīja daudzas kļūdas un vienu no svarīgākajām veiktspējas kļūmēm, kas padarīja sistēmu praktiski nelietojamu. Mēs runājam par 1969. gadu, tāpēc tā laika aparatūra nevarēja atbalstīt programmatūras daudzumu, kas bija nepieciešams pašas sistēmas darbināšanai.

Tikai 1970. gadā pāris Bell inženieru sāka strādāt pie vienkāršas, ātras un vieglas PDP-7 operētājsistēmas. Visa sistēma bija rakstīta Asambleris un bija izsaukts UNIX kā parodija Multikri tā kā viņš gribēja darīt tikai dažas lietas, bet darīt tās labi milzīgā izšķērdētā darba vietā, ko nozīmēja otrā. Tagad jūs varat saprast, kāpēc Laikmets sākas 1. janvārī, 1970. 🙂 Man diezgan kuriozs fakts. Tajā laikā vēl nebija runas par pašu C, bet gan par a Jauns B tā kā Ričija idejas radās no tā laika jau lietotās B valodas.

Agrīnā C

Gadu gaitā (1972–3) terminu C sāka lietot, kad jaunā valoda sāka veidoties, un ap šo laiku piedzima vēl viens kuriozs fakts, daudzi programmētāji un programmētāju joki saka:

Programmētāji zina, ka jūs sākat skaitīt no 0, nevis 1.

Nu, tas nav pilnīgi taisnība 🙂 patiesais iemesls, kāpēc tas tiek uzskatīts par šo dienu, ir tāpēc, ka tā sastādīšanas laikā sastādītājiem bija vieglāk aprēķināt masīvu, izmantojot kompensē, tie norāda attālumu, kas pastāv no sākuma punkta līdz vēlamajam mērķim, tāpēc:

array[8]=2;

Tas mums saka, ka elements masīvs ir definēts kā 2, jo masīvam tiek pievienotas 8 vienības, lai sasniegtu atmiņas vietu, kur tiks glabāts elements 2. Pirms C, daudzas valodas sāka skaitīt no 1, pateicoties C, tagad gandrīz visas sākas ar 0 🙂 tāpēc tā nav programmētāju, bet sastādītāju vaina.

Bourne Shell

Šī ir tēma, kas, kaut arī nav tieši saistīta ar C, var palīdzēt vairākiem saprast, kāpēc Shell programmēšana ir tik savdabīga, un to noteikti ir interesanti zināt. Ap to sezonu Stīvs Bourne uzrakstīja kompilatoru Algol-68, šī ir valoda, kurā taustiņi ( {} ) tiek aizstāti ar vārdiem, tāpēc mēs to varētu definēt šādi C:

#define IF if(

#define THEN ){

#define ELSE }else{

#define FI };

Šie ir tikai daži piemēri tam, ko Algol saprot, taču, ja mēs to šodien izmantosim čaumalu programmēšanai, jūs sapratīsit, kāpēc čaulā jūsu programmām ir nepieciešama fi katram if 🙂 noteikti interesanti.

Sāciet lasīt

Es nevaru pateikt visu grāmatas informāciju, it īpaši tāpēc, ka daudzas no tām jau ir programmēšanas tēmas, kuru izpratnei nepieciešama iepriekšēja pieredze, taču es domāju, ka padalīšos ar jums dažās ziņkārīgajās anekdotēs, kuras atradu ceļā. laiks strādāt pie dažiem priekšmetiem, kas ir bijuši to-do sarakstā, jo vienkārši šīs pēdējās grāmatas mani ir aizķērušas, un es tās izbaudu katru dienu un, pirmkārt, cenšos tās pilnībā izprast. Sveiciens un drīz es varēšu dalīties ar jums vairāk tēmās, apsveikumos.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   John teica

    Jūsu raksts man ir bijis ļoti interesants. Liels paldies.

  2.   HO2Gi teica

    Ļoti interesanti kā vienmēr.

  3.   Hosē Rafaels teica

    Ļoti interesanti, skaidrojumi ir labi.

  4.   Alex teica

    Lielisks

  5.   Daniela teica

    Interesanti !!! Liels paldies.

  6.   otrais teica

    multics? tas nebūs multics (https://en.wikipedia.org/wiki/Multics)

    valodas ar rādītājiem no 1 ir sātana izgudrojums ...

    1.    KrissADR teica

      Interesanta piezīme 🙂 Pieļauju, ka kādā vēstures brīdī ir izmantoti abi termini:

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

      un acīmredzot tā pati grāmata, kas sarakstīta 90. gadu vidū.

      Paldies par precizējumu 🙂 sveicieni

      1.    otrais teica

        va, kāda dīvaina lieta, jūs man likuši šaubīties. Esmu ieskatījies ekspertu C programmēšanas "nopirktajā" eksemplārā: dziļi noslēpumi un nāk multics, es pirmo reizi dzirdu šo multiku. Cik ziņkārīgs, tas nedaudz atgādina trix trušu

        1.    KrissADR teica

          hahaha, protams, ziņkārīgs, es pārbaudīju savu dziļu noslēpumu angļu kopiju, tur arī teikts: Multrics (jo arī jūs mani esat likuši šaubīties) ... varbūt tā bija laika izteiksme 😛

          Sveicieni

  7.   ED774 teica

    Liels ieguldījums

  8.   anonīms teica

    Interesanti, lai arī, protams, Multrics ir nepareizas drukas dēļ, jo šīs operētājsistēmas sākotnējais nosaukums bija Multics, un Unix sākotnēji sauca Unics, precīzi atsaucoties uz šo lielisko operētājsistēmu. pārveidots par Unix, tagad jums bija jāpiemin tikai tās personas vārds, kura sevi uzskata par Unix autoru; Kens Tompsons, leģendas vēsta, ka gan Tompsons, gan Ričijs bija Bell Labs kafejnīcā, komentējot savus projektus, un tas bija, ka Ričijs ieteica Thomposonam pārrakstīt savu Unics ar programmu C, valodu, kuru viņš bija uzrakstījis ... un pārējo , ir vēsture. 😉

    Starp citu, iepriekš visas programmas tika rakstītas ar mašīnas instrukcijām, kas padarīja tās pilnībā atkarīgas no aparatūras, C jaunievedums, izņemot to, ka ir vieglāk rakstīt programmas, bija tas, ka valoda bija neatkarīga no aparatūras, kas ieviesa kompilatori, filozofija, kuru daudzus gadus vēlāk izmantos Java tādā ziņā, ka programmas nebija atkarīgas no operētājsistēmas, pievienojot slaveno Java virtuālo mašīnu.

    1.    KrissADR teica

      Leģendām slikti ir tas, ka tās sagroza vēsturi vairākos veidos nekā vienā veidā ... un tās var likt domāt, ka kaut kas notiek, kad tā nav ... piemēram, esošās sarunas starp Tompsonu un Ričiju (kuru es izlaidu pēc vēlēšanās), jo tas ved uz vēsturiskām un tehniskām kļūdām (C nebija pirms UNIX) ...

      Kas attiecas uz otro ... vēl viena leģenda, kas kropļo realitāti, jo pirms C bija B, A, Pascal, Ada, algol-60, PL / 1 un vēl dažas citas, kas pareizi programmēja valodas (ļoti atšķirīgas no Assembly un tās dialekti pēc arhitektūras, kas ir atkarīgi no procesora aparatūras), tāpēc C šajā ziņā "neinovēja", viņš vienkārši pieņēma risinājumus, kas jau pastāvēja citās valodās, un galu galā tas kļuva populārs ātrāk un labāk nekā šie ... Vienīgā daļa Patiesība ir tāda, ka Java balstījās uz šo pārnesamības koncepciju, lai vēlāk izveidotu savu virtuālo mašīnu, taču tā ne tikai paļāvās uz C, bet arī sekoja citiem modeļiem, pretējā gadījumā mums Java nebūtu objektorientētās programmēšanas paradigmas ...

      Man šķita, ka man vajadzētu precizēt situāciju, jo ikviens, kurš nav tik labi pārzinošs, to var uztvert kā patiesu un pēc tam uzskatīt, ka tas notika šādi ... sveicieni 🙂

  9.   Ignacio Eskvivels teica

    Kā vienmēr, raksts ir ļoti interesants, paldies par ieguldījumu.