GNU/Linux >> Belajar Linux >  >> Linux

Linux – Apakah Proses Yang Memiliki Terminal Pengendali, Atau Sesi Yang Memiliki Terminal Pengendali?

Ketika kita mengatakan bahwa suatu proses memiliki terminal pengontrol, apakah yang kita maksud adalah proses itu sendiri memiliki terminal pengontrol, atau apakah sesi milik proses yang memiliki terminal pengontrol?

Saya dulu berpikir bahwa sesilah yang memiliki terminal pengontrol, tetapi kemudian saya telah membaca yang berikut (dari sini) yang menyiratkan bahwa proseslah yang memiliki terminal pengontrol:

Salah satu atribut dari suatu proses adalah terminal pengontrolnya. Proses anak
yang dibuat dengan garpu mewarisi terminal pengontrol dari
proses induknya. Dengan cara ini, semua proses dalam sesi
mewarisi terminal pengontrol dari pemimpin sesi. Pemimpin sesi
yang memiliki kontrol terminal disebut proses
pengontrol terminal itu.

Jawaban yang Diterima:

Memang sesi yang memiliki terminal pengendali

Spesifikasi UNIX Tunggal menggambarkan hubungan dalam hal terminal pengontrol menjadi "terkait dengan sesi". Seperti yang ditentukan, terminal pengontrol memiliki hubungan 1:1 dengan sesi. Ada “paling banyak satu terminal pengontrol” yang terkait dengan sebuah sesi, dan “terminal pengontrol dikaitkan dengan tepat satu sesi”.

Desain dan Implementasi FreeBSD buku mendekati ini sedikit berbeda, tetapi mencapai tempat yang sama. Tidak mungkin proses yang berbagi sesi yang sama memiliki terminal pengontrol yang berbeda, juga tidak mungkin satu terminal menjadi terminal pengontrol beberapa sesi.

Secara internal di FreeBSD begitulah cara kerja struktur data. Struktur proses memiliki pointer ke pgrp struktur yang mewakili grup proses tempat proses tersebut berada, yang pada gilirannya menunjuk ke session struktur yang mewakili sesi milik grup proses, yang pada gilirannya menunjuk ke tty struktur terminal pengontrol untuk sesi.

Secara internal di Linux, semuanya sedikit lebih kompleks. Setiap task_struct memiliki satu set pointer ke pid struktur untuk ID grup proses dan ID sesinya; dan memiliki pointer lain ke signal_struct per-proses struktur yang pada gilirannya langsung menunjuk ke tty struktur terminal pengontrol.

Bacaan lebih lanjut

  • George V. Neville-Neil, Marshall Kirk McKusick, dan Robert N.M. Watson (2014-09-25). "Manajemen proses". Desain dan Implementasi Sistem Operasi FreeBSD . Addison-Wesley Profesional. ISBN 9780133761832.
  • Donald Lewine (1991). “Terminal I/O”. Panduan Pemrogram POSIX . O'Reilly Media, Inc. ISBN 9780937175736.
  • Daniel P. Bovet dan Marco Cesati (2005). “Proses”. Memahami Kernel Linux:Dari Port I/O ke Manajemen Proses . edisi ke-3. O'Reilly Media, Inc. ISBN 9780596554910.
  • “Definisi”. Spesifikasi Basis Grup Terbuka . Edisi 7. 2016. IEEE 1003.1:2008.
  • “Antarmuka Terminal Umum”. Spesifikasi Basis Grup Terbuka . Edisi 7. 2016. IEEE 1003.1:2008.
Terkait:Linux – Bagaimana cara membuat daftar folder menggunakan perintah bash?
Linux
  1. Panduan terminal Linux untuk pemula

  2. Salin file di terminal Linux

  3. Ganti nama file di terminal Linux

  1. Pindahkan file di terminal Linux

  2. Gunakan XMLStarlet untuk mengurai XML di terminal Linux

  3. Cara mengubah warna terminal Linux Anda

  1. Dengarkan radio di terminal Linux

  2. Bagaimana cara menghentikan proses layar di linux?

  3. Apa definisi sesi di linux?