Linux에서 나오는 몇 가지 용어들에 대해 질문 좀 드리고 싶습니다..

ngw2833의 이미지

Linux Begining Programming을 배우는 도중에 해석하기 힘든 용어들이 나와서..
한 번 여쭙고자 합니다..
Terminals 부분을 보면서.. Canonical Mode라는 말이 자주 나오더라고요.
반대의 의미로 Noncanonical이라는 의미도 나오는데

사전적 의미로는 standard와 비슷한 의미가 있네요.

리눅스 원서를 읽으면서 맥락을 어떻게 읽어나가야 할 지 고민입니다. 간간히 등장하는 단어인데
왠지 제가 생각하는 의미와 조금 다른 듯 해서 한 번 여쭙습니다..

raymundo의 이미지

http://database.sarang.net/study/glibc/12.htm

여기 12.3절에 터미널의 정규/비정규 모드로 번역되어 있네요.

저도 컴퓨터 용어에서 canonical 이라는 표현이 나오면 좀 머리가 아파지던데, 뭔가 더 규칙이 엄격하거나 어떤 룰을 준수하거나 이런 동작을 할 때 쓰이는 느낌이더군요.

몇 가지 예를 들면,

펄의 JSON 모듈의 canonical 옵션은 어떤 데이터를 json 문자열로 변환하여 출력할 때 항목을 알파벳 순으로 출력해줍니다.

펄의 URI 모듈의 경우 어떤 URI 객체에 canonical 메소드를 적용하면 호스트이름은 전부 소문자로 나타내고 디폴트 포트는 생략되고 등의 처리를 하네요. ( HTTP://WWW.perl.com:80 => http://www.perl.com )

Canonical XML 은 XML 문서 중에 속성이 알파벳 순으로 나열되고 그 외 몇 가지 더 제약을 준수하는 XML을 의미하나보군요.
https://en.wikipedia.org/wiki/Canonical_XML

좋은 하루 되세요!

ngw2833의 이미지

저만 골머리를 쌓는 용어는 아니었군요..ㅎ

감사합니다. 좋은 하루 되세요..!

남관우

mug896의 이미지

터미널 열어서 명령 작성할 때 라인단위로 하죠
그래서 중간에 틀리면 backspace 로 삭제할 수도 있고
엔터를 치면 그때서야 작성한 데이터(라인) 이 전달되죠
이렇게 터미널에서 기본적으로 사용되는 라인단위 모드를 canonical mode 라고해요
그런데 noncanonical mode 는 라인단위가 아니고
특정 바이트 개수나, 일정 시간 단위로 데이터가 전달되는 것을
말해요. 그러니까 이 모드에서는 backspace 같은 것은 사용할 수 없죠

터미널에서 stty 명령으로 간단히 테스트해볼 수 있는데
명령 프롬프트에서 'stty -a | grep canon' 를 실행해보면 canonical mode
로 설정되어 있는 것을 볼 수 있죠 ( 앞에 '-' 가 안 붙어 있으면 설정되어 있는 것임 )

프롬프트에서 cat[enter] 한 다음에 문자를 타입 해보면 중간에 backspace 로 삭제도 할 수도 있고
enter 를 치면 입력한 라인이 보이죠 이게 canonical 라인단위 모드 에요

이번에는 명령 프롬프트에서 'stty -icanon min 1' 을 실행한 후에
다시 cat[enter] 하고 문자를 타입해 보면 backspace 도 안되고
엔터를 치지 않아도 문자가 1 개 입력되면 표시되죠 (min 1)
이게 noncanonical mode 에요
vi 에디터에서 키 하나 누르면 바로 반응하는데 noncanonical mode 를
이용하는 것이에요

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.