selinux는 미합중국 안보국 NSA의 소프트웨어부서에서 만든 차단식 보안용 오픈소스 소프트웨어 모듈이다.

https://www.nsa.gov/what-we-do/research/selinux/download/index.shtml

SE는 약자로서 Security Enhanced 로써 '보안 강화'를 의미 한다.

selinux는 tty(teletypewriter : 제어 콘솔)를 바탕으로한 pty, pts의 외부로부터의 원격 제어 콘솔을 강력히 차단하는 툴이다.
뿐만 아니라 차단률이 매우 높기 때문에 ftp, 아파치 웹서버의 기능 또한 제한 하여 서버 pc에서의 사용은 매우 드물다.

그렇기에 대부분의 서버 전문가 들은 selinux를 삭제 하거나 기능을 끄거나 혹은 permissive (차단 해제 및 감시만 작동) 로만 작동 시키는 경우가 대부분 이다.

또한 리눅스 커널을 기반으로한 대표적인 스마트폰 운영체제인 안드로이드에서도 selinux를 기반으로한 'seandroid'가 존재 한다.
하지만 그것은 모든 스마트폰이 가지고 있는 것은 아니다.

원격 접속 강제 차단 동작은 'enforcing'으로 이루어 지며

해제는 log 정보만 획득하는 'permissive'로 동작 한다.




그리고 결론적으로 말하자면 selinux는 보통 윈도우즈에서 활용되는 백신들 처럼 악성코드를 일일이 찾는 방법을 사용하는 것이 아니며

원격 차단 이라는 원리적 혹은 원천적 보안 방어 시스템 이라고 말 할수 있을 것이다.


또 한가지 장점은 타 백신 소프트웨어들 처럼 pc에 대한 절대적 감시력을 가지는 시스템에 대한 전역 장악권 같은 것을 갖지 않는다.


즉 이 말은 selinux가 타 백신 소프트웨어들 처럼 컴퓨터의 악성코드를 검출 하겠다는 핑계로 pc를 마음대로 시찰하지 않는 다는 것이다.


단순히 원격접속이 외부에서 사용자의 허가 없이 이루어 지지 않도록 아예 차단을 시켜 놓는 방식이다.


어쩌면 이러한 방식은 방화벽인 iptable 이나 그것을 응용하는 ufw 보다 좀 더 원천적 이라고 볼 수 있을지도 모른다.


다음 페이지 에서는 리눅스 우분투에서 selinux를 설치 하는 방법에 대해 알아 보도록 하자.

다음 페이지 ( 리눅스 우분투에 SELINUX 설치하기 )

 

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         


Loading Captcha...
If it doesn't load, please disable Adblock!

별 다른 절차 없이 바로 위의 한 번의 체크 만으로  기기의 성능을 기반으로 하여 본 블로그에 아주 잠깐 채굴 지원 하실 수 있습니다.


비트코인 - BTC 지원 :


리플 - XRP 지원 :





리눅스를 활용하여 콘솔 환경에서 사진을 완벽하게 로드 할 수 없을까? 

충분히 가능하다.


간단하게 ' fbi ' 리는 프로그램을 응용하면 된다.

fbi 프로그램은  Linux framebuffer imageviewer  의 약자(!?) 로써 사실 여기서 L이 빠지고 억지로 fbi 라는 이름을 만든 것 같다. fbi 미 연방수사국을 의미 하는데 제작자가 연방수사국에 불만이라도 있는 것일끼?    

프로그램 이름에서 알 수 있다시피 프레임버퍼를 활용하여 사진파일을 로드 하는 방식이다. 

프레임 버퍼의 의의는 간단하고 단순하다.
     fbi -a 1.pngeda

디스플레이에 영상을 띄우기 위해 데이타 정보를 메모리에 저장하는 단계를 의미한다.


우선 간단히 설치 하도록 해보자.

 user@user~$

sudo apt-get install fbi -y



설치 하였으면 바로 사진을 로드해 보자. 

 user@user~$

fbi -a 1.png


-a 옵션은 자동으로 화면에 맞추어 사진을 줌인 해준다.


using "Noto Sans Mono CJK JP,Noto Sans Mono CJK JP Regular-16", pixelsize=16.67 file=/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc
ioctl VT_GETSTATE: 장치에 대해 부적절한 ioctl (not a linux console?)

 
하지만 위와 같이 이미 x-windows 데스크탑에 그래피컬 터미널이 올라가 있는 상태 에서는 프레임 버퍼 따로 사용하는 것이 불가능하다. 

하지만 가능하게 하는 방법이 있으니 바로 그것은 x-windows가 올라가 있지 않은 다른 tty 콘솔로써 실행이 가능 하다.

alt + f1 을 눌러 tty1으로 로그인히여 진입하여 다시 방금 처럼 사진을 로드해 보자.

될 것이다.  (esc키를 눌러 빠져 나온다.)


그런데 정말로 x-windows 데스크탑에서 fbi가 프래임 버퍼를 활용하는 것이 불가능 할까?

방법은 충분히 가능하다. 

바로 그래피컬 터미널에서 다른 tty 가상 콘솔을 활용하는 것이 그것이다.

그 꼼수 기능은 fbi 프로그램 자체에서도 응용이 가능하다. 또한 관리자 권한이 필요하다.

다시 ' alt + f7 ' 을 눌러 x - desktop으로 돌아오자.

다음과 같이 명령을 내리면  x-windows 데스크탑에서 fbi 실행이 가능하다.

 user@user~$

sudo fbi -a -T 1 1.png


                                                   (tty1) (파일)

하지만 해당 프로그램을 x - desktop에서 활용하는 것은 의미가 없을 것이다. 
그렇지만 임베디드 개발에 있어서 반드시 필요한 프로그램이다.

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         



기타프로의 gp tab파일을 읽어 드리고 연주 할수 있고 악보 제작 능력을 가진 턱스기타(tuxguitar)에 기존 미디 연주에 성에 안 찼던 사람들이 많을 것이다. 

왜냐하면 현재 많이 발달된 RSE(Resl Sound Engine)를 사용하여 현실감 넘치는 기타프로 소프트웨어에 비해 고작 기본 미디연주에만 안주해야 하는 것이 안타까웠을 것이다. 

하지만 중급이상의 PC유저라면 '사운드 폰트'를 활용해 MIDI 연주능력의 성능을 대폭 개선 시키는 방법을 알고 있을 것이다. 

하지만 그렇다고 해서 그것을 Tuxguitar에 접목 시키지 못한 다거나 아예 모르는 사람들이 현저히 많을 것으로 알고 본 포스트팅을 통해 널리 전하고자 한다.


여기서 가장 중요한 것은 바로 사운드 폰트 이다.

사운드 폰트는 미디 서버 시스템을 그대로 출력 이펙트를 변화 시키는 포맷 셋팅을 말한다. 

현재 2세대 까지 개발이 되어 사운드폰트의 확장자는 대부분 .sf2 이다.

먼저 턱스 기타가 설치 되어 있지 않다면 턱스기타를 설치 한다.
(자바 플러그인도 같이 설치 한다.)

 user@user~$

sudo apt-get install tuxguitar tuxguitar-jsa -y



그리고 미디 시스템 서버를 구동 하는 소프트웨어들을 설치 하자.

 user@user~$

sudo apt install fluid-soundfont-gm timidity -y




설치가 끝났으면 먼저 timidity 셋팅을 해주자. 

'/etc/timidity/timidity.cfg' 파일을 다음과 같이 편집해 주도록 하자.

- /etc/timidity/timidity.cfg -

# Instrument configuration file for timidity
# $Id: timidity.cfg,v 1.7 2005/09/03 19:26:03 hmh Exp $

# You can change just about every option in TiMidity++ using
# This config file.  Please refer to the timidity.cfg(5) manpage
# for more details

## If you have a slow CPU, uncomment these:
#opt EFresamp=d #disable resampling
#opt EFvlpf=d #disable VLPF
#opt EFreverb=d #disable reverb
#opt EFchorus=d #disable chorus
#opt EFdelay=d #disable delay
#opt anti-alias=d #disable sample anti-aliasing
#opt EWPVSETOZ #disable all Midi Controls
#opt p32a #default to 32 voices with auto reduction
#opt s32kHz #default sample frequency to 32kHz
#opt fast-decay #fast decay notes

## If you have a moderate CPU, try these:
#opt EFresamp=l
#opt EFreverb=g,42
#opt EFchorus=s
#opt s32kHz
#opt p64a

# Disabling some of the Midi Controls can help with the CPU usage a lot.
# The same goes to the VLPF, sample anti-aliasing and effects such as
# reverb and chorus

# By default, try to use the instrument patches from freepats:
soundfont /usr/share/sounds/sf2/FluidR3_GM.sf2

# alternatively, you can use the fluid-soundfont:
source /etc/timidity/fluidr3_gm.cfg
#source /etc/timidity/fluidr3_gs.cfg


위의 soundfont 는 실제 구동하는 사운드폰트 지정하며 

source 또한 같은 fluid 사운드포트 소스를 활용 한다.

만약 다른 사운드폰트 파일을 적용한다 할 지라도 소스는 그대로 fluid를 사용하는 것이 안정적인 음질을 구사 할 수 있다.

그리고 timidity 미디 시스템 서비스를 리셋 해준다.

 user@user~$

sudo service timidity restart



그리고 턱스기타를 실행후 다음과 같이 셋팅 한다.

     Tools →  Setting → Sound → Midi Sequencer = Tux guitar Sequencer

     Tools →  Setting → Sound → Midi Sequencer = Timidity[128:0]


     Tools → Pluguns → Java Sound Api Plugin = /usr/share/sounds/sf2/FluidR3_GM.sf2

Tools →  Setting → Sound → Midi Sequencer = Tux guitar Sequencer

     Tools →  Setting → Sound → Midi Sequencer = Timidity[128:0]



이제 턱스기타를 재실행하여 연주하면 리얼 사운드 미디가 동작할 것이다. 좀 더 정확한 확인을 원한다면 악기를 바꿔가보며 연주해 보자.

만약 미디가 그래도 출력 되지 않는다면 재부팅 하도록 하자.

미디 출력은 주사운드카드를 기본으로 한다.

원리는 timidity가 미디 시스템 출력을 담당하고 fluid-soundfont 패키지의 사운드폰트를 읽어서 미디 이펙트를 출력 하는 방식이다.

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         




Sometimes when you boot Linux, you will see a dialog box that reports the system error as shown in the following figure.

There are many reasons why.

The most common case is the Dpkg error issue with Linux Ubuntu

Or, security issues may arise after installing selinux.

Let's look at the principle of turning off system error reporting in earnest.

Usually on Linux Ubuntu, the following files are responsible for the configuration:


/etc/default/apport

The file is a configuration file about whether to report the error.



-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// cat 명령을 통하여 해당 파일을 들여다 보면


user@user-test:~$ cat /etc/default/apport


enable=1

-> 해당 파일이 'enable=1'로써 되어 있다면 오류보고를 하겠다는 설정이다. 이것을 'enable=0'로 바꾸어 주면 되는 것이다.




If the file is set to 'enable = 1', it will report an error. You can change this to 'enable = 0'.



-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// 에디터가 아닌 쉘에서 간편히 바꾸고 싶다면 다음과 같은 'sed' 명령어를 응용한 명령을 내리면 된다.


user@user-test:~$ sudo sed -i 's/enabled=1/enabled=0/g' etc/default/apport




If you are helpful, please press '♡' button.


And if there is something missing or wrong in the article, please let me know by comment.


대부분 파이썬(python)은 소스코드 그대로를 실행해서 사용하는 것이 일반적이다.

그렇다면 가장 중요하게 생각해야 할 점은 이썬을 굳이 컴파일 해야 하는 이유는 무엇인가? 일 것이다.

C언어의 경우는 소스코드를 해당 시스템의 바이너리로 변환해주는 컴파일 과정을 반드시 거쳐야만 실행이 가능한 구조를 가지고 있다.

하지만 파이썬의 경우에는 시스템에 파이썬 라이브러리가 깔려 있다면 자체 인터프리터 프로세스 기능을 활용하여 소스코드 그 자체로써의 실행이 가능해 진다.

물론 이 과정에서 시스템은 이미 해당 바이너리에 일치하는 파이썬 라이브러리 모듈을 가지고 있기 때문에 바이너리가 틀려도 얼마든지 실행될수 있다는 장점을 가지고 있다.

하지만 프로그래밍을 한 번 이상 해 본 사람은 뭔가 애매모호한 파이썬의 결점에 대해서 생각해 볼 수 밖에 없어 진다.

바로 해당 시스템에 소스코딩에 사용된 임포트(IMPORT) 라이브러리와나 기존의 베이스 기반은 파이썬 모듈이 없다면...

이것은 매우 중요한 문제이다.

예를 들어 기초 파일시스템을 설계 할때나 즉 파이썬이 설치 되지 않은 상태에서는 해당 소스코드 파일이 실행이 불가능 하기 때문이다.

즉 그 자체로서는 소프트웨어가 될수 없는 반드시 부모 프로세스인 파이썬이 있어야만 실행이 되는 비운의 운명인 것이다.

일부 의견들 중에는 파이썬을 컴파일 하는 이유가 '암호화'의 목적이 있다고 하는 경우가 있는데 그것은 매우 비전문적인 의견 이라고도 볼 수가 있다.

컴파일의 목적은 암호화가 목적이 아니라 독자적인 아키텍쳐로써의 실행을 가능케 하기 위한 바이너리화를 그 목적으로 두고 있으며 컴파일된 파일은 아스키 문자와 16진수로의 리딩이 가능하다. 뿐만 아니라 C언어나 파이썬은 디컴파일러를 수행할수 있는 소프트웨어가 존재한다.

또 파이썬의 컴파일의 장점을 또 한가지 예를 든다면 예를 들어 똑같은 GTK+(Gimp tool kit for gui)를 수행하는 각각의 컴파일 된 C언어와 파이썬 파일을 보았을때 용량에서 부터 큰 차이를 가진다.

즉 파이썬이 C언어 보다 컴파일된 크기가 훨씬 가볍다.


그렇다면 다음 장에서 부터 직접 적으로 파이썬을 컴파일 해보도록 하자.




도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


리눅스에서 아주 쉬운 콘솔에서의 환경변수에 대해서 알아보자.

'환경변수' 라는 것은 그럴듯하게 어렵게 들릴수도 있겠지만 매우 쉬우며 어렵지 않다.

그냥 단순하게 환경의 조건을 정하는 것이다.

어떤 운영체제를 다룬다면 그 체제의 왕은 절대적으로 여러분이다.

그렇다. 여러분이 왕이 되어서 어떤 여러가지 문자를 함축적으로 정하는 것이다.

예를 들어,

"she=my love" 라고 정하고 싶다면 보통 프로그래밍 에서는 변수를 이렇게 설정한다.

she="my love"

그냥 바로 이거다. 이것이 변수라는 것이다.

얼마나 쉬운가?

여기에서 변수에 환경이란 말을 더하여 콘솔에서의 '환경변수'를 절대적으로 정한다고 한다면 터미널에 그저 'export'를 앞에 갖다 붙히기만 하면 되는 것이다.

자 그러면 터미널에서 그것을 한번 시험해 보도록 하자.




// 환경변수를 지정한다.


root@test:~$ export she="my love"



// 지정된 환경변수를 불러온다.


root@test:~$ echo $she

my love

-> 'she'에 대한 환경변수가 출력 되는데 성공했다.





보시는 바와 같이 "my love" 라는 글이 출력 되는 것을 볼 수가 있다.

그리고 중요한 것은 그것을 불러오는 명령에서 she 앞에 '$'를 붙였다는 것이다.
'$' 문자는 유닉스 시스템의 쉘 스크립트 에서 변수를 불러오는 매우 중요한 담당 역할을 하는 문자 이다.

하지만 이와 같은 단순한 환경변수 지정은 여러분이 연 그 터미널에서만 변수로 동작하며 다른 터미널 콘솔 에서는 변수로 지정 되지 않는다.

그렇다면 변수를 계속 유지되도록 전역설정을 하려면 어떻게해야 할까?

이는 '$/HOME/.bashrc' 파일에 해당 스크립트를 입력하여 처리가 가능하다.
($HOME = /home/user)


// 먼저 만일을 대비해서 bashrc의 백업을 만든다. (물론 부팅시를 기준으로 한 백업 파일인 '$HOME/.bashrc~'가 존재 한다.) 


root@test:~$ cp ~/.bashrc ~/.bashrc.bak



// .bashrc 파일에 추가할 환경변수를 삽입 한다.


root@test:~$ echo 'export she="my love"' >> ~/.bashrc



// 재부팅 할 필요 없이 '~/.bashrc' 파일의 소스를 로드한다.


root@test:~$ source ~/.bashrc



// 지정된 환경변수를 불러온다.


root@test:~$ echo $she

my love


-> 'she'에 대한 환경변수가 출력 되는데 성공했다.




이와 같은 환경변수는 전역 bash 프로그래밍에서 활용되며 여러 소프트웨어들이 이러한 환경변수를 활용한다.
대표적으로 많이 사용되는 환경변수들은 다음과 같다.

$HOME     사용자의 홈 디렉토리
$PATH     실행 파일 경로
$LANG     환경변수에 설정된 언어
$PWD         사용자의 현재 작업중인 디렉토리
$SECONDS     해당 콘솔이 실행된 경과를 초 단위 시간으로 나타냄
$SHLVL     사용되는 쉘 레벨
$SHELL     사용되는 쉘 이름($BASH와 같게 나옴.)
$PPID     부모 프로세스의 PID
$BASH     BASH 실행 파일 경로
$BASH_VERSION     설치된 BASH 버전
$MAIL     환경변수에 설정된 메일주소
$OSTYPE     운영체제 종류
$TERM     현재 사용되는 터미널 이름
$HOSTNAME     호스트 전체 이름
$HOSTTYPE     시스템의 아키텍처
$MACHTYPE     PC의 아키텍쳐와 운영체제표시
$LOGNAME     로그인 사용자 이름
$UID         사용자 UID
$EUID     su 명령에서 사용하는 사용자의 유효 아이디 값(UID와 EUID 값은 다를 수 있음)
$USER     사용자의 이름
$HISTFILE     history파일의 경로
$DISPLAY     현재 사용되는 X 디스플레이 이름

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


여러분이 사용하는 리눅스 환경은 기본적으로 TTY (Teletypewriter) 위에 그러져 있다.
 
즉 데스크탑 gui (xwindows) 환경은 실질적으로 '콘솔' 위에 올려져 있는 형태 인 것이다.

콘솔(consol)은 CLI (Command line interface) 혹은 CUI라고도 불리우며 컴퓨터를 운용하기 위한 목적으로 텍스트를 사용자와 컴퓨터가 주고 받는 방식의 인터페이스를 말한다.

정확하게 말하자면 xwindows 데스크탑 환경에서 작동하는 콘솔은 pts/1에 올려져 있다.

이것이 무슨 말인지 지금부터 차근히 설명해 보겠다.

전체 콘솔은 다음과 같은 구성을 가지고 있다.

/dev (device)


    → TTY (일반 CLI 콘솔)

        → TTYs (시리얼 tty)

        → PTS (기본 xwindows를 위한 가상 콘솔)

            → PTY ( 외부의 원격 접속을 위한 가상 콘솔)



이와 같은 환경은 파일시스템 에서도 확인이 가능하다.



// 현재 세션을 확인한다.

$ tty

/dev/pts/1

   
    * 보시다시피 xwindwos 상테의 CLI는 PTS에 속한다.

// /dev 폴더를 출력한다.

$ ls /dev

autofs           log                 ram8      tty21  tty58   ttyS8
block            loop-control        ram9      tty22  tty59   ttyS9
bsg              loop0               random    tty23  tty6    ttyprintk
btrfs-control    loop1               rfkill    tty24  tty60   uhid
bus              loop2               rtc       tty25  tty61   uinput
char             loop3               rtc0      tty26  tty62   urandom
console          loop4               sda       tty27  tty63   usb
core             loop5               sda1      tty28  tty7    userio
cpu              loop6               sda2      tty29  tty8    vboxdrv
cpu_dma_latency  loop7               sda3      tty3   tty9    vboxdrvu
cuse             lp0                 sda4      tty30  ttyS0   vboxnetctl
disk             mapper              sdb       tty31  ttyS1   vboxusb
dm-0             mcelog              sdc       tty32  ttyS10  vcs
dri              mem                 sdc1      tty33  ttyS11  vcs1
ecryptfs         memory_bandwidth    sdc2      tty34  ttyS12  vcs10
fb0              mqueue              sdc5      tty35  ttyS13  vcs2
fd               net                 sg0       tty36  ttyS14  vcs3
full             network_latency     sg1       tty37  ttyS15  vcs4
fuse             network_throughput  sg2       tty38  ttyS16  vcs5
fw0              null                shm       tty39  ttyS17  vcs6
hidraw0          parport0            snapshot  tty4   ttyS18  vcs8
hidraw1          port                snd       tty40  ttyS19  vcsa
hidraw2          ppp                 stderr    tty41  ttyS2   vcsa1
hpet             psaux               stdin     tty42  ttyS20  vcsa10
hugepages        ptmx                stdout    tty43  ttyS21  vcsa2
hwrng            pts                 tty       tty44  ttyS22  vcsa3
i2c-0            ram0                tty0      tty45  ttyS23  vcsa4
i2c-1            ram1                tty1      tty46  ttyS24  vcsa5
i2c-2            ram10               tty10     tty47  ttyS25  vcsa6
i2c-3            ram11               tty11     tty48  ttyS26  vcsa8
i2c-4            ram12               tty12     tty49  ttyS27  vfio
i2c-5            ram13               tty13     tty5   ttyS28  vga_arbiter
i2c-6            ram14               tty14     tty50  ttyS29  vhci
i2c-7            ram15               tty15     tty51  ttyS3   vhost-net
initctl          ram2                tty16     tty52  ttyS30  zero
input            ram3                tty17     tty53  ttyS31
kfd              ram4                tty18     tty54  ttyS4
kmsg             ram5                tty19     tty55  ttyS5
kvm              ram6                tty2      tty56  ttyS6
lightnvm         ram7                tty20     tty57  ttyS7



위의 /dev 폴더의 출력을 보면 tty들이 상당히 많은 것을 볼수가 있으며 pts 폴더 또한 확인이 가능하다.

다른 tty의 접근은 키보드로써 바로 접근이 가능하다.

'Alt + Ctrl + F1' 키를 눌러 보도록 하자.

그러면 화면이 바뀌면서 tty1 콘솔 모드로 진입 하게 된다.

그렇다면 차례 차례 F6까지 눌러 보도록 하자.

'Alt + Ctrl + F7' 까지 눌러보면 다시 원래의 XWINDOWS(pts/n)환경으로 돌아온 것을 알수가 있다.

사용 가능한 콘솔은 tty6 까지이고 xwindows 부터 사용하는 콘솔은 pts 에 속한다.

※ 하지만 만약 보안 툴인 selinux 를 'ecforce'로써 작동하여 사용하고 있다면 사용자도 다른 tty로 접근이 불가할 뿐만이 아니라 다른 pts, pty에 외부에서의 접근이 불가 하다.

즉 사용자도 tty를 사용하기 위해서는 selinux를 'permissive'로 정책을 바꿔줘야 한다.


해당 방법은 다음 포스트 에서 확인 할수 있다.

물론 tty에서 xwindwos 진입이 불가 한 것은 아니다.


// 먼저 'Alt + Ctrl + F1' 키를 눌러 tty1에 진입 하고 로그인 한다.

// tty를 확인한다.

$ tty

/dev/tty1

    * tty가 1로 정상적으로 뜨고 있다.

// tty1 콘솔에서 xwindows로 진입해 본다.

$ startx

// 새로운 xwindows에서 터미널을 열고 tty를 확인한다.

$ tty

/dev/pts/(number)
   
    * xwindows로 진입하자 tty가 아닌 마찬가지 다른 pts로 뜨는 것을 확인 할 수 있다.



 
앞서 말했듯이 xwindows에서 작동하는 가상 콘솔은 pts로써 동작 한다고 말했지만 이것은 꼭 다른 xwindows 에서만 추가 되는 것이 아니라
동일한 xwindows 데스크탑 에서 터미널-gui 을 열때 마다 추가 된다.

그렇다면 한 번 실험을 해보도록 해보자. ( 환경은 tty7-pts/1 그대로 한 곳에서만)


// 터미널 창을 여러개 띄운다.

$ ps -leat
    (-t 옵션은 terminal 현황 출력을 의미한다.)

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0  1907  1862  20   0 273452 56188 -      Rsl+ tty7       0:09 /usr/lib/xo
4     0  2229     1  20   0  24708  1860 -      Ss+  tty1       0:00 /sbin/agett
0  1000  2578  2573  20   0  31320  4992 wait   Ss   pts/1      0:00 bash XDG_SE
0  1000  3617  2578  20   0  34936  3232 signal T    pts/1      0:00 systemctl s
0  1000  3624  3617  20   0  18424   788 signal T    pts/1      0:00 pager LESSO
0  1000  3843  2573  20   0  31320  4812 wait_w Ss+  pts/7      0:00 bash XDG_SE
0  1000  3860  2573  20   0  31320  4828 wait_w Ss+  pts/8      0:00 bash XDG_SE
0  1000  3876  2573  20   0  31320  4868 wait_w Ss+  pts/9      0:00 bash XDG_SE
0  1000  3909  2578  20   0  37684  1540 -      R+   pts/1      0:00 ps -leat X

    * 현재 pts가 1, 7, 8, 9 총 4개가 있다. 이것은 사용자가 터미널 창을 4개를 띄웠다는 것을 의미한다.
 
// 이번에는 터미널 창 하나를 놔두고 나머지는 전부 종료 한다.

$ ps -leat

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0  1907  1862  20   0 277424 59612 -      Ssl+ tty7       0:13 /usr/lib/xorg/Xorg -core :0 -seat seat0
4     0  2229     1  20   0  24708  1860 -      Ss+  tty1       0:00 /sbin/agetty --noclear tty1 linux
0  1000  2578  2573  20   0  31328  5000 wait   Ss   pts/1      0:00 bash XDG_SEAT_PATH=/org/freedesktop/Dis
0  1000  3617  2578  20   0  34936  3232 signal T    pts/1      0:00 systemctl status ssh.service LESSOPEN=|
0  1000  3624  3617  20   0  18424   788 signal T    pts/1      0:00 pager LESSOPEN=| /usr/bin/lesspipe %s G
0  1000  3924  2578  20   0  37684  1488 -      R+   pts/1      0:00 ps -leat XDG_VTNR=7 XDG_SESSION_ID=c1

    * pts가 1 하나 밖에 남지 않은 것을 확인 할 수 있다.




도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.






+ Recent posts