chacrinha Posted October 13, 2020 at 07:43 AM Share Posted October 13, 2020 at 07:43 AM Gente, alguém sabe falar da forma mais leiga possível (sem aqueles linguagem técnicas) o que é offset ? Sempre que eu estou tentando estudar sistemas operacionais, memória e exploits fala-se no bendito offset: "Ah, temos a memória na posição zero do segmento 0x242469 e temos que pular para o offset 0x242424 e bla bla bla" Alguém sabe me explicar por metáfora o que raios é o offset do endereço de memória? Eu imagino a memoria de um PC , não sei se errado ou não, como uma planilha do Excel , nesse caso, como seria o offset? Grato! Quote Link to comment Share on other sites More sharing options...
fredericopissarra Posted October 13, 2020 at 11:18 AM Share Posted October 13, 2020 at 11:18 AM "offset" é "deslocamento". Se você estiver parado onde está e se deslocar 1 metro pra frente, então está no offset +1 metro pra frente. Com relaçẽo a "endereço de memória", se você assumir como base um endereço qualquer, um "deslocamento" de N bytes para frente é o "offset" (deslocamento) com relação a essa base. No modo real o "segmento" é essa base e, junto como ele, compondo o endereço físico, tem o "offset" (deslocamento). 3 Quote Link to comment Share on other sites More sharing options...
chacrinha Posted October 14, 2020 at 01:55 AM Author Share Posted October 14, 2020 at 01:55 AM 14 horas atrás, fredericopissarra disse: "offset" é "deslocamento". Se você estiver parado onde está e se deslocar 1 metro pra frente, então está no offset +1 metro pra frente. Com relaçẽo a "endereço de memória", se você assumir como base um endereço qualquer, um "deslocamento" de N bytes para frente é o "offset" (deslocamento) com relação a essa base. No modo real o "segmento" é essa base e, junto como ele, compondo o endereço físico, tem o "offset" (deslocamento). Me parece muito boa a sua metáfora, deixa eu ver se eu entendi: se eu tenho uma estrada de 100KM que começa em São Paulo e vai até Santos, se eu estou no KM 50 dela e percorro mais 2 KM , o endereço de memória seria 0x50 e o offset seria 0x02 ? OU seja, um incremento relativo? Estou errado? Quote Link to comment Share on other sites More sharing options...
gabrielteix Posted October 14, 2020 at 02:04 AM Share Posted October 14, 2020 at 02:04 AM Eu vejo o offset como uma posição ou uma referência para uma posição em um local. Quote Link to comment Share on other sites More sharing options...
fredericopissarra Posted October 14, 2020 at 11:09 AM Share Posted October 14, 2020 at 11:09 AM 9 horas atrás, chacrinha disse: Me parece muito boa a sua metáfora, deixa eu ver se eu entendi: se eu tenho uma estrada de 100KM que começa em São Paulo e vai até Santos, se eu estou no KM 50 dela e percorro mais 2 KM , o endereço de memória seria 0x50 e o offset seria 0x02 ? OU seja, um incremento relativo? Estou errado? Na analogia da estrada, onde é o KM 0? São Paulo? Esse é o offset 0, se você está no km 50, está no offset 50, ao andar mais 2 km, vai pro offset 52. Note que não existe apenas ESSA estrada. O offset, no exemplo, é medido em relação a ESSA referência, mas existem outras referências pelo mundo afora. No caso do modo real, um "endereço de memória" é especificado com um par de valores: SEGMENTO e OFFSET. O segmento te dá o endereço base e o offset te dá o deslocamento dentro desse segmento... No modo real, bloco do segmento sempre tem 64 KiB de tamanho (e o offset também). Quote Link to comment Share on other sites More sharing options...
chacrinha Posted October 19, 2020 at 03:34 AM Author Share Posted October 19, 2020 at 03:34 AM Em 14/10/2020 em 08:09, fredericopissarra disse: SEGMENTO e OFFSET. O segmento te dá o endereço base e o offset te dá o deslocamento dentro desse segmento... No modo real, bloco do segmento sempre tem 64 KiB de tamanho (e o offset também). Bom, voltei a não entender. Você conhece aqueles jogos de tabuleiro onde joga-se os dados para ver quantas casas o competidor avança? Tipo esse dessa imagem: https://br.pinterest.com/pin/330592428889640183/ O segmento seria o número da casa onde o competidor está e o offset é a diferença onde ele está e o número que o dado sorteia para ele avançar? Quote Link to comment Share on other sites More sharing options...
fredericopissarra Posted October 19, 2020 at 12:14 PM Share Posted October 19, 2020 at 12:14 PM Analogias só te levarão até certo ponto. Nesse "curso", que escrevi no início dos anos 90, explica melhor: 2 Quote Link to comment Share on other sites More sharing options...
teuzero Posted January 3, 2021 at 07:08 PM Share Posted January 3, 2021 at 07:08 PM (edited) entendi. Edited March 9, 2023 at 11:39 PM by teuzero pra por um ex de imagem de segmentos e deslocamento. Quote Link to comment Share on other sites More sharing options...
sklurm Posted March 8, 2021 at 04:26 PM Share Posted March 8, 2021 at 04:26 PM Em 13/10/2020 em 22:55, chacrinha disse: Me parece muito boa a sua metáfora, deixa eu ver se eu entendi: se eu tenho uma estrada de 100KM que começa em São Paulo e vai até Santos, se eu estou no KM 50 dela e percorro mais 2 KM , o endereço de memória seria 0x50 e o offset seria 0x02 ? OU seja, um incremento relativo? Estou errado? se vc considerar o endereço base como sendo a partir do KM 50, sim. mas se considerar o "início" do segmento/do pedaço de estrada q vc está avaliando como sendo a partir do KM 0 desta estrada de 100KM, seu offset, ao andar mais 2KM, JÁ TENDO ANDADO 50KM, seria de 52. melhor dizendo, dependerá de onde se inicia o segmento (a estrada que você está avaliando): se a partir da kilometragem 0 desta estrada de 100KM, ou se a partir da kilometragem 50 desta estrada de 100KM. se o início for a partir da kilometragem 50, seu segmento iniciará na kilometragem 50 e irá até o fim desta estrada, e seu offset neste segmento, ao se deslocar 2KM, será igual a 2. Quote Link to comment Share on other sites More sharing options...
chacrinha Posted March 23, 2021 at 06:35 AM Author Share Posted March 23, 2021 at 06:35 AM Em 08/03/2021 em 13:26, sklurm disse: se vc considerar o endereço base como sendo a partir do KM 50, sim. mas se considerar o "início" do segmento/do pedaço de estrada q vc está avaliando como sendo a partir do KM 0 desta estrada de 100KM, seu offset, ao andar mais 2KM, JÁ TENDO ANDADO 50KM, seria de 52. melhor dizendo, dependerá de onde se inicia o segmento (a estrada que você está avaliando): se a partir da kilometragem 0 desta estrada de 100KM, ou se a partir da kilometragem 50 desta estrada de 100KM. se o início for a partir da kilometragem 50, seu segmento iniciará na kilometragem 50 e irá até o fim desta estrada, e seu offset neste segmento, ao se deslocar 2KM, será igual a 2. Se eu disser então que um carro está quebrado na estrada em algum ponto no offset 0x50:0x17 isso indicará que ele está poderá estar quebrado em quais KMs? Quote Link to comment Share on other sites More sharing options...
fredericopissarra Posted March 23, 2021 at 08:32 PM Share Posted March 23, 2021 at 08:32 PM Não... mas você pode dizer que ele está quebrado à partir do quilometro 23 (0x17) começando no quilometro 1280 (0x50 * 16). Ou seja, no quilometro 1303. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.