Dari mana datangnya UNIX?

Salam untuk semua weeks minggu-minggu ini saya cukup terhibur membaca beberapa buku mengenai pengaturcaraan, sebenarnya adalah cara terbaik untuk belajar memprogram selalu dengan buku, artikel, tutorial, panduan yang dapat dijumpai (termasuk buku saya) hanyalah penanda aras semasa membandingkannya dengan buku sebenar mengenai perkara ini. Sekarang, kita harus menentukan apa itu buku "nyata", kerana tidak semua buku biasanya bagus, dan banyak daripadanya bahkan boleh menelan belanja lebih tinggi daripada yang benar-benar bernilai dan membuang masa.

Selama bertahun-tahun senarai buku yang telah saya baca dan senarai buku yang dapat saya cadangkan telah sedikit berbeza, tetapi tanpa keraguan antara beberapa kegemaran saya, kami mempunyai (tanpa susunan tertentu):

  • Penggodam Etika Bertauliah CEH oleh Matt Walker.
  • Permulaan Python: Dari Novice to Professional oleh Magnus Lie Hetland.
  • Peretasan: seni eksploitasi oleh Jon Erickson.
  • Bermula dengan Arduino oleh Massimo Banzi.
  • Mempelajari bash Shell oleh Cameron Newbam & Bill Rosenblatt.
  • Mempelajari penyunting vi dan vim oleh Arnold Robbins, Elbert Hannah & Linda Lamb.
  • Linux Kernel secara ringkas oleh Greg Kroah-Hartman (seorang pemaju Gentoo juga).
  • Moden C oleh Jens Gustedt
  • Buku Panduan Shellcoder oleh Chris Anley, John Heasman, Felix «FX» Linder & Gerardo Richarte.
  • Bahasa pengaturcaraan C oleh Brian W. Kernighan & Dennis M. Ritchie (pencipta C)
  • Melakukan debug dengan GDB oleh Richard Stallman, Roland Pesch, Stan Shebs, et al.
  • Meretas Linux Terdedah: Rahsia dan Penyelesaian Keselamatan Linux dari sekumpulan besar penyelidik ISECOM, termasuk Pete Herzog, Marga Barceló, Rick Tucker, Andrea Barisani (bekas pemaju Gentoo lain), 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.
  • Sistem Operasi: Pendekatan Berasaskan Konsep oleh Dhananjay M. Dhamdhere
  • Pro Git oleh Scott Chacon dan Ben Straub
  • Pengaturcaraan Pakar C: Rahsia mendalam oleh Peter Van Der Linden.

Saya dapat bercakap dengan sangat baik untuk setiap buku ini, tetapi untuk hari ini kita akan mengambil beberapa petikan dari yang terakhir dalam senarai, kerana banyak anekod ini telah memikat saya dan membantu saya memahami beberapa rahsia C dan pengaturcaraan yang lebih rumit secara amnya. 🙂

Unix dan C

Ketika kita membicarakan UNIX, sejarah saling berkaitan dengan asal usul sistem ini dan perkembangan bahasa yang hingga kini merupakan salah satu yang paling banyak digunakan dalam pengembangannya dan turunannya (termasuk Linux). Dan peliknya, kedua-duanya lahir dari "kesilapan."

Multika Ini adalah projek mega yang menyatukan Bell Laboratories, General Electric dan MIT sendiri untuk membuat sistem operasi, kata sistem itu menunjukkan banyak kesalahan, dan antara salah satu yang paling penting, kegagalan prestasi yang menjadikan sistem praktikal tidak dapat digunakan. Kita bercakap mengenai tahun 1969, jadi perkakasan pada masa itu tidak dapat menampung jumlah perisian yang diperlukan untuk menjalankan sistem itu sendiri.

Tidak sampai tahun 1970 beberapa jurutera Bell mula mengerjakan sistem operasi yang mudah, cepat, dan ringan untuk PDP-7. Keseluruhan sistem telah ditulis Pemasang dan telah dipanggil UNIX sebagai parodi dari Multika kerana dia hanya ingin melakukan beberapa perkara, tetapi melakukannya dengan baik dan bukannya kerja terbuang yang besar yang dimaksudkan oleh yang kedua. Sekarang anda dapat memahami mengapa Epoch bermula 1 Januari, 1970. Fact Fakta yang agak ingin tahu bagi saya. Pada masa itu masih belum ada pembicaraan mengenai C itu sendiri, melainkan mengenai a Baru B kerana idea Ritchie berasal dari bahasa B yang sudah digunakan pada masa itu.

Awal C

Selama bertahun-tahun (1972-3) istilah C mula digunakan sejak bahasa baru mulai terbentuk, dan pada masa ini lahirlah satu lagi fakta ingin tahu, banyak lelucon pengaturcara dan pengaturcara mengatakan:

Pengaturcara tahu bahawa anda mula mengira dari 0 dan bukannya 1.

Baiklah, ini tidak sepenuhnya benar why sebab sebenar mengapa ini dianggap seperti ini hingga hari ini adalah kerana pada masa penciptaannya, bagi penulis penyusun lebih mudah untuk mengira suatu array menggunakan offset, ini menunjukkan jarak yang ada dari titik asal ke objektif yang diinginkan, itulah sebabnya:

array[8]=2;

Ia memberitahu kita bahawa unsur tersebut array ditakrifkan sebagai 2, kerana 8 unit ditambahkan ke array untuk mencapai ruang memori di mana elemen 2. akan disimpan. Sebelum C, banyak bahasa mula dihitung dari 1, terima kasih kepada C, sekarang hampir semuanya bermula dengan 0 🙂 jadi ini bukan kesalahan pengaturcara, tetapi penulis penyusun bahawa demikian.

Shell Bourne

Ini adalah topik yang, walaupun tidak berkaitan langsung dengan C, dapat membantu lebih dari satu orang untuk memahami mengapa pengaturcaraan Shell begitu aneh, dan pasti ingin tahu. Steve Bourne menulis penyusun untuk Algol-68 musim itu, ini adalah bahasa di mana kunci ( {} ) diganti dengan kata-kata, jadi kita dapat mendefinisikannya sebagai berikut di C:

#define IF if(

#define THEN ){

#define ELSE }else{

#define FI };

Ini hanyalah beberapa contoh dari apa yang difahami oleh Algol, tetapi jika kami menggunakannya pada program shell hari ini, anda akan memahami mengapa dalam shell program anda memerlukan fi untuk setiap if 🙂 pastinya menarik.

Mula membaca

Saya tidak dapat memberitahu anda semua perincian buku ini, terutamanya kerana banyak daripadanya sudah menjadi topik pengaturcaraan yang memerlukan latar belakang sebelumnya untuk difahami, tetapi saya fikir saya akan berkongsi dengan anda beberapa anekdot pelik yang saya dapati sepanjang perjalanan 🙂 Saya tidak mempunyai Masa untuk mengusahakan beberapa item yang ada dalam senarai tugas kerana beberapa buku terakhir ini menarik perhatian saya dan saya menikmatinya setiap hari dan lebih-lebih lagi berusaha memahaminya sepenuhnya. Salam dan tidak lama lagi saya dapat berkongsi dengan anda lebih banyak topik, salam.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   John kata

    Artikel anda sangat menarik bagi saya. Terima kasih banyak-banyak.

  2.   HO2Gi kata

    Sangat menarik seperti biasa.

  3.   Jose Rafael kata

    Sangat menarik penjelasannya bagus.

  4.   Alex kata

    Cemerlang

  5.   danielga kata

    Menarik !!! Terima kasih banyak-banyak.

  6.   2 kata

    multrics? tidak akan menjadi multik (https://en.wikipedia.org/wiki/Multics)

    bahasa dengan indeks dari 1 adalah penemuan syaitan ...

    1.    ChrisADR kata

      Catatan menarik 🙂 Saya rasa pada suatu ketika dalam sejarah kedua-dua istilah telah digunakan:

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

      dan jelas buku yang sama yang ditulis pada pertengahan tahun 90an.

      Terima kasih atas penjelasan 🙂 salam

      1.    2 kata

        wa, apa yang peliknya, anda telah membuat saya ragu-ragu, saya telah melihat salinan Pengaturcaraan Pakar C yang "dibeli": Rahsia mendalam dan terdapat banyak orang yang datang, ini adalah kali pertama saya mendengar banyak perkara itu. Betapa ingin tahu, ia mengingatkan sedikit arnab trix

        1.    ChrisADR kata

          hahaha tentu penasaran, saya periksa salinan rahsia dalam bahasa Inggeris saya, ada juga yang mengatakan Multrics (kerana anda juga telah membuat saya ragu) ... mungkin itu adalah ungkapan masa itu

          salam

  7.   ED774 kata

    Sumbangan hebat

  8.   Anonymous kata

    Menarik, walaupun pasti, Multrics disebabkan oleh salah cetak, kerana nama asal sistem operasi itu adalah Multics, dan Unix, yang awalnya disebut Unics, tepat merujuk kepada sistem operasi yang hebat itu, akhirnya dan oleh fonetik, Unics se berubah menjadi Unix, sekarang , anda hanya perlu menyebut nama siapa yang dianggap pengarang Unix; Ken Thompson, legenda mengatakan bahawa Thompson dan Ritchie berada di kafetaria di Bell Labs untuk mengulas mengenai projek mereka dan Ritchie mencadangkan kepada Thomposon agar dia menulis semula Unics dengan program C, bahasa yang ditulisnya ... dan berehat, adalah sejarah. 😉

    Ngomong-ngomong, sebelumnya semua program ditulis dengan arahan mesin, yang menjadikannya sangat bergantung pada perkakasan, inovasi C, selain menjadikannya lebih mudah untuk menulis program, adalah bahawa bahasa itu bebas dari perkakasan yang melaksanakan penyusun, sebuah falsafah yang bertahun-tahun kemudian akan diambil oleh Java, dalam arti bahawa program-program tersebut tidak bergantung pada sistem operasi, dengan menambahkan mesin maya Java yang terkenal.

    1.    ChrisADR kata

      Perkara yang buruk mengenai legenda ialah mereka memutarbelitkan sejarah, dengan lebih banyak cara daripada satu ... dan mereka boleh membuat anda berfikir bahawa sesuatu berlaku apabila tidak ... seperti kenyataan perbualan yang ada antara Thompson dan Ritchie (yang saya hilangkan sesuka hati) kerana ia membawa kepada kesalahan sejarah dan teknikal (C tidak sebelum UNIX) ...

      Dan untuk yang kedua ... legenda lain yang memutarbelitkan kenyataan, kerana sebelum C ada B, A, pascal, Ada, algol-60, PL / 1 dan beberapa lagi yang memprogram bahasa dengan betul (sangat berbeza dari Assembly dan dialeknya mengikut seni bina yang bergantung pada perkakasan pemproses) sehingga C tidak "berinovasi" dalam pengertian ini, dia hanya menggunakan penyelesaian yang sudah ada dalam bahasa lain dan pada akhirnya ia menjadi popular lebih cepat dan lebih baik daripada ini ... Satu-satunya bahagian Kebenarannya adalah bahawa Java berdasarkan konsep mudah alih ini untuk kemudian membuat mesin maya, tetapi tidak hanya bergantung pada C untuk ini, tetapi mengikuti model lain, jika tidak, kita tidak akan mempunyai objek- paradigma pengaturcaraan berorientasikan di java ...

      Saya merasakan bahawa saya harus menjelaskan keadaannya kerana sesiapa yang kurang berpengalaman dapat menganggapnya benar dan kemudian percaya bahawa ia berlaku seperti ini… salam 🙂

  9.   Ignatius Esquivel kata

    Seperti biasa, artikel itu sangat menarik, terima kasih atas sumbangannya.