Linux 커널은 코드의 일부를 Assembler에서 C로 변경합니다.

프로그래밍 언어 c

모두에게 알려진 것은 어셈블러 언어가 가장 빠름 일부 문제 및 이러한 이유로 다른 운영 체제의 커널에서 가장 많이 사용되며 고급 전자 장치가 사용되는 실시간 프로젝트에서도 마찬가지입니다. 문제는 나중에 해당 코드를 유지해야하지만 그렇지 않을 때 발생합니다. Linux 커널의 경우 개발자는 해당 어셈블러 코드를 C로 변환하도록 선택했습니다..

C는 가장 대표적인 Linux 프로그래밍 언어입니다 (실제로 모든 * nix 플랫폼)에 의해 개발되었습니다. 데니스 리치 1972 년에 Ken Thompson은 Unix PDP-11 시스템에서 만들어졌으며 Unix 버전 2의 일부였습니다. 높은 성능과 휴대 성을 고려할 때 운영 체제 구현에 점점 더 많이 사용되기 시작했습니다. 리누스 토발즈 (Linus Torvalds) 그는 1990 년에 Minix에 대한 자유롭고 개방적인 대안을 찾고 있었을 때 그의 프로젝트에 사용했습니다.

물론 많은 강점에도 불구하고 Assembler는 처음에 언급했듯이 C에 비해 몇 가지 장점이 있으므로이 결정은 놀랐습니다. 코멘트 Andy Lutomirsky 커널 메일 링리스트에서 작업이 잘 진행되고 있으며 Linux 커널 4.1 이 어셈블러 소스 코드를 C로 재 작성한 최초의 사람이 될 것입니다.. 특히 현재이 두 프로그래밍 언어의 코드가 혼합되어 있지만 유지 관리가 적기 때문에 업데이트 할 때 점점 더 복잡 해지는 사용자 모드로의 종료와 관련된 모든 것입니다.

그게 어셈블러의 코드 오랫동안 업데이트되지 않았으며 이는 새로운 개발자가 작동에 대해 완전히 명확하지 않으며 더 나쁜 것은 업데이트하기가 쉽지 않다는 것을 의미합니다. 따라서 부분적인 변경을 시도하는 대신 모든 어셈블러 루틴을 C로 변경하기로 선택했으며 개인적으로 약간의 실행 속도가 손실 될 수 있다고 생각합니다 (코드 C new가 효율적인 경우 최소 일 수 있음). 새롭고 명확한 코드는 항상 오래된 코드보다 선호되며 업데이트 가능성은 거의 없습니다. 그것이 어떻게 구현되었는지 잘 이해되지 않았기 때문입니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   미겔 마욜 투르

    우선 스페인어로 ENSAMBLADOR입니다.

    둘째, 모든 언어는 COMPILED (또는 해석)되어야하므로 결과의 장점은 COMPILER (또는 인터프리터)에 따라 다릅니다.

    C 컴파일러는 많이 개선되었고 어셈블러는 아주 조금 (이미 아주 좋았 기 때문에), 요즘에는 어셈블러로 작성된 동일한 프로그램과 비교하여 C로 작성된 컴파일 된 프로그램의 차이는 무시할 수 있거나 존재하지 않습니다. '이전).
    컴파일 된 (C 및 기타) 프로그램과 해석 된 (Java 및 기타) 프로그램 간의 차이도 크게 최소화되었습니다.

    따라서 어셈블러보다 C를 유지하기가 훨씬 쉽기 때문에 비용 이점 분석, 약점, 위협, 강점 및 기회 또는 작동하는 다른 작업을 수행 할 때 커널에서 이러한 변경을 수행하는 것은 매우 건전한 결정입니다.
    의사 결정을 위해.

    1.    Chigüire 양극성

      Miguel Mayol Tur에게 : 우선, 하나라고 주장하는 모든 프로그래머는 ASSEMBLER를 말하고 영어를 이해합니다. 다른 사람들은 Visual Basic을 사용하고 스스로를 프로그래머라고 부릅니다. 부끄러운 일입니다. 둘째, 어셈블러는 컴파일되지 않습니다. 그것을 처리하는 프로그램은 니모닉을 바이트로 직접 변환합니다. Assembler의 프로그래밍은 동일한 언어로 컴퓨터에 말하지만, 좀 더 쉽게하기 위해 해당 바이트를 직접 쓰는 대신 니모닉이 사용됩니다. Assembler의 명령어와 바이트 세트 사이에는 일대일 대응이 있습니다. 그러나 이것은 물론 실제 프로그래머 만이 알고 있습니다. ASSEMBLER라고하는 사람들 중 하나입니다. 결과적으로 프로그래머가 이러한 개선을 담당하기 때문에 어셈블러에서 opcode로 "변환기"가 개선되지 않았습니다. C 컴파일러 (및 기타 언어)는 명령어를 어셈블러 (또는 기계어 코드)의 미리 설정된 매크로 표현으로 변환하며 이러한 변환 방식에 따라 개선 사항이 제공됩니다.
      왜 C를 사용합니까? 더 읽기 쉬운 것을 검토하고 유지하는 것이 더 쉽기 때문입니다. 대부분의 사람들은 어셈블러 opcode 또는 니모닉을 직접 이해하지 못합니다. 그렇게 간단합니다.
      나는 오래 전에 표준으로 부과되었지만 이제는 코드를 이해하는 사람들이 싫어하는 Java에 대해 이야기하지 않을 것입니다.
      하지만 나를 믿지 말고 여기서 내가 말한 것이 거짓인지 Google에 물어보십시오.
      안부

      1.    에리우기크

        안녕 Chigüire, 내 눈은 앵글로색슨 출신의 용어를 사용하지 않고는 스페인어로 글을 쓸 수 없다는 생각에 내 얼굴에서 떨어졌습니다. 그것은 "조립 자"라고합니다.
        물론, 내가 당신에게 동의하는 한 가지는 말도 안되는 말을하는 것이 그것을 떠나는 것이 낫기 때문에 자바에 대해 이야기하지 않는 것이 좋습니다. 나는 당신과 같지만 목수 (전문 프로그래머가 아님) 인 친구가 있었는데 그는 톱과 다른 도구가 가장 좋다고 말하고 나사를 조였습니다. 따라야 할 참으로 모범입니다!

  2.   루이스 제라르도 마린

    영어는 항상 모든 계산 용어의 뿌리에 있습니다. 그것이 스페인어 사용자가 원하지 않더라도 그렇습니다. 여기에 "비트", "바이트", "유닉스", "리눅스", "DOS"등으로 번역 할 수없는 용어가 있습니다. 번역 할 수있는 것도 있지만 "CMOS", "CSS", "RAM"과 같은 경우는 없습니다. 기술과 관련이없는 이니셜이 있고 그 위에는 Google에도 존재하지 않기 때문입니다. . 생성 된 메시지를 읽을 수없는 경우 번역 할 필요가 없습니다. 결론 : 기술적 인 문제 나 계산적인 문제에는 영어로 기술 용어를 사용하는 것이 좋습니다. 같은 이유로, 나는 "창"을 사용하여 운영 체제 "창"을 사용한다고 말하는 것을 선호합니다. 그리고 저는 CSS에 대해 이야기하는 것을 선호하며, 대각선 텍스트 스타일 시트와 동일한 유형의 스타일 시트 시트를 사용한다고 말하는 것보다 type =»text / css를 사용합니다. 건강.

  3.   로베르토 고메즈

    어셈블리 언어로 작성된 프로그램은 항상 컴파일되며 해석되지 않습니다. 그러나 Spanglish 대신 스페인어를 사용하는 것은 잘못된 것이 아닙니다. 고유 이름은 번역되지 않지만 기술 용어는 인기있는 약어가 아닌 경우입니다. 어쨌든 우리가 여전히 이해할 수있는 동안 모든 사람이 원하는대로 말할 수 있습니다.