문제

응용 프로그램 개발에 대한 토론에서 언급 된 "부트 스트랩"을 계속보고 있습니다. 그것은 널리 퍼져 있고 중요해 보이지만, 나는 실제로 부트 스트랩 핑이 실제로 무엇인지에 대한 열악한 설명조차 얻지 못했습니다. 오히려 모든 사람이 그 의미를 알고 있어야하는 것처럼 보입니다. 그래도 아니에요. 내가 알 수 있듯이, 그것은 출시시 응용 프로그램에 필요한 초기화 작업과 관련이 있지만, 그것에 대해 완전히 잘못 될 수 있습니다. 누구 든지이 아이디어를 이해하도록 도와 줄 수 있습니까?

도움이 되었습니까?

해결책

"부트 스트랩"은 "자신의 부트 스트랩으로 자신을 당기는"이라는 용어에서 비롯됩니다. 당신이 얻을 수있는 많은 위키 백과.

컴퓨팅에서 부트 스트랩 로더는 기계가 시작될 때 실행되는 첫 번째 코드이며 나머지 운영 체제를로드 할 책임이 있습니다. 최신 컴퓨터에서는 ROM에 저장되어 있지만 PDP-11의 부트 스트랩 프로세스를 기억합니다. 여기서 프론트 패널 스위치를 통해 비트를 찌르고 특정 디스크 세그먼트를 메모리에로드 한 다음 실행합니다. 말할 것도없이, 부트 스트랩 로더는 일반적으로 매우 작습니다.

"부트 스트랩"은 또한 전임 버전을 사용하여 시스템을 구축하는 용어로도 사용됩니다. 예를 들어, antlr 버전 3은 ANTLR 버전 2에서 개발 된 파서를 사용하여 작성되었습니다.

다른 팁

부트 스트랩의 예는 일부 웹 프레임 워크에 있습니다. Index.php (부트 스트랩퍼)를 호출 한 다음 프레임 워크 도우미, 모델, 구성을로드 한 다음 컨트롤러를로드하고 제어를 전달합니다.

보시다시피, 큰 프로세스를 시작하는 간단한 파일입니다.

Wikipedia 기사를 참조하십시오 부트 스트랩.

그것이 무엇을 의미하는지 설명하는 섹션과 링크가 있습니다. 컴퓨팅. 현장에서 네 가지 다른 용도가 있습니다.

다음은 몇 가지 인용문이 있지만보다 자세한 설명과 대체 의미는 위의 링크를 참조하십시오.

"... 간단한 컴퓨터 프로그램이보다 복잡한 프로그램 시스템을 활성화시키는 기술입니다."

"부트 스트래핑이라는 용어의 다른 사용은 컴파일러를 사용하여 새로운 프로그래밍 언어의 컴파일러의 작은 부분을 기존 언어로 작성하여 새로운 언어로 작성된 새로운 컴파일러의 더 많은 프로그램을 컴파일함으로써 컴파일하는 것입니다."

"부트 스트랩"이라는 용어는 일반적으로 시스템이 시작하여 닭고기와 계란 문제의 상황에 의존하는 상황에 적용됩니다.

예를 들어:

  • C로 작성된 C 컴파일러를 어떻게 컴파일합니까?
  • OS가 아직 실행되지 않으면 OS 초기화 프로세스를 어떻게 시작합니까?
  • 고객이 현재 알려진 동료들에게 의존하여 시스템의 새로운 동료에 대해 알아내는 분산 (피어 투 피어) 시스템을 어떻게 시작합니까?

이 경우 부트 스트래핑은 일반적으로 외부 엔티티의 도움으로 원형 의존성을 깨는 방법을 말합니다.

  • 다른 C 컴파일러를 사용하여 고유 한 컴파일러를 컴파일 (부트 스트랩) 할 수 있으며,이를 사용하여 자체 컴파일 할 수 있습니다.
  • OS가 제공하는 기능에 따라 초기 프로세스를 설정하는 별도의 코드 조각을 사용합니다.
  • 피어 목록을 제공하는 하드 코딩 된 초기 피어 또는 하드 코드 트래커 URL을 사용합니다.

등.

애플리케이션 개발의 맥락에서 "부트 스트랩"은 일반적으로 모듈 식 및/또는 자동 업데이트 가능한 소프트웨어에 대해 이야기 할 때 나타납니다.

사용자가 필요하지 않은 기능을 포함하여 전체 앱을 다운로드하고 업데이트가있을 때마다 다시 다운로드하고 수동으로 업데이트하는 대신 사용자는 소규모 "부트 스트랩"실행 가능을 다운로드하고 시작하여이를 다운로드하고 설치합니다. 사용자가 필요한 애플리케이션의 일부. 또한 부트 스트랩 구성 요소는 업데이트가 시작될 때마다 업데이트를 찾고 설치할 수 있습니다.

완전성을 위해, 그것은 또한 리샘플링 / 시뮬레이션을 사용하여 샘플의 모집단 특성을 유추하는 통계에서 다소 중요한 (그리고 비교적 새로운) 방법입니다. 그것은 자신의 길이가 있습니다 Bootstrapping에 관한 Wikipedia 기사 (통계).

Alex, 그것은 컴퓨터가 부팅 할 때하는 일입니다. ( '부팅'컴퓨터는 실제로 부트 스트래핑이라는 단어에서 나옵니다)

처음에는 BIOS의 작은 프로그램이 실행됩니다. 여기에는 더 크고 더 복잡한 프로그램을로드하고 실행하기에 충분한 기계 코드가 포함되어 있습니다.

두 번째 프로그램은 아마도 NTLDR (Windows) 또는 Lilo (Linux)와 같은 것일 수 있으며, 이는 운영 체제의 나머지 부분을 실행하고로드 한 다음 실행할 수 있습니다.

사전 의미를 줄이기 부팅은 최소 리소스로 시작하는 것입니다. OS의 맥락에서 OS는 전원 켜짐 자체 테스트 (Post)가 CPU를 깨우기 위해 안전하다고 판단되면 OS는 신속하게로드 할 수 있어야합니다. 부트 스트랩 코드는 BIOS에서 실행됩니다. BIOS는 작은 크기의 ROM입니다. 일반적으로 운영 체제를 RAM에로드하는 일련의 지침에 대한 점프 명령입니다. 점프 대상은 하드 디스크의 부팅 섹터입니다. BIOS 프로그램이 확인되면 저장된 OS의 시작 주소를 포함하는 유효한 부팅 섹터, 즉 유효한 MBR (마스터 부트 레코드)인지 아닌지 여부는 유효한 부팅 섹터입니다. 유효한 MBR 인 경우 OS에서 OS가 메모리 (RAM)에 복사하여 메모리 및 프로세스 관리를 처리합니다.

IMHO 사실보다 더 나은 설명이 없습니다. 첫 번째 컴파일러는 어떻게 작성 되었습니까?

요즘 운영 체제 로딩은 부트 스트래핑이라고하는 가장 일반적인 프로세스입니다.

인기있는 트위터 부트 스트랩을 사용하는 것과 관련하여 나는 이러한 유형의 부트 스트랩 랩핑이 웹 애플리케이션이 필요하거나 참조 할 때까지 존재하는 모듈 식 구성 요소가 존재한다는 것을 인식하지 않으면 서 웹 애플리케이션에 모듈 식 구성 요소를 웹 애플리케이션에 통합하는 동작이라고 생각합니다. .

개발자는 웹 애플리케이션에 간단히로드 (참조)하여 CSS Twitter 부트 스트랩 테마의 기본 사본을 완벽하게 통합 할 수 있습니다. vuola! 그러면 이러한 변경 사항 중 일부를 무시해야 할 수도 있지만 리소스/구성 요소가 손대지 않고 완전히 재사용 할 수있는 방식으로 그렇게 할 수 있습니다.

이와 동일한 개념은 웹 개발자가 jQuery API 등을 구현하는 방법이지만 DEVS에 의해 실제로 부트 스트랩 자체로 표현되지는 않습니다. 그것이하는 일은 앱의 다른 구성 요소/리소스의 분리가 동일한 서버/S에서 자유롭게 상주 할 수있게하는 동시에 유연성과 재사용 성을 향상시키는 것입니다.

참고 : 부트 스트래핑 컴퓨팅에서는 MBR을 처리하고 UNIX에서는 OS를 RAM에로드하는 작은 프로그램 인 특수 부트 로더 또는 관리자가 필요합니다. 그것에 대해 생각하면 부트 스트랩 로더의 동작에서 동일한 개념이 발생합니다. MBR을 점검 하고이 테이블을 기반으로 OS를로드하는 OS가 발생한다는 사실을 알지 못하는이 테이블을 기반으로 OS를로드합니다.

부트 스트래핑은의 맥락에서 또 다른 의미를 가지고 있습니다 강화 학습 소프트웨어 개발에 사용하는 것 외에도 개발자에게 아는 것이 유용 할 수 있습니다 (대부분의 답변, 예를 들어 kdgregory)) 및 통계에서의 사용 Dirk Eddelbuettel.

에서 서튼과 바르토:

Widrow, Gupta 및 Maitra (1973)는 Widrow and Hoff (1960)의 최소 평지 (LMS) 알고리즘을 수정하여 훈련 예제가 아닌 성공 및 실패 신호에서 배울 수있는 강화 학습 규칙을 제작했습니다. 그들은이 형태의 학습을 불렀습니다.선택적 부트 스트랩 적응”그리고“교사와의 학습”대신“비평가와 함께 배우는 것”이라고 설명했습니다. 그들은이 규칙을 분석하고 그것이 블랙 잭을 연주하는 법을 배울 수있는 방법을 보여주었습니다. 이것은 감독 학습에 대한 기여가 훨씬 더 영향력이있는 Widrow의 강화 학습으로 고립 된 분리 된 것입니다.

이 책은 대상 값이 부트 스트랩 방법으로 이전 근사치를 기반으로하는 다양한 보강 알고리즘을 설명합니다.

마지막으로 DP [Dynamic Programming] 메소드의 마지막 특성 중 하나에 주목합니다. 이들 모두는 후속 상태의 가치 추정치에 기초하여 국가의 가치에 대한 추정치를 업데이트합니다. 즉, 다른 추정치를 기준으로 추정치를 업데이트합니다. 우리는이 일반적인 아이디어라고 부릅니다 부트 스트랩. 많은 강화 학습 방법은 부트 스트래핑을 수행합니다. 심지어 DP가 필요하지 않은 것처럼 환경의 완전하고 정확한 모델을 요구하지 않는 것조차도 수행합니다.

이것은 부트 스트랩 집계 및 지능 폭발과 다릅니다. Wikipedia 페이지 부트 스트래핑에.

나는 부팅 프로그램에 들어가기 위해 스위치를 뒤집은 세대에 속합니다. 1980 년대 초, 나는 Electronics Corporation of India Ltd (ECIL)가 개발 한 Micro-78이라는 마이크로 컴퓨터에서 일했습니다. 그것은 Altair 8800의 일종의 복제본이었습니다. 나는 토글 스위치를 사용하여 작은 부팅 프로그램을 입력하고 버튼을 눌러 실행했을 때 어떤 일이 일어나는지 분명히 기억합니다. 이 프로그램은 플로피 디스크의 첫 번째 트랙에 포함 된 두 번째 부팅 프로그램을 읽고 두 번째 부팅 프로그램이 디스크 운영 체제를로드하기 위해 실행되기 시작하는 방식으로 자체적으로 덮어 씁니다. "Bootstrap"이라는 용어는 두 번째 부팅 프로그램의 추가 기능을 통해 "Fulling Servise"라는 방식으로 첫 번째 부팅 프로그램을 읽고 두 번째 부팅 프로그램을 덮어 쓰는이 프로세스를 언급한다고 생각합니다. 그것은 "부트 스트랩 프로그램"의 원래 의미의 기원 일 수 있습니다.

프로그래밍 세계의 겸손한 초보자로서,이 단어를 본 후 여기에서 모든 대답을 튕기는 것은 다른 장소에서 약간 다른 방식으로 많이 사용 되었기 때문에 부트 스트랩에서 위키 백과 페이지를 읽는 것을 발견했습니다 (Duh! 생각하지 않았습니다. 처음에는) 이해하는 데 매우 유익합니다. 차이 이 단어를 사용합니다. 극도로 드문 경우에 ... Wikipedia가 특정 용어에 대한 더 나은 설명을 가질 수도 있습니다 .... (수정)? 그래도 Wikipedia에서 담당자 포인트를 가져올 것인가?

나에게는 모든 의미가있는 것 같습니다. 가능한 한 간단한 일로 시작하고, 그 일과 약간 더 복잡한 것을 만들고, 이제 2를 사용하여 어떤 종류의 작업을 더 효율적이고 빠르게 수행 할 수 있습니다. 원래 thing1과 함께 1. 그런 다음 Thing2에서 3 ad infinitum까지 반복하십시오 ...

나는 그것이 생물학적 진화와 '추상화의 층'과 밀접하게 연결되어 있다고 생각합니다 (나와 같은 초보자, ahem, wikipedia, cough) - 스위치, 기계 코드, 어셈블리, C, Python, AIS가있는 1940 년대 컴퓨터의 진화 "내 기본값에 대한 % 4^ % 저녁 식사를 만들고 바닥을 청소하고 술 취한 속어 영어 또는 아마존 부족 방언 '예외를 제기하지 않고'예외를 제기하는 '모든 종류의 복잡한 지침 '(다시 초보자를 위해 ... 당신은 그것을 추측했습니다) - 단순한 무지로 인해 많은 링크를 놓쳤습니다.

그런 다음 특정 소프트웨어 의미에서 : Meaning1 : Thing1은 최신 버전의 the2 버전을로드하는 데 사용됩니다.

의미 2 : thing1은 낮은 수준의 언어입니다 (1001011100에 가깝습니다 .... 011001은 인쇄 ( "hello,", user.name))의 더 높은 언어를 조금 쓰는 데 사용됩니다. 아기 어휘 수준에서 성인 어휘 수준을 향해 사물 자체를 확장하는 데 사용됩니다. 물론 그 자체는 the 1에 의해서만 편집 될 수 있습니다. 소프트웨어 용어와 은유 용어!)는 장기적으로 받아 들여지 기 위해 충분한 시간을 소비하거나 그들을 버릴 가치가 있습니다 (여기서 어디에서 유추할지 확실하지 않음).

그렇다면, Thing2는 유아리에서 성인으로 '부트 스트랩'자체 (아마도 몇 번)를 가지고 있습니다. .

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top