備忘録やめた

備忘録として使用していたけどやめた.このブログに載せてあるコードのライセンスは別途記載がない限りWTFPL OR NYSLです.

i3wm: 前回のセッションを復元する

i3

コード save_layout.sh #!/bin/bash for i in $(seq 1 10) do i3-save-tree --workspace $i|sed '1d'|sed -r '/^ *\/\// {/"class"/!d}'|sed 's/\/\///g'|sed '/"class"/ s/,$//g' > ~/.config/i3/workspace_$i.json done load_layout.sh #!/bin/bash i=1 # …

Downloadsの肥やしを燃やす

要約 Downloadsディレクトリをtmpfsでマウントするよう/etc/fstabに記述します. /etc/fstab tmpfs /home/UserName/Downloads tmpfs uid=UserName,gid=UserName,mode=755,noatime 0 0 UserNameを自身のユーザ名に変更してください. 解説 OS起動時に,Downlo…

書いたコードをレポート内に全部掲載する

注意 Linuxのシェルコマンドを利用しているため,恐らくWindowsではコマンドを変更する必要があります. コード プリアンブル \usepackage{listings} \newcommand{\listcode}[1]{ \appexe{ls #1/*.java | xargs -I {} sh -c "echo '\\lstinputlisting[captio…

カーネルの直後のページがページフォルトを起こした

問題 カーネルが配置されているメモリ(0xffffffff80000000 - 0xffffffff80017000)の直後のページにてページフォルト発生. check_exception old: 0xffffffff new 0xe 118: v=0e e=0002 i=0 cpl=0 IP=0038:ffffffff80000083 pc=ffffffff80000083 SP=0030:ff…

電気通信大学生に贈る,交換留学の申し込み方

要約 電気通信大学には語学留学の他に交換留学の制度もあります.申し込む際にはまず国際教育センターに相談し,国際教育センターのウェブサイトからダウンロードした各種書類に記入し,必要なものをメールや紙媒体で提出します.暫くすると面接日程調整のた…

RamenOSに64ビットモードを実装した

要約 RamenOSに64ビットモードを実装しました.64ビットモード実装の際は,4階層ページングの実装,PAE(Physical Address Extension)の有効化,IA-32eモードの有効化,64ビットコードセグメントへのfar JMP,各種アドレスの変更,IDTの64ビットモード対応…

RamenOSにページングを実装した

要約 RamenOSにページングを実装しました.はりぼてOSを改造してページングを実装する場合,ページディレクトリ,ページテーブルの領域を確保し,GDTのエントリを追加又は編集し,保護モード移行直後にfar JMPをし,CR3,CR0レジスタに適切な値を代入し,リ…

RamenOSのカーネルの.headセグメントを削除する

30日でできる! OS自作入門作者:川合 秀実発売日: 2006/03/01メディア: 単行本 要約 RamenOSのカーネルの.headセグメントを削除します..headセグメントに依存している,asmhead.nas内の; bootpackの起動というコメントで始まる.dataセグメント移動のコードを…

はりぼてOSのカーネルへのジャンプについて

要約 はりぼてOSでは,まず絶対ジャンプでカーネルのヘッダに飛んだ後,そこから相対ジャンプでHariMainに飛ぶという,二段階ジャンプを行っていることが判りました. はじめに はりぼてOSにページングを実装する事に奮闘していました.JMP 0xC0000000でカー…

RamenOSのカーネル,IDT,GDTの移動

要約 RamenOSのカーネル,IDT,GDTの場所を変更します.変更のためにはアセンブリファイルや*.rsファイル*1の各所で定義されている定数の値と,GDTのエントリを変更する必要があります. はじめに はりぼてOSを基にしているRamenOSにページングを実装するた…

はりぼてOSの仮GDT解説

要約 GDTの各フィールドと,はりぼてOSのasmhead.nas内で仮設定するGDTのヌルセレクタ以外の2つのエントリの各ビットがどのような意味を持つのかを解説します. 背景 RamenOSにページングを実装するために,カーネルやIDT,GDTの位置を動かしていましたが,G…

VBE設定コードを分離する

要約 tokuchan3515.hatenablog.com 以前,はりぼてOSの解像度と色深度を上げる方法を紹介しましたが,ここで書いたコードが長いので,別のファイルにコードを移し,元のファイルに%includeでインクルードすることでコードを分割します.asmファイルとMakefil…

/var/tmp/portageをtmpfsにする

概要 非ルートユーザでequeryだのemerge -pだのemerge --infoを行うとPermission errorがわんさか出て,パソコンの前で叫びつつ,ひたすらググっていた時,次の記事を見つけました.*1. epian-wiki.appspot.com portageのテンポラリディレクトリをtmpfsにし…

はりぼてOSの解像度と色数を大きくする

30日でできる! OS自作入門作者:川合 秀実出版社/メーカー: マイナビ出版発売日: 2006/03/01メディア: Kindle版 概要 『30日でできる!OS自作入門』で取り扱っているはりぼてOSでは,最大256色使用できる8ビットカラーを使用しています*1.これに対し,最大16…

TabNineとvimtexの紹介

Vim

この記事はUEC Advent Calendar 2019 - Adventar4日目の記事です. otackma.hatenablog.com 昨日のアドベントカレンダーの記事は旅記事でした,いいですねえ.記事中では青梅,飯能,相模湖が紹介されていましたが,写真が載っている奥多摩湖も良さそう.今…

PYTHON_TARGETSのバージョンはさっさと上げよう

トラブル概要 VimのUltiSnipsが突然エラーを吐き出した.文字を挿入しようとする毎に,UltiSnips#TrackChange関数が存在しない旨のエラーを大量に流してきた. 調査した内容 github.com 公式のバグ再現ガイドに従って,Docker内でバグの再現を試みた→エラー…

Rustの変数と定数

数日前に久しぶりに記事を書いたけど,あれを書くだけで午前中全部使った気がする.毎日ブログを書いたりQiitaに沢山投稿する人はすごい(小並感). その数日前の記事でC++でOSを作成中という事を書いたが,なんかの拍子でRustに目を向けた.Rustはmutをつ…

「はりぼてOS」をC++で書く時の注意点

このブログを大体2/3年放置していたようだけど,なんか勿体無いし,アウトプットはいいことなのでまた書くことにした. 30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 ク…

vlcがCDの再生に失敗するのに何もログを残さなかったときの対処法

vlc

VlcがCDの再生に失敗するのに,ログを見ても何も書いていない,そんなことがあったので記述. まず,別のプレーヤーをインストール.それで再生に失敗した時,ログを見る.おすすめはmpv.ターミナルで動き,ログもターミナルに表示されるのですぐに原因を特…

vimのEscキーについて

Vim

しばしばEscキーをjjでマッピングする設定がネットで見られる.jjを打つことはほとんどの場合ないのと,jが打ちやすい場所にあるからという理由だけれども,実はVimでは<C-[>で標準でEscキーを押したときと同じ動作をする.Escキーほど遠くない,むしろ[のキーを</c-[>…

Rxvtのコピペ

Rxvtはどうも,Firefox等のものとは異なるクリップボードを用いているようで,例えばFirefoxからRxvtにコピペする時は,Rxvt上でCtrl+Meta+vを用いる必要がある.逆はCtrl+Meta+cのよう.つまり,FirefoxでCtrl+cを用いてコピー,Rxvt上でCtrl+Meta+vでペー…

GRUBを入れたのにそもそもGRUBすら現れない時(UEFI)

GRUBを入れたらGRUBの選択画面は出てくるけどその先カーネルパニックになるという状況はかなり経験した.しかし今回はそもそもGRUBの選択画面すら出てこなかったのでその対処方法を.ただしUEFIについて.結論を言うと,grubのインストールで--removableオプ…

startxが遅い時の対処法

/etc/hostsを編集する. 127.0.0.1 localhost ::1 localhostこうなっているのを,こうする. 127.0.0.1 localhost Laptop ::1 localhost Laptop但し,このLaptopという単語は,自分がつけたマシン名,すなわち/etc/conf.d/hostnameに書いた名前となる.今回…

emergeが上手く行かない時

概要 emergeで何かをインストールしようとした時に,エラーが出てできなかった経験をまとめます. Syncし忘れ Syncをし忘れたために古いURLからパッケージをダウンロードしようとして404エラーを出す場合がある. sudo emerge-webrsync sudo emerge --sync …

GentooのFcitxの言語バーと日本語配列

備忘録第一号.GentooのFcitxの所謂言語バーと日本語配列の設定.とりあえずできたのでまとめてみる. 言語バー (Classic UI) USEフラグでCairoとPangoを有効にする.多分これだけ.というのも,FcitxのClassicUIがこれらを用いているから(https://www.fcitx…