<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>SeraStory</title>
    <link>https://seraphic727.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Fri, 3 Jul 2026 18:17:47 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Seraphic</managingEditor>
    <item>
      <title>X Window</title>
      <link>https://seraphic727.tistory.com/4</link>
      <description>&lt;h1&gt;X Window 개념&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;X Window 정의&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;X Window 란 플랫폼 독립적으로 작동하는 GUI 환경&lt;/li&gt;
&lt;li&gt;서버 클라이언트 구조를 기반으로 X protocol 을 통해 디스플레이 장치에 윈도우를 그려주고 입력장치를 통해 상호작용&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;X Window 특징&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;X protocol 이라 불리는 네트워크 프로토콜을 사용&lt;/li&gt;
&lt;li&gt;서버 클라이언트 모델을 사용하여 네트워크로 연결될 수만 있다면 X 윈도우를 이용할 수 있음&lt;/li&gt;
&lt;li&gt;X server 는 X client 의 요청에 대하여 처리 후 응답하거나 이벤트를 직접 X client 에게 보낼 수 있음&lt;/li&gt;
&lt;li&gt;X client 는 remote X server system 에서 동작하는 프로그램을 실행할 수 있음&lt;/li&gt;
&lt;li&gt;X Window 는 사용자 인터페이스에 독립적&lt;/li&gt;
&lt;li&gt;서버 클라이언트 모델을 사용하므로 이론적으로 X protocol 만 준수할 수 있다면 어떤 시스템이든 이식이 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;X Window 구조&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;X server&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;키보드, 마우스, 화면과 같은 디바이스와 직접 통신 수행&lt;/li&gt;
&lt;li&gt;디스플레이 장치를 제어하여 X client 에게 디스플레이 서비스 제공&lt;/li&gt;
&lt;li&gt;X server 는 local X client 와 통신하기 위해 &lt;code&gt;/tmp/.X11-unix/X0&lt;/code&gt; 라는 유닉스 도메인 소켓을 사용&lt;/li&gt;
&lt;li&gt;X server 는 remote X client 와 통신하기 위해 TCP 포트 6000번 사용&lt;/li&gt;
&lt;li&gt;local 및 remote 의 다수의 X client 연결 허용&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;X client&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Xlib 을 사용하여 작성된 응용 프로그램&lt;/li&gt;
&lt;li&gt;디스플레이 관련 서비스를 X server 에 요청&lt;/li&gt;
&lt;li&gt;X server 에서 발생한 이벤트를 처리&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;X protocol&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;X protocol 이란 X server 와 X client 가 정보를 주고 받기 위한 메시지 형식을 정의한 통신 규약&lt;/li&gt;
&lt;li&gt;X protocol 기본 메시지는 Request, Reply, Event, Error 로 구성&lt;/li&gt;
&lt;li&gt;X server 와 X client 는 X protocol 메시지를 처리하기 위해 request queue, event queue 를 운용&lt;/li&gt;
&lt;li&gt;X protocol 을 통해 X server 와 X client 는 높은 이식성을 갖고, remote 에서 local 에서 접속하는 것과 같은 동일한 사용자 경험을 갖는 것이 가능해 짐&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Xlib/XCB&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Xlib 은 C 언어로 작성된 X Window 시스템 프로토콜 클라이언트 라이브러리&lt;/li&gt;
&lt;li&gt;개발자는 Xlib 에서 제공하는 API 를 통해 X client 개발 가능&lt;/li&gt;
&lt;li&gt;Xlib 기반으로 강력한 라이브러리 제공. e.g. Xt, XaW, Motif, FLTK, GTK+, Qt, Tk, SDL, SFML&lt;/li&gt;
&lt;li&gt;XCB 는 Xlib 을 대체하기 위해 시작된 프로젝트. X.org 에서는 XCB 를 직접 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.x.org/wiki/&quot;&gt;X.Org&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1643806238921&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;X.Org&quot; data-og-description=&quot;The X.Org project provides an open source implementation of the X Window System. The development work is being done in conjunction with the freedesktop.org community. The X.Org Foundation is the educational non-profit corporation whose Board serves this ef&quot; data-og-host=&quot;www.x.org&quot; data-og-source-url=&quot;https://www.x.org/wiki/&quot; data-og-url=&quot;https://www.x.org/wiki/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.x.org/wiki/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.x.org/wiki/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;X.Org&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The X.Org project provides an open source implementation of the X Window System. The development work is being done in conjunction with the freedesktop.org community. The X.Org Foundation is the educational non-profit corporation whose Board serves this ef&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.x.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.x.org/releases/current/doc/index.html&quot;&gt;Documentation for the X Window System&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1643806302357&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Documentation for the X Window System&quot; data-og-description=&quot;&quot; data-og-host=&quot;www.x.org&quot; data-og-source-url=&quot;https://www.x.org/releases/current/doc/index.html&quot; data-og-url=&quot;https://www.x.org/releases/current/doc/index.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.x.org/releases/current/doc/index.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.x.org/releases/current/doc/index.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Documentation for the X Window System&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.x.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Linux</category>
      <category>Linux</category>
      <category>X window</category>
      <category>X11</category>
      <author>Seraphic</author>
      <guid isPermaLink="true">https://seraphic727.tistory.com/4</guid>
      <comments>https://seraphic727.tistory.com/4#entry4comment</comments>
      <pubDate>Wed, 2 Feb 2022 22:20:47 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 주요 디렉터리 구조</title>
      <link>https://seraphic727.tistory.com/3</link>
      <description>&lt;h1&gt;리눅스 FHS&lt;/h1&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;FHS: File System Hierarchy Standard&lt;/li&gt;
&lt;li&gt;리눅스 파일 시스템 표준은 BSD 파일 시스템 계층 구조 기반의 리눅스 디렉터리 구조 표준.&lt;/li&gt;
&lt;li&gt;리눅스 재단이 유지 및 관리&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;리눅스 주요 디렉터리&lt;/h1&gt;
&lt;table style=&quot;height: 661px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style5&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;th style=&quot;width: 132.141px; height: 21px;&quot;&gt;&lt;b&gt;Directory&lt;/b&gt;&lt;/th&gt;
&lt;th style=&quot;width: 717.844px; height: 21px;&quot;&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;root directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/bin/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;모든 사용자를 위한 명령어 binary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/boot/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;부트 로더 파일 및 커널 파일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/dev/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;device file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 40px;&quot;&gt;&lt;code&gt;/etc/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 40px;&quot;&gt;시스템 환경설정 파일과 환경 설정 파일. 'Editable Text Configuration' 이나 'Extended Tool Chest' 말의 약어&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/home/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/lib/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;&lt;code&gt;/bin/&lt;/code&gt; 과 &lt;code&gt;/sbin/&lt;/code&gt; 에 있는 binary 에 필요한 library&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/media/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;CD-ROM 이나 이동식 미디어의 마운트 지점&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/mnt/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;임시로 마운트된 파일 시스템&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/opt/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;선택 가능한 소프트웨어 패키지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/proc/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;모든 프로세스들이 파일 형태로 매핑, procfs 마운트에 해당&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/root/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;root 사용자의 home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/sbin/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;system binary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/tmp/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;임시 파일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/usr/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;읽기 전용 사용자 데이터가 있는 보조 계층 구조&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/usr/bin/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;모든 사용자의 비 필수 명령어 binary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/usr/include/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;표준 include 파일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/usr/lib/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;&lt;code&gt;/usr/bin/&lt;/code&gt; 과 &lt;code&gt;/usr/sbin&lt;/code&gt; 에 있는 binary 에 필요한 library&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/usr/sbin/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;비 필수 system binary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/usr/share/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;아키텍쳐에 독립적인 공유 데이터&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/usr/src/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;source code&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/usr/local/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;로컬 데이터의 3차 계층&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/var/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;변하기 쉬운 파일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/var/cache/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;애플리케이션 캐시 데이터&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/var/lib/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;상태 정보, 프로그램의 실행 중에 수정되는 데이터&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/var/lock/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;잠금 파일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/var/log/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;로그 파일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/var/run/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;&lt;code&gt;/run/&lt;/code&gt; symbolic link&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 20px;&quot;&gt;&lt;code&gt;/sys/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 20px;&quot;&gt;핫 플러그 장치를 위한 sysfs 가상 파일 시스템을 통해 장치 정보를 제공&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 118.141px; height: 40px;&quot;&gt;&lt;code&gt;/run/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 703.844px; height: 40px;&quot;&gt;부팅 이후 시스템의 실행 중인 프로세스 또는 로그인한 사용자와 같은 런타임 데이터를 포함하고 있는 디렉터리&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Linux</category>
      <category>FHS</category>
      <category>Linux</category>
      <author>Seraphic</author>
      <guid isPermaLink="true">https://seraphic727.tistory.com/3</guid>
      <comments>https://seraphic727.tistory.com/3#entry3comment</comments>
      <pubDate>Wed, 2 Feb 2022 17:02:48 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 개요</title>
      <link>https://seraphic727.tistory.com/2</link>
      <description>&lt;h1&gt;리눅스의 정의 및 의미&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;리눅스 정의&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1991년 Linus Torvalds 에 의해 오픈소스로 개발&lt;/li&gt;
&lt;li&gt;PC, 서버, 메인프레임, 모바일, 임베디드 기기를 위한 유닉스 호환 운영체제&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;리눅스 의미&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;처음 개발된 당시에는 리눅스 커널만을 의미&lt;/li&gt;
&lt;li&gt;현재는 FSF(Free Software Foundation)가 GNU 프로젝트를 통해 리눅스 커널 기반으로 다양한 라이브러리와 어플리케이션이 포함된 리눅스 배포판을 제공. GNU/Linux 라고도 부름&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;리눅스의 일반적 특징&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Portability&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;대부분의 코드가 C언어로 작성. 최소한의 플롯폼에 종속적인 부분만 어셈블리어로 되어 있어 이식성이 높음&lt;/li&gt;
&lt;li&gt;다양한 CPU Architecture 에 적용되어 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Free software&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리눅스의 소스코드는 자유롭게 사용, 수정, 배포 가능&lt;/li&gt;
&lt;li&gt;GPL(General Purpose License), LGPL(Library/Lesser General Purpose License) 를 따름&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Multi-User&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다수의 사용자가 네트워크를 통해 한 시스템의 CPU, Memory, Storage 등의 Resource 에 접근 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Multi Programming&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다수의 프로그램을 메모리에 적재하고 동시 실행 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Hierarchical File System&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리눅스는 시스템과 사용자를 위한 표준화된 디렉터리 구조를 정의&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;mxgraph&quot; style=&quot;max-width: 100%; border: 1px solid transparent;&quot; data-mxgraph=&quot;{&amp;quot;nav&amp;quot;:true,&amp;quot;resize&amp;quot;:true,&amp;quot;toolbar&amp;quot;:&amp;quot;zoom layers tags lightbox&amp;quot;,&amp;quot;edit&amp;quot;:&amp;quot;_blank&amp;quot;,&amp;quot;xml&amp;quot;:&amp;quot;&amp;lt;mxfile host=\&amp;quot;Electron\&amp;quot; modified=\&amp;quot;2022-01-31T08:41:51.738Z\&amp;quot; agent=\&amp;quot;5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/16.1.2 Chrome/96.0.4664.55 Electron/16.0.5 Safari/537.36\&amp;quot; etag=\&amp;quot;r2NDi-L4ol6uxsmxdMXO\&amp;quot; version=\&amp;quot;16.1.2\&amp;quot; type=\&amp;quot;device\&amp;quot;&amp;gt;&amp;lt;diagram id=\&amp;quot;y6vEKMM2xADIJ7Qq7HON\&amp;quot; name=\&amp;quot;페이지-1\&amp;quot;&amp;gt;7ZpJj5swHMU/TY6VbMyWYyczbQ+tVGkOrebm4H/ALWBkTJZ++prBBMhA1G1KLHGJ4ufn7ednsYgV2WTH95IWySfBIF05iB1X5H7lOIGP9G8tnIyAgkaIJWeNhDvhkf8AI5p2ccUZlAOjEiJVvBiKkchziNRAo1KKw9C2E+lw1ILG8EJ4jGj6Uv3CmUoaNXSCTv8APE7akbG/bmoy2prNSsqEMnHoSeRhRTZSCNX8y44bSGt2LZem3buJ2vPEJOTqVxr4mRM9eTnj9Ov+aYt3uPK2b7BZR6lO7YqBaQCmKKRKRCxymj506p0UVc6g7hbpUuf5KEShRazFb6DUyewmrZTQUqKy1NTueJpuRCrk84hkS6OQEa2XSorv0KtxiOt6eqC7Zpb11CZXb6RSVDKCa0s2KaIyBnXF55z3SGcbRAZKnnQ7CSlVfD+cBzUpi88+0/StlPTUMxSC56rs9fy5FrTBnBfiek2Pp/YYXGzqhd+/atd/mgm0pd5KOuk5J7+TmXDJzISP2JAZTOYIzXoJzYTPtSE0DpohNOdL5xKaS59nRWiCOUKDl9BM+Py/DE1v4/5gX5xlXyZ8gQ2H2cVzHGayhGbCF1oRmnCO0LhLaCZ8axtC43lzhMZbQjPlQzakxnfmeKxthtzTtDIY6gEvgzSMySHhCh4L+rw3B0mLYSQikfHIWC/jgYCAPxYPBCEKw3M89iAVHK8H5OV+tuDbxy4D0jXFQ/f+0zNS0nv1SdBr3TiOMd7W701fjTNmbIfGOGMUkDX8G87uEDOemzMZ45zozi3njPGNgXbHQDPY2845vDHO3hjnqpSWcz5DvBXO/hjnPbWd8+V1cHbOwRjncstz20Gvbwx0OAYaVGQ5Z9e/Mc7rMc5ZbvuNnUdujHN7AzQErbLCctA++m+gdbH7VKN5euy+dyEPPwE=&amp;lt;/diagram&amp;gt;&amp;lt;/mxfile&amp;gt;&amp;quot;}&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;https://viewer.diagrams.net/js/viewer-static.min.js&quot;&gt;&lt;/script&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Shell&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다양한 기능을 수행할 수 있도록 명령어 기반 프로그램을 제공&lt;/li&gt;
&lt;li&gt;프로그램을 통하여 Kernel 에게 명령을 내리고 Shell 은 명령어를 해석하여 프로그램을 실행&lt;/li&gt;
&lt;li&gt;Shell 은 명령어 해석 기능과 프로그래밍 기능 사용자 환경설정 기능을 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Security&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DAC, Extended DAC 제공&lt;/li&gt;
&lt;li&gt;네트워크상의 노드나 라우터로 동작할 수 있으며 네트워크 인터페이스에서 발생한 트래픽을 서버로 안전하게 전달 가능&lt;/li&gt;
&lt;li&gt;이를 위해 netfilter, iptables, ebtables, arptables 등의 모듈 제공&lt;/li&gt;
&lt;li&gt;Mandatory Access Control 를 강화한 SELinux 가 존재&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;리눅스의 기술적 특징&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;monolithic kernel&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파일 시스템, 프로세스 간 통신, 입출력 기능, 장치 관리, 프로세스 처리기 등 운영체제가 제공하는 서비스를 하나의 커널로 구현하여 제공&lt;/li&gt;
&lt;li&gt;단일 커널로 운영체제의 기능이 제공되기 때문에 커널에 포함된 일부 기능을 변경하려면 커널을 다시 컴파일 해야 함&lt;/li&gt;
&lt;li&gt;기본적으로 모놀리딕 커널이긴 하나 동적 로드가 가능한 커널 모듈과 동적 설정을 위한 프로퍼티 기능 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;장치의 파일화&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시스템의 자원을 모두 파일로 다룸
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파일
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;디렉터리&lt;/li&gt;
&lt;li&gt;일반 파일&lt;/li&gt;
&lt;li&gt;특수 파일
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;장치 파일&lt;/li&gt;
&lt;li&gt;파이프&lt;/li&gt;
&lt;li&gt;소켓&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;장치의 유형에 따라 문자 장치 파일과 블록 장치 파일과 같은 장치 파일을 제공&lt;/li&gt;
&lt;li&gt;프로세스 간 통신을 위해 파이프 파일을 제공&lt;/li&gt;
&lt;li&gt;응용 프로그램이 소켓 프로그래밍이 가능하도록 소켓 파일을 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;다양한 파일 시스템의 지원&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ext2, ext3, ext4 와 같은 리눅스 자체 파일 시스템 제공&lt;/li&gt;
&lt;li&gt;FAT32, NTFS 와 같은 윈도우용 파일 시스템 제공&lt;/li&gt;
&lt;li&gt;SMB, CIFS 와 같은 네트워크 파일 시스템 제공&lt;/li&gt;
&lt;li&gt;시스템 충돌 및 전원 문제로 복구 가능한 journaling file system 지원&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Virtual Memory&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로세스들이 접근하는 메모리를 가상 메모리에 매핑하고 가상 메모리는 페이지를 통하여 물리 메모리에 매핑&lt;/li&gt;
&lt;li&gt;동작 중인 프로세스가 사용하는 메모리 만을 물리 메모리에 로드, 사용 빈도가 낮은 메모리는 디스크에 저장.&lt;/li&gt;
&lt;li&gt;가상 메모리는 넓은 주소 공간과 각 페이지에 대한 보호 매커니즘, 이미지와 데이터 파일을 프로세스의 주소 공간에 매핑하는 메모리 매핑, 프로세스 간 공유 메모리 기능을 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Swap&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;물리 메모리 사용량이 가득 차서 프로그램을 메모리에 로드할 수 없는 경우, 프로그램들을 디스크로 옮기고 물리 메모리를 확보하여 다른 프로그램을 메모리에 다시 로드
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Swap out: 디스크로 옮기는 작업&lt;/li&gt;
&lt;li&gt;Swap in: 메모리로 옮기는 작업&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;디스크상의 공간을 특별히 swap spave 라고 부르며 이를 위한 전용 파일이나 전용 파티션이 존재하여야 함&lt;/li&gt;
&lt;li&gt;최대 절전 기능을 사용하기 위해서 swap partition 이 필요&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/etc/sysctl.conf&lt;/code&gt; 의 &lt;code&gt;vm.swapiness&lt;/code&gt; 로 스왑 빈도 설정. 만약 10으로 설정한다면 메모리의 가용량이 10%일 때 스왑을 시도&lt;/li&gt;
&lt;li&gt;&lt;code&gt;free&lt;/code&gt; 명령어로 스왑 영역 의 용량을 확인&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;724&quot; data-origin-height=&quot;77&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmAwZN/btrr2S9CCot/vNSOs7z84ssCi1MyJfkUs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmAwZN/btrr2S9CCot/vNSOs7z84ssCi1MyJfkUs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmAwZN/btrr2S9CCot/vNSOs7z84ssCi1MyJfkUs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmAwZN%2Fbtrr2S9CCot%2FvNSOs7z84ssCi1MyJfkUs1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;724&quot; height=&quot;77&quot; data-origin-width=&quot;724&quot; data-origin-height=&quot;77&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;효율적으로 메모리 공간을 활용할 수 있으나 동적으로 스왑의 크기를 조절할 수 없어 디크스킈 공간을 차지&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;동적 라이브러리와 정적 라이브러리&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;동적 라이브러리를 메모리에 한 번 적재하여 여러 프로세스가 공용으로 라이브러리를 사용&lt;/li&gt;
&lt;li&gt;정적 라이브러리는 프로그램이 컴파일될 때 링크되어 프로세스가 실행될 때 정적 라이브러리도 함께 메모리에 로드&lt;/li&gt;
&lt;li&gt;동적 라이브러리는 메모리 실행 프로그램의 크기가 작고 메모리를 효율적으로 사용, 실행 속도가 느리고 배포에 제약이 존재&lt;/li&gt;
&lt;li&gt;정적 라이브러리는 실행 속도가 빠르고 배포에 제약이 없으나 실행 파일의 크기가 큼&lt;/li&gt;
&lt;li&gt;로더는 환경변수 &lt;code&gt;LD_LIBRARY_PATH&lt;/code&gt; 와 환경설정 파일 &lt;code&gt;/etc/ld.so.conf&lt;/code&gt; 를 검색하여 동적 라이브러리를 로드&lt;/li&gt;
&lt;li&gt;빠른 동적 라이브러리 경로 검색을 위해 &lt;code&gt;/etc/ld.so.cache&lt;/code&gt; 파일을 유지하는데 &lt;code&gt;ldconfig&lt;/code&gt; 명령을 통해 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Pipe&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로세스의 표준 출력을 다른 프로세스의 표준 입력으로 보낼 수 있는 프로세스 간 통신 방식&lt;/li&gt;
&lt;li&gt;터미널에서 사용할 수 있는 파이프 기호는 &lt;code&gt;|&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Redirection&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로세스의 표준 입출력을 파일, 화면, 장치 등에서 입력을 받거나 출력할 수 있도록 입출력을 재지정할 수 있는 매커니즘&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Virtual console&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하나의 화면에서 여러 개의 콘솔을 사용할 수 있는 기능을 제공&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Alt&lt;/kbd&gt; + &lt;kbd&gt;F1&lt;/kbd&gt; ~ &lt;kbd&gt;F7&lt;/kbd&gt; 를 통해 콘솔을 생성 및 이동 가능&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Linux</category>
      <category>Linus Torvalds</category>
      <category>Linux</category>
      <category>OS</category>
      <author>Seraphic</author>
      <guid isPermaLink="true">https://seraphic727.tistory.com/2</guid>
      <comments>https://seraphic727.tistory.com/2#entry2comment</comments>
      <pubDate>Mon, 31 Jan 2022 18:49:52 +0900</pubDate>
    </item>
  </channel>
</rss>